@@ -42,7 +42,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
4242 {
4343 let url = URL ( string: " msauth.com.microsoft.msaltestapp://auth/switch_browser?action_uri=some_uri&code=some_code " ) !
4444
45- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , context: nil )
45+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , requestState : nil , context: nil )
4646
4747 XCTAssertNotNil ( response)
4848 XCTAssertEqual ( response? . actionUri, " some_uri " )
@@ -53,7 +53,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
5353 {
5454 let url = URL ( string: " MSAUTH.COM.MICROSOFT.msaltestapp://auth/switch_browser?action_uri=some_uri&code=some_code " ) !
5555
56- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://AUTH " , context: nil )
56+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://AUTH " , requestState : nil , context: nil )
5757
5858 XCTAssertNotNil ( response)
5959 XCTAssertEqual ( response? . actionUri, " some_uri " )
@@ -64,7 +64,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
6464 {
6565 let url = URL ( string: " msauth.com.microsoft.msaltestapp://auth/switch_browser?action_uri=some_uri&code=some_code#ff " ) !
6666
67- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth#fragment " , context: nil )
67+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth#fragment " , requestState : nil , context: nil )
6868
6969 XCTAssertNotNil ( response)
7070 XCTAssertEqual ( response? . actionUri, " some_uri " )
@@ -75,42 +75,59 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
7575 {
7676 let url = URL ( string: " msauth://broker_bundle_id//switch_browser?action_uri=some_uri&code=some_code " ) !
7777
78- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , context: nil )
78+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , requestState : nil , context: nil )
7979
8080 XCTAssertNotNil ( response)
8181 XCTAssertEqual ( response? . actionUri, " some_uri " )
8282 XCTAssertEqual ( response? . switchBrowserSessionToken, " some_code " )
8383 }
8484
85- func testInit_whenValidBrowserMode_hasBitmaskPrivateSessionShouldBeTrue( ) throws
85+ func testInit_whenStateIsPresentInUrl_shouldCreateObject( ) throws
86+ {
87+ let url = URL ( string: " msauth://broker_bundle_id//switch_browser?action_uri=some_uri&code=some_code&browser_modes=AAAAAA&state=state " ) !
88+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , requestState: " state " , context: nil )
89+
90+ XCTAssertNotNil ( response)
91+ XCTAssertEqual ( response? . state, " state " )
92+ }
93+
94+ func testInit_whenValidBrowserMode_hasBitmaskPrivateSession_shouldBeTrue( ) throws
8695 {
8796 let url = URL ( string: " msauth://broker_bundle_id//switch_browser?action_uri=some_uri&code=some_code&browser_modes=AQAAAA " ) !
8897
89- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , context: nil )
98+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , requestState : nil , context: nil )
9099
91100 XCTAssertNotNil ( response)
92101 XCTAssertEqual ( response? . actionUri, " some_uri " )
93102 XCTAssertEqual ( response? . switchBrowserSessionToken, " some_code " )
94103 XCTAssertEqual ( response? . useEphemeralWebBrowserSession, true )
95104 }
96105
97- func testInit_whenInvalidBrowserMode_hasBitmaskPrivateSessionShouldBeFalse ( ) throws
106+ func testInit_whenInvalidBrowserMode_hasBitmaskPrivateSession_shouldBeFalse ( ) throws
98107 {
99108 let url = URL ( string: " msauth://broker_bundle_id//switch_browser?action_uri=some_uri&code=some_code&browser_modes=AAAAAA " ) !
100109
101- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , context: nil )
110+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , requestState : nil , context: nil )
102111
103112 XCTAssertNotNil ( response)
104113 XCTAssertEqual ( response? . actionUri, " some_uri " )
105114 XCTAssertEqual ( response? . switchBrowserSessionToken, " some_code " )
106115 XCTAssertEqual ( response? . useEphemeralWebBrowserSession, false )
107116 }
108117
118+ func testInit_whenStateIsMissingFromUrl_shouldReturnNil( ) throws
119+ {
120+ let url = URL ( string: " msauth://broker_bundle_id//switch_browser?action_uri=some_uri&code=some_code&browser_modes=AAAAAA " ) !
121+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth://broker_bundle_id " , requestState: " state " , context: nil )
122+
123+ XCTAssertNil ( response)
124+ }
125+
109126 func testInit_whenInvalidUrl_shouldReturnNil( ) throws
110127 {
111128 let url = URL ( string: " msauth.com.microsoft.msaltestapp://auth/abc?action_uri=some_uri&code=some_code " ) !
112129
113- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , context: nil )
130+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , requestState : nil , context: nil )
114131
115132 XCTAssertNil ( response)
116133 }
@@ -119,7 +136,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
119136 {
120137 let url = URL ( string: " abc.com.microsoft.msaltestapp://auth/switch_browser?action_uri=some_uri&code=some_code " ) !
121138
122- let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , context: nil )
139+ let response = try ? MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , requestState : nil , context: nil )
123140
124141 XCTAssertNil ( response)
125142 }
@@ -128,7 +145,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
128145 {
129146 let url = URL ( string: " msauth.com.microsoft.msaltestapp://auth/switch_browser?code=some_code " ) !
130147
131- XCTAssertThrowsError ( try MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , context: nil ) ) { error in
148+ XCTAssertThrowsError ( try MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , requestState : nil , context: nil ) ) { error in
132149 XCTAssertEqual ( ( error as NSError ) . code, MSIDErrorCode . serverInvalidResponse. rawValue)
133150 XCTAssertEqual ( ( error as NSError ) . domain, MSIDOAuthErrorDomain)
134151 XCTAssertEqual ( ( error as NSError ) . userInfo [ " MSIDErrorDescriptionKey " ] as? String , " action_uri is nil. " )
@@ -139,7 +156,7 @@ final class MSIDSwitchBrowserResponseTest: XCTestCase
139156 {
140157 let url = URL ( string: " msauth.com.microsoft.msaltestapp://auth/switch_browser?action_uri=some_uri " ) !
141158
142- XCTAssertThrowsError ( try MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , context: nil ) ) { error in
159+ XCTAssertThrowsError ( try MSIDSwitchBrowserResponse ( url: url, redirectUri: " msauth.com.microsoft.msaltestapp://auth " , requestState : nil , context: nil ) ) { error in
143160 XCTAssertEqual ( ( error as NSError ) . code, MSIDErrorCode . serverInvalidResponse. rawValue)
144161 XCTAssertEqual ( ( error as NSError ) . domain, MSIDOAuthErrorDomain)
145162 XCTAssertEqual ( ( error as NSError ) . userInfo [ " MSIDErrorDescriptionKey " ] as? String , " code is nil. " )
0 commit comments