mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +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",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectories: .init(),
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: "pusherClientID")
|
||||
keychain.setRestorationToken(restorationToken, forUsername: username)
|
||||
|
||||
@@ -56,7 +56,7 @@ struct KeychainControllerTests {
|
||||
oauthData: "oauthData",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectories: .init(),
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: "pusherClientID")
|
||||
keychain.setRestorationToken(restorationToken, forUsername: username)
|
||||
#expect(keychain.restorationTokens().count == 1, "The keychain should have 1 restoration token.")
|
||||
@@ -82,7 +82,7 @@ struct KeychainControllerTests {
|
||||
oauthData: "oauthData",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectories: .init(),
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: "pusherClientID")
|
||||
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
||||
}
|
||||
@@ -107,7 +107,7 @@ struct KeychainControllerTests {
|
||||
oauthData: "oauthData",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectories: .init(),
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: "pusherClientID")
|
||||
keychain.setRestorationToken(restorationToken, forUsername: "@test\(index):example.com")
|
||||
}
|
||||
@@ -141,7 +141,7 @@ struct KeychainControllerTests {
|
||||
oidcData: nil,
|
||||
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
||||
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
||||
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||
pusherNotificationClientIdentifier: "pusherClientID")
|
||||
let tokenData = try JSONEncoder().encode(unsupportedToken)
|
||||
try underlyingKeychain.set(tokenData, key: "@test:example.com")
|
||||
|
||||
@@ -23,7 +23,7 @@ struct RestorationTokenTests {
|
||||
oidcData: "data-from-mas",
|
||||
slidingSyncVersion: .proxy(url: "https://sync.example.com")),
|
||||
sessionDirectory: .sessionsBaseDirectory.appending(component: UUID().uuidString),
|
||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
||||
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||
let data = try JSONEncoder().encode(originalToken)
|
||||
|
||||
@@ -46,7 +46,7 @@ struct RestorationTokenTests {
|
||||
oidcData: "data-from-mas",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
||||
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||
let data = try JSONEncoder().encode(originalToken)
|
||||
|
||||
@@ -77,7 +77,7 @@ struct RestorationTokenTests {
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectory: .sessionsBaseDirectory.appending(component: sessionDirectoryName),
|
||||
cacheDirectory: .sessionCachesBaseDirectory.appending(component: sessionDirectoryName),
|
||||
passphrase: Data("passphrase".utf8).base64EncodedString(),
|
||||
passphrase: RestorationTokenFixtures.base64Passphrase,
|
||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||
let data = try JSONEncoder().encode(originalToken)
|
||||
|
||||
@@ -106,7 +106,7 @@ struct RestorationTokenTests {
|
||||
oauthData: "data-from-mas",
|
||||
slidingSyncVersion: .native),
|
||||
sessionDirectories: .init(),
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: "pusher-identifier")
|
||||
let data = try JSONEncoder().encode(originalToken)
|
||||
|
||||
@@ -129,6 +129,11 @@ struct RestorationTokenTests {
|
||||
|
||||
// MARK: - Token formats
|
||||
|
||||
enum RestorationTokenFixtures {
|
||||
static let passphrase = Data("passphrase".utf8)
|
||||
static let base64Passphrase = passphrase.base64EncodedString()
|
||||
}
|
||||
|
||||
struct RestorationTokenV4: Equatable, Codable {
|
||||
let session: SessionV1
|
||||
let sessionDirectory: URL
|
||||
|
||||
@@ -114,7 +114,7 @@ struct UserSessionStoreTests {
|
||||
let sessionDirectories = SessionDirectories()
|
||||
|
||||
// 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.")
|
||||
return
|
||||
}
|
||||
@@ -122,7 +122,7 @@ struct UserSessionStoreTests {
|
||||
// Then the session should be built and its restoration token persisted.
|
||||
#expect(userSession.clientProxy.userID == "@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
|
||||
@@ -132,7 +132,7 @@ struct UserSessionStoreTests {
|
||||
client.sessionThrowableError = TestError.generic
|
||||
|
||||
// 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.")
|
||||
return
|
||||
}
|
||||
@@ -177,7 +177,7 @@ struct UserSessionStoreTests {
|
||||
slidingSyncVersion: .native)
|
||||
let restorationToken = RestorationToken(session: session,
|
||||
sessionDirectories: sessionDirectories,
|
||||
passphrase: Data("passphrase".utf8),
|
||||
passphrase: RestorationTokenFixtures.passphrase,
|
||||
pusherNotificationClientIdentifier: nil)
|
||||
return KeychainCredentials(userID: userID, restorationToken: restorationToken)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user