mirror of
https://github.com/home-assistant/iOS.git
synced 2026-06-24 20:17:30 -05:00
<!-- Thank you for submitting a Pull Request and helping to improve Home Assistant. Please complete the following sections to help the processing and review of your changes. Please do not delete anything from this template. --> ## Summary <!-- Provide a brief summary of the changes you have made and most importantly what they aim to achieve --> This PR removes the previous foundation for kiosk mode and add a simplified version fully made for SwiftUI. ## Screenshots <!-- If this is a user-facing change not in the frontend, please include screenshots in light and dark mode. --> https://github.com/user-attachments/assets/d6f1ba1e-6806-4a72-9fb4-c326f3479ad4 ## Link to pull request in Documentation repository <!-- Pull requests that add, change or remove functionality must have a corresponding pull request in the Companion App Documentation repository (https://github.com/home-assistant/companion.home-assistant). Please add the number of this pull request after the "#" --> Documentation: home-assistant/companion.home-assistant#1357 ## Any other notes <!-- If there is any other information of note, like if this Pull Request is part of a bigger change, please include it here. --> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
94 lines
4.5 KiB
Swift
94 lines
4.5 KiB
Swift
@testable import HomeAssistant
|
|
import XCTest
|
|
|
|
final class WebViewExternalBusMessageTests: XCTestCase {
|
|
func testExternalBusMessageKeys() {
|
|
XCTAssertEqual(WebViewExternalBusMessage.configGet.rawValue, "config/get")
|
|
XCTAssertEqual(WebViewExternalBusMessage.configScreenShow.rawValue, "config_screen/show")
|
|
XCTAssertEqual(WebViewExternalBusMessage.haptic.rawValue, "haptic")
|
|
XCTAssertEqual(WebViewExternalBusMessage.connectionStatus.rawValue, "connection-status")
|
|
XCTAssertEqual(WebViewExternalBusMessage.tagRead.rawValue, "tag/read")
|
|
XCTAssertEqual(WebViewExternalBusMessage.tagWrite.rawValue, "tag/write")
|
|
XCTAssertEqual(WebViewExternalBusMessage.themeUpdate.rawValue, "theme-update")
|
|
XCTAssertEqual(WebViewExternalBusMessage.matterCommission.rawValue, "matter/commission")
|
|
XCTAssertEqual(WebViewExternalBusMessage.threadImportCredentials.rawValue, "thread/import_credentials")
|
|
XCTAssertEqual(WebViewExternalBusMessage.barCodeScanner.rawValue, "bar_code/scan")
|
|
XCTAssertEqual(WebViewExternalBusMessage.barCodeScannerClose.rawValue, "bar_code/close")
|
|
XCTAssertEqual(WebViewExternalBusMessage.barCodeScannerNotify.rawValue, "bar_code/notify")
|
|
XCTAssertEqual(
|
|
WebViewExternalBusMessage.threadStoreCredentialInAppleKeychain.rawValue,
|
|
"thread/store_in_platform_keychain"
|
|
)
|
|
XCTAssertEqual(
|
|
WebViewExternalBusMessage.assistShow.rawValue,
|
|
"assist/show"
|
|
)
|
|
XCTAssertEqual(
|
|
WebViewExternalBusMessage.assistSettings.rawValue,
|
|
"assist/settings"
|
|
)
|
|
XCTAssertEqual(WebViewExternalBusMessage.scanForImprov.rawValue, "improv/scan")
|
|
XCTAssertEqual(WebViewExternalBusMessage.improvConfigureDevice.rawValue, "improv/configure_device")
|
|
XCTAssertEqual(WebViewExternalBusMessage.focusElement.rawValue, "focus_element")
|
|
XCTAssertEqual(WebViewExternalBusMessage.toastShow.rawValue, "toast/show")
|
|
XCTAssertEqual(WebViewExternalBusMessage.toastHide.rawValue, "toast/hide")
|
|
XCTAssertEqual(WebViewExternalBusMessage.entityAddToGetActions.rawValue, "entity/add_to/get_actions")
|
|
XCTAssertEqual(WebViewExternalBusMessage.entityAddTo.rawValue, "entity/add_to")
|
|
XCTAssertEqual(WebViewExternalBusMessage.cameraPlayerShow.rawValue, "camera/show")
|
|
|
|
XCTAssertEqual(WebViewExternalBusMessage.allCases.count, 23)
|
|
}
|
|
|
|
func testExternalBusOutgoingMessageKeys() {
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.showSidebar.rawValue, "sidebar/show")
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.showAutomationEditor.rawValue, "automation/editor/show")
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.barCodeScanResult.rawValue, "bar_code/scan_result")
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.barCodeScanAborted.rawValue, "bar_code/aborted")
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.improvDiscoveredDevice.rawValue, "improv/discovered_device")
|
|
XCTAssertEqual(
|
|
WebViewExternalBusOutgoingMessage.improvDiscoveredDeviceSetupDone.rawValue,
|
|
"improv/device_setup_done"
|
|
)
|
|
XCTAssertEqual(
|
|
WebViewExternalBusOutgoingMessage.navigate.rawValue,
|
|
"navigate"
|
|
)
|
|
XCTAssertEqual(
|
|
WebViewExternalBusOutgoingMessage.matterCommissionFinish.rawValue,
|
|
"matter/commission/finish"
|
|
)
|
|
XCTAssertEqual(
|
|
WebViewExternalBusOutgoingMessage.kioskModeSet.rawValue,
|
|
"kiosk_mode/set"
|
|
)
|
|
|
|
XCTAssertEqual(WebViewExternalBusOutgoingMessage.allCases.count, 9)
|
|
}
|
|
|
|
@MainActor func testConfigResultIncludesAllExpectedKeys() {
|
|
let result = WebViewExternalBusMessage.configResult
|
|
|
|
// Expected keys currently defined in WebViewExternalBusMessage.configResult
|
|
let expectedKeys: Set<String> = [
|
|
"hasSettingsScreen",
|
|
"canWriteTag",
|
|
"canCommissionMatter",
|
|
"hasMatterStatusReport",
|
|
"canImportThreadCredentials",
|
|
"hasBarCodeScanner",
|
|
"canTransferThreadCredentialsToKeychain",
|
|
"hasAssist",
|
|
"hasAssistSettings",
|
|
"hasCameraPlayer",
|
|
"canSetupImprov",
|
|
"downloadFileSupported",
|
|
"hasEntityAddTo",
|
|
"appVersion",
|
|
"toastComponentVersion",
|
|
]
|
|
|
|
let actualKeys = Set(result.keys)
|
|
XCTAssertTrue(expectedKeys.isSubset(of: actualKeys), "Missing keys: \(expectedKeys.subtracting(actualKeys))")
|
|
}
|
|
}
|