mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-11 13:59:13 +00:00

* New LICENSE-COMMERCIAL file * Apply dual licenses: AGPL + Element Commercial to file headers * Update README with dual licensing
71 lines
2.5 KiB
Swift
71 lines
2.5 KiB
Swift
//
|
|
// Copyright 2024 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import XCTest
|
|
|
|
@testable import ElementX
|
|
@testable import MatrixRustSDK
|
|
|
|
class ClientProtocolTests: XCTestCase {
|
|
let server = "https://matrix.org"
|
|
let userIDServerName = "matrix.org"
|
|
let wellKnownURL = "https://matrix.org/.well-known/element/element.json"
|
|
|
|
var client: ClientProtocol!
|
|
|
|
func testWellKnownLoggedOut() async {
|
|
// Given a client that is logged out but has discovered a server.
|
|
let client = ClientSDKMock()
|
|
client.userIdServerNameThrowableError = MockError.notAvailable
|
|
client.serverReturnValue = server
|
|
|
|
// When discovering a server that contains the registration helper URL.
|
|
client.getUrlUrlClosure = { [wellKnownURL] url in
|
|
guard url == wellKnownURL else {
|
|
XCTFail("An unexpected URL was used.")
|
|
throw MockError.notAvailable
|
|
}
|
|
return "{\"registration_helper_url\":\"https://develop.element.io/#/mobile_register\"}"
|
|
}
|
|
|
|
guard case let .success(wellKnown) = await client.getElementWellKnown() else {
|
|
XCTFail("The request should succeed.")
|
|
return
|
|
}
|
|
|
|
// Then the well-known should include that URL.
|
|
XCTAssertEqual(wellKnown, .init(call: nil, registrationHelperUrl: "https://develop.element.io/#/mobile_register"))
|
|
}
|
|
|
|
func testWellKnownLoggedIn() async {
|
|
// Given a client that is logged in.
|
|
let client = ClientSDKMock()
|
|
client.userIdServerNameReturnValue = userIDServerName
|
|
|
|
// When discovering a server that contains a custom call widget URL.
|
|
client.getUrlUrlClosure = { [wellKnownURL] url in
|
|
guard url == wellKnownURL else {
|
|
XCTFail("An unexpected URL was used.")
|
|
throw MockError.notAvailable
|
|
}
|
|
return "{\"call\":{\"widget_url\":\"https://call.element.dev\"}}"
|
|
}
|
|
|
|
guard case let .success(wellKnown) = await client.getElementWellKnown() else {
|
|
XCTFail("The request should succeed.")
|
|
return
|
|
}
|
|
|
|
// Then the well-known should include that URL.
|
|
XCTAssertEqual(wellKnown, .init(call: .init(widgetUrl: "https://call.element.dev"), registrationHelperUrl: nil))
|
|
}
|
|
|
|
enum MockError: Error {
|
|
case notAvailable
|
|
}
|
|
}
|