@devicelab/maestro-runner-darwin-arm64 1.1.27 → 1.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -19
- package/bin/maestro-runner +0 -0
- package/drivers/LICENSE-BINARIES.md +38 -0
- package/drivers/android/devicelab-android-driver.apk +0 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/project.pbxproj +38 -14
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h +3 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.h +51 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.m +439 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.h +12 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.m +59 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+AXSnapshotFallback.swift +128 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift +68 -14
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift +256 -48
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Lifecycle.swift +102 -6
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift +74 -1
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Settle.swift +89 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift +279 -82
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift +1 -1
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Transport.swift +7 -2
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests.swift +44 -10
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.h +87 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.m +207 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SnapshotParams.m +22 -6
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h +23 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m +77 -30
- package/drivers/ios/DevicelabIOSRunner/PROTOCOL.md +26 -3
- package/drivers/ios/WebDriverAgent/.editorconfig +11 -0
- package/drivers/ios/WebDriverAgent/.github/dependabot.yml +1 -1
- package/drivers/ios/WebDriverAgent/.github/workflows/functional-test.yml +65 -24
- package/drivers/ios/WebDriverAgent/.github/workflows/publish.js.yml +15 -8
- package/drivers/ios/WebDriverAgent/.github/workflows/unit-test.yml +4 -2
- package/drivers/ios/WebDriverAgent/.github/workflows/wda-package.yml +9 -2
- package/drivers/ios/WebDriverAgent/.github/workflows/wda-tests.yml +54 -29
- package/drivers/ios/WebDriverAgent/CHANGELOG.md +546 -0
- package/drivers/ios/WebDriverAgent/Fastlane/Fastfile +8 -1
- package/drivers/ios/WebDriverAgent/Gemfile +1 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/CDStructures.h +5 -26
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSFastEnumeration-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCAXClient_iOS.h +80 -44
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationQuery.h +18 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDebugLogDelegate-Protocol.h +17 -5
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEvent.h +52 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEventPath.h +55 -33
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +44 -21
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAggregateSuiteRunStatistics.h +38 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAttachmentManager.h +33 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilities.h +35 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilitiesProviding-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSetTransformer-Protocol.h +30 -13
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotAttributeDataSource-Protocol.h +33 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotProvider-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTExpectedFailureContextManager.h +35 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTFuture.h +45 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTHarnessEventReporting-Protocol.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssue.h +49 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssueHandling-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMacCatalystStatusProviding-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMeasureOptions.h +48 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryChecker.h +50 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryCheckerDelegate-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_IDEToRunner-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToDaemon-Protocol.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToIDE-Protocol.h +32 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ActivityReporting-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_AttachmentFutureResultStatusUpdating-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_BundleRequesting-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_CapabilityExchange-Protocol.h +56 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_DebugLogging-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_EventSynthesis-Protocol.h +34 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ForcePressureSupportQuerying-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_HIDEventRecording-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_MemoryTesting-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_PerformanceMeasurementReporting-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProcessMonitoring-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProtectedResourceAuthorization-Protocol.h +22 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ScreenRecording-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SelfDiagnosisIssueReporting-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SignpostRequesting-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SiriAutomation-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SystemConfiguration-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TelemetrySending-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestExecution-Protocol.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestReporting-Protocol.h +40 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomation-Protocol.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomationRunnerEventReporting-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UserPresence-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetricDiagnosticHelper.h +49 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectationObject-Protocol.h +15 -7
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTPromise.h +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRemoteSignpostListenerProxy-Protocol.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRepetitionPolicy.h +43 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSession.h +50 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionConfiguration-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionIssueReporter-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestContainer-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestReporter.h +51 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession-Protocol.h +38 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSession.h +76 -78
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSessionUIAutomationDelegate-Protocol.h +33 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESession.h +87 -53
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESessionDelegate-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeDiagnosticsPolicy.h +36 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeIssueDetectionPolicy.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTScreenCapturePolicy.h +35 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSignpostListener-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSkippedTestContext.h +37 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeContext.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeLocation.h +31 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTagSelection.h +41 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifier.h +81 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifierSet.h +54 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestSelection.h +35 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiter.h +45 -46
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManagement-Protocol.h +17 -6
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterWait.h +40 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTest.h +47 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCase.h +165 -87
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseDiscoveryUIAutomationDelegate-Protocol.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseRun.h +19 -9
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseUIAutomationDelegate-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCastMethodNamesUIAutomationDelegate-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestConfiguration.h +83 -55
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriver.h +54 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectation.h +37 -26
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationDelegate-Protocol.h +15 -6
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservationCenter.h +49 -25
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestRun.h +33 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAXNotificationHandling-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAccessibilityInterface-Protocol.h +58 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAlertMonitoring-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplication.h +87 -49
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationAutomationSessionProviding-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImpl.h +78 -26
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImplReporter-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationManaging-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationMonitor-Protocol.h +43 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationOpenRequest.h +34 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationPlatformServicesProviderDelegate-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcess.h +89 -69
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessDelegate-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessManaging-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessTracker-Protocol.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationRegistry.h +32 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIButtonConsole.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUICoordinate.h +37 -32
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDevice.h +121 -17
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceAutomationModeInterface-Protocol.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceDelayedAttachmentTransferSupportInterface-Protocol.h +22 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceEventAndStateInterface-Protocol.h +40 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElement.h +192 -59
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAttributesPrivate-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementEventTarget-Protocol.h +38 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementQuery.h +154 -58
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementTypeQueryProvider_Private-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIEventRecording-Protocol.h +37 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIHitPointResult.h +16 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIInterruptionMonitoring-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIIssueDiagnosticsProviding-Protocol.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIKnobControl.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUILocation.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIPlatformApplicationServicesProviding-Protocol.h +33 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteAccessibilityInterface-Protocol.h +45 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteDeviceRunner-Protocol.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteSiriInterface-Protocol.h +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIResetAuthorizationStatusOfProtectedResourcesInterface-Protocol.h +22 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreen.h +45 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreenDataSource-Protocol.h +28 -12
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISiriService.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISystem.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIXcodeApplicationManaging-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_TtC10XCTestCore19XCTReportingContext.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTMessaging_VoidProtocol-Protocol.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationInternal-Protocol.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationPrivate-Protocol.h +27 -0
- package/drivers/ios/WebDriverAgent/README.md +0 -10
- package/drivers/ios/WebDriverAgent/Scripts/build-webdriveragent.mjs +30 -22
- package/drivers/ios/WebDriverAgent/Scripts/build.sh +14 -1
- package/drivers/ios/WebDriverAgent/Scripts/embed-runner-icon.sh +118 -0
- package/drivers/ios/WebDriverAgent/Scripts/fetch-prebuilt-wda.mjs +34 -22
- package/drivers/ios/WebDriverAgent/Scripts/update-wda-version.mjs +12 -10
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.pbxproj +2583 -659
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp.xcscheme +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_tvOS.xcscheme +78 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_watchOS.xcscheme +78 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_1.xcscheme +8 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_2.xcscheme +8 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_3.xcscheme +8 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_tvOS.xcscheme +93 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_watchOS.xcscheme +93 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib.xcscheme +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_tvOS.xcscheme +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_watchOS.xcscheme +85 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner-nodebug.xcscheme +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner.xcscheme +20 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_tvOS.xcscheme +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_watchOS.xcscheme +128 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSDictionary+FBUtf8SafeDictionary.m +45 -27
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.h +1 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.m +91 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.h +27 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +125 -55
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.h +15 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +32 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +2 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.m +9 -16
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.h +47 -4
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +173 -83
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.h +9 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.m +45 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.h +66 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.m +218 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +144 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBFind.m +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBForceTouch.m +5 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBPickerWheel.m +4 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +113 -50
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTVFocuse.m +5 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.h +33 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.m +39 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m +9 -7
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBVisibleFrame.m +12 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +6 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.m +1 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBAlertViewCommands.m +10 -36
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBCustomCommands.m +155 -8
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBElementCommands.m +45 -19
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBFindElementCommands.m +7 -7
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBOrientationCommands.m +9 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBScreenshotCommands.m +3 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBSessionCommands.m +220 -296
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.h +43 -30
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.m +273 -93
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Info.plist +2 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElement.h +3 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptionHandler.m +8 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.h +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.m +3 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.h +97 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.m +932 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponseJSONPayload.m +2 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponsePayload.m +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.h +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.m +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.h +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.m +28 -12
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingRequest.m +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.h +16 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.m +252 -42
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.h +57 -9
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.m +183 -33
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.h +18 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m +92 -37
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshot.h +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.h +28 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.m +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.h +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.m +54 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.m +10 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAlertsMonitor.m +21 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.h +2 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.m +3 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.h +1 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.m +0 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBClassChainQueryParser.m +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.h +106 -136
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.m +150 -386
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m +6 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageProcessor.m +54 -29
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBLogger.m +2 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMacros.h +14 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.h +54 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.m +48 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.h +12 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.m +119 -24
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.h +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.m +9 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.h +10 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.m +32 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreenshot.m +3 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.h +3 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.m +3 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.h +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.m +374 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker-Private.h +10 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.h +29 -4
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.m +62 -27
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.h +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.m +28 -10
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.h +124 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +142 -21
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.h +2 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +22 -19
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.h +1 -8
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.m +57 -27
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath-Private.h +5 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath.m +69 -14
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.h +40 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.m +418 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.h +2 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.m +54 -34
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/WebDriverAgentLib.h +1 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/icon-1024.png +0 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/Contents.json +6 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/UITestingUITests.m +7 -7
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/COORDINATE_PROBE.md +50 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.h +4 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.m +176 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBScrollViewController.m +15 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchViewController.h +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.h +2 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.m +14 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/ViewController.m +44 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Info.plist +2 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Resources/Base.lproj/Main.storyboard +52 -22
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.h +13 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.m +26 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/Info.plist +41 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.h +15 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.m +22 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.h +13 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.m +79 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/main.m +17 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/ContentView.swift +31 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/WatchSpikeApp.swift +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +37 -56
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAutoAlertsHandlerTests.m +10 -4
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBConfigurationTests.m +41 -8
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementAttributeTests.m +10 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +4 -4
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +14 -19
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +6 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationAppTests.m +87 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.h +30 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +51 -15
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBPasteboardTests.m +3 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +6 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScreenTests.m +28 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScrollingTests.m +3 -6
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTapTest.m +83 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVideoRecordingTests.m +1 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVoiceOverTests.m +103 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CMultiTouchActionsIntegrationTests.m +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +96 -13
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTypeActionsTests.m +3 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +108 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCElementSnapshotHelperTests.m +1 -7
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +1 -1
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceHelperTests.m +21 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceRotationTests.m +21 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementAttributesTests.m +5 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +98 -10
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/FBTVFocusIntegrationTests.m +84 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/Info.plist +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/IntegrationTests_watchOS-Bridging-Header.h +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAlertIntegrationTests.swift +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAppLifecycleIntegrationTests.swift +37 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAClickIntegrationTests.swift +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDADeviceIntegrationTests.swift +92 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAElementAttributeIntegrationTests.swift +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAFindIntegrationTests.swift +101 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAMjpegStreamingIntegrationTests.swift +81 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAScreenshotAndSourceIntegrationTests.swift +54 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDATypingIntegrationTests.swift +73 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAWatchInProcessTestCase.swift +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.h +4 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.m +10 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBConfigurationTests.m +18 -6
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBCustomCommandsTests.m +83 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerSessionTests.m +133 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerTests.m +264 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBMathUtilsTests.m +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBResponseJSONPayloadTests.m +76 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBSessionTests.m +3 -3
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBTouchableViewTests.m +121 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXCAXClientProxyTests.m +90 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXPathTests.m +127 -2
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSDictionaryFBUtf8SafeTests.m +43 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.h +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.m +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.h +43 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.m +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.h +1 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.m +1 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/FBTVNavigationTrackerTests.m +48 -0
- package/drivers/ios/WebDriverAgent/lib/check-dependencies.ts +42 -21
- package/drivers/ios/WebDriverAgent/lib/constants.ts +12 -2
- package/drivers/ios/WebDriverAgent/lib/index.ts +7 -0
- package/drivers/ios/WebDriverAgent/lib/logger.ts +1 -1
- package/drivers/ios/WebDriverAgent/lib/no-session-proxy.ts +8 -14
- package/drivers/ios/WebDriverAgent/lib/types.ts +108 -8
- package/drivers/ios/WebDriverAgent/lib/utils/index.ts +15 -0
- package/drivers/ios/WebDriverAgent/lib/utils/module.ts +24 -0
- package/drivers/ios/WebDriverAgent/lib/utils/platform.ts +34 -0
- package/drivers/ios/WebDriverAgent/lib/utils/processes.ts +166 -0
- package/drivers/ios/WebDriverAgent/lib/utils/security.ts +13 -0
- package/drivers/ios/WebDriverAgent/lib/utils/xctestrun.ts +173 -0
- package/drivers/ios/WebDriverAgent/lib/wda-strategies.ts +333 -0
- package/drivers/ios/WebDriverAgent/lib/webdriveragent.ts +336 -428
- package/drivers/ios/WebDriverAgent/lib/xcodebuild.ts +232 -127
- package/drivers/ios/WebDriverAgent/oxfmt.config.mjs +6 -0
- package/drivers/ios/WebDriverAgent/oxlint.config.mjs +6 -0
- package/drivers/ios/WebDriverAgent/package.json +70 -79
- package/drivers/ios/WebDriverAgent/release.config.mjs +14 -0
- package/drivers/ios/WebDriverAgent/test/functional/desired.ts +10 -6
- package/drivers/ios/WebDriverAgent/test/functional/helpers/simulator.ts +39 -28
- package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e.spec.ts +100 -0
- package/drivers/ios/WebDriverAgent/test/unit/processes.spec.ts +99 -0
- package/drivers/ios/WebDriverAgent/test/unit/utils.spec.ts +235 -0
- package/drivers/ios/WebDriverAgent/test/unit/wda-cleanup.spec.ts +136 -0
- package/drivers/ios/WebDriverAgent/test/unit/webdriveragent.spec.ts +562 -0
- package/drivers/ios/WebDriverAgent/tsconfig.json +6 -8
- package/drivers/ios/devicelab-ios-agent/README.md +51 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/PkgInfo +1 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
- package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/device/agent.xctestrun +120 -0
- package/drivers/ios/devicelab-ios-agent/device/manifest.json +18 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub/StubApp.swift +10 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.pbxproj +394 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/xcshareddata/xcschemes/SigningStubUITests.xcscheme +100 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStubUITests/StubUITests.swift +8 -0
- package/drivers/ios/devicelab-ios-agent/signing-stub/project.yml +64 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/PkgInfo +1 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreGraphics.swiftoverlay +3 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreImage.swiftoverlay +3 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreTransferable.swiftoverlay +3 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/Foundation.swiftoverlay +3 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/UIKit.swiftoverlay +3 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1431 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1431 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Testing +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/_CodeSignature/CodeResources +212 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/XCTAutomationSupport +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/_CodeSignature/CodeResources +113 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCAbstractTest.h +140 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTActivity.h +33 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment+XCUIScreenshot.h +32 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment.h +219 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachmentLifetime.h +28 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTContext.h +65 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTDarwinNotificationExpectation.h +60 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTExpectedFailure.h +134 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTIssue.h +143 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTKVOExpectation.h +110 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMeasureOptions.h +57 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric+UIAutomation.h +77 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric.h +390 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSNotificationExpectation.h +92 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSPredicateExpectation.h +74 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTSourceCodeContext.h +109 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTWaiter.h +304 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.apinotes +182 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.h +41 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertions.h +277 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertionsImpl.h +503 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+AsynchronousTesting.h +276 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIApplicationLaunchTesting.h +36 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIInterruptionMonitoring.h +95 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase.h +443 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCaseRun.h +50 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCore.h +42 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestDefines.h +135 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestErrors.h +33 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestExpectation.h +73 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestLog.h +56 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservation.h +195 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservationCenter.h +60 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObserver.h +61 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestProbe.h +55 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestRun.h +223 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkipping.h +41 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkippingImpl.h +46 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuite.h +92 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuiteRun.h +50 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditIssue.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIApplication.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomation.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomationDefines.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUICoordinate.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDevice.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceButton.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceHandGesture.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElement.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementAttributes.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementQuery.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypeQueryProvider.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypes.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIKeyboardKeys.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUILocation.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIProtectedResource.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIRemote.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreen.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshot.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshotProviding.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISiriService.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISystem.h +9 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Modules/module.modulemap +30 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/XCTest +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/_CodeSignature/CodeResources +817 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/XCTestCore +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/_CodeSignature/CodeResources +113 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/XCTestSupport +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/_CodeSignature/CodeResources +113 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditIssue.h +33 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditTypes.h +36 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIApplication.h +154 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.apinotes +88 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.h +30 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomationDefines.h +62 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUICoordinate.h +99 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDevice.h +133 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceButton.h +40 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceHandGesture.h +24 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElement.h +366 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementAttributes.h +106 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementQuery.h +81 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypeQueryProvider.h +109 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypes.h +95 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIKeyboardKeys.h +68 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUILocation.h +35 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIProtectedResource.h +52 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIRemote.h +77 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreen.h +36 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshot.h +42 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshotProviding.h +26 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISiriService.h +45 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISystem.h +26 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverOutput.h +26 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverService.h +72 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverServiceError.h +25 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +30 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +30 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/module.modulemap +4 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/XCUIAutomation +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/_CodeSignature/CodeResources +465 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/XCUnit +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/_CodeSignature/CodeResources +113 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +41 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Modules/_Testing_Foundation.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +41 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_CodeSignature/CodeResources +157 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_Testing_Foundation +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/version.plist +18 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestBundleInject.dylib +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestSwiftSupport.dylib +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/lib_TestingInterop.dylib +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
- package/drivers/ios/devicelab-ios-agent/simulator/agent.xctestrun +140 -0
- package/drivers/ios/devicelab-ios-agent/simulator/manifest.json +162 -0
- package/package.json +1 -1
- package/drivers/ios/WebDriverAgent/.mocharc.js +0 -4
- package/drivers/ios/WebDriverAgent/.releaserc +0 -45
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSString-XCTAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSValue-XCTestAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UILongPressGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPanGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPinchGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UISwipeGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UITapGestureRecognizer-RecordingAdditions.h +0 -11
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCActivityRecord.h +0 -39
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor.h +0 -44
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor_iOS.h +0 -18
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDeviceEvent.h +0 -27
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCEventGenerator.h +0 -73
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyMappingPath.h +0 -36
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardInputSolver.h +0 -41
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardKeyMap.h +0 -101
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardLayout.h +0 -35
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeRecording.h +0 -42
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNode.h +0 -84
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNodeEnumerator.h +0 -18
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicationRecord.h +0 -29
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicatorHolder.h +0 -14
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAXClient-Protocol.h +0 -14
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity-Protocol.h +0 -16
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity.h +0 -23
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAutomationTarget-Protocol.h +0 -12
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTDarwinNotificationExpectation.h +0 -23
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTKVOExpectation.h +0 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetric.h +0 -29
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSNotificationExpectation.h +0 -27
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectation.h +0 -24
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession.h +0 -21
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSession.h +0 -25
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSessionDelegate-Protocol.h +0 -17
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTUIApplicationMonitor-Protocol.h +0 -17
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegate-Protocol.h +0 -16
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegatePrivate-Protocol.h +0 -12
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager.h +0 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseSuite.h +0 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContext.h +0 -26
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContextScope.h +0 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriverInterface-Protocol.h +0 -14
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationWaiter.h +0 -17
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestLog.h +0 -32
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_IDEInterface-Protocol.h +0 -36
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_ManagerInterface-Protocol.h +0 -54
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_TestsInterface-Protocol.h +0 -12
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestMisuseObserver.h +0 -37
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservation-Protocol.h +0 -20
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObserver.h +0 -20
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestProbe.h +0 -13
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuite.h +0 -48
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuiteRun.h +0 -28
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestWaiter.h +0 -14
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAsynchronousHandlerWrapper.h +0 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementHitPointCoordinate.h +0 -24
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinder.h +0 -65
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinderMatch.h +0 -25
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderTimingMessage.h +0 -20
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderUtilities.h +0 -45
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCInternalTestRun.h +0 -43
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCKVOExpectationImplementation.h +0 -32
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTDarwinNotificationExpectationImplementation.h +0 -27
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSNotificationExpectationImplementation.h +0 -30
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSPredicateExpectationImplementation.h +0 -29
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTWaiterImpl.h +0 -41
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseImplementation.h +0 -70
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseInterruptionException.h +0 -13
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestExpectationImplementation.h +0 -40
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestImplementation.h +0 -14
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationCenterImplementation.h +0 -19
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestSuiteImplementation.h +0 -23
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +0 -1220
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +0 -8812
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.h +0 -1036
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m +0 -5868
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.h +0 -12
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.m +0 -88
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.h +0 -56
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.m +0 -106
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.h +0 -107
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.m +0 -2238
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPLogging.h +0 -122
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.h +0 -53
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.m +0 -357
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPResponse.h +0 -149
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.h +0 -126
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.m +0 -372
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/LICENSE +0 -18
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h +0 -13
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.m +0 -83
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h +0 -9
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +0 -40
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h +0 -13
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.m +0 -84
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/LICENSE +0 -19
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.h +0 -18
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.m +0 -11
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.h +0 -16
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.m +0 -50
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.h +0 -20
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.m +0 -66
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.h +0 -5
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.m +0 -142
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.h +0 -55
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.m +0 -303
- package/drivers/ios/WebDriverAgent/eslint.config.mjs +0 -13
- package/drivers/ios/WebDriverAgent/index.ts +0 -7
- package/drivers/ios/WebDriverAgent/lib/utils.ts +0 -342
- package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e-specs.ts +0 -119
- package/drivers/ios/WebDriverAgent/test/unit/utils-specs.ts +0 -157
- package/drivers/ios/WebDriverAgent/test/unit/webdriveragent-specs.ts +0 -446
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#ifndef RunnerXCTestTimeouts_h
|
|
2
|
+
#define RunnerXCTestTimeouts_h
|
|
3
|
+
|
|
4
|
+
#import <Foundation/Foundation.h>
|
|
5
|
+
|
|
6
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
7
|
+
|
|
8
|
+
@class XCUIApplication;
|
|
9
|
+
|
|
10
|
+
/// The outcome of +waitForQuiescenceOfApplication:timeout:.
|
|
11
|
+
typedef NS_ENUM(NSInteger, RunnerQuiescence) {
|
|
12
|
+
/// XCTest saw the app's event loop go idle and its animations finish.
|
|
13
|
+
RunnerQuiescenceIdle = 0,
|
|
14
|
+
/// The wait ended (the cap passed) without both signals.
|
|
15
|
+
RunnerQuiescenceBusy = 1,
|
|
16
|
+
/// A private symbol is missing, so nothing was waited for and nothing is
|
|
17
|
+
/// known. Never to be read as idle.
|
|
18
|
+
RunnerQuiescenceUnavailable = 2,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Scoped overrides of XCTest's process-wide request timeouts.
|
|
23
|
+
*
|
|
24
|
+
* XCTest resolves element queries through the target app's automation
|
|
25
|
+
* session over XPC, and every such request waits up to the XPC request
|
|
26
|
+
* timeout (30s by default). When the target app leaves the screen while a
|
|
27
|
+
* query is in flight (Home, the app switcher), iOS suspends it and the reply
|
|
28
|
+
* never comes, so the query waits the full 30s. The runner executes commands
|
|
29
|
+
* one at a time on the main thread, so every later command waits too.
|
|
30
|
+
*
|
|
31
|
+
* These helpers set a timeout for the duration of a block and restore the
|
|
32
|
+
* previous value afterwards, even if the block raises. The pattern follows
|
|
33
|
+
* WebDriverAgent's FBXCAXClientProxy (+withXPCRequestTimeout:do:,
|
|
34
|
+
* -withAXTimeout:do:).
|
|
35
|
+
*
|
|
36
|
+
* A shorter timeout only makes this process stop waiting. The request that
|
|
37
|
+
* was abandoned keeps running on its channel until the app answers or dies.
|
|
38
|
+
*
|
|
39
|
+
* Every private symbol is looked up at runtime. When one is missing the block
|
|
40
|
+
* runs with XCTest's own timeout, so an XCTest change can make a hang long
|
|
41
|
+
* again but can never break a snapshot.
|
|
42
|
+
*/
|
|
43
|
+
@interface RunnerXCTestTimeouts : NSObject
|
|
44
|
+
|
|
45
|
+
/// XCTest's XPC request timeout as it stood before this class first changed
|
|
46
|
+
/// it, or 0 when the private getter is unavailable. The runner uses it to go
|
|
47
|
+
/// back to XCTest's own patience inside a shorter scope.
|
|
48
|
+
+ (NSTimeInterval)defaultXPCRequestTimeout;
|
|
49
|
+
|
|
50
|
+
/// Runs @c block once with XCTest's XPC request timeout (the per-request
|
|
51
|
+
/// limit on element queries answered by an app's automation session) set to
|
|
52
|
+
/// @c timeout seconds. Returns YES if the timeout was applied, NO if the
|
|
53
|
+
/// private setter is unavailable and the block ran with XCTest's own value.
|
|
54
|
+
+ (BOOL)withXPCRequestTimeout:(NSTimeInterval)timeout do:(NS_NOESCAPE void (^)(void))block;
|
|
55
|
+
|
|
56
|
+
/// Runs @c block once with the accessibility client's AXTimeout (the
|
|
57
|
+
/// per-request limit on direct accessibility requests, such as the private
|
|
58
|
+
/// AX snapshot) set to @c timeout seconds. Returns YES if the timeout was
|
|
59
|
+
/// applied, NO if the block ran with the existing value.
|
|
60
|
+
+ (BOOL)withAXTimeout:(NSTimeInterval)timeout do:(NS_NOESCAPE void (^)(void))block;
|
|
61
|
+
|
|
62
|
+
/// Waits up to @c timeout seconds for @c app to go quiescent, animations
|
|
63
|
+
/// included: the wait XCTest runs before and after each synthesized event,
|
|
64
|
+
/// run on demand. Follows WebDriverAgent's -fb_waitUntilStableWithTimeout:,
|
|
65
|
+
/// which bounds XCUIApplicationProcess
|
|
66
|
+
/// -waitForQuiescenceIncludingAnimationsIdle:(isPreEvent:) by setting
|
|
67
|
+
/// XCTest's application-state timeout for the duration of the call.
|
|
68
|
+
///
|
|
69
|
+
/// The answer comes from the process's own eventLoopHasIdled and
|
|
70
|
+
/// animationsHaveFinished flags after the wait, not from how long it took.
|
|
71
|
+
/// XCTest skips the whole check for an app that is not in the foreground
|
|
72
|
+
/// and leaves the flags stale, so callers must only ask about a foreground
|
|
73
|
+
/// app. Must be called on the main thread (XCTest asserts it). Does not
|
|
74
|
+
/// activate the app.
|
|
75
|
+
///
|
|
76
|
+
/// When the event loop fails to idle within the cap, XCTest may take a
|
|
77
|
+
/// spindump of the app before returning, so the call can outlast
|
|
78
|
+
/// @c timeout; callers report the time they actually waited.
|
|
79
|
+
+ (RunnerQuiescence)waitForQuiescenceOfApplication:(XCUIApplication *)app
|
|
80
|
+
timeout:(NSTimeInterval)timeout
|
|
81
|
+
NS_SWIFT_NAME(waitForQuiescence(of:timeout:));
|
|
82
|
+
|
|
83
|
+
@end
|
|
84
|
+
|
|
85
|
+
NS_ASSUME_NONNULL_END
|
|
86
|
+
|
|
87
|
+
#endif /* RunnerXCTestTimeouts_h */
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
#import "RunnerXCTestTimeouts.h"
|
|
2
|
+
|
|
3
|
+
#import <XCTest/XCTest.h>
|
|
4
|
+
#import <dlfcn.h>
|
|
5
|
+
#import <objc/message.h>
|
|
6
|
+
|
|
7
|
+
// Exported by XCUIAutomation (Xcode 15 through 27); WebDriverAgent declares
|
|
8
|
+
// the same pairs in CDStructures.h. Looked up rather than linked so the
|
|
9
|
+
// runner still builds and runs if a later Xcode drops them.
|
|
10
|
+
typedef double (*RunnerTimeoutGetter)(void);
|
|
11
|
+
typedef void (*RunnerTimeoutSetter)(double);
|
|
12
|
+
|
|
13
|
+
static RunnerTimeoutGetter RunnerXPCGetter(void) {
|
|
14
|
+
static RunnerTimeoutGetter getter = NULL;
|
|
15
|
+
static dispatch_once_t once;
|
|
16
|
+
dispatch_once(&once, ^{
|
|
17
|
+
getter = (RunnerTimeoutGetter)dlsym(RTLD_DEFAULT, "_XCTXPCRequestTimeout");
|
|
18
|
+
});
|
|
19
|
+
return getter;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static RunnerTimeoutSetter RunnerXPCSetter(void) {
|
|
23
|
+
static RunnerTimeoutSetter setter = NULL;
|
|
24
|
+
static dispatch_once_t once;
|
|
25
|
+
dispatch_once(&once, ^{
|
|
26
|
+
setter = (RunnerTimeoutSetter)dlsym(RTLD_DEFAULT, "_XCTSetXPCRequestTimeout");
|
|
27
|
+
});
|
|
28
|
+
return setter;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// The limit on XCTest's app-state waits, quiescence among them.
|
|
32
|
+
static RunnerTimeoutGetter RunnerAppStateGetter(void) {
|
|
33
|
+
static RunnerTimeoutGetter getter = NULL;
|
|
34
|
+
static dispatch_once_t once;
|
|
35
|
+
dispatch_once(&once, ^{
|
|
36
|
+
getter = (RunnerTimeoutGetter)dlsym(RTLD_DEFAULT, "_XCTApplicationStateTimeout");
|
|
37
|
+
});
|
|
38
|
+
return getter;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static RunnerTimeoutSetter RunnerAppStateSetter(void) {
|
|
42
|
+
static RunnerTimeoutSetter setter = NULL;
|
|
43
|
+
static dispatch_once_t once;
|
|
44
|
+
dispatch_once(&once, ^{
|
|
45
|
+
setter = (RunnerTimeoutSetter)dlsym(RTLD_DEFAULT, "_XCTSetApplicationStateTimeout");
|
|
46
|
+
});
|
|
47
|
+
return setter;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// One lock per global, recursive so scopes can nest (a default-timeout retry
|
|
51
|
+
// inside a short scope). Commands run on the main thread, so the lock only
|
|
52
|
+
// guards against a future caller on another thread.
|
|
53
|
+
static NSRecursiveLock *RunnerTimeoutLock(void) {
|
|
54
|
+
static NSRecursiveLock *lock = nil;
|
|
55
|
+
static dispatch_once_t once;
|
|
56
|
+
dispatch_once(&once, ^{
|
|
57
|
+
lock = [NSRecursiveLock new];
|
|
58
|
+
});
|
|
59
|
+
return lock;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Sets a process-wide XCTest timeout for one run of block and restores it
|
|
63
|
+
// afterwards, even if the block raises. Runs block unchanged and returns NO
|
|
64
|
+
// when either symbol is missing.
|
|
65
|
+
static BOOL RunnerWithGlobalTimeout(RunnerTimeoutGetter getter, RunnerTimeoutSetter setter,
|
|
66
|
+
NSTimeInterval timeout, NS_NOESCAPE void (^block)(void)) {
|
|
67
|
+
if (getter == NULL || setter == NULL || timeout <= 0) {
|
|
68
|
+
block();
|
|
69
|
+
return NO;
|
|
70
|
+
}
|
|
71
|
+
NSRecursiveLock *lock = RunnerTimeoutLock();
|
|
72
|
+
[lock lock];
|
|
73
|
+
double previous = getter();
|
|
74
|
+
setter(timeout);
|
|
75
|
+
@try {
|
|
76
|
+
block();
|
|
77
|
+
} @finally {
|
|
78
|
+
setter(previous);
|
|
79
|
+
[lock unlock];
|
|
80
|
+
}
|
|
81
|
+
return YES;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
typedef double (*RunnerAXTimeoutGetter)(id, SEL);
|
|
85
|
+
typedef BOOL (*RunnerAXTimeoutSetter)(id, SEL, double, NSError **);
|
|
86
|
+
typedef BOOL (*RunnerBoolGetter)(id, SEL);
|
|
87
|
+
typedef void (*RunnerQuiescenceWait)(id, SEL, BOOL, BOOL);
|
|
88
|
+
typedef void (*RunnerLegacyQuiescenceWait)(id, SEL, BOOL);
|
|
89
|
+
|
|
90
|
+
// XCUIApplication -> XCUIApplicationImpl -> XCUIApplicationProcess, or nil
|
|
91
|
+
// when any link is missing.
|
|
92
|
+
static id RunnerApplicationProcess(XCUIApplication *app) {
|
|
93
|
+
SEL implSel = NSSelectorFromString(@"applicationImpl");
|
|
94
|
+
SEL processSel = NSSelectorFromString(@"currentProcess");
|
|
95
|
+
if (![app respondsToSelector:implSel]) {
|
|
96
|
+
return nil;
|
|
97
|
+
}
|
|
98
|
+
id impl = ((id (*)(id, SEL))objc_msgSend)(app, implSel);
|
|
99
|
+
if (![impl respondsToSelector:processSel]) {
|
|
100
|
+
return nil;
|
|
101
|
+
}
|
|
102
|
+
return ((id (*)(id, SEL))objc_msgSend)(impl, processSel);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Runs XCTest's quiescence wait on process. Returns NO when neither the
|
|
106
|
+
// current nor the pre-Xcode 15 selector exists.
|
|
107
|
+
static BOOL RunnerRunQuiescenceWait(id process) {
|
|
108
|
+
SEL current = NSSelectorFromString(@"waitForQuiescenceIncludingAnimationsIdle:isPreEvent:");
|
|
109
|
+
SEL legacy = NSSelectorFromString(@"waitForQuiescenceIncludingAnimationsIdle:");
|
|
110
|
+
if ([process respondsToSelector:current]) {
|
|
111
|
+
// Post-event: the pre-event variant is skipped outright under the
|
|
112
|
+
// skip-pre-event interaction option, which would read as instant idle.
|
|
113
|
+
((RunnerQuiescenceWait)objc_msgSend)(process, current, YES, NO);
|
|
114
|
+
return YES;
|
|
115
|
+
}
|
|
116
|
+
if ([process respondsToSelector:legacy]) {
|
|
117
|
+
((RunnerLegacyQuiescenceWait)objc_msgSend)(process, legacy, YES);
|
|
118
|
+
return YES;
|
|
119
|
+
}
|
|
120
|
+
return NO;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@implementation RunnerXCTestTimeouts
|
|
124
|
+
|
|
125
|
+
+ (NSTimeInterval)defaultXPCRequestTimeout {
|
|
126
|
+
static NSTimeInterval initial = 0;
|
|
127
|
+
static dispatch_once_t once;
|
|
128
|
+
dispatch_once(&once, ^{
|
|
129
|
+
RunnerTimeoutGetter getter = RunnerXPCGetter();
|
|
130
|
+
initial = getter != NULL ? getter() : 0;
|
|
131
|
+
});
|
|
132
|
+
return initial;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
+ (BOOL)withXPCRequestTimeout:(NSTimeInterval)timeout do:(NS_NOESCAPE void (^)(void))block {
|
|
136
|
+
// Capture XCTest's own value before the first override.
|
|
137
|
+
(void)[self defaultXPCRequestTimeout];
|
|
138
|
+
return RunnerWithGlobalTimeout(RunnerXPCGetter(), RunnerXPCSetter(), timeout, block);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
+ (RunnerQuiescence)waitForQuiescenceOfApplication:(XCUIApplication *)app
|
|
142
|
+
timeout:(NSTimeInterval)timeout {
|
|
143
|
+
id process = RunnerApplicationProcess(app);
|
|
144
|
+
SEL idledSel = NSSelectorFromString(@"eventLoopHasIdled");
|
|
145
|
+
SEL finishedSel = NSSelectorFromString(@"animationsHaveFinished");
|
|
146
|
+
// Without the state-timeout setter the wait would run to XCTest's own
|
|
147
|
+
// limit, far past any cap, so it is not attempted at all.
|
|
148
|
+
if (process == nil || ![process respondsToSelector:idledSel] ||
|
|
149
|
+
![process respondsToSelector:finishedSel] || RunnerAppStateGetter() == NULL ||
|
|
150
|
+
RunnerAppStateSetter() == NULL || timeout <= 0) {
|
|
151
|
+
return RunnerQuiescenceUnavailable;
|
|
152
|
+
}
|
|
153
|
+
__block BOOL waited = NO;
|
|
154
|
+
RunnerWithGlobalTimeout(RunnerAppStateGetter(), RunnerAppStateSetter(), timeout, ^{
|
|
155
|
+
waited = RunnerRunQuiescenceWait(process);
|
|
156
|
+
});
|
|
157
|
+
if (!waited) {
|
|
158
|
+
return RunnerQuiescenceUnavailable;
|
|
159
|
+
}
|
|
160
|
+
RunnerBoolGetter get = (RunnerBoolGetter)objc_msgSend;
|
|
161
|
+
BOOL idle = get(process, idledSel) && get(process, finishedSel);
|
|
162
|
+
return idle ? RunnerQuiescenceIdle : RunnerQuiescenceBusy;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
+ (BOOL)withAXTimeout:(NSTimeInterval)timeout do:(NS_NOESCAPE void (^)(void))block {
|
|
166
|
+
id client = [self accessibilityClient];
|
|
167
|
+
SEL getSel = NSSelectorFromString(@"AXTimeout");
|
|
168
|
+
SEL setSel = NSSelectorFromString(@"_setAXTimeout:error:");
|
|
169
|
+
if (client == nil || timeout <= 0 || ![client respondsToSelector:getSel] ||
|
|
170
|
+
![client respondsToSelector:setSel]) {
|
|
171
|
+
block();
|
|
172
|
+
return NO;
|
|
173
|
+
}
|
|
174
|
+
RunnerAXTimeoutGetter get = (RunnerAXTimeoutGetter)objc_msgSend;
|
|
175
|
+
RunnerAXTimeoutSetter set = (RunnerAXTimeoutSetter)objc_msgSend;
|
|
176
|
+
NSRecursiveLock *lock = RunnerTimeoutLock();
|
|
177
|
+
[lock lock];
|
|
178
|
+
double previous = get(client, getSel);
|
|
179
|
+
NSError *error = nil;
|
|
180
|
+
if (!set(client, setSel, timeout, &error)) {
|
|
181
|
+
NSLog(@"DL_AX_TIMEOUT: could not set %.1fs (%@); running unbounded", timeout, error);
|
|
182
|
+
[lock unlock];
|
|
183
|
+
block();
|
|
184
|
+
return NO;
|
|
185
|
+
}
|
|
186
|
+
@try {
|
|
187
|
+
block();
|
|
188
|
+
} @finally {
|
|
189
|
+
NSError *restoreError = nil;
|
|
190
|
+
if (!set(client, setSel, previous, &restoreError)) {
|
|
191
|
+
NSLog(@"DL_AX_TIMEOUT: could not restore %.1fs (%@)", previous, restoreError);
|
|
192
|
+
}
|
|
193
|
+
[lock unlock];
|
|
194
|
+
}
|
|
195
|
+
return YES;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
+ (nullable id)accessibilityClient {
|
|
199
|
+
SEL selector = NSSelectorFromString(@"accessibilityInterface");
|
|
200
|
+
XCUIDevice *device = XCUIDevice.sharedDevice;
|
|
201
|
+
if (![device respondsToSelector:selector]) {
|
|
202
|
+
return nil;
|
|
203
|
+
}
|
|
204
|
+
return ((id (*)(id, SEL))objc_msgSend)(device, selector);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@end
|
|
@@ -7,17 +7,33 @@
|
|
|
7
7
|
// override the keys we care about.
|
|
8
8
|
static NSDictionary *(*dl_original_defaultParameters)(id, SEL) = NULL;
|
|
9
9
|
|
|
10
|
-
// Bounded generous depth. INT_MAX invites runaway cost on pathological trees
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
|
|
10
|
+
// Bounded generous depth. INT_MAX invites runaway cost on pathological trees.
|
|
11
|
+
// 100 clears the deep native wrapper nesting a React Native (Fabric / New
|
|
12
|
+
// Architecture) screen produces — 60 could still clip content nested inside a
|
|
13
|
+
// ScrollView, the same class of gap WebDriverAgent's default cap of 50 causes
|
|
14
|
+
// (#171). Override with DEVICELAB_SNAPSHOT_MAX_DEPTH for an unusually deep app.
|
|
15
|
+
static int dl_snapshotMaxDepth(void) {
|
|
16
|
+
static int depth = 0;
|
|
17
|
+
static dispatch_once_t once;
|
|
18
|
+
dispatch_once(&once, ^{
|
|
19
|
+
depth = 100;
|
|
20
|
+
const char *env = getenv("DEVICELAB_SNAPSHOT_MAX_DEPTH");
|
|
21
|
+
if (env != NULL) {
|
|
22
|
+
int parsed = atoi(env);
|
|
23
|
+
if (parsed > 0) {
|
|
24
|
+
depth = parsed;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return depth;
|
|
29
|
+
}
|
|
14
30
|
|
|
15
31
|
static id dl_swizzled_defaultParameters(id self, SEL _cmd) {
|
|
16
32
|
NSDictionary *original =
|
|
17
33
|
dl_original_defaultParameters ? dl_original_defaultParameters(self, _cmd) : @{};
|
|
18
34
|
NSMutableDictionary *merged =
|
|
19
35
|
[NSMutableDictionary dictionaryWithDictionary:(original ?: @{})];
|
|
20
|
-
merged[@"maxDepth"] = @(
|
|
36
|
+
merged[@"maxDepth"] = @(dl_snapshotMaxDepth());
|
|
21
37
|
merged[@"maxChildren"] = @(INT_MAX);
|
|
22
38
|
merged[@"maxArrayCount"] = @(INT_MAX);
|
|
23
39
|
// 0 == do NOT honor modal views, i.e. keep elements behind a modal/dialog in
|
|
@@ -44,6 +60,6 @@ void DLApplyCompleteSnapshotParams(void) {
|
|
|
44
60
|
dl_original_defaultParameters = (NSDictionary * (*)(id, SEL))
|
|
45
61
|
method_setImplementation(method, (IMP)dl_swizzled_defaultParameters);
|
|
46
62
|
NSLog(@"DL_SNAPSHOT_PARAMS: applied (maxDepth=%d, maxChildren=INT_MAX, honorModalViews=0)",
|
|
47
|
-
|
|
63
|
+
dl_snapshotMaxDepth());
|
|
48
64
|
});
|
|
49
65
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#import <Foundation/Foundation.h>
|
|
2
|
+
#import <CoreGraphics/CoreGraphics.h>
|
|
2
3
|
|
|
3
4
|
NS_ASSUME_NONNULL_BEGIN
|
|
4
5
|
|
|
@@ -14,4 +15,26 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
14
15
|
// Returns YES on success. Writes a NSError into *outError on failure.
|
|
15
16
|
BOOL DLSendSyntheticTyping(NSString *text, NSUInteger typingSpeed, NSError * _Nullable * _Nullable outError);
|
|
16
17
|
|
|
18
|
+
// One finger, in screen points: touch down at `from`, rest there for `hold`,
|
|
19
|
+
// move to `to` over `move`, rest there for `rest`, lift. This is Maestro's
|
|
20
|
+
// swipe shape (hold 0, move 0.1s, rest = the swipe's duration): no stationary
|
|
21
|
+
// press at the start, which a list reads as a tap on the row underneath, and
|
|
22
|
+
// no element lookups or idle waits around the gesture, which XCUICoordinate
|
|
23
|
+
// adds. `interfaceOrientation` is a UIInterfaceOrientation raw value.
|
|
24
|
+
BOOL DLSendSyntheticTouch(CGPoint from,
|
|
25
|
+
CGPoint to,
|
|
26
|
+
NSTimeInterval hold,
|
|
27
|
+
NSTimeInterval move,
|
|
28
|
+
NSTimeInterval rest,
|
|
29
|
+
long long interfaceOrientation,
|
|
30
|
+
NSError * _Nullable * _Nullable outError);
|
|
31
|
+
|
|
32
|
+
// `count` taps at `point`, each held for `press`, `gap` apart.
|
|
33
|
+
BOOL DLSendSyntheticTaps(CGPoint point,
|
|
34
|
+
NSUInteger count,
|
|
35
|
+
NSTimeInterval press,
|
|
36
|
+
NSTimeInterval gap,
|
|
37
|
+
long long interfaceOrientation,
|
|
38
|
+
NSError * _Nullable * _Nullable outError);
|
|
39
|
+
|
|
17
40
|
NS_ASSUME_NONNULL_END
|
|
@@ -4,46 +4,36 @@
|
|
|
4
4
|
#import "PrivateHeaders/XCTest/XCPointerEventPath.h"
|
|
5
5
|
#import "PrivateHeaders/XCTest/XCUIDevice.h"
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
typingSpeed = 60; // matches WDA default
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
XCSynthesizedEventRecord *record =
|
|
16
|
-
[[XCSynthesizedEventRecord alloc] initWithName:@"DLSyntheticTyping"];
|
|
17
|
-
XCPointerEventPath *path = [[XCPointerEventPath alloc] initForTextInput];
|
|
18
|
-
[path typeText:text atOffset:0.0 typingSpeed:typingSpeed shouldRedact:NO];
|
|
19
|
-
[record addPointerEventPath:path];
|
|
7
|
+
static NSError *DLSynthesisError(NSInteger code, NSString *message) {
|
|
8
|
+
return [NSError errorWithDomain:@"DevicelabIOSRunner"
|
|
9
|
+
code:code
|
|
10
|
+
userInfo:@{NSLocalizedDescriptionKey: message}];
|
|
11
|
+
}
|
|
20
12
|
|
|
13
|
+
// Sends a built event record through XCUIDevice's event synthesizer and waits
|
|
14
|
+
// for it to be delivered. No element lookup and no wait for the app to go
|
|
15
|
+
// idle happen here: the event goes straight to the screen, the way Maestro's
|
|
16
|
+
// runner and WebDriverAgent's W3C actions send theirs.
|
|
17
|
+
static BOOL DLSynthesize(XCSynthesizedEventRecord *record, NSError * _Nullable * _Nullable outError) {
|
|
21
18
|
id device = [XCUIDevice sharedDevice];
|
|
22
19
|
id synthesizer = [device valueForKey:@"eventSynthesizer"];
|
|
23
20
|
if (synthesizer == nil) {
|
|
24
21
|
if (outError) {
|
|
25
|
-
*outError =
|
|
26
|
-
code:1
|
|
27
|
-
userInfo:@{NSLocalizedDescriptionKey:
|
|
28
|
-
@"XCUIDevice.eventSynthesizer unavailable"}];
|
|
22
|
+
*outError = DLSynthesisError(1, @"XCUIDevice.eventSynthesizer unavailable");
|
|
29
23
|
}
|
|
30
24
|
return NO;
|
|
31
25
|
}
|
|
32
26
|
|
|
33
|
-
__block BOOL done = NO;
|
|
34
|
-
__block NSError *innerError = nil;
|
|
35
|
-
|
|
36
27
|
SEL sel = NSSelectorFromString(@"synthesizeEvent:completion:");
|
|
37
28
|
if (![synthesizer respondsToSelector:sel]) {
|
|
38
29
|
if (outError) {
|
|
39
|
-
*outError =
|
|
40
|
-
code:2
|
|
41
|
-
userInfo:@{NSLocalizedDescriptionKey:
|
|
42
|
-
@"eventSynthesizer does not support synthesizeEvent:completion:"}];
|
|
30
|
+
*outError = DLSynthesisError(2, @"eventSynthesizer does not support synthesizeEvent:completion:");
|
|
43
31
|
}
|
|
44
32
|
return NO;
|
|
45
33
|
}
|
|
46
34
|
|
|
35
|
+
__block BOOL done = NO;
|
|
36
|
+
__block NSError *innerError = nil;
|
|
47
37
|
NSMethodSignature *sig = [synthesizer methodSignatureForSelector:sel];
|
|
48
38
|
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:sig];
|
|
49
39
|
inv.target = synthesizer;
|
|
@@ -63,19 +53,15 @@ BOOL DLSendSyntheticTyping(NSString *text, NSUInteger typingSpeed, NSError * _Nu
|
|
|
63
53
|
NSDate *deadline = [NSDate dateWithTimeIntervalSinceNow:30.0];
|
|
64
54
|
while (!done && [deadline timeIntervalSinceNow] > 0) {
|
|
65
55
|
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
|
|
66
|
-
beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.
|
|
56
|
+
beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
|
|
67
57
|
}
|
|
68
58
|
|
|
69
59
|
if (!done) {
|
|
70
60
|
if (outError) {
|
|
71
|
-
*outError =
|
|
72
|
-
code:3
|
|
73
|
-
userInfo:@{NSLocalizedDescriptionKey:
|
|
74
|
-
@"synthesizeEvent timed out"}];
|
|
61
|
+
*outError = DLSynthesisError(3, @"synthesizeEvent timed out");
|
|
75
62
|
}
|
|
76
63
|
return NO;
|
|
77
64
|
}
|
|
78
|
-
|
|
79
65
|
if (innerError != nil) {
|
|
80
66
|
if (outError) {
|
|
81
67
|
*outError = innerError;
|
|
@@ -84,3 +70,64 @@ BOOL DLSendSyntheticTyping(NSString *text, NSUInteger typingSpeed, NSError * _Nu
|
|
|
84
70
|
}
|
|
85
71
|
return YES;
|
|
86
72
|
}
|
|
73
|
+
|
|
74
|
+
static XCSynthesizedEventRecord *DLNewRecord(NSString *name, long long interfaceOrientation) {
|
|
75
|
+
XCSynthesizedEventRecord *record = [XCSynthesizedEventRecord alloc];
|
|
76
|
+
if ([record respondsToSelector:@selector(initWithName:interfaceOrientation:)]) {
|
|
77
|
+
return [record initWithName:name interfaceOrientation:(UIInterfaceOrientation)interfaceOrientation];
|
|
78
|
+
}
|
|
79
|
+
return [record initWithName:name];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
BOOL DLSendSyntheticTyping(NSString *text, NSUInteger typingSpeed, NSError * _Nullable * _Nullable outError) {
|
|
83
|
+
if (text.length == 0) {
|
|
84
|
+
return YES;
|
|
85
|
+
}
|
|
86
|
+
if (typingSpeed == 0) {
|
|
87
|
+
typingSpeed = 60; // matches WDA default
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
XCSynthesizedEventRecord *record =
|
|
91
|
+
[[XCSynthesizedEventRecord alloc] initWithName:@"DLSyntheticTyping"];
|
|
92
|
+
XCPointerEventPath *path = [[XCPointerEventPath alloc] initForTextInput];
|
|
93
|
+
[path typeText:text atOffset:0.0 typingSpeed:typingSpeed shouldRedact:NO];
|
|
94
|
+
[record addPointerEventPath:path];
|
|
95
|
+
return DLSynthesize(record, outError);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
BOOL DLSendSyntheticTouch(CGPoint from,
|
|
99
|
+
CGPoint to,
|
|
100
|
+
NSTimeInterval hold,
|
|
101
|
+
NSTimeInterval move,
|
|
102
|
+
NSTimeInterval rest,
|
|
103
|
+
long long interfaceOrientation,
|
|
104
|
+
NSError * _Nullable * _Nullable outError) {
|
|
105
|
+
XCSynthesizedEventRecord *record = DLNewRecord(@"DLSyntheticTouch", interfaceOrientation);
|
|
106
|
+
XCPointerEventPath *path = [[XCPointerEventPath alloc] initForTouchAtPoint:from offset:0.0];
|
|
107
|
+
NSTimeInterval offset = MAX(hold, 0.0);
|
|
108
|
+
if (!CGPointEqualToPoint(from, to)) {
|
|
109
|
+
offset += MAX(move, 0.0);
|
|
110
|
+
[path moveToPoint:to atOffset:offset];
|
|
111
|
+
}
|
|
112
|
+
offset += MAX(rest, 0.0);
|
|
113
|
+
[path liftUpAtOffset:offset];
|
|
114
|
+
[record addPointerEventPath:path];
|
|
115
|
+
return DLSynthesize(record, outError);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
BOOL DLSendSyntheticTaps(CGPoint point,
|
|
119
|
+
NSUInteger count,
|
|
120
|
+
NSTimeInterval press,
|
|
121
|
+
NSTimeInterval gap,
|
|
122
|
+
long long interfaceOrientation,
|
|
123
|
+
NSError * _Nullable * _Nullable outError) {
|
|
124
|
+
XCSynthesizedEventRecord *record = DLNewRecord(@"DLSyntheticTaps", interfaceOrientation);
|
|
125
|
+
NSTimeInterval offset = 0.0;
|
|
126
|
+
for (NSUInteger i = 0; i < MAX(count, (NSUInteger)1); i++) {
|
|
127
|
+
XCPointerEventPath *path = [[XCPointerEventPath alloc] initForTouchAtPoint:point offset:offset];
|
|
128
|
+
[path liftUpAtOffset:offset + press];
|
|
129
|
+
[record addPointerEventPath:path];
|
|
130
|
+
offset += press + gap;
|
|
131
|
+
}
|
|
132
|
+
return DLSynthesize(record, outError);
|
|
133
|
+
}
|
|
@@ -84,6 +84,9 @@ Unknown fields are ignored. Missing required fields produce `INVALID_ARGUMENT`.
|
|
|
84
84
|
| `ALERT_PRESENT` | A system alert blocked the operation |
|
|
85
85
|
| `TIMEOUT` | Server-side 30s ceiling exceeded |
|
|
86
86
|
| `XCUI_EXCEPTION` | Underlying XCUITest threw an ObjC exception (retried once before this) |
|
|
87
|
+
| `SNAPSHOT_FAILED` | No accessibility tree could be read (query failed or timed out); `data.appState` says why, usually a suspended app |
|
|
88
|
+
| `NO_TARGET_APP` | A read-only command named no app and the frontmost app could not be resolved |
|
|
89
|
+
| `NO_TEXT_INPUT` | A replace-mode `type` (a clear, or `eraseText`) found no text input at the coordinates, or none focused |
|
|
87
90
|
| `RUNNER_INTERNAL` | Bug in the runner |
|
|
88
91
|
|
|
89
92
|
## Versioning
|
|
@@ -111,10 +114,24 @@ Unknown fields are ignored. Missing required fields produce `INVALID_ARGUMENT`.
|
|
|
111
114
|
|
|
112
115
|
| Command | Inputs | Returns |
|
|
113
116
|
|---|---|---|
|
|
114
|
-
| `snapshot` | `appBundleId?` | `{ nodes: [SnapshotNode] }` |
|
|
117
|
+
| `snapshot` | `appBundleId?`, `visibleOnly?` | `{ nodes: [SnapshotNode], truncated }` |
|
|
115
118
|
| `screenSize` | `appBundleId?` | `{ width, height, scale }` |
|
|
119
|
+
| `idle` | `appBundleId?`, `timeoutMs?` (default 1000, max 10000, `0` = do not wait) | `{ idle, waitedMs, appState, message }` |
|
|
120
|
+
| `settle` | `timeoutMs?` (default 3000, max 10000) | `{ idle, waitedMs, message }` |
|
|
116
121
|
|
|
117
|
-
`
|
|
122
|
+
`visibleOnly` (local addition) returns only elements at least 10% on screen — Maestro's `filterOutOfBounds` rule — plus no element under a wholly off-screen ancestor, whose frame is clipped to the viewport. The runner still walks the whole tree; off-screen elements are skipped without being evaluated and their on-screen children attach to the nearest included ancestor. The host uses it for every lookup, and the full tree only for reports. The node budget is 3000 on-screen nodes (1500 for a full tree); `truncated` says when it was hit.
|
|
123
|
+
|
|
124
|
+
`settle` (local addition) waits until two consecutive 48×104 grayscale thumbnails of the screen agree (at most 0.2% of pixels moving by more than 6 gray levels), Maestro's static-screen test done on the device. `idle` is `true` when the screen settled within the cap. It never activates the app.
|
|
125
|
+
|
|
126
|
+
Every response carries `serverMs`, the runner's own time on the command; the runner also logs `DL_CMD cmd= ms= bytes= ok=` per command.
|
|
127
|
+
|
|
128
|
+
`snapshot` always returns the full tree. If `appBundleId` is omitted, snapshots the frontmost app; if that cannot be resolved the call fails with `NO_TARGET_APP` rather than launching the runner's host app. **No filtering, no caps, no occlusion computation.**
|
|
129
|
+
|
|
130
|
+
`idle` waits, capped by `timeoutMs`, for the app to go quiescent including animations — XCTest's `waitForQuiescenceIncludingAnimationsIdle:isPreEvent:`, bounded by setting XCTest's application-state timeout for the call (WebDriverAgent's approach). `idle` is `true` only when the app's `eventLoopHasIdled` and `animationsHaveFinished` flags are both set afterwards; it is `false` when the cap passed first, the app is not in the foreground (XCTest skips the check for it), `timeoutMs` was 0, or the private API is missing. `waitedMs` is the real time spent and can exceed the cap if XCTest spindumps an app that never idled. Like `snapshot`, it never activates the app.
|
|
131
|
+
|
|
132
|
+
`snapshot` is read-only: it never activates, launches or waits for the app. A named app that is backgrounded is read as it is; one that is suspended or not running is not queried at all (`SNAPSHOT_FAILED` with its `appState`), since it cannot answer.
|
|
133
|
+
|
|
134
|
+
`snapshot` data also carries `appState` (the target's `XCUIApplication.state`) and `source`: `"xctest"` for XCTest's public snapshot, `"privateAX"` when the tree came from the private accessibility fallback (the public path failed or returned only the root). When no tree can be read at all the response is `ok: false` with `SNAPSHOT_FAILED`, and `data.appState` is still set — an unreadable screen is never reported as an empty one.
|
|
118
135
|
|
|
119
136
|
#### SnapshotNode
|
|
120
137
|
|
|
@@ -165,7 +182,9 @@ All gestures accept `appBundleId` so the runner can target the right `XCUIApplic
|
|
|
165
182
|
| `longPress` | `x, y, durationMs` | gesture timings |
|
|
166
183
|
| `swipe` | EITHER `x, y, x2, y2, durationMs` OR `direction, percent` | gesture timings + `path: [{x,y},...]` |
|
|
167
184
|
| `scroll` | EITHER coordinate path OR `direction, percent` (same as swipe but with slower default duration) | gesture timings |
|
|
168
|
-
| `drag` | `x, y, x2, y2, durationMs` (press-before-move hold), `moveDurationMs?` (movement time
|
|
185
|
+
| `drag` | `x, y, x2, y2, durationMs` (press-before-move hold), `moveDurationMs?` (movement time), `restMs?` (rest at the end point before lifting — local addition) | gesture timings + path |
|
|
186
|
+
|
|
187
|
+
Taps, double taps, long presses and drags with a hold of 50ms or less are sent as synthesized touch events (`XCSynthesizedEventRecord` + `XCPointerEventPath`) in screen points, with no element lookups and no idle waits: touch at `x, y`, rest `durationMs`, move to `x2, y2` over `moveDurationMs` (default 100), rest `restMs` (default 0, or 250 when a `moveDurationMs` is given), lift. The host sends Maestro's swipe shape: hold 0, move 100ms, rest = the swipe's duration. A longer hold (a dragAndDrop lift) and any gesture on a rotated screen use `XCUICoordinate`'s `press(forDuration:thenDragTo:withVelocity:thenHoldForDuration:)`, as does any gesture whose synthesis fails.
|
|
169
188
|
| `pinch` | `x, y, scale, durationMs` | gesture timings |
|
|
170
189
|
| `pressButton` | `button: "home"|"lock"|"volumeUp"|"volumeDown"|"appSwitcher"` | `{ pressed: true }` |
|
|
171
190
|
| `rotate` | `orientation: "portrait"|"landscapeLeft"|"landscapeRight"|"portraitUpsideDown"` | `{ orientation }` |
|
|
@@ -186,6 +205,8 @@ All gestures accept `appBundleId` so the runner can target the right `XCUIApplic
|
|
|
186
205
|
|
|
187
206
|
`type` sends keys to the currently focused element (caller is responsible for tapping to focus first — same as WDA today).
|
|
188
207
|
|
|
208
|
+
`type` reports its read-back: `verified` is `true` when the field read back as typed, `false` on a mismatch (the response is then `ok: false` with `TEXT_ENTRY_MISMATCH`, and `data` still carries `verified`/`repaired`), and absent when the value could not be read (secure fields) — unchecked typing is never reported as verified. `repaired: true` means the first attempt read back wrong and the runner cleared the field and typed again.
|
|
209
|
+
|
|
189
210
|
### Alerts
|
|
190
211
|
|
|
191
212
|
| Command | Inputs | Returns |
|
|
@@ -256,3 +277,5 @@ This split mirrors how the current `pkg/driver/wda/` and `pkg/driver/devicelab/`
|
|
|
256
277
|
- **`displayed` semantics.** WDA's `isDisplayed` differs from XCUI's `isHittable`. We compute `displayed` as "rect intersects screen bounds AND parent clip path", `hittable` as raw `.isHittable`. Validate with TestHive flows.
|
|
257
278
|
- **Predicate string compatibility.** WDA supports a specific NSPredicate dialect via Appium. We should support the same dialect so existing flow selectors keep working — verify against `pkg/driver/wda/driver.go:findElementByWDA`.
|
|
258
279
|
- **`scroll` vs `swipe` duration defaults.** WDA scrolls slower than it swipes. Per react-navigation PR #13027, swipe duration tuning is touchy. Pick defaults that match upstream Maestro out of the gate.
|
|
280
|
+
|
|
281
|
+
`type` with `text: ""` and `textEntryMode: "replace"` clears the resolved input. An optional `deleteCount` (local extension, used by `eraseText`) deletes that many characters from the end instead; a count of at least the field's length clears the whole field through the same verified path.
|