Files
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

111 lines
3.7 KiB
Swift

import XCTest
@testable import MacTools
@testable import HideNotchPlugin
@MainActor
final class HideNotchPluginTests: XCTestCase {
func testPanelStateDisablesSwitchWhenNoSupportedDisplayExists() {
let controller = MockHideNotchWallpaperController()
controller.snapshotValue = HideNotchSnapshot(
hasSupportedDisplay: false,
supportedDisplayCount: 0,
managedDisplayCount: 0,
unsupportedVisibleDisplayCount: 0,
pendingRestoreCount: 0,
isEnabled: false,
isProcessing: false,
isAwaitingDisplay: false,
errorMessage: nil
)
let plugin = HideNotchPlugin(controller: controller)
let state = plugin.primaryPanelState
XCTAssertEqual(state.subtitle, "未检测到刘海屏")
XCTAssertFalse(state.isEnabled)
XCTAssertFalse(state.isOn)
}
func testPanelStateShowsWaitingSubtitleWhenEnabledWithoutSupportedDisplay() {
let controller = MockHideNotchWallpaperController()
controller.snapshotValue = HideNotchSnapshot(
hasSupportedDisplay: false,
supportedDisplayCount: 0,
managedDisplayCount: 0,
unsupportedVisibleDisplayCount: 0,
pendingRestoreCount: 0,
isEnabled: true,
isProcessing: false,
isAwaitingDisplay: true,
errorMessage: nil
)
let plugin = HideNotchPlugin(controller: controller)
XCTAssertEqual(plugin.primaryPanelState.subtitle, "已开启")
XCTAssertTrue(plugin.primaryPanelState.isOn)
XCTAssertFalse(plugin.primaryPanelState.isEnabled)
}
func testPanelStateShowsManagedDisplayCountWhenEnabled() {
let controller = MockHideNotchWallpaperController()
controller.snapshotValue = HideNotchSnapshot(
hasSupportedDisplay: true,
supportedDisplayCount: 2,
managedDisplayCount: 2,
unsupportedVisibleDisplayCount: 0,
pendingRestoreCount: 0,
isEnabled: true,
isProcessing: false,
isAwaitingDisplay: false,
errorMessage: nil
)
let plugin = HideNotchPlugin(controller: controller)
XCTAssertEqual(plugin.primaryPanelState.subtitle, "已开启")
XCTAssertTrue(plugin.primaryPanelState.isOn)
}
func testToggleOnForwardsToController() {
let controller = MockHideNotchWallpaperController()
controller.snapshotValue = HideNotchSnapshot(
hasSupportedDisplay: true,
supportedDisplayCount: 1,
managedDisplayCount: 0,
unsupportedVisibleDisplayCount: 0,
pendingRestoreCount: 0,
isEnabled: false,
isProcessing: false,
isAwaitingDisplay: false,
errorMessage: nil
)
let plugin = HideNotchPlugin(controller: controller)
plugin.handleAction(.setSwitch(true))
XCTAssertEqual(controller.setEnabledCalls, [true])
XCTAssertTrue(plugin.primaryPanelState.isOn)
}
func testPanelStateShowsEnabledSubtitleWhileProcessing() {
let controller = MockHideNotchWallpaperController()
controller.snapshotValue = HideNotchSnapshot(
hasSupportedDisplay: true,
supportedDisplayCount: 1,
managedDisplayCount: 0,
unsupportedVisibleDisplayCount: 0,
pendingRestoreCount: 0,
isEnabled: true,
isProcessing: true,
isAwaitingDisplay: false,
errorMessage: nil
)
let plugin = HideNotchPlugin(controller: controller)
XCTAssertEqual(plugin.primaryPanelState.subtitle, "已开启")
XCTAssertFalse(plugin.primaryPanelState.isEnabled)
}
}