@devicelab/maestro-runner-darwin-arm64 1.1.25 → 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.
Files changed (701) hide show
  1. package/README.md +45 -11
  2. package/THIRD_PARTY_LICENSES +0 -186
  3. package/bin/maestro-runner +0 -0
  4. package/drivers/LICENSE-BINARIES.md +38 -0
  5. package/drivers/android/devicelab-android-driver-test.apk +0 -0
  6. package/drivers/android/devicelab-android-driver.apk +0 -0
  7. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/project.pbxproj +38 -14
  8. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h +3 -0
  9. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.h +51 -0
  10. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerAXSnapshotBridge.m +439 -0
  11. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.h +12 -0
  12. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerDefaults.m +59 -0
  13. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+AXSnapshotFallback.swift +128 -0
  14. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift +68 -14
  15. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift +256 -48
  16. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Lifecycle.swift +102 -6
  17. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift +74 -1
  18. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Settle.swift +89 -0
  19. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift +279 -82
  20. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift +1 -1
  21. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Transport.swift +7 -2
  22. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests.swift +44 -10
  23. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.h +87 -0
  24. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerXCTestTimeouts.m +207 -0
  25. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SnapshotParams.m +22 -6
  26. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h +23 -0
  27. package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m +77 -30
  28. package/drivers/ios/DevicelabIOSRunner/PROTOCOL.md +26 -3
  29. package/drivers/ios/WebDriverAgent/.editorconfig +11 -0
  30. package/drivers/ios/WebDriverAgent/.github/dependabot.yml +1 -1
  31. package/drivers/ios/WebDriverAgent/.github/workflows/functional-test.yml +65 -24
  32. package/drivers/ios/WebDriverAgent/.github/workflows/publish.js.yml +15 -8
  33. package/drivers/ios/WebDriverAgent/.github/workflows/unit-test.yml +4 -2
  34. package/drivers/ios/WebDriverAgent/.github/workflows/wda-package.yml +9 -2
  35. package/drivers/ios/WebDriverAgent/.github/workflows/wda-tests.yml +54 -29
  36. package/drivers/ios/WebDriverAgent/CHANGELOG.md +546 -0
  37. package/drivers/ios/WebDriverAgent/Fastlane/Fastfile +8 -1
  38. package/drivers/ios/WebDriverAgent/Gemfile +1 -0
  39. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/CDStructures.h +5 -26
  40. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSFastEnumeration-Protocol.h +23 -0
  41. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCAXClient_iOS.h +80 -44
  42. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationQuery.h +18 -11
  43. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDebugLogDelegate-Protocol.h +17 -5
  44. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEvent.h +52 -19
  45. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEventPath.h +55 -33
  46. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +44 -21
  47. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAggregateSuiteRunStatistics.h +38 -0
  48. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAttachmentManager.h +33 -0
  49. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilities.h +35 -0
  50. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTCapabilitiesProviding-Protocol.h +23 -0
  51. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSetTransformer-Protocol.h +30 -13
  52. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotAttributeDataSource-Protocol.h +33 -0
  53. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSnapshotProvider-Protocol.h +23 -0
  54. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTExpectedFailureContextManager.h +35 -0
  55. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTFuture.h +45 -0
  56. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTHarnessEventReporting-Protocol.h +29 -0
  57. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssue.h +49 -0
  58. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTIssueHandling-Protocol.h +26 -0
  59. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMacCatalystStatusProviding-Protocol.h +23 -0
  60. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMeasureOptions.h +48 -0
  61. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryChecker.h +50 -0
  62. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMemoryCheckerDelegate-Protocol.h +26 -0
  63. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_IDEToRunner-Protocol.h +27 -0
  64. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToDaemon-Protocol.h +39 -0
  65. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingChannel_RunnerToIDE-Protocol.h +32 -0
  66. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ActivityReporting-Protocol.h +24 -0
  67. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_AttachmentFutureResultStatusUpdating-Protocol.h +23 -0
  68. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_BundleRequesting-Protocol.h +24 -0
  69. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_CapabilityExchange-Protocol.h +56 -0
  70. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_DebugLogging-Protocol.h +23 -0
  71. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_EventSynthesis-Protocol.h +34 -0
  72. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ForcePressureSupportQuerying-Protocol.h +25 -0
  73. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_HIDEventRecording-Protocol.h +25 -0
  74. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_MemoryTesting-Protocol.h +23 -0
  75. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_PerformanceMeasurementReporting-Protocol.h +23 -0
  76. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProcessMonitoring-Protocol.h +25 -0
  77. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ProtectedResourceAuthorization-Protocol.h +22 -0
  78. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_ScreenRecording-Protocol.h +24 -0
  79. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SelfDiagnosisIssueReporting-Protocol.h +23 -0
  80. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SignpostRequesting-Protocol.h +24 -0
  81. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SiriAutomation-Protocol.h +27 -0
  82. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_SystemConfiguration-Protocol.h +27 -0
  83. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TelemetrySending-Protocol.h +23 -0
  84. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestExecution-Protocol.h +28 -0
  85. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_TestReporting-Protocol.h +40 -0
  86. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomation-Protocol.h +29 -0
  87. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UIAutomationRunnerEventReporting-Protocol.h +27 -0
  88. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMessagingRole_UserPresence-Protocol.h +24 -0
  89. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetricDiagnosticHelper.h +49 -0
  90. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectationObject-Protocol.h +15 -7
  91. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTPromise.h +30 -0
  92. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRemoteSignpostListenerProxy-Protocol.h +29 -0
  93. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRepetitionPolicy.h +43 -0
  94. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSession.h +50 -0
  95. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionConfiguration-Protocol.h +27 -0
  96. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionIssueReporter-Protocol.h +23 -0
  97. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestContainer-Protocol.h +26 -0
  98. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTReportingSessionTestReporter.h +51 -0
  99. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession-Protocol.h +38 -0
  100. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSession.h +76 -78
  101. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSessionUIAutomationDelegate-Protocol.h +33 -0
  102. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESession.h +87 -53
  103. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESessionDelegate-Protocol.h +24 -0
  104. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeDiagnosticsPolicy.h +36 -0
  105. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRuntimeIssueDetectionPolicy.h +39 -0
  106. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTScreenCapturePolicy.h +35 -0
  107. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSignpostListener-Protocol.h +25 -0
  108. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSkippedTestContext.h +37 -0
  109. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeContext.h +39 -0
  110. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTSourceCodeLocation.h +31 -0
  111. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTagSelection.h +41 -0
  112. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifier.h +81 -0
  113. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestIdentifierSet.h +54 -0
  114. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestSelection.h +35 -0
  115. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiter.h +45 -46
  116. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManagement-Protocol.h +17 -6
  117. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager-Protocol.h +25 -0
  118. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterWait.h +40 -0
  119. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTest.h +47 -28
  120. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCase.h +165 -87
  121. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseDiscoveryUIAutomationDelegate-Protocol.h +20 -0
  122. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseRun.h +19 -9
  123. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseUIAutomationDelegate-Protocol.h +25 -0
  124. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCastMethodNamesUIAutomationDelegate-Protocol.h +24 -0
  125. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestConfiguration.h +83 -55
  126. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriver.h +54 -28
  127. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectation.h +37 -26
  128. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationDelegate-Protocol.h +15 -6
  129. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservationCenter.h +49 -25
  130. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestRun.h +33 -28
  131. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAXNotificationHandling-Protocol.h +25 -0
  132. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAccessibilityInterface-Protocol.h +58 -0
  133. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIAlertMonitoring-Protocol.h +27 -0
  134. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplication.h +87 -49
  135. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationAutomationSessionProviding-Protocol.h +26 -0
  136. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImpl.h +78 -26
  137. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImplReporter-Protocol.h +26 -0
  138. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationManaging-Protocol.h +23 -0
  139. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationMonitor-Protocol.h +43 -0
  140. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationOpenRequest.h +34 -0
  141. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationPlatformServicesProviderDelegate-Protocol.h +25 -0
  142. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcess.h +89 -69
  143. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessDelegate-Protocol.h +25 -0
  144. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessManaging-Protocol.h +26 -0
  145. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcessTracker-Protocol.h +28 -0
  146. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationRegistry.h +32 -0
  147. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIButtonConsole.h +26 -0
  148. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUICoordinate.h +37 -32
  149. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDevice.h +121 -17
  150. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceAutomationModeInterface-Protocol.h +25 -0
  151. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceDelayedAttachmentTransferSupportInterface-Protocol.h +22 -0
  152. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDeviceEventAndStateInterface-Protocol.h +40 -0
  153. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElement.h +192 -59
  154. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAttributesPrivate-Protocol.h +26 -0
  155. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementEventTarget-Protocol.h +38 -0
  156. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementQuery.h +154 -58
  157. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementTypeQueryProvider_Private-Protocol.h +24 -0
  158. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIEventRecording-Protocol.h +37 -0
  159. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIHitPointResult.h +16 -11
  160. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIInterruptionMonitoring-Protocol.h +27 -0
  161. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIIssueDiagnosticsProviding-Protocol.h +23 -0
  162. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIKnobControl.h +26 -0
  163. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUILocation.h +24 -0
  164. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIPlatformApplicationServicesProviding-Protocol.h +33 -0
  165. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteAccessibilityInterface-Protocol.h +45 -0
  166. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteDeviceRunner-Protocol.h +24 -0
  167. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRemoteSiriInterface-Protocol.h +30 -0
  168. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIResetAuthorizationStatusOfProtectedResourcesInterface-Protocol.h +22 -0
  169. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreen.h +45 -19
  170. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreenDataSource-Protocol.h +28 -12
  171. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISiriService.h +39 -0
  172. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUISystem.h +26 -0
  173. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIXcodeApplicationManaging-Protocol.h +27 -0
  174. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_TtC10XCTestCore19XCTReportingContext.h +26 -0
  175. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTMessaging_VoidProtocol-Protocol.h +20 -0
  176. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationInternal-Protocol.h +26 -0
  177. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationPrivate-Protocol.h +27 -0
  178. package/drivers/ios/WebDriverAgent/README.md +0 -10
  179. package/drivers/ios/WebDriverAgent/Scripts/build-webdriveragent.mjs +30 -22
  180. package/drivers/ios/WebDriverAgent/Scripts/build.sh +14 -1
  181. package/drivers/ios/WebDriverAgent/Scripts/embed-runner-icon.sh +118 -0
  182. package/drivers/ios/WebDriverAgent/Scripts/fetch-prebuilt-wda.mjs +34 -22
  183. package/drivers/ios/WebDriverAgent/Scripts/update-wda-version.mjs +12 -10
  184. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.pbxproj +2583 -659
  185. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp.xcscheme +1 -1
  186. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_tvOS.xcscheme +78 -0
  187. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp_watchOS.xcscheme +78 -0
  188. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_1.xcscheme +8 -1
  189. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_2.xcscheme +8 -1
  190. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_3.xcscheme +8 -1
  191. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_tvOS.xcscheme +93 -0
  192. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_watchOS.xcscheme +93 -0
  193. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib.xcscheme +1 -1
  194. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_tvOS.xcscheme +1 -1
  195. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_watchOS.xcscheme +85 -0
  196. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner-nodebug.xcscheme +1 -1
  197. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner.xcscheme +20 -2
  198. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_tvOS.xcscheme +1 -1
  199. package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_watchOS.xcscheme +128 -0
  200. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSDictionary+FBUtf8SafeDictionary.m +45 -27
  201. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.h +1 -0
  202. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.m +91 -0
  203. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.h +27 -3
  204. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +125 -55
  205. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.h +15 -0
  206. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +32 -3
  207. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +2 -3
  208. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.m +9 -16
  209. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.h +47 -4
  210. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +173 -83
  211. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.h +9 -1
  212. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.m +45 -5
  213. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.h +66 -0
  214. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.m +218 -0
  215. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +144 -3
  216. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBFind.m +1 -1
  217. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBForceTouch.m +5 -2
  218. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBPickerWheel.m +4 -3
  219. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +113 -50
  220. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTVFocuse.m +5 -5
  221. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.h +33 -0
  222. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.m +39 -5
  223. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m +9 -7
  224. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBVisibleFrame.m +12 -3
  225. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +6 -1
  226. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.m +1 -0
  227. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBAlertViewCommands.m +10 -36
  228. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBCustomCommands.m +155 -8
  229. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBElementCommands.m +45 -19
  230. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBFindElementCommands.m +7 -7
  231. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBOrientationCommands.m +9 -2
  232. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBScreenshotCommands.m +3 -3
  233. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBSessionCommands.m +220 -296
  234. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.h +43 -30
  235. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.m +273 -93
  236. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Info.plist +2 -2
  237. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElement.h +3 -0
  238. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptionHandler.m +8 -1
  239. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.h +9 -0
  240. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.m +3 -0
  241. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.h +97 -0
  242. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPServer.m +932 -0
  243. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponseJSONPayload.m +2 -3
  244. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponsePayload.m +1 -1
  245. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.h +9 -0
  246. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.m +9 -0
  247. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.h +9 -0
  248. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.m +28 -12
  249. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingRequest.m +1 -1
  250. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.h +16 -0
  251. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.m +252 -42
  252. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.h +57 -9
  253. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.m +183 -33
  254. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.h +18 -2
  255. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m +92 -37
  256. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshot.h +1 -1
  257. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.h +28 -0
  258. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteRequest.m +25 -0
  259. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.h +30 -0
  260. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/RouteResponse.m +54 -0
  261. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.m +10 -2
  262. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAlertsMonitor.m +21 -5
  263. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.h +2 -1
  264. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.m +3 -3
  265. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.h +1 -3
  266. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.m +0 -1
  267. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBClassChainQueryParser.m +1 -1
  268. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.h +106 -136
  269. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.m +150 -386
  270. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m +6 -0
  271. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageProcessor.m +54 -29
  272. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBLogger.m +2 -2
  273. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMacros.h +14 -5
  274. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.h +54 -1
  275. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.m +48 -2
  276. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.h +12 -0
  277. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.m +119 -24
  278. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.h +1 -1
  279. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.m +9 -5
  280. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.h +10 -0
  281. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.m +32 -0
  282. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreenshot.m +3 -3
  283. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.h +3 -1
  284. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.m +3 -1
  285. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.h +35 -0
  286. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettingsHandler.m +374 -0
  287. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker-Private.h +10 -0
  288. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.h +29 -4
  289. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.m +62 -27
  290. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.h +1 -1
  291. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.m +28 -10
  292. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.h +124 -2
  293. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +142 -21
  294. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.h +2 -2
  295. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +22 -19
  296. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.h +1 -8
  297. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.m +57 -27
  298. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath-Private.h +5 -0
  299. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath.m +69 -14
  300. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.h +40 -0
  301. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPathExtensions.m +418 -0
  302. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.h +2 -2
  303. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.m +54 -34
  304. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/WebDriverAgentLib.h +1 -0
  305. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
  306. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/icon-1024.png +0 -0
  307. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Assets.xcassets/Contents.json +6 -0
  308. package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/UITestingUITests.m +7 -7
  309. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/COORDINATE_PROBE.md +50 -0
  310. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.h +4 -0
  311. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBCoordinateProbeViewController.m +176 -0
  312. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBScrollViewController.m +15 -2
  313. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchViewController.h +1 -1
  314. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.h +2 -1
  315. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.m +14 -3
  316. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/ViewController.m +44 -3
  317. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Info.plist +2 -2
  318. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Resources/Base.lproj/Main.storyboard +52 -22
  319. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.h +13 -0
  320. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/AppDelegate.m +26 -0
  321. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/Info.plist +41 -0
  322. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.h +15 -0
  323. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/SceneDelegate.m +22 -0
  324. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.h +13 -0
  325. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/ViewController.m +79 -0
  326. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_tvOS/main.m +17 -0
  327. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/ContentView.swift +31 -0
  328. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp_watchOS/WatchSpikeApp.swift +18 -0
  329. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +37 -56
  330. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAutoAlertsHandlerTests.m +10 -4
  331. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBConfigurationTests.m +41 -8
  332. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementAttributeTests.m +10 -1
  333. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +4 -4
  334. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +14 -19
  335. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +6 -3
  336. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationAppTests.m +87 -0
  337. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.h +30 -5
  338. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +51 -15
  339. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBPasteboardTests.m +3 -2
  340. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +6 -2
  341. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScreenTests.m +28 -1
  342. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScrollingTests.m +3 -6
  343. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTapTest.m +83 -0
  344. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVideoRecordingTests.m +1 -2
  345. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVoiceOverTests.m +103 -0
  346. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CMultiTouchActionsIntegrationTests.m +35 -0
  347. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +96 -13
  348. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTypeActionsTests.m +3 -3
  349. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +108 -5
  350. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCElementSnapshotHelperTests.m +1 -7
  351. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +1 -1
  352. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceHelperTests.m +21 -5
  353. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceRotationTests.m +21 -0
  354. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementAttributesTests.m +5 -5
  355. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +98 -10
  356. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/FBTVFocusIntegrationTests.m +84 -0
  357. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_tvOS/Info.plist +24 -0
  358. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/IntegrationTests_watchOS-Bridging-Header.h +23 -0
  359. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAlertIntegrationTests.swift +25 -0
  360. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAAppLifecycleIntegrationTests.swift +37 -0
  361. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAClickIntegrationTests.swift +25 -0
  362. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDADeviceIntegrationTests.swift +92 -0
  363. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAElementAttributeIntegrationTests.swift +39 -0
  364. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAFindIntegrationTests.swift +101 -0
  365. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAMjpegStreamingIntegrationTests.swift +81 -0
  366. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAScreenshotAndSourceIntegrationTests.swift +54 -0
  367. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDATypingIntegrationTests.swift +73 -0
  368. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests_watchOS/WDAWatchInProcessTestCase.swift +51 -0
  369. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.h +4 -0
  370. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.m +10 -0
  371. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBConfigurationTests.m +18 -6
  372. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBCustomCommandsTests.m +83 -0
  373. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerSessionTests.m +133 -0
  374. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBHTTPServerTests.m +264 -0
  375. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBMathUtilsTests.m +38 -0
  376. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBResponseJSONPayloadTests.m +76 -0
  377. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBSessionTests.m +3 -3
  378. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBTouchableViewTests.m +121 -0
  379. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXCAXClientProxyTests.m +90 -0
  380. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXPathTests.m +127 -2
  381. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSDictionaryFBUtf8SafeTests.m +43 -0
  382. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.h +27 -0
  383. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCAccessibilityElementDouble.m +23 -0
  384. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.h +43 -0
  385. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/FBXCElementSnapshotDouble.m +24 -0
  386. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.h +1 -0
  387. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.m +1 -0
  388. package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/FBTVNavigationTrackerTests.m +48 -0
  389. package/drivers/ios/WebDriverAgent/lib/check-dependencies.ts +42 -21
  390. package/drivers/ios/WebDriverAgent/lib/constants.ts +12 -2
  391. package/drivers/ios/WebDriverAgent/lib/index.ts +7 -0
  392. package/drivers/ios/WebDriverAgent/lib/logger.ts +1 -1
  393. package/drivers/ios/WebDriverAgent/lib/no-session-proxy.ts +8 -14
  394. package/drivers/ios/WebDriverAgent/lib/types.ts +108 -8
  395. package/drivers/ios/WebDriverAgent/lib/utils/index.ts +15 -0
  396. package/drivers/ios/WebDriverAgent/lib/utils/module.ts +24 -0
  397. package/drivers/ios/WebDriverAgent/lib/utils/platform.ts +34 -0
  398. package/drivers/ios/WebDriverAgent/lib/utils/processes.ts +166 -0
  399. package/drivers/ios/WebDriverAgent/lib/utils/security.ts +13 -0
  400. package/drivers/ios/WebDriverAgent/lib/utils/xctestrun.ts +173 -0
  401. package/drivers/ios/WebDriverAgent/lib/wda-strategies.ts +333 -0
  402. package/drivers/ios/WebDriverAgent/lib/webdriveragent.ts +336 -428
  403. package/drivers/ios/WebDriverAgent/lib/xcodebuild.ts +232 -127
  404. package/drivers/ios/WebDriverAgent/oxfmt.config.mjs +6 -0
  405. package/drivers/ios/WebDriverAgent/oxlint.config.mjs +6 -0
  406. package/drivers/ios/WebDriverAgent/package.json +70 -79
  407. package/drivers/ios/WebDriverAgent/release.config.mjs +14 -0
  408. package/drivers/ios/WebDriverAgent/test/functional/desired.ts +10 -6
  409. package/drivers/ios/WebDriverAgent/test/functional/helpers/simulator.ts +39 -28
  410. package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e.spec.ts +100 -0
  411. package/drivers/ios/WebDriverAgent/test/unit/processes.spec.ts +99 -0
  412. package/drivers/ios/WebDriverAgent/test/unit/utils.spec.ts +235 -0
  413. package/drivers/ios/WebDriverAgent/test/unit/wda-cleanup.spec.ts +136 -0
  414. package/drivers/ios/WebDriverAgent/test/unit/webdriveragent.spec.ts +562 -0
  415. package/drivers/ios/WebDriverAgent/tsconfig.json +6 -8
  416. package/drivers/ios/devicelab-ios-agent/README.md +51 -0
  417. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
  418. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/Info.plist +0 -0
  419. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgent.app/PkgInfo +1 -0
  420. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
  421. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
  422. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
  423. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
  424. package/drivers/ios/devicelab-ios-agent/device/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
  425. package/drivers/ios/devicelab-ios-agent/device/agent.xctestrun +120 -0
  426. package/drivers/ios/devicelab-ios-agent/device/manifest.json +18 -0
  427. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub/StubApp.swift +10 -0
  428. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.pbxproj +394 -0
  429. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  430. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStub.xcodeproj/xcshareddata/xcschemes/SigningStubUITests.xcscheme +100 -0
  431. package/drivers/ios/devicelab-ios-agent/signing-stub/SigningStubUITests/StubUITests.swift +8 -0
  432. package/drivers/ios/devicelab-ios-agent/signing-stub/project.yml +64 -0
  433. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/DevicelabIOSAgent +0 -0
  434. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/Info.plist +0 -0
  435. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgent.app/PkgInfo +1 -0
  436. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/DevicelabIOSAgentUITests-Runner +0 -0
  437. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Info.plist +0 -0
  438. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreGraphics.swiftoverlay +3 -0
  439. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreImage.swiftoverlay +3 -0
  440. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/CoreTransferable.swiftoverlay +3 -0
  441. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/Foundation.swiftoverlay +3 -0
  442. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftcrossimport/UIKit.swiftoverlay +3 -0
  443. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  444. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1431 -0
  445. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  446. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Modules/Testing.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1431 -0
  447. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/Testing +0 -0
  448. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/_CodeSignature/CodeResources +212 -0
  449. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/Testing.framework/version.plist +18 -0
  450. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/Info.plist +0 -0
  451. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/XCTAutomationSupport +0 -0
  452. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/_CodeSignature/CodeResources +113 -0
  453. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTAutomationSupport.framework/version.plist +18 -0
  454. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCAbstractTest.h +140 -0
  455. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTActivity.h +33 -0
  456. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment+XCUIScreenshot.h +32 -0
  457. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachment.h +219 -0
  458. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTAttachmentLifetime.h +28 -0
  459. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTContext.h +65 -0
  460. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTDarwinNotificationExpectation.h +60 -0
  461. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTExpectedFailure.h +134 -0
  462. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTIssue.h +143 -0
  463. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTKVOExpectation.h +110 -0
  464. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMeasureOptions.h +57 -0
  465. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric+UIAutomation.h +77 -0
  466. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTMetric.h +390 -0
  467. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSNotificationExpectation.h +92 -0
  468. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTNSPredicateExpectation.h +74 -0
  469. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTSourceCodeContext.h +109 -0
  470. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTWaiter.h +304 -0
  471. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.apinotes +182 -0
  472. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTest.h +41 -0
  473. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertions.h +277 -0
  474. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestAssertionsImpl.h +503 -0
  475. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+AsynchronousTesting.h +276 -0
  476. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIApplicationLaunchTesting.h +36 -0
  477. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase+XCUIInterruptionMonitoring.h +95 -0
  478. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCase.h +443 -0
  479. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCaseRun.h +50 -0
  480. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestCore.h +42 -0
  481. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestDefines.h +135 -0
  482. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestErrors.h +33 -0
  483. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestExpectation.h +73 -0
  484. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestLog.h +56 -0
  485. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservation.h +195 -0
  486. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObservationCenter.h +60 -0
  487. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestObserver.h +61 -0
  488. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestProbe.h +55 -0
  489. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestRun.h +223 -0
  490. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkipping.h +41 -0
  491. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSkippingImpl.h +46 -0
  492. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuite.h +92 -0
  493. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCTestSuiteRun.h +50 -0
  494. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditIssue.h +9 -0
  495. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAccessibilityAuditTypes.h +9 -0
  496. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIApplication.h +9 -0
  497. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomation.h +9 -0
  498. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIAutomationDefines.h +9 -0
  499. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUICoordinate.h +9 -0
  500. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDevice.h +9 -0
  501. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceButton.h +9 -0
  502. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIDeviceHandGesture.h +9 -0
  503. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElement.h +9 -0
  504. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementAttributes.h +9 -0
  505. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementQuery.h +9 -0
  506. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypeQueryProvider.h +9 -0
  507. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIElementTypes.h +9 -0
  508. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIKeyboardKeys.h +9 -0
  509. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUILocation.h +9 -0
  510. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIProtectedResource.h +9 -0
  511. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIRemote.h +9 -0
  512. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreen.h +9 -0
  513. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshot.h +9 -0
  514. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUIScreenshotProviding.h +9 -0
  515. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISiriService.h +9 -0
  516. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Headers/XCUISystem.h +9 -0
  517. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Info.plist +0 -0
  518. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/Modules/module.modulemap +30 -0
  519. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/XCTest +0 -0
  520. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/_CodeSignature/CodeResources +817 -0
  521. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTest.framework/version.plist +18 -0
  522. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/Info.plist +0 -0
  523. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/XCTestCore +0 -0
  524. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/_CodeSignature/CodeResources +113 -0
  525. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestCore.framework/version.plist +18 -0
  526. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/Info.plist +0 -0
  527. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/XCTestSupport +0 -0
  528. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/_CodeSignature/CodeResources +113 -0
  529. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCTestSupport.framework/version.plist +18 -0
  530. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditIssue.h +33 -0
  531. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAccessibilityAuditTypes.h +36 -0
  532. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIApplication.h +154 -0
  533. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.apinotes +88 -0
  534. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomation.h +30 -0
  535. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIAutomationDefines.h +62 -0
  536. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUICoordinate.h +99 -0
  537. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDevice.h +133 -0
  538. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceButton.h +40 -0
  539. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIDeviceHandGesture.h +24 -0
  540. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElement.h +366 -0
  541. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementAttributes.h +106 -0
  542. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementQuery.h +81 -0
  543. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypeQueryProvider.h +109 -0
  544. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIElementTypes.h +95 -0
  545. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIKeyboardKeys.h +68 -0
  546. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUILocation.h +35 -0
  547. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIProtectedResource.h +52 -0
  548. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIRemote.h +77 -0
  549. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreen.h +36 -0
  550. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshot.h +42 -0
  551. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIScreenshotProviding.h +26 -0
  552. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISiriService.h +45 -0
  553. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUISystem.h +26 -0
  554. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverOutput.h +26 -0
  555. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverService.h +72 -0
  556. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Headers/XCUIVoiceOverServiceError.h +25 -0
  557. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Info.plist +0 -0
  558. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  559. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +30 -0
  560. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  561. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/XCUIAutomation.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +30 -0
  562. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/Modules/module.modulemap +4 -0
  563. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/XCUIAutomation +0 -0
  564. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/_CodeSignature/CodeResources +465 -0
  565. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUIAutomation.framework/version.plist +18 -0
  566. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/Info.plist +0 -0
  567. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/XCUnit +0 -0
  568. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/_CodeSignature/CodeResources +113 -0
  569. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/XCUnit.framework/version.plist +18 -0
  570. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/Info.plist +0 -0
  571. 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
  572. 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
  573. 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
  574. 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
  575. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_CodeSignature/CodeResources +157 -0
  576. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/_Testing_Foundation +0 -0
  577. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/_Testing_Foundation.framework/version.plist +18 -0
  578. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestBundleInject.dylib +0 -0
  579. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/libXCTestSwiftSupport.dylib +0 -0
  580. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Frameworks/lib_TestingInterop.dylib +0 -0
  581. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/Info.plist +302 -0
  582. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PkgInfo +1 -0
  583. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/DevicelabIOSAgentUITests +0 -0
  584. package/drivers/ios/devicelab-ios-agent/simulator/DevicelabIOSAgentUITests-Runner.app/PlugIns/DevicelabIOSAgentUITests.xctest/Info.plist +0 -0
  585. package/drivers/ios/devicelab-ios-agent/simulator/agent.xctestrun +140 -0
  586. package/drivers/ios/devicelab-ios-agent/simulator/manifest.json +162 -0
  587. package/package.json +1 -1
  588. package/drivers/ios/WebDriverAgent/.mocharc.js +0 -4
  589. package/drivers/ios/WebDriverAgent/.releaserc +0 -45
  590. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSString-XCTAdditions.h +0 -11
  591. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSValue-XCTestAdditions.h +0 -11
  592. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIGestureRecognizer-RecordingAdditions.h +0 -11
  593. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UILongPressGestureRecognizer-RecordingAdditions.h +0 -11
  594. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPanGestureRecognizer-RecordingAdditions.h +0 -11
  595. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPinchGestureRecognizer-RecordingAdditions.h +0 -11
  596. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UISwipeGestureRecognizer-RecordingAdditions.h +0 -11
  597. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UITapGestureRecognizer-RecordingAdditions.h +0 -11
  598. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCActivityRecord.h +0 -39
  599. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor.h +0 -44
  600. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor_iOS.h +0 -18
  601. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDeviceEvent.h +0 -27
  602. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCEventGenerator.h +0 -73
  603. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyMappingPath.h +0 -36
  604. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardInputSolver.h +0 -41
  605. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardKeyMap.h +0 -101
  606. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardLayout.h +0 -35
  607. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeRecording.h +0 -42
  608. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNode.h +0 -84
  609. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNodeEnumerator.h +0 -18
  610. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicationRecord.h +0 -29
  611. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicatorHolder.h +0 -14
  612. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAXClient-Protocol.h +0 -14
  613. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity-Protocol.h +0 -16
  614. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity.h +0 -23
  615. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAutomationTarget-Protocol.h +0 -12
  616. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTDarwinNotificationExpectation.h +0 -23
  617. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTKVOExpectation.h +0 -28
  618. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetric.h +0 -29
  619. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSNotificationExpectation.h +0 -27
  620. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectation.h +0 -24
  621. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession.h +0 -21
  622. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSession.h +0 -25
  623. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSessionDelegate-Protocol.h +0 -17
  624. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTUIApplicationMonitor-Protocol.h +0 -17
  625. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegate-Protocol.h +0 -16
  626. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegatePrivate-Protocol.h +0 -12
  627. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager.h +0 -28
  628. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseSuite.h +0 -19
  629. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContext.h +0 -26
  630. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContextScope.h +0 -19
  631. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriverInterface-Protocol.h +0 -14
  632. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationWaiter.h +0 -17
  633. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestLog.h +0 -32
  634. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_IDEInterface-Protocol.h +0 -36
  635. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_ManagerInterface-Protocol.h +0 -54
  636. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_TestsInterface-Protocol.h +0 -12
  637. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestMisuseObserver.h +0 -37
  638. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservation-Protocol.h +0 -20
  639. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObserver.h +0 -20
  640. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestProbe.h +0 -13
  641. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuite.h +0 -48
  642. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuiteRun.h +0 -28
  643. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestWaiter.h +0 -14
  644. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAsynchronousHandlerWrapper.h +0 -19
  645. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementHitPointCoordinate.h +0 -24
  646. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinder.h +0 -65
  647. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinderMatch.h +0 -25
  648. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderTimingMessage.h +0 -20
  649. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderUtilities.h +0 -45
  650. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCInternalTestRun.h +0 -43
  651. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCKVOExpectationImplementation.h +0 -32
  652. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTDarwinNotificationExpectationImplementation.h +0 -27
  653. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSNotificationExpectationImplementation.h +0 -30
  654. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSPredicateExpectationImplementation.h +0 -29
  655. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTWaiterImpl.h +0 -41
  656. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseImplementation.h +0 -70
  657. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseInterruptionException.h +0 -13
  658. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestExpectationImplementation.h +0 -40
  659. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestImplementation.h +0 -14
  660. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationCenterImplementation.h +0 -19
  661. package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestSuiteImplementation.h +0 -23
  662. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +0 -1220
  663. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +0 -8812
  664. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.h +0 -1036
  665. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m +0 -5868
  666. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.h +0 -12
  667. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.m +0 -88
  668. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.h +0 -56
  669. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.m +0 -106
  670. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.h +0 -107
  671. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.m +0 -2238
  672. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPLogging.h +0 -122
  673. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.h +0 -53
  674. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.m +0 -357
  675. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPResponse.h +0 -149
  676. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.h +0 -126
  677. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.m +0 -372
  678. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/LICENSE +0 -18
  679. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h +0 -13
  680. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.m +0 -83
  681. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h +0 -9
  682. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +0 -40
  683. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h +0 -13
  684. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.m +0 -84
  685. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/LICENSE +0 -19
  686. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.h +0 -18
  687. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.m +0 -11
  688. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.h +0 -16
  689. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.m +0 -50
  690. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.h +0 -20
  691. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.m +0 -66
  692. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.h +0 -5
  693. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.m +0 -142
  694. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.h +0 -55
  695. package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.m +0 -303
  696. package/drivers/ios/WebDriverAgent/eslint.config.mjs +0 -13
  697. package/drivers/ios/WebDriverAgent/index.ts +0 -7
  698. package/drivers/ios/WebDriverAgent/lib/utils.ts +0 -342
  699. package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e-specs.ts +0 -119
  700. package/drivers/ios/WebDriverAgent/test/unit/utils-specs.ts +0 -157
  701. package/drivers/ios/WebDriverAgent/test/unit/webdriveragent-specs.ts +0 -446
@@ -13,7 +13,7 @@
13
13
  #import "XCUIApplication+FBHelpers.h"
14
14
  #import "XCUIElement+FBUtilities.h"
15
15
 
16
- # if !TARGET_OS_TV
16
+ # if !TARGET_OS_TV && !TARGET_OS_WATCH
17
17
 
18
18
  @implementation XCUIDevice (FBRotation)
19
19
 
@@ -30,19 +30,59 @@
30
30
  if (keysForRotationObj.count == 0) {
31
31
  return NO;
32
32
  }
33
- NSInteger orientation = keysForRotationObj.firstObject.integerValue;
33
+ UIDeviceOrientation orientation = (UIDeviceOrientation)keysForRotationObj.firstObject.integerValue;
34
34
  XCUIApplication *application = XCUIApplication.fb_activeApplication;
35
35
  [XCUIDevice sharedDevice].orientation = orientation;
36
36
  return [self waitUntilInterfaceIsAtOrientation:orientation application:application];
37
37
  }
38
38
 
39
- - (BOOL)waitUntilInterfaceIsAtOrientation:(NSInteger)orientation application:(XCUIApplication *)application
39
+ static UIInterfaceOrientation FBInterfaceOrientationFromDeviceOrientation(UIDeviceOrientation orientation)
40
+ {
41
+ switch (orientation) {
42
+ case UIDeviceOrientationPortrait:
43
+ return UIInterfaceOrientationPortrait;
44
+ case UIDeviceOrientationPortraitUpsideDown:
45
+ return UIInterfaceOrientationPortraitUpsideDown;
46
+ case UIDeviceOrientationLandscapeLeft:
47
+ return UIInterfaceOrientationLandscapeRight;
48
+ case UIDeviceOrientationLandscapeRight:
49
+ return UIInterfaceOrientationLandscapeLeft;
50
+ case UIDeviceOrientationUnknown:
51
+ case UIDeviceOrientationFaceUp:
52
+ case UIDeviceOrientationFaceDown:
53
+ default:
54
+ return UIInterfaceOrientationUnknown;
55
+ }
56
+ }
57
+
58
+ - (BOOL)waitUntilInterfaceIsAtOrientation:(UIDeviceOrientation)orientation application:(XCUIApplication *)application
40
59
  {
41
60
  // Tapping elements immediately after rotation may fail due to way UIKit is handling touches.
42
61
  // We should wait till UI cools off, before continuing
43
- [application fb_waitUntilStableWithTimeout:FBConfiguration.animationCoolOffTimeout];
62
+ [application fb_waitUntilStableWithTimeout:FBConfiguration.sharedInstance.animationCoolOffTimeout];
44
63
 
45
- return application.interfaceOrientation == orientation;
64
+ return application.interfaceOrientation == FBInterfaceOrientationFromDeviceOrientation(orientation);
65
+ }
66
+
67
+ - (NSString *)fb_deviceOrientation
68
+ {
69
+ switch (self.orientation) {
70
+ case UIDeviceOrientationPortrait:
71
+ return @"UIDeviceOrientationPortrait";
72
+ case UIDeviceOrientationPortraitUpsideDown:
73
+ return @"UIDeviceOrientationPortraitUpsideDown";
74
+ case UIDeviceOrientationLandscapeLeft:
75
+ return @"UIDeviceOrientationLandscapeLeft";
76
+ case UIDeviceOrientationLandscapeRight:
77
+ return @"UIDeviceOrientationLandscapeRight";
78
+ case UIDeviceOrientationFaceUp:
79
+ return @"UIDeviceOrientationFaceUp";
80
+ case UIDeviceOrientationFaceDown:
81
+ return @"UIDeviceOrientationFaceDown";
82
+ case UIDeviceOrientationUnknown:
83
+ default:
84
+ return @"UIDeviceOrientationUnknown";
85
+ }
46
86
  }
47
87
 
48
88
  - (NSDictionary *)fb_rotationMapping
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Copyright (c) 2015-present, Facebook, Inc.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
9
+ #import <XCTest/XCTest.h>
10
+
11
+ NS_ASSUME_NONNULL_BEGIN
12
+
13
+ @interface XCUIDevice (FBVoiceOver)
14
+
15
+ /**
16
+ Whether VoiceOver control APIs are available in the current OS runtime.
17
+
18
+ @return YES if the VoiceOver service is exposed by XCUIDevice
19
+ */
20
+ - (BOOL)fb_isVoiceOverServiceAvailable;
21
+
22
+ /**
23
+ Enable VoiceOver. Only works since iOS 27 runtime.
24
+
25
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
26
+ @return YES if VoiceOver has been successfully enabled
27
+ */
28
+ - (BOOL)fb_enableVoiceOver:(NSError **)error;
29
+
30
+ /**
31
+ Disable VoiceOver. Only works since iOS 27 runtime.
32
+
33
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
34
+ @return YES if VoiceOver has been successfully disabled
35
+ */
36
+ - (BOOL)fb_disableVoiceOver:(NSError **)error;
37
+
38
+ /**
39
+ Whether VoiceOver is currently enabled. Only works since iOS 27 runtime.
40
+
41
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
42
+ @return YES if VoiceOver is enabled
43
+ */
44
+ - (BOOL)fb_isVoiceOverEnabled:(NSError **)error;
45
+
46
+ /**
47
+ Move VoiceOver focus and return speech for the newly focused element.
48
+ Only works since iOS 27 runtime.
49
+
50
+ @param direction One of: forward, backward, in (iOS only), out (iOS only)
51
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
52
+ @return The spoken utterance or nil in case of failure
53
+ */
54
+ - (nullable NSString *)fb_voiceOverMove:(NSString *)direction error:(NSError **)error;
55
+
56
+ /**
57
+ Return the speech for the currently focused element. Only works since iOS 27 runtime.
58
+
59
+ @param error If there is an error, upon return contains an NSError object that describes the problem.
60
+ @return The spoken utterance or nil in case of failure
61
+ */
62
+ - (nullable NSString *)fb_voiceOverCurrentSpeech:(NSError **)error;
63
+
64
+ @end
65
+
66
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Copyright (c) 2015-present, Facebook, Inc.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
9
+ #import "XCUIDevice+FBVoiceOver.h"
10
+
11
+ #import "FBErrorBuilder.h"
12
+
13
+ static NSString *const FBVoiceOverSDKUnsupportedError =
14
+ @"The current OS runtime does not support VoiceOver control. This API requires an iOS 27+ runtime";
15
+
16
+ static BOOL FBVoiceOverBuildSDKUnsupportedError(NSError **error)
17
+ {
18
+ return [[[FBErrorBuilder builder]
19
+ withDescription:FBVoiceOverSDKUnsupportedError]
20
+ buildError:error];
21
+ }
22
+
23
+ static BOOL FBIsVoiceOverServiceAvailable(void)
24
+ {
25
+ static BOOL isAvailable = NO;
26
+ static dispatch_once_t onceToken;
27
+ dispatch_once(&onceToken, ^{
28
+ isAvailable = [XCUIDevice.sharedDevice respondsToSelector:NSSelectorFromString(@"voiceOverService")];
29
+ });
30
+ return isAvailable;
31
+ }
32
+
33
+ static id FBVoiceOverService(NSError **error)
34
+ {
35
+ if (!FBIsVoiceOverServiceAvailable()) {
36
+ FBVoiceOverBuildSDKUnsupportedError(error);
37
+ return nil;
38
+ }
39
+ return [XCUIDevice.sharedDevice valueForKey:@"voiceOverService"];
40
+ }
41
+
42
+ static BOOL FBInvokeVoiceOverBoolMethod(id voiceOverService,
43
+ SEL selector,
44
+ NSError **error)
45
+ {
46
+ if (![voiceOverService respondsToSelector:selector]) {
47
+ return FBVoiceOverBuildSDKUnsupportedError(error);
48
+ }
49
+
50
+ NSMethodSignature *signature = [voiceOverService methodSignatureForSelector:selector];
51
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
52
+ [invocation setSelector:selector];
53
+ [invocation setTarget:voiceOverService];
54
+ NSError *invokeError = nil;
55
+ [invocation setArgument:&invokeError atIndex:2];
56
+ [invocation invoke];
57
+ if (nil != invokeError) {
58
+ if (error) {
59
+ *error = invokeError;
60
+ }
61
+ return NO;
62
+ }
63
+
64
+ BOOL result = NO;
65
+ [invocation getReturnValue:&result];
66
+ return result;
67
+ }
68
+
69
+ static id FBInvokeVoiceOverOutputMethod(id voiceOverService,
70
+ SEL selector,
71
+ NSError **error)
72
+ {
73
+ if (![voiceOverService respondsToSelector:selector]) {
74
+ FBVoiceOverBuildSDKUnsupportedError(error);
75
+ return nil;
76
+ }
77
+
78
+ NSMethodSignature *signature = [voiceOverService methodSignatureForSelector:selector];
79
+ NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
80
+ [invocation setSelector:selector];
81
+ [invocation setTarget:voiceOverService];
82
+ NSError *invokeError = nil;
83
+ [invocation setArgument:&invokeError atIndex:2];
84
+ [invocation invoke];
85
+ if (nil != invokeError) {
86
+ if (error) {
87
+ *error = invokeError;
88
+ }
89
+ return nil;
90
+ }
91
+
92
+ id __unsafe_unretained output = nil;
93
+ [invocation getReturnValue:&output];
94
+ return output;
95
+ }
96
+
97
+ static NSString *FBUtteranceFromVoiceOverOutput(id output, NSError **error)
98
+ {
99
+ if (nil == output) {
100
+ return nil;
101
+ }
102
+
103
+ if (![output respondsToSelector:NSSelectorFromString(@"utterance")]) {
104
+ [[[FBErrorBuilder builder]
105
+ withDescription:@"VoiceOver output does not provide an utterance"]
106
+ buildError:error];
107
+ return nil;
108
+ }
109
+
110
+ id utterance = [output valueForKey:@"utterance"];
111
+ return [utterance isKindOfClass:NSString.class] ? utterance : nil;
112
+ }
113
+
114
+ static NSString *FBVoiceOverSpeechFromSelector(SEL selector, NSError **error)
115
+ {
116
+ id service = FBVoiceOverService(error);
117
+ if (nil == service) {
118
+ return nil;
119
+ }
120
+
121
+ id output = FBInvokeVoiceOverOutputMethod(service, selector, error);
122
+ if (nil != error && nil != *error) {
123
+ return nil;
124
+ }
125
+ return FBUtteranceFromVoiceOverOutput(output, error);
126
+ }
127
+
128
+ static NSDictionary<NSString *, NSString *> *FBVoiceOverMoveSelectors(void)
129
+ {
130
+ static NSDictionary<NSString *, NSString *> *selectors = nil;
131
+ static dispatch_once_t onceToken;
132
+ dispatch_once(&onceToken, ^{
133
+ NSMutableDictionary<NSString *, NSString *> *mapping = [@{
134
+ @"forward": @"moveForwardAndReturnError:",
135
+ @"backward": @"moveBackwardAndReturnError:",
136
+ } mutableCopy];
137
+ #if TARGET_OS_IOS
138
+ mapping[@"in"] = @"moveInAndReturnError:";
139
+ mapping[@"out"] = @"moveOutAndReturnError:";
140
+ #endif
141
+ selectors = mapping.copy;
142
+ });
143
+ return selectors;
144
+ }
145
+
146
+ @implementation XCUIDevice (FBVoiceOver)
147
+
148
+ - (BOOL)fb_isVoiceOverServiceAvailable
149
+ {
150
+ return FBIsVoiceOverServiceAvailable();
151
+ }
152
+
153
+ - (BOOL)fb_enableVoiceOver:(NSError **)error
154
+ {
155
+ id service = FBVoiceOverService(error);
156
+ if (nil == service) {
157
+ return NO;
158
+ }
159
+ return FBInvokeVoiceOverBoolMethod(service,
160
+ NSSelectorFromString(@"enableAndReturnError:"),
161
+ error);
162
+ }
163
+
164
+ - (BOOL)fb_disableVoiceOver:(NSError **)error
165
+ {
166
+ id service = FBVoiceOverService(error);
167
+ if (nil == service) {
168
+ return NO;
169
+ }
170
+ return FBInvokeVoiceOverBoolMethod(service,
171
+ NSSelectorFromString(@"disableAndReturnError:"),
172
+ error);
173
+ }
174
+
175
+ - (BOOL)fb_isVoiceOverEnabled:(NSError **)error
176
+ {
177
+ id service = FBVoiceOverService(error);
178
+ if (nil == service) {
179
+ return NO;
180
+ }
181
+
182
+ if (![service respondsToSelector:NSSelectorFromString(@"isEnabled")] &&
183
+ ![service respondsToSelector:NSSelectorFromString(@"enabled")]) {
184
+ return FBVoiceOverBuildSDKUnsupportedError(error);
185
+ }
186
+
187
+ return [[service valueForKey:@"enabled"] boolValue];
188
+ }
189
+
190
+ - (nullable NSString *)fb_voiceOverMove:(NSString *)direction error:(NSError **)error
191
+ {
192
+ if (![direction isKindOfClass:NSString.class] || 0 == direction.length) {
193
+ [[[FBErrorBuilder builder]
194
+ withDescription:@"VoiceOver move direction must be a non-empty string"]
195
+ buildError:error];
196
+ return nil;
197
+ }
198
+
199
+ NSString *normalizedDirection = direction.lowercaseString;
200
+ NSString *selectorName = FBVoiceOverMoveSelectors()[normalizedDirection];
201
+ if (nil == selectorName) {
202
+ NSArray *supportedDirections = [FBVoiceOverMoveSelectors().allKeys sortedArrayUsingSelector:@selector(compare:)];
203
+ [[[FBErrorBuilder builder]
204
+ withDescriptionFormat:@"Unsupported VoiceOver move direction '%@'. Supported directions: %@",
205
+ direction, supportedDirections]
206
+ buildError:error];
207
+ return nil;
208
+ }
209
+
210
+ return FBVoiceOverSpeechFromSelector(NSSelectorFromString(selectorName), error);
211
+ }
212
+
213
+ - (nullable NSString *)fb_voiceOverCurrentSpeech:(NSError **)error
214
+ {
215
+ return FBVoiceOverSpeechFromSelector(NSSelectorFromString(@"currentSpeechAndReturnError:"), error);
216
+ }
217
+
218
+ @end
@@ -11,6 +11,7 @@
11
11
  #import "FBClassChainQueryParser.h"
12
12
  #import "FBXCodeCompatibility.h"
13
13
  #import "FBExceptions.h"
14
+ #import "XCUIElement+FBUtilities.h"
14
15
 
15
16
  @implementation XCUIElement (FBClassChain)
16
17
 
@@ -22,7 +23,39 @@
22
23
  @throw [NSException exceptionWithName:FBClassChainQueryParseException reason:error.localizedDescription userInfo:error.userInfo];
23
24
  return nil;
24
25
  }
25
- NSMutableArray<FBClassChainItem *> *lookupChain = parsedChain.elements.mutableCopy;
26
+ // The snapshot-walk strategy below only pays off when an intermediate
27
+ // (non-final) segment carries an explicit position: that is the only
28
+ // shape where the query-based strategy has to resolve a live element
29
+ // mid-chain - and pay an accessibility round trip - just to keep building
30
+ // the next segment's query. Every other shape (including the common case
31
+ // of zero or one position, on the final segment only) already resolves in
32
+ // a single round trip with the query-based strategy, while the snapshot
33
+ // walk always pays for one full upfront subtree snapshot regardless of
34
+ // whether it is actually needed - a bad trade in deep/large trees. See
35
+ // https://github.com/appium/WebDriverAgent/pull/1194#issuecomment-5156633352
36
+ NSArray<FBClassChainItem *> *chainItems = parsedChain.elements;
37
+ return [self.class fb_hasIntermediatePosition:chainItems]
38
+ ? [self fb_snapshotDescendantsMatchingChainItems:chainItems shouldReturnAfterFirstMatch:shouldReturnAfterFirstMatch]
39
+ : [self fb_queryDescendantsMatchingChainItems:chainItems shouldReturnAfterFirstMatch:shouldReturnAfterFirstMatch];
40
+ }
41
+
42
+ + (BOOL)fb_hasIntermediatePosition:(NSArray<FBClassChainItem *> *)chainItems
43
+ {
44
+ for (NSUInteger i = 0; i + 1 < chainItems.count; i++) {
45
+ if (nil != chainItems[i].position) {
46
+ return YES;
47
+ }
48
+ }
49
+ return NO;
50
+ }
51
+
52
+ #pragma mark - Query-based strategy
53
+ #pragma mark (single accessibility round trip; used whenever no intermediate
54
+ #pragma mark segment carries an explicit position)
55
+
56
+ - (NSArray<XCUIElement *> *)fb_queryDescendantsMatchingChainItems:(NSArray<FBClassChainItem *> *)chainItems shouldReturnAfterFirstMatch:(BOOL)shouldReturnAfterFirstMatch
57
+ {
58
+ NSMutableArray<FBClassChainItem *> *lookupChain = chainItems.mutableCopy;
26
59
  FBClassChainItem *chainItem = lookupChain.firstObject;
27
60
  XCUIElement *currentRoot = self;
28
61
  XCUIElementQuery *query = [currentRoot fb_queryWithChainItem:chainItem query:nil];
@@ -30,8 +63,6 @@
30
63
  while (lookupChain.count > 0) {
31
64
  BOOL isRootChanged = NO;
32
65
  if (nil != chainItem.position) {
33
- // It is necessary to resolve the query if intermediate element index is not zero or one,
34
- // because predicates don't support search by indexes
35
66
  NSArray<XCUIElement *> *currentRootMatch = [self.class fb_matchingElementsWithItem:chainItem
36
67
  query:query
37
68
  shouldReturnAfterFirstMatch:nil];
@@ -95,4 +126,114 @@
95
126
  return @[];
96
127
  }
97
128
 
129
+ #pragma mark - Snapshot-based strategy
130
+ #pragma mark (single upfront snapshot walked in memory; used when an
131
+ #pragma mark intermediate segment has an explicit position, avoiding one
132
+ #pragma mark extra accessibility round trip per such segment)
133
+
134
+ - (NSArray<XCUIElement *> *)fb_snapshotDescendantsMatchingChainItems:(NSArray<FBClassChainItem *> *)chainItems shouldReturnAfterFirstMatch:(BOOL)shouldReturnAfterFirstMatch
135
+ {
136
+ NSMutableArray<FBClassChainItem *> *lookupChain = chainItems.mutableCopy;
137
+ // self.lastSnapshot may be stale leftover from an unrelated earlier command.
138
+ NSArray<id<FBXCElementSnapshot>> *currentRoots = @[self.fb_cachedSnapshot ?: [self fb_customSnapshot]];
139
+ FBClassChainItem *chainItem = lookupChain.firstObject;
140
+ NSArray<id<FBXCElementSnapshot>> *candidates = [self.class fb_snapshotsMatchingItem:chainItem inRoots:currentRoots];
141
+ [lookupChain removeObjectAtIndex:0];
142
+ while (lookupChain.count > 0) {
143
+ if (nil != chainItem.position) {
144
+ // An explicit position always narrows the match set down to a single
145
+ // element, which becomes the sole root for the rest of the chain, so
146
+ // it has to be resolved now instead of being folded into `candidates`
147
+ // like an unindexed segment would be
148
+ NSArray<id<FBXCElementSnapshot>> *currentRootMatch = [self.class fb_matchingSnapshotsWithItem:chainItem
149
+ candidates:candidates
150
+ shouldReturnAfterFirstMatch:nil];
151
+ if (0 == currentRootMatch.count) {
152
+ return @[];
153
+ }
154
+ currentRoots = @[(id<FBXCElementSnapshot> _Nonnull)currentRootMatch.firstObject];
155
+ } else {
156
+ currentRoots = candidates;
157
+ }
158
+ chainItem = lookupChain.firstObject;
159
+ candidates = [self.class fb_snapshotsMatchingItem:chainItem inRoots:currentRoots];
160
+ [lookupChain removeObjectAtIndex:0];
161
+ }
162
+ NSArray<id<FBXCElementSnapshot>> *matchedSnapshots = [self.class fb_matchingSnapshotsWithItem:chainItem
163
+ candidates:candidates
164
+ shouldReturnAfterFirstMatch:@(shouldReturnAfterFirstMatch)];
165
+ return [self fb_filterDescendantsWithSnapshots:matchedSnapshots onlyChildren:NO];
166
+ }
167
+
168
+ + (NSArray<id<FBXCElementSnapshot>> *)fb_snapshotsMatchingItem:(FBClassChainItem *)item inRoots:(NSArray<id<FBXCElementSnapshot>> *)roots
169
+ {
170
+ NSMutableArray<id<FBXCElementSnapshot>> *typeMatches = [NSMutableArray array];
171
+ for (id<FBXCElementSnapshot> root in roots) {
172
+ if (item.isDescendant) {
173
+ // descendantsByFilteringWithBlock: includes the receiver itself if it
174
+ // matches the filter, unlike XCUIElementQuery's descendantsMatchingType:,
175
+ // so the root has to be excluded explicitly here.
176
+ [typeMatches addObjectsFromArray:[root descendantsByFilteringWithBlock:^BOOL(id<FBXCElementSnapshot> snapshot) {
177
+ return snapshot != root && (item.type == XCUIElementTypeAny || snapshot.elementType == item.type);
178
+ }]];
179
+ } else {
180
+ for (id<FBXCElementSnapshot> child in root.children) {
181
+ if (item.type == XCUIElementTypeAny || child.elementType == item.type) {
182
+ [typeMatches addObject:child];
183
+ }
184
+ }
185
+ }
186
+ }
187
+ if (roots.count > 1) {
188
+ // Overlapping roots (e.g. a previous segment matched both an ancestor
189
+ // and its own descendant) can otherwise yield the same snapshot twice,
190
+ // which would skew positional selection ([2], [-1], etc.) compared to
191
+ // the XCUIElementQuery-based matching this replaced, which always
192
+ // operated on a de-duplicated element set.
193
+ NSMutableArray<id<FBXCElementSnapshot>> *dedupedMatches = [NSMutableArray arrayWithCapacity:typeMatches.count];
194
+ NSHashTable<id<FBXCElementSnapshot>> *seenMatches = [NSHashTable hashTableWithOptions:NSHashTableObjectPointerPersonality];
195
+ for (id<FBXCElementSnapshot> match in typeMatches) {
196
+ if (![seenMatches containsObject:match]) {
197
+ [seenMatches addObject:match];
198
+ [dedupedMatches addObject:match];
199
+ }
200
+ }
201
+ typeMatches = dedupedMatches;
202
+ }
203
+ for (FBAbstractPredicateItem *predicateItem in item.predicates) {
204
+ if ([predicateItem isKindOfClass:FBSelfPredicateItem.class]) {
205
+ typeMatches = [[typeMatches filteredArrayUsingPredicate:predicateItem.value] mutableCopy];
206
+ } else if ([predicateItem isKindOfClass:FBDescendantPredicateItem.class]) {
207
+ NSMutableArray<id<FBXCElementSnapshot>> *containingMatches = [NSMutableArray array];
208
+ for (id<FBXCElementSnapshot> candidate in typeMatches) {
209
+ NSArray<id<FBXCElementSnapshot>> *matchingDescendants = [candidate descendantsByFilteringWithBlock:^BOOL(id<FBXCElementSnapshot> descendant) {
210
+ return descendant != candidate && [predicateItem.value evaluateWithObject:descendant];
211
+ }];
212
+ if (matchingDescendants.count > 0) {
213
+ [containingMatches addObject:candidate];
214
+ }
215
+ }
216
+ typeMatches = containingMatches;
217
+ }
218
+ }
219
+ return typeMatches.copy;
220
+ }
221
+
222
+ + (NSArray<id<FBXCElementSnapshot>> *)fb_matchingSnapshotsWithItem:(FBClassChainItem *)item candidates:(NSArray<id<FBXCElementSnapshot>> *)candidates shouldReturnAfterFirstMatch:(nullable NSNumber *)shouldReturnAfterFirstMatch
223
+ {
224
+ if (1 == item.position.integerValue || (0 == item.position.integerValue && shouldReturnAfterFirstMatch.boolValue)) {
225
+ id<FBXCElementSnapshot> result = candidates.firstObject;
226
+ return result ? @[result] : @[];
227
+ }
228
+ if (0 == item.position.integerValue) {
229
+ return candidates;
230
+ }
231
+ if (candidates.count >= (NSUInteger)ABS(item.position.integerValue)) {
232
+ return item.position.integerValue > 0
233
+ ? @[[candidates objectAtIndex:item.position.integerValue - 1]]
234
+ : @[[candidates objectAtIndex:candidates.count + item.position.integerValue]];
235
+ }
236
+ return @[];
237
+ }
238
+
98
239
  @end
@@ -109,7 +109,7 @@
109
109
  id<FBXCElementSnapshot> snapshot = matchingSnapshots.firstObject;
110
110
  matchingSnapshots = @[snapshot];
111
111
  }
112
- XCUIElement *scopeRoot = FBConfiguration.limitXpathContextScope ? self : self.application;
112
+ XCUIElement *scopeRoot = FBConfiguration.sharedInstance.limitXpathContextScope ? self : self.application;
113
113
  return [scopeRoot fb_filterDescendantsWithSnapshots:matchingSnapshots
114
114
  onlyChildren:NO];
115
115
  }
@@ -11,6 +11,7 @@
11
11
  #if !TARGET_OS_TV
12
12
 
13
13
  #import "FBErrorBuilder.h"
14
+ #import "FBMathUtils.h"
14
15
  #import "XCUICoordinate.h"
15
16
  #import "XCUIDevice.h"
16
17
 
@@ -36,8 +37,10 @@
36
37
  } else {
37
38
  CGVector offset = CGVectorMake(relativeCoordinate.CGPointValue.x,
38
39
  relativeCoordinate.CGPointValue.y);
39
- XCUICoordinate *hitPoint = [[self coordinateWithNormalizedOffset:CGVectorMake(0, 0)]
40
- coordinateWithOffset:offset];
40
+ XCUICoordinate *hitPoint = FBCoordinateWithAnchorOffset(self, CGVectorMake(0, 0), offset, error);
41
+ if (nil == hitPoint) {
42
+ return NO;
43
+ }
41
44
  if (nil == pressure || nil == duration) {
42
45
  [hitPoint forcePress];
43
46
  } else {
@@ -16,7 +16,7 @@
16
16
  #import "XCUIElement+FBCaching.h"
17
17
  #import "XCUIElement+FBResolve.h"
18
18
 
19
- #if !TARGET_OS_TV
19
+ #if !TARGET_OS_TV && !TARGET_OS_WATCH
20
20
  @implementation XCUIElement (FBPickerWheel)
21
21
 
22
22
  static const NSTimeInterval VALUE_CHANGE_TIMEOUT = 2;
@@ -25,8 +25,9 @@ static const NSTimeInterval VALUE_CHANGE_TIMEOUT = 2;
25
25
  {
26
26
  id<FBXCElementSnapshot> snapshot = [self fb_standardSnapshot];
27
27
  NSString *previousValue = snapshot.value;
28
- XCUICoordinate *startCoord = [self coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.5)];
29
- XCUICoordinate *endCoord = [startCoord coordinateWithOffset:CGVectorMake(0.0, relativeHeightOffset * snapshot.frame.size.height)];
28
+ // Stay in normalized offsets end-to-end: XCTest never rescales a composed raw
29
+ // coordinateWithOffset: for compatibility-mode windows (appium/appium#16185).
30
+ XCUICoordinate *endCoord = [self coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.5 + relativeHeightOffset)];
30
31
  // If picker value is reflected in its accessiblity id
31
32
  // then fetching of the next snapshot may fail with StaleElementReferenceError
32
33
  // because we bound elements by their accessbility ids by default.