Add browser import hint debug variants

This commit is contained in:
Lawrence Chen 2026-03-17 03:01:50 -07:00
parent f97716939a
commit b9de0f0446
No known key found for this signature in database
7 changed files with 892 additions and 22 deletions

View file

@ -2306,6 +2306,24 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
// In UI tests, `WindowGroup` occasionally fails to materialize a window quickly on the VM.
// If there are no windows shortly after launch, force-create one so XCUITest can proceed.
if isRunningUnderXCTest {
if let rawVariant = env["CMUX_UI_TEST_BROWSER_IMPORT_HINT_VARIANT"] {
UserDefaults.standard.set(
BrowserImportHintSettings.variant(for: rawVariant).rawValue,
forKey: BrowserImportHintSettings.variantKey
)
}
if let rawShow = env["CMUX_UI_TEST_BROWSER_IMPORT_HINT_SHOW"] {
UserDefaults.standard.set(
rawShow == "1",
forKey: BrowserImportHintSettings.showOnBlankTabsKey
)
}
if let rawDismissed = env["CMUX_UI_TEST_BROWSER_IMPORT_HINT_DISMISSED"] {
UserDefaults.standard.set(
rawDismissed == "1",
forKey: BrowserImportHintSettings.dismissedKey
)
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { [weak self] in
guard let self else { return }
if NSApp.windows.isEmpty {
@ -2314,6 +2332,20 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
NSRunningApplication.current.activate(options: [.activateAllWindows, .activateIgnoringOtherApps])
self.writeUITestDiagnosticsIfNeeded(stage: "afterForceWindow")
}
if env["CMUX_UI_TEST_BROWSER_IMPORT_HINT_OPEN_BLANK_BROWSER"] == "1" {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.45) { [weak self] in
guard let self else { return }
_ = self.openBrowserAndFocusAddressBar(insertAtEnd: true)
}
}
if env["CMUX_UI_TEST_BROWSER_IMPORT_HINT_OPEN_SETTINGS"] == "1" {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.55) { [weak self] in
self?.openPreferencesWindow(
debugSource: "uiTest.browserImportHint",
navigationTarget: .browser
)
}
}
if env["CMUX_UI_TEST_BROWSER_IMPORT_AUTO_OPEN"] == "1" {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.4) {
BrowserDataImportCoordinator.shared.presentImportDialog()