From ab9ccb6bf2aa11aa9bdf5d640dd791b86e68710e Mon Sep 17 00:00:00 2001 From: shamanec Date: Mon, 24 Jul 2023 21:06:09 +0300 Subject: [PATCH] add launch argument tests --- .../project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 92419 -> 96731 bytes .../xcschemes/xcuitest-sample-proj.xcscheme | 6 ++ .../xcdebugger/Breakpoints_v2.xcbkptlist | 68 +++++++++++++++++- xcuitest-sample-proj/AppDelegate.swift | 19 ++++- .../Foundations/BaseTest.swift | 31 ++++---- .../Helpers/Elements.swift | 5 +- .../LaunchArgumentTests.swift | 19 +++++ .../Pages/FirstPage.swift | 1 + .../Pages/ThirdPage.swift | 2 +- .../SampleAppUITests.swift | 11 +-- 11 files changed, 140 insertions(+), 26 deletions(-) create mode 100644 xcuitest-sample-projUITests/LaunchArgumentTests.swift diff --git a/xcuitest-sample-proj.xcodeproj/project.pbxproj b/xcuitest-sample-proj.xcodeproj/project.pbxproj index 8c9c3b2..d8d93a4 100644 --- a/xcuitest-sample-proj.xcodeproj/project.pbxproj +++ b/xcuitest-sample-proj.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ FF79C2832A66F54E00BBC60A /* BaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF79C2822A66F54E00BBC60A /* BaseTest.swift */; }; FF79C2862A66F72200BBC60A /* TestConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF79C2852A66F72200BBC60A /* TestConstants.swift */; }; FF79C2892A66F9F500BBC60A /* Interactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF79C2882A66F9F500BBC60A /* Interactions.swift */; }; + FF7C55402A6EF2DA00102A71 /* LaunchArgumentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF7C553F2A6EF2DA00102A71 /* LaunchArgumentTests.swift */; }; FF86799B2A69699D00C4A1A7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF86799A2A69699D00C4A1A7 /* AppDelegate.swift */; }; FF86799E2A696BDC00C4A1A7 /* CarouselItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF86799D2A696BDC00C4A1A7 /* CarouselItemView.swift */; }; FFF0348F2A6CFA6500A33E97 /* FirstPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFF0348E2A6CFA6500A33E97 /* FirstPage.swift */; }; @@ -59,6 +60,7 @@ FF79C2822A66F54E00BBC60A /* BaseTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTest.swift; sourceTree = ""; }; FF79C2852A66F72200BBC60A /* TestConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestConstants.swift; sourceTree = ""; }; FF79C2882A66F9F500BBC60A /* Interactions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Interactions.swift; sourceTree = ""; }; + FF7C553F2A6EF2DA00102A71 /* LaunchArgumentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchArgumentTests.swift; sourceTree = ""; }; FF86799A2A69699D00C4A1A7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; FF86799D2A696BDC00C4A1A7 /* CarouselItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselItemView.swift; sourceTree = ""; }; FFF0348E2A6CFA6500A33E97 /* FirstPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstPage.swift; sourceTree = ""; }; @@ -156,6 +158,7 @@ FF79C27D2A66F31800BBC60A /* Extensions */, FF79C2022A66F1B700BBC60A /* SampleAppUITests.swift */, FFF034A22A6D687400A33E97 /* README.md */, + FF7C553F2A6EF2DA00102A71 /* LaunchArgumentTests.swift */, ); path = "xcuitest-sample-projUITests"; sourceTree = ""; @@ -364,6 +367,7 @@ FFF0349B2A6D227100A33E97 /* XCUIApplication+Extensions.swift in Sources */, FFF0348F2A6CFA6500A33E97 /* FirstPage.swift in Sources */, FF79C2862A66F72200BBC60A /* TestConstants.swift in Sources */, + FF7C55402A6EF2DA00102A71 /* LaunchArgumentTests.swift in Sources */, FF79C27F2A66F3A000BBC60A /* XCUIElement+Extensions.swift in Sources */, FFF034A12A6D56DF00A33E97 /* ThirdPage.swift in Sources */, FF79C2812A66F45200BBC60A /* XCUIElementQuery+Extensions.swift in Sources */, diff --git a/xcuitest-sample-proj.xcodeproj/project.xcworkspace/xcuserdata/shamanec.xcuserdatad/UserInterfaceState.xcuserstate b/xcuitest-sample-proj.xcodeproj/project.xcworkspace/xcuserdata/shamanec.xcuserdatad/UserInterfaceState.xcuserstate index 6ccfb46ce204c7ccff389094f03975c72764086c..51cabd8ca7b659fe79a36c7cfdb951e0faed7fb5 100644 GIT binary patch literal 96731 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 z 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 + + + + + + + + + + + + + + + + + + diff --git a/xcuitest-sample-proj/AppDelegate.swift b/xcuitest-sample-proj/AppDelegate.swift index 2632b0f..5bd8857 100644 --- a/xcuitest-sample-proj/AppDelegate.swift +++ b/xcuitest-sample-proj/AppDelegate.swift @@ -36,6 +36,7 @@ struct TabBarView: View { } struct CarouselView: View { + @StateObject var viewModel = ArgumentTextViewModel() @State private var isButtonVisible = true @State private var text: String = "" @@ -73,8 +74,19 @@ struct CarouselView: View { .frame(width: 200, height: 50) .textFieldStyle(RoundedBorderTextFieldStyle()) .accessibilityIdentifier("text-field") + + Text("Argument:\(viewModel.displayText)") + .foregroundColor(.gray) + .padding(.top, 8) + .accessibilityIdentifier("argument-text") + .onAppear { + // Check if the launch arguments contain the specific argument you provided + if CommandLine.arguments.contains("-showCustomText") { + // Perform any action based on the launch argument, e.g., update ViewModel + viewModel.displayText = "Custom" + } + } } - } private func hideButtonAfterDelay() { @@ -109,3 +121,8 @@ struct LoadingElementsView: View { } } } + +// Your ViewModel +class ArgumentTextViewModel: ObservableObject { + @Published var displayText: String = "Default" +} diff --git a/xcuitest-sample-projUITests/Foundations/BaseTest.swift b/xcuitest-sample-projUITests/Foundations/BaseTest.swift index 08c1e48..e81e1c6 100644 --- a/xcuitest-sample-projUITests/Foundations/BaseTest.swift +++ b/xcuitest-sample-projUITests/Foundations/BaseTest.swift @@ -9,7 +9,6 @@ import XCTest class BaseTest: XCTestCase { private let app = XCUIApplication() - private let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") private let device = XCUIDevice.shared @@ -27,6 +26,7 @@ class BaseTest: XCTestCase { // Fail-fast tests continueAfterFailure = false // Start the AUT + app.launchArguments = launchArguments() app.launch() } @@ -38,6 +38,11 @@ class BaseTest: XCTestCase { app.terminate() } + func launchArguments() -> [String] { + // Override this method in subclasses to provide custom launch arguments + return [] + } + func getApp() -> XCUIApplication { return self.app } @@ -54,8 +59,7 @@ class BaseTest: XCTestCase { print(app.debugDescription) } - ///=========================== - + /// Accept or deny camera permissions func handleCameraAlert(allow: Bool) { // Add UI interruption monitor to handle system alerts addUIInterruptionMonitor(withDescription: "System Alert") { (alert) -> Bool in @@ -79,7 +83,7 @@ class BaseTest: XCTestCase { device.press(.home) } - /// This function allows to delete the app between tests + /// This function allows to delete the app between tests - to trigger permission alerts again for example func deleteApp() { app.terminate() pressHomeButton() @@ -91,13 +95,13 @@ class BaseTest: XCTestCase { usleep(500_000) // 0.5 seconds springboard.swipeLeft() } - + let appName = "SampleApp" let icon = springboard.icons[appName] let iconExists = Elements.waitForElement(icon, TestConstants.Timeout.short) guard iconExists else { return } - + icon.press(forDuration: TestConstants.Timeout.short) let editHomeScreenAlert = springboard.alerts["Edit Home Screens"] @@ -105,7 +109,7 @@ class BaseTest: XCTestCase { let editHomeScreenAlertButton = editHomeScreenAlert.buttons["OK"] editHomeScreenAlertButton.tap() } - + let deleteAppButton = springboard.icons[appName].buttons["DeleteButton"] deleteAppButton.tap() @@ -117,24 +121,19 @@ class BaseTest: XCTestCase { pressHomeButton() } + /// private var cleanedTestName: String? { let testName = self.name do { + // The pattern (?<= )(.*?)(?=]) is a positive lookbehind (?<= ), followed by a non-greedy capture group (.*?), and finally, a positive lookahead (?=]). + // This regular expression is designed to match the text between a space and a closing square bracket ("]") let regex = try NSRegularExpression(pattern: "(?<= )(.*?)(?=])") guard let match = regex.firstMatch(in: testName, range: NSRange(testName.startIndex..., in: testName)), - let range = Range(match.range(at: 1), in: testName) else { return nil } + let range = Range(match.range(at: 1), in: testName) else { return nil } return String(testName[range]) } catch let error as NSError { print("[UITest] invalid regex: \(error.localizedDescription)") return nil } } - - func waitForElementHittableAttributeToBe(_ element: XCUIElement, _ timeoutValue: Double, _ visibility: Bool) { - let predicate = "hittable == \(String(visibility))" - let isDisplayedPredicate = NSPredicate(format: predicate) - let expectation = [XCTNSPredicateExpectation(predicate: isDisplayedPredicate, object: element)] - let result = XCTWaiter().wait(for: expectation, timeout: timeoutValue) - XCTAssertEqual(result, .completed, "Element \(element) is not displayed and/or hittable") - } } diff --git a/xcuitest-sample-projUITests/Helpers/Elements.swift b/xcuitest-sample-projUITests/Helpers/Elements.swift index 7696ebf..4a5c460 100644 --- a/xcuitest-sample-projUITests/Helpers/Elements.swift +++ b/xcuitest-sample-projUITests/Helpers/Elements.swift @@ -34,12 +34,13 @@ class Elements { XCTAssertTrue(result, "\(firstElement) is not in `\(relativePosition)` relative position to \(secondElement)") } + // MARK: - Wait functions + + /// Wait for element to exist static func waitForElement(_ element: XCUIElement, _ timeoutValue: Double) -> Bool { return element.waitForExistence(timeout: timeoutValue) } - // MARK: - Wait functions - /// Wait until XCUIElement disappears /// /// - Parameters: diff --git a/xcuitest-sample-projUITests/LaunchArgumentTests.swift b/xcuitest-sample-projUITests/LaunchArgumentTests.swift new file mode 100644 index 0000000..2b3821d --- /dev/null +++ b/xcuitest-sample-projUITests/LaunchArgumentTests.swift @@ -0,0 +1,19 @@ +// +// LaunchArgumentTests.swift +// xcuitest-sample-projUITests +// +// Created by Nikola Shabanov on 24.07.23. +// + +import XCTest + +class LaunchArgumentTests: BaseTest { + override func launchArguments() -> [String] { + return ["-showCustomText"] + } + + func testLaunchArgument() { + let firstPage = FirstPage(app: getApp()) + XCTAssertEqual(firstPage.argumentText.label, "Argument:Custom") + } +} diff --git a/xcuitest-sample-projUITests/Pages/FirstPage.swift b/xcuitest-sample-projUITests/Pages/FirstPage.swift index 3e92950..066723f 100644 --- a/xcuitest-sample-projUITests/Pages/FirstPage.swift +++ b/xcuitest-sample-projUITests/Pages/FirstPage.swift @@ -13,4 +13,5 @@ class FirstPage: BasePage { var carouselItems: XCUIElementQuery { carousel.staticTexts } var disappearingButton: XCUIElement { app.buttons["disappearing-button"] } var textField: XCUIElement { app.textFields["text-field"] } + var argumentText: XCUIElement { app.staticTexts["argument-text"] } } diff --git a/xcuitest-sample-projUITests/Pages/ThirdPage.swift b/xcuitest-sample-projUITests/Pages/ThirdPage.swift index 0cba137..aa914dc 100644 --- a/xcuitest-sample-projUITests/Pages/ThirdPage.swift +++ b/xcuitest-sample-projUITests/Pages/ThirdPage.swift @@ -8,7 +8,7 @@ import XCTest class ThirdPage: BasePage { - var permissionState: XCUIElement { app.staticTexts["permission-state"] } + private var permissionState: XCUIElement { app.staticTexts["permission-state"] } func getPermissionState() -> String { return permissionState.label diff --git a/xcuitest-sample-projUITests/SampleAppUITests.swift b/xcuitest-sample-projUITests/SampleAppUITests.swift index a229140..579688c 100644 --- a/xcuitest-sample-projUITests/SampleAppUITests.swift +++ b/xcuitest-sample-projUITests/SampleAppUITests.swift @@ -79,8 +79,7 @@ final class SampleAppUITests: BaseTest { navigation.openThirdPage() XCTAssertTrue(getSpringboardApp().alerts.count == 0) let thirdPage = ThirdPage(app: getApp()) - let state = thirdPage.getPermissionState() - XCTAssertEqual(state, "Allowed") + XCTAssertEqual(thirdPage.getPermissionState(), "Allowed") } func testDenyCameraPermissions() { @@ -89,7 +88,11 @@ final class SampleAppUITests: BaseTest { navigation.openThirdPage() XCTAssertTrue(getSpringboardApp().alerts.count == 0) let thirdPage = ThirdPage(app: getApp()) - let state = thirdPage.getPermissionState() - XCTAssertEqual(state, "Denied") + XCTAssertEqual(thirdPage.getPermissionState(), "Denied") + } + + func testLaunchArgumentNotProvided() { + let firstPage = FirstPage(app: getApp()) + XCTAssertEqual(firstPage.argumentText.label, "Argument:Default") } }