47 lines
2.3 KiB
Swift
47 lines
2.3 KiB
Swift
import Foundation
|
|
import LiveKit
|
|
import Testing
|
|
@testable import Voice
|
|
|
|
/// Explicit opt-in native CFNetwork probe; no account credentials or bodies.
|
|
struct TLSLiveTests {
|
|
@Test func pinnedLANHTTPS() async throws {
|
|
guard ProcessInfo.processInfo.environment["HOPE_TLS_LIVE"] == "1" else {
|
|
print("HOPE_TLS_PROBE skipped: explicit live opt-in absent")
|
|
return
|
|
}
|
|
print("HOPE_TLS_PROBE native HTTPS validation started")
|
|
let (data, response) = try await TLSPinning.session().data(from: URL(string: "https://192.168.86.2:9178/api/auth/me")!)
|
|
#expect((response as? HTTPURLResponse)?.statusCode == 401)
|
|
#expect(!data.isEmpty)
|
|
}
|
|
|
|
@Test func systemTrustedLANHTTPS() async throws {
|
|
guard ProcessInfo.processInfo.environment["HOPE_TLS_LIVE"] == "1" else { return }
|
|
print("HOPE_TLS_PROBE system trust validation started")
|
|
let (_, response) = try await URLSession.shared.data(from: URL(string: "https://192.168.86.2:9178/api/auth/me")!)
|
|
#expect((response as? HTTPURLResponse)?.statusCode == 401)
|
|
print("HOPE_TLS_PROBE system trust validation completed")
|
|
}
|
|
|
|
@Test func nativeAccountLogin() async throws {
|
|
let env = ProcessInfo.processInfo.environment
|
|
guard env["HOPE_TLS_LIVE"] == "1", let username = env["HOPE_TEST_USERNAME"],
|
|
let password = env["HOPE_TEST_PASSWORD"] else { return }
|
|
print("HOPE_TLS_PROBE native account login started")
|
|
let config = try ServerConfig.parse("https://192.168.86.2:9178").get()
|
|
let client = AuthClient(config: config)
|
|
let login = try await client.login(username: username, password: password)
|
|
#expect(login.user.username == username)
|
|
#expect(try await client.me(token: login.token).id == login.user.id)
|
|
let bootstrap = try await TokenClient(config: config, bearerToken: login.token).fetchToken()
|
|
let room = Room()
|
|
try await room.connect(url: config.livekitURL.absoluteString, token: bootstrap.token)
|
|
#expect(room.connectionState == .connected)
|
|
await room.disconnect()
|
|
print("HOPE_TLS_PROBE authenticated LiveKit WSS connected and disconnected; microphone not enabled")
|
|
try await client.logout(token: login.token)
|
|
print("HOPE_TLS_PROBE native login/me/logout completed")
|
|
}
|
|
}
|