mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Share the test passphrase through a RestorationTokenFixtures enum.
The legacy restoration token formats store the passphrase as a base64 string whereas the current one exposes Data, so keep both representations of the same value in one place instead of repeating the conversions in every test.
This commit is contained in:
@@ -36,7 +36,7 @@ struct KeychainControllerTests {
|
|||||||
oauthData: "oauthData",
|
oauthData: "oauthData",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectories: .init(),
|
sessionDirectories: .init(),
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusherClientID")
|
pusherNotificationClientIdentifier: "pusherClientID")
|
||||||
keychain.setRestorationToken(restorationToken, forUsername: username)
|
keychain.setRestorationToken(restorationToken, forUsername: username)
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ struct KeychainControllerTests {
|
|||||||
oauthData: "oauthData",
|
oauthData: "oauthData",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectories: .init(),
|
sessionDirectories: .init(),
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusherClientID")
|
pusherNotificationClientIdentifier: "pusherClientID")
|
||||||
keychain.setRestorationToken(restorationToken, forUsername: username)
|
keychain.setRestorationToken(restorationToken, forUsername: username)
|
||||||
#expect(keychain.restorationTokens().count == 1, "The keychain should have 1 restoration token.")
|
#expect(keychain.restorationTokens().count == 1, "The keychain should have 1 restoration token.")
|
||||||
@@ -82,7 +82,7 @@ struct KeychainControllerTests {
|
|||||||
oauthData: "oauthData",
|
oauthData: "oauthData",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectories: .init(),
|
sessionDirectories: .init(),
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusherClientID")
|
pusherNotificationClientIdentifier: "pusherClientID")
|
||||||
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
||||||
}
|
}
|
||||||
@@ -107,7 +107,7 @@ struct KeychainControllerTests {
|
|||||||
oauthData: "oauthData",
|
oauthData: "oauthData",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectories: .init(),
|
sessionDirectories: .init(),
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusherClientID")
|
pusherNotificationClientIdentifier: "pusherClientID")
|
||||||
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
||||||
}
|
}
|
||||||
@@ -141,7 +141,7 @@ struct KeychainControllerTests {
|
|||||||
oidcData: nil,
|
oidcData: nil,
|
||||||
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
||||||
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
||||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusherClientID")
|
pusherNotificationClientIdentifier: "pusherClientID")
|
||||||
let tokenData = try JSONEncoder().encode(unsupportedToken)
|
let tokenData = try JSONEncoder().encode(unsupportedToken)
|
||||||
try underlyingKeychain.set(tokenData, key: "@test:example.com")
|
try underlyingKeychain.set(tokenData, key: "@test:example.com")
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ struct RestorationTokenTests {
|
|||||||
oidcData: "data-from-mas",
|
oidcData: "data-from-mas",
|
||||||
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
||||||
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
||||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||||
let data = try JSONEncoder().encode(originalToken)
|
let data = try JSONEncoder().encode(originalToken)
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ struct RestorationTokenTests {
|
|||||||
oidcData: "data-from-mas",
|
oidcData: "data-from-mas",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
||||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||||
let data = try JSONEncoder().encode(originalToken)
|
let data = try JSONEncoder().encode(originalToken)
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ struct RestorationTokenTests {
|
|||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
||||||
cacheDirectory: .sessionCachesBaseDirectory.appending(component: sessionDirectoryName),
|
cacheDirectory: .sessionCachesBaseDirectory.appending(component: sessionDirectoryName),
|
||||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||||
let data = try JSONEncoder().encode(originalToken)
|
let data = try JSONEncoder().encode(originalToken)
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ struct RestorationTokenTests {
|
|||||||
oauthData: "data-from-mas",
|
oauthData: "data-from-mas",
|
||||||
slidingSyncVersion: .native),
|
slidingSyncVersion: .native),
|
||||||
sessionDirectories: .init(),
|
sessionDirectories: .init(),
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||||
let data = try JSONEncoder().encode(originalToken)
|
let data = try JSONEncoder().encode(originalToken)
|
||||||
|
|
||||||
@@ -129,6 +129,11 @@ struct RestorationTokenTests {
|
|||||||
|
|
||||||
// MARK: - Token formats
|
// MARK: - Token formats
|
||||||
|
|
||||||
|
enum RestorationTokenFixtures {
|
||||||
|
static let passphrase = Data("passphrase".utf8)
|
||||||
|
static let base64Passphrase = passphrase.base64EncodedString()
|
||||||
|
}
|
||||||
|
|
||||||
struct RestorationTokenV4: Equatable, Codable {
|
struct RestorationTokenV4: Equatable, Codable {
|
||||||
let session: SessionV1
|
let session: SessionV1
|
||||||
let sessionDirectory: URL
|
let sessionDirectory: URL
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ struct UserSessionStoreTests {
|
|||||||
let sessionDirectories = SessionDirectories()
|
let sessionDirectories = SessionDirectories()
|
||||||
|
|
||||||
// When creating a user session for it.
|
// When creating a user session for it.
|
||||||
guard case .success(let userSession) = await store.userSession(for: client, sessionDirectories: sessionDirectories, passphrase: Data("passphrase".utf8)) else {
|
guard case .success(let userSession) = await store.userSession(for: client, sessionDirectories: sessionDirectories, passphrase: RestorationTokenFixtures.passphrase) else {
|
||||||
Issue.record("Creating the session should succeed.")
|
Issue.record("Creating the session should succeed.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,7 @@ struct UserSessionStoreTests {
|
|||||||
// Then the session should be built and its restoration token persisted.
|
// Then the session should be built and its restoration token persisted.
|
||||||
#expect(userSession.clientProxy.userID == "@alice:matrix.org")
|
#expect(userSession.clientProxy.userID == "@alice:matrix.org")
|
||||||
#expect(keychainController.setRestorationTokenForUsernameReceivedArguments?.forUsername == "@alice:matrix.org")
|
#expect(keychainController.setRestorationTokenForUsernameReceivedArguments?.forUsername == "@alice:matrix.org")
|
||||||
#expect(keychainController.setRestorationTokenForUsernameReceivedArguments?.restorationToken.passphrase == Data("passphrase".utf8))
|
#expect(keychainController.setRestorationTokenForUsernameReceivedArguments?.restorationToken.passphrase == RestorationTokenFixtures.passphrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -132,7 +132,7 @@ struct UserSessionStoreTests {
|
|||||||
client.sessionThrowableError = TestError.generic
|
client.sessionThrowableError = TestError.generic
|
||||||
|
|
||||||
// When creating a user session for it.
|
// When creating a user session for it.
|
||||||
guard case .failure(.failedSettingUpSession) = await store.userSession(for: client, sessionDirectories: .init(), passphrase: Data("passphrase".utf8)) else {
|
guard case .failure(.failedSettingUpSession) = await store.userSession(for: client, sessionDirectories: .init(), passphrase: RestorationTokenFixtures.passphrase) else {
|
||||||
Issue.record("Creating the session should fail.")
|
Issue.record("Creating the session should fail.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -177,7 +177,7 @@ struct UserSessionStoreTests {
|
|||||||
slidingSyncVersion: .native)
|
slidingSyncVersion: .native)
|
||||||
let restorationToken = RestorationToken(session: session,
|
let restorationToken = RestorationToken(session: session,
|
||||||
sessionDirectories: sessionDirectories,
|
sessionDirectories: sessionDirectories,
|
||||||
passphrase: Data("passphrase".utf8),
|
passphrase: RestorationTokenFixtures.passphrase,
|
||||||
pusherNotificationClientIdentifier: nil)
|
pusherNotificationClientIdentifier: nil)
|
||||||
return KeychainCredentials(userID: userID, restorationToken: restorationToken)
|
return KeychainCredentials(userID: userID, restorationToken: restorationToken)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user