mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Add support for Account Provisioning links. (#4108)
* Add support for account provisioning links and route them to the authentication flow. * Use the provisioning parameters to configure the authentication flow. * Add UI tests for the provisioned authentication flow. * Record new preview snapshots. * Add unit tests. * Make the domain configurable in the app settings. * Use the loginHint in the login screen too.
This commit is contained in:
@@ -4273,16 +4273,16 @@ open class ClientSDKMock: MatrixRustSDK.Client, @unchecked Sendable {
|
||||
|
||||
//MARK: - urlForOidc
|
||||
|
||||
open var urlForOidcOidcConfigurationPromptThrowableError: Error?
|
||||
var urlForOidcOidcConfigurationPromptUnderlyingCallsCount = 0
|
||||
open var urlForOidcOidcConfigurationPromptCallsCount: Int {
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintThrowableError: Error?
|
||||
var urlForOidcOidcConfigurationPromptLoginHintUnderlyingCallsCount = 0
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return urlForOidcOidcConfigurationPromptUnderlyingCallsCount
|
||||
return urlForOidcOidcConfigurationPromptLoginHintUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = urlForOidcOidcConfigurationPromptUnderlyingCallsCount
|
||||
returnValue = urlForOidcOidcConfigurationPromptLoginHintUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
@@ -4290,29 +4290,29 @@ open class ClientSDKMock: MatrixRustSDK.Client, @unchecked Sendable {
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
urlForOidcOidcConfigurationPromptUnderlyingCallsCount = newValue
|
||||
urlForOidcOidcConfigurationPromptLoginHintUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
urlForOidcOidcConfigurationPromptUnderlyingCallsCount = newValue
|
||||
urlForOidcOidcConfigurationPromptLoginHintUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var urlForOidcOidcConfigurationPromptCalled: Bool {
|
||||
return urlForOidcOidcConfigurationPromptCallsCount > 0
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintCalled: Bool {
|
||||
return urlForOidcOidcConfigurationPromptLoginHintCallsCount > 0
|
||||
}
|
||||
open var urlForOidcOidcConfigurationPromptReceivedArguments: (oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?)?
|
||||
open var urlForOidcOidcConfigurationPromptReceivedInvocations: [(oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?)] = []
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintReceivedArguments: (oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?, loginHint: String?)?
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintReceivedInvocations: [(oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?, loginHint: String?)] = []
|
||||
|
||||
var urlForOidcOidcConfigurationPromptUnderlyingReturnValue: OAuthAuthorizationData!
|
||||
open var urlForOidcOidcConfigurationPromptReturnValue: OAuthAuthorizationData! {
|
||||
var urlForOidcOidcConfigurationPromptLoginHintUnderlyingReturnValue: OAuthAuthorizationData!
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintReturnValue: OAuthAuthorizationData! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return urlForOidcOidcConfigurationPromptUnderlyingReturnValue
|
||||
return urlForOidcOidcConfigurationPromptLoginHintUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: OAuthAuthorizationData? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = urlForOidcOidcConfigurationPromptUnderlyingReturnValue
|
||||
returnValue = urlForOidcOidcConfigurationPromptLoginHintUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
@@ -4320,29 +4320,29 @@ open class ClientSDKMock: MatrixRustSDK.Client, @unchecked Sendable {
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
urlForOidcOidcConfigurationPromptUnderlyingReturnValue = newValue
|
||||
urlForOidcOidcConfigurationPromptLoginHintUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
urlForOidcOidcConfigurationPromptUnderlyingReturnValue = newValue
|
||||
urlForOidcOidcConfigurationPromptLoginHintUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var urlForOidcOidcConfigurationPromptClosure: ((OidcConfiguration, OidcPrompt?) async throws -> OAuthAuthorizationData)?
|
||||
open var urlForOidcOidcConfigurationPromptLoginHintClosure: ((OidcConfiguration, OidcPrompt?, String?) async throws -> OAuthAuthorizationData)?
|
||||
|
||||
open override func urlForOidc(oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?) async throws -> OAuthAuthorizationData {
|
||||
if let error = urlForOidcOidcConfigurationPromptThrowableError {
|
||||
open override func urlForOidc(oidcConfiguration: OidcConfiguration, prompt: OidcPrompt?, loginHint: String?) async throws -> OAuthAuthorizationData {
|
||||
if let error = urlForOidcOidcConfigurationPromptLoginHintThrowableError {
|
||||
throw error
|
||||
}
|
||||
urlForOidcOidcConfigurationPromptCallsCount += 1
|
||||
urlForOidcOidcConfigurationPromptReceivedArguments = (oidcConfiguration: oidcConfiguration, prompt: prompt)
|
||||
urlForOidcOidcConfigurationPromptLoginHintCallsCount += 1
|
||||
urlForOidcOidcConfigurationPromptLoginHintReceivedArguments = (oidcConfiguration: oidcConfiguration, prompt: prompt, loginHint: loginHint)
|
||||
DispatchQueue.main.async {
|
||||
self.urlForOidcOidcConfigurationPromptReceivedInvocations.append((oidcConfiguration: oidcConfiguration, prompt: prompt))
|
||||
self.urlForOidcOidcConfigurationPromptLoginHintReceivedInvocations.append((oidcConfiguration: oidcConfiguration, prompt: prompt, loginHint: loginHint))
|
||||
}
|
||||
if let urlForOidcOidcConfigurationPromptClosure = urlForOidcOidcConfigurationPromptClosure {
|
||||
return try await urlForOidcOidcConfigurationPromptClosure(oidcConfiguration, prompt)
|
||||
if let urlForOidcOidcConfigurationPromptLoginHintClosure = urlForOidcOidcConfigurationPromptLoginHintClosure {
|
||||
return try await urlForOidcOidcConfigurationPromptLoginHintClosure(oidcConfiguration, prompt, loginHint)
|
||||
} else {
|
||||
return urlForOidcOidcConfigurationPromptReturnValue
|
||||
return urlForOidcOidcConfigurationPromptLoginHintReturnValue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10658,6 +10658,71 @@ open class QrCodeDataSDKMock: MatrixRustSDK.QrCodeData, @unchecked Sendable {
|
||||
static func reset()
|
||||
{
|
||||
}
|
||||
|
||||
//MARK: - serverName
|
||||
|
||||
var serverNameUnderlyingCallsCount = 0
|
||||
open var serverNameCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return serverNameUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = serverNameUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
serverNameUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
serverNameUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var serverNameCalled: Bool {
|
||||
return serverNameCallsCount > 0
|
||||
}
|
||||
|
||||
var serverNameUnderlyingReturnValue: String?
|
||||
open var serverNameReturnValue: String? {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return serverNameUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: String?? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = serverNameUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
}
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
serverNameUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
serverNameUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open var serverNameClosure: (() -> String?)?
|
||||
|
||||
open override func serverName() -> String? {
|
||||
serverNameCallsCount += 1
|
||||
if let serverNameClosure = serverNameClosure {
|
||||
return serverNameClosure()
|
||||
} else {
|
||||
return serverNameReturnValue
|
||||
}
|
||||
}
|
||||
}
|
||||
open class RoomSDKMock: MatrixRustSDK.Room, @unchecked Sendable {
|
||||
init() {
|
||||
|
||||
Reference in New Issue
Block a user