@@ -60,113 +60,116 @@ class GetAccountInfoTests: RPCBaseTests {
6060 )
6161 }
6262
63- /** @fn testSuccessfulGetAccountInfoResponse
64- @brief This test simulates a successful @c GetAccountInfo flow.
65- */
66- func testSuccessfulGetAccountInfoResponse( ) async throws {
67- let kProviderUserInfoKey = " providerUserInfo "
68- let kPhotoUrlKey = " photoUrl "
69- let kTestPhotoURL = " testPhotoURL "
70- let kProviderIDkey = " providerId "
71- let kDisplayNameKey = " displayName "
72- let kTestDisplayName = " DisplayName "
73- let kFederatedIDKey = " federatedId "
74- let kTestFederatedID = " testFederatedId "
75- let kEmailKey = " email "
76- let kTestEmail = " testEmail "
77- let kPasswordHashKey = " passwordHash "
78- let kTestPasswordHash = " testPasswordHash "
79- let kTestProviderID = " testProviderID "
80- let kEmailVerifiedKey = " emailVerified "
81- let kLocalIDKey = " localId "
82- let kTestLocalID = " testLocalId "
83- let kPasskeysKey = " passkeyInfo "
63+ #if os(iOS) || os(tvOS) || os(macOS)
64+
65+ /** @fn testSuccessfulGetAccountInfoResponse
66+ @brief This test simulates a successful @c GetAccountInfo flow.
67+ */
68+ func testSuccessfulGetAccountInfoResponse( ) async throws {
69+ let kProviderUserInfoKey = " providerUserInfo "
70+ let kPhotoUrlKey = " photoUrl "
71+ let kTestPhotoURL = " testPhotoURL "
72+ let kProviderIDkey = " providerId "
73+ let kDisplayNameKey = " displayName "
74+ let kTestDisplayName = " DisplayName "
75+ let kFederatedIDKey = " federatedId "
76+ let kTestFederatedID = " testFederatedId "
77+ let kEmailKey = " email "
78+ let kTestEmail = " testEmail "
79+ let kPasswordHashKey = " passwordHash "
80+ let kTestPasswordHash = " testPasswordHash "
81+ let kTestProviderID = " testProviderID "
82+ let kEmailVerifiedKey = " emailVerified "
83+ let kLocalIDKey = " localId "
84+ let kTestLocalID = " testLocalId "
85+ let kPasskeysKey = " passkeyInfo "
8486
85- // Fake PasskeyInfo
86- let testCredentialId = " credential_id "
87- let testPasskeyName = " testPasskey "
88- let passkeys = [ [
89- " credentialId " : testCredentialId,
90- " name " : testPasskeyName,
91- ] ]
87+ // Fake PasskeyInfo
88+ let testCredentialId = " credential_id "
89+ let testPasskeyName = " testPasskey "
90+ let passkeys = [ [
91+ " credentialId " : testCredentialId,
92+ " name " : testPasskeyName,
93+ ] ]
9294
93- let usersIn = [ [
94- kProviderUserInfoKey: [ [
95- kProviderIDkey: kTestProviderID,
95+ let usersIn = [ [
96+ kProviderUserInfoKey: [ [
97+ kProviderIDkey: kTestProviderID,
98+ kDisplayNameKey: kTestDisplayName,
99+ kPhotoUrlKey: kTestPhotoURL,
100+ kFederatedIDKey: kTestFederatedID,
101+ kEmailKey: kTestEmail,
102+ ] ] ,
103+ kLocalIDKey: kTestLocalID,
96104 kDisplayNameKey: kTestDisplayName,
97- kPhotoUrlKey: kTestPhotoURL,
98- kFederatedIDKey: kTestFederatedID,
99105 kEmailKey: kTestEmail,
100- ] ] ,
101- kLocalIDKey: kTestLocalID,
102- kDisplayNameKey: kTestDisplayName,
103- kEmailKey: kTestEmail,
104- kPhotoUrlKey: kTestPhotoURL,
105- kEmailVerifiedKey: true ,
106- kPasswordHashKey: kTestPasswordHash,
107- kPasskeysKey: passkeys,
108- ] as [ String : Any ] ]
109- let rpcIssuer = try XCTUnwrap ( self . rpcIssuer)
106+ kPhotoUrlKey: kTestPhotoURL,
107+ kEmailVerifiedKey: true ,
108+ kPasswordHashKey: kTestPasswordHash,
109+ kPasskeysKey: passkeys,
110+ ] as [ String : Any ] ]
111+ let rpcIssuer = try XCTUnwrap ( self . rpcIssuer)
110112
111- rpcIssuer. respondBlock = {
112- try self . rpcIssuer. respond ( withJSON: [ " users " : usersIn] )
113- }
114- let rpcResponse = try await authBackend. call ( with: makeGetAccountInfoRequest ( ) )
113+ rpcIssuer. respondBlock = {
114+ try self . rpcIssuer. respond ( withJSON: [ " users " : usersIn] )
115+ }
116+ let rpcResponse = try await authBackend. call ( with: makeGetAccountInfoRequest ( ) )
115117
116- let users = try XCTUnwrap ( rpcResponse. users)
117- XCTAssertGreaterThan ( users. count, 0 )
118- let firstUser = try XCTUnwrap ( users. first)
119- XCTAssertEqual ( firstUser. photoURL? . absoluteString, kTestPhotoURL)
120- XCTAssertEqual ( firstUser. displayName, kTestDisplayName)
121- XCTAssertEqual ( firstUser. email, kTestEmail)
122- XCTAssertEqual ( firstUser. localID, kTestLocalID)
123- XCTAssertTrue ( firstUser. emailVerified)
124- let providerUserInfo = try XCTUnwrap ( firstUser. providerUserInfo)
125- XCTAssertGreaterThan ( providerUserInfo. count, 0 )
126- let firstProviderUser = try XCTUnwrap ( providerUserInfo. first)
127- XCTAssertEqual ( firstProviderUser. photoURL? . absoluteString, kTestPhotoURL)
128- XCTAssertEqual ( firstProviderUser. displayName, kTestDisplayName)
129- XCTAssertEqual ( firstProviderUser. email, kTestEmail)
130- XCTAssertEqual ( firstProviderUser. providerID, kTestProviderID)
131- XCTAssertEqual ( firstProviderUser. federatedID, kTestFederatedID)
132- let enrolledPasskeys = try XCTUnwrap ( firstUser. enrolledPasskeys)
133- XCTAssertEqual ( enrolledPasskeys. count, 1 )
134- XCTAssertEqual ( enrolledPasskeys [ 0 ] . credentialID, testCredentialId)
135- XCTAssertEqual ( enrolledPasskeys [ 0 ] . name, testPasskeyName)
136- }
118+ let users = try XCTUnwrap ( rpcResponse. users)
119+ XCTAssertGreaterThan ( users. count, 0 )
120+ let firstUser = try XCTUnwrap ( users. first)
121+ XCTAssertEqual ( firstUser. photoURL? . absoluteString, kTestPhotoURL)
122+ XCTAssertEqual ( firstUser. displayName, kTestDisplayName)
123+ XCTAssertEqual ( firstUser. email, kTestEmail)
124+ XCTAssertEqual ( firstUser. localID, kTestLocalID)
125+ XCTAssertTrue ( firstUser. emailVerified)
126+ let providerUserInfo = try XCTUnwrap ( firstUser. providerUserInfo)
127+ XCTAssertGreaterThan ( providerUserInfo. count, 0 )
128+ let firstProviderUser = try XCTUnwrap ( providerUserInfo. first)
129+ XCTAssertEqual ( firstProviderUser. photoURL? . absoluteString, kTestPhotoURL)
130+ XCTAssertEqual ( firstProviderUser. displayName, kTestDisplayName)
131+ XCTAssertEqual ( firstProviderUser. email, kTestEmail)
132+ XCTAssertEqual ( firstProviderUser. providerID, kTestProviderID)
133+ XCTAssertEqual ( firstProviderUser. federatedID, kTestFederatedID)
134+ let enrolledPasskeys = try XCTUnwrap ( firstUser. enrolledPasskeys)
135+ XCTAssertEqual ( enrolledPasskeys. count, 1 )
136+ XCTAssertEqual ( enrolledPasskeys [ 0 ] . credentialID, testCredentialId)
137+ XCTAssertEqual ( enrolledPasskeys [ 0 ] . name, testPasskeyName)
138+ }
137139
138- func testInitWithMultipleEnrolledPasskeys( ) throws {
139- let passkey1 : [ String : AnyHashable ] = [ " name " : " passkey1 " , " credentialId " : " cred1 " ]
140- let passkey2 : [ String : AnyHashable ] = [ " name " : " passkey2 " , " credentialId " : " cred2 " ]
141- let userDict : [ String : AnyHashable ] = [
142- " localId " : " user123 " ,
143- 144- " passkeyInfo " : [ passkey1, passkey2] ,
145- ]
146- let dict : [ String : AnyHashable ] = [ " users " : [ userDict] ]
147- let response = try GetAccountInfoResponse ( dictionary: dict)
148- let users = try XCTUnwrap ( response. users)
149- let firstUser = try XCTUnwrap ( users. first)
150- let enrolledPasskeys = try XCTUnwrap ( firstUser. enrolledPasskeys)
151- XCTAssertEqual ( enrolledPasskeys. count, 2 )
152- XCTAssertEqual ( enrolledPasskeys [ 0 ] . name, " passkey1 " )
153- XCTAssertEqual ( enrolledPasskeys [ 0 ] . credentialID, " cred1 " )
154- XCTAssertEqual ( enrolledPasskeys [ 1 ] . name, " passkey2 " )
155- XCTAssertEqual ( enrolledPasskeys [ 1 ] . credentialID, " cred2 " )
156- }
140+ func testInitWithMultipleEnrolledPasskeys( ) throws {
141+ let passkey1 : [ String : AnyHashable ] = [ " name " : " passkey1 " , " credentialId " : " cred1 " ]
142+ let passkey2 : [ String : AnyHashable ] = [ " name " : " passkey2 " , " credentialId " : " cred2 " ]
143+ let userDict : [ String : AnyHashable ] = [
144+ " localId " : " user123 " ,
145+ 146+ " passkeyInfo " : [ passkey1, passkey2] ,
147+ ]
148+ let dict : [ String : AnyHashable ] = [ " users " : [ userDict] ]
149+ let response = try GetAccountInfoResponse ( dictionary: dict)
150+ let users = try XCTUnwrap ( response. users)
151+ let firstUser = try XCTUnwrap ( users. first)
152+ let enrolledPasskeys = try XCTUnwrap ( firstUser. enrolledPasskeys)
153+ XCTAssertEqual ( enrolledPasskeys. count, 2 )
154+ XCTAssertEqual ( enrolledPasskeys [ 0 ] . name, " passkey1 " )
155+ XCTAssertEqual ( enrolledPasskeys [ 0 ] . credentialID, " cred1 " )
156+ XCTAssertEqual ( enrolledPasskeys [ 1 ] . name, " passkey2 " )
157+ XCTAssertEqual ( enrolledPasskeys [ 1 ] . credentialID, " cred2 " )
158+ }
157159
158- func testInitWithNoEnrolledPasskeys( ) throws {
159- let userDict : [ String : AnyHashable ] = [
160- " localId " : " user123 " ,
161- 162- // No "passkeys" present
163- ]
164- let dict : [ String : AnyHashable ] = [ " users " : [ userDict] ]
165- let response = try GetAccountInfoResponse ( dictionary: dict)
166- let users = try XCTUnwrap ( response. users)
167- let firstUser = try XCTUnwrap ( users. first)
168- XCTAssertNil ( firstUser. enrolledPasskeys)
169- }
160+ func testInitWithNoEnrolledPasskeys( ) throws {
161+ let userDict : [ String : AnyHashable ] = [
162+ " localId " : " user123 " ,
163+ 164+ // No "passkeys" present
165+ ]
166+ let dict : [ String : AnyHashable ] = [ " users " : [ userDict] ]
167+ let response = try GetAccountInfoResponse ( dictionary: dict)
168+ let users = try XCTUnwrap ( response. users)
169+ let firstUser = try XCTUnwrap ( users. first)
170+ XCTAssertNil ( firstUser. enrolledPasskeys)
171+ }
172+ #endif
170173
171174 private func makeGetAccountInfoRequest( ) -> GetAccountInfoRequest {
172175 return GetAccountInfoRequest ( accessToken: kTestAccessToken,
0 commit comments