1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2026-03-25 21:50:08 +01:00

Add a test that checks if language change works

This commit is contained in:
2026-02-23 13:33:45 +01:00
parent 44a4099bfa
commit ab34716273
2 changed files with 60 additions and 0 deletions

View File

@@ -83,6 +83,7 @@
036061D82F4C705B00B5998F /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036061D62F4C705800B5998F /* WindowManager.swift */; };
036061D92F4C705B00B5998F /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036061D62F4C705800B5998F /* WindowManager.swift */; };
036061DA2F4C705B00B5998F /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036061D62F4C705800B5998F /* WindowManager.swift */; };
036061DC2F4C7AE700B5998F /* SettingsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036061DB2F4C7AE100B5998F /* SettingsTest.swift */; };
036C39022E5C883B008DAEDF /* Packagist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036C39012E5C883A008DAEDF /* Packagist.swift */; };
036C39032E5C883B008DAEDF /* Packagist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036C39012E5C883A008DAEDF /* Packagist.swift */; };
036C39042E5C883B008DAEDF /* Packagist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036C39012E5C883A008DAEDF /* Packagist.swift */; };
@@ -1074,6 +1075,7 @@
034515482EC4FBB500472561 /* bn */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bn; path = bn.lproj/Localizable.strings; sourceTree = "<group>"; };
034515492EC4FBBD00472561 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
036061D62F4C705800B5998F /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = "<group>"; };
036061DB2F4C7AE100B5998F /* SettingsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsTest.swift; sourceTree = "<group>"; };
036C39012E5C883A008DAEDF /* Packagist.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Packagist.swift; sourceTree = "<group>"; };
036C39072E5C88A2008DAEDF /* PackagistTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PackagistTest.swift; sourceTree = "<group>"; };
036C39092E5C8CBD008DAEDF /* PackagistP2Response.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PackagistP2Response.swift; sourceTree = "<group>"; };
@@ -2126,6 +2128,7 @@
C471E7BD28F9B90F0021E251 /* ui */ = {
isa = PBXGroup;
children = (
036061DB2F4C7AE100B5998F /* SettingsTest.swift */,
C471E7BE28F9B90F0021E251 /* StartupTest.swift */,
C469E702294CFDF700A82AB2 /* DomainsListTest.swift */,
C44E985E29B23EBF0059F773 /* UpdateCheckTest.swift */,
@@ -3324,6 +3327,7 @@
C471E89C28F9BB8F0021E251 /* ValetSite.swift in Sources */,
031D74882F46307300D4FF48 /* AddSiteView.swift in Sources */,
C471E89D28F9BB8F0021E251 /* FakeValetSite.swift in Sources */,
036061DC2F4C7AE700B5998F /* SettingsTest.swift in Sources */,
C471E89F28F9BB8F0021E251 /* ValetDomainScanner.swift in Sources */,
C471E8A028F9BB8F0021E251 /* FakeDomainScanner.swift in Sources */,
C471E8A228F9BB8F0021E251 /* AppDelegate.swift in Sources */,

View File

@@ -0,0 +1,56 @@
//
// SettingsTest.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 23/02/2026.
// Copyright © 2026 Nico Verbruggen. All rights reserved.
//
import XCTest
final class SettingsTest: UITestCase {
override func setUpWithError() throws {
continueAfterFailure = false
}
final func test_changing_language_closes_other_windows() throws {
let app = launch(openMenu: true)
// First, open the domains window
app.mainMenuItem(withText: "mi_domain_list".localized).click()
let domainsWindow = app.windows["domain_list.title".localized]
assertExists(domainsWindow, 2.0)
// Press the menu button again
app.statusItems.firstMatch.click() // press the menu button again
// This time, open the preferences window
app.mainMenuItem(withText: "mi_preferences".localized).click()
let settingsWindow = app.windows
.containing(.button, identifier: "prefs.tabs.general".localized(for: "en"))
.firstMatch
assertExists(settingsWindow, 2.0)
assertExists(app.buttons["prefs.tabs.general".localized(for: "en")], 2.0)
// In the languages pop-up, click on it
let languagePopup = settingsWindow.popUpButtons.element(boundBy: 0)
languagePopup.click()
languagePopup.menuItems["Japanese"].click()
assertNotExists(domainsWindow, 2.0)
assertNotExists(settingsWindow, 2.0)
// Find the Japanese language settings window now
let settingsWindowJa = app.windows
.containing(.button, identifier: "prefs.tabs.general".localized(for: "ja"))
.firstMatch
assertExists(settingsWindowJa, 2.0)
assertExists(app.buttons["prefs.tabs.general".localized(for: "ja")], 2.0)
assertExists(settingsWindowJa.staticTexts["prefs.language".localized(for: "ja")], 2.0)
// Switch back to the original language
let resetPopup = settingsWindowJa.popUpButtons.element(boundBy: 0)
resetPopup.click()
resetPopup.menuItems["System Default"].click()
}
}