@devicelab/maestro-runner-darwin-x64 1.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +166 -0
- package/THIRD_PARTY_LICENSES +186 -0
- package/bin/maestro-runner +0 -0
- package/drivers/android/appium-uiautomator2-server-debug-androidTest.apk +0 -0
- package/drivers/android/appium-uiautomator2-server-v9.11.1.apk +0 -0
- package/drivers/android/devicelab-android-driver-test.apk +0 -0
- package/drivers/android/devicelab-android-driver.apk +0 -0
- package/drivers/android/settings_apk-debug.apk +0 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner/App.swift +11 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/project.pbxproj +523 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/ATTRIBUTION.md +73 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h +4 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PixelDiff.swift +72 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PrivateHeaders/XCTest/XCPointerEventPath.h +43 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +32 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PrivateHeaders/XCTest/XCUIApplication+ActiveApp.h +23 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PrivateHeaders/XCTest/XCUIDevice.h +30 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerObjCExceptionCatcher.h +11 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerObjCExceptionCatcher.m +16 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Alert.swift +155 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift +961 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Environment.swift +37 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift +1864 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Lifecycle.swift +351 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Media.swift +81 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift +258 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+ScreenRecorder.swift +279 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift +703 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift +230 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Transport.swift +137 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+TvRemote.swift +185 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests.swift +197 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SnapshotParams.h +28 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SnapshotParams.m +49 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h +17 -0
- package/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m +86 -0
- package/drivers/ios/DevicelabIOSRunner/PROTOCOL.md +258 -0
- package/drivers/ios/DevicelabIOSRunner/README.md +38 -0
- package/drivers/ios/DevicelabIOSRunner/project.yml +49 -0
- package/drivers/ios/WebDriverAgent/.github/ISSUE_TEMPLATE.md +4 -0
- package/drivers/ios/WebDriverAgent/.github/actions/xcode-setup/action.yml +32 -0
- package/drivers/ios/WebDriverAgent/.github/dependabot.yml +22 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/functional-test.yml +62 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/pr-title.yml +10 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/publish.js.yml +105 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/unit-test.yml +30 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/wda-package.yml +107 -0
- package/drivers/ios/WebDriverAgent/.github/workflows/wda-tests.yml +221 -0
- package/drivers/ios/WebDriverAgent/.mocharc.js +4 -0
- package/drivers/ios/WebDriverAgent/.releaserc +45 -0
- package/drivers/ios/WebDriverAgent/CHANGELOG.md +1547 -0
- package/drivers/ios/WebDriverAgent/CONTRIBUTING.md +35 -0
- package/drivers/ios/WebDriverAgent/Configurations/IOSSettings.xcconfig +31 -0
- package/drivers/ios/WebDriverAgent/Configurations/IOSTestSettings.xcconfig +1 -0
- package/drivers/ios/WebDriverAgent/Configurations/TVOSSettings.xcconfig +31 -0
- package/drivers/ios/WebDriverAgent/Configurations/TVOSTestSettings.xcconfig +1 -0
- package/drivers/ios/WebDriverAgent/Fastlane/Fastfile +13 -0
- package/drivers/ios/WebDriverAgent/Gemfile +3 -0
- package/drivers/ios/WebDriverAgent/LICENSE +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/AccessibilityUtilities/AXSettings.h +15 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/MobileCoreServices/LSApplicationWorkspace.h +127 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/TextInput/TIPreferencesController.h +45 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/UIKitCore/UIKeyboardImpl.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/CDStructures.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSString-XCTAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/NSValue-XCTestAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UILongPressGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPanGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UIPinchGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UISwipeGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/UITapGestureRecognizer-RecordingAdditions.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCAXClient_iOS.h +55 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCActivityRecord.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor.h +44 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationMonitor_iOS.h +18 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCApplicationQuery.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDebugLogDelegate-Protocol.h +11 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCDeviceEvent.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCEventGenerator.h +73 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyMappingPath.h +36 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardInputSolver.h +41 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardKeyMap.h +101 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCKeyboardLayout.h +35 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEvent.h +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCPointerEventPath.h +43 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeRecording.h +42 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNode.h +84 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSourceCodeTreeNodeEnumerator.h +18 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicationRecord.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSymbolicatorHolder.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCSynthesizedEventRecord.h +32 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAXClient-Protocol.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity-Protocol.h +16 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAsyncActivity.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTAutomationTarget-Protocol.h +12 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTDarwinNotificationExpectation.h +23 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTElementSetTransformer-Protocol.h +18 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTKVOExpectation.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTMetric.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSNotificationExpectation.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectation.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTNSPredicateExpectationObject-Protocol.h +15 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerAutomationSession.h +21 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerDaemonSession.h +98 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTRunnerIDESession.h +65 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSession.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTTestRunSessionDelegate-Protocol.h +17 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTUIApplicationMonitor-Protocol.h +17 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiter.h +55 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegate-Protocol.h +16 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterDelegatePrivate-Protocol.h +12 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManagement-Protocol.h +13 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTWaiterManager.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTest.h +34 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCase.h +102 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseRun.h +18 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestCaseSuite.h +19 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestConfiguration.h +66 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContext.h +26 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestContextScope.h +19 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriver.h +38 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestDriverInterface-Protocol.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectation.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationDelegate-Protocol.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestExpectationWaiter.h +17 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestLog.h +32 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_IDEInterface-Protocol.h +36 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_ManagerInterface-Protocol.h +54 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestManager_TestsInterface-Protocol.h +12 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestMisuseObserver.h +37 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservation-Protocol.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObservationCenter.h +36 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestObserver.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestProbe.h +13 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestRun.h +39 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuite.h +48 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestSuiteRun.h +28 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCTestWaiter.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplication.h +60 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationImpl.h +38 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIApplicationProcess.h +85 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUICoordinate.h +44 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIDevice.h +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElement.h +74 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementAsynchronousHandlerWrapper.h +19 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementHitPointCoordinate.h +24 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIElementQuery.h +70 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIHitPointResult.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinder.h +65 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderNodeFinderMatch.h +25 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderTimingMessage.h +20 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIRecorderUtilities.h +45 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreen.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/XCUIScreenDataSource-Protocol.h +19 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCInternalTestRun.h +43 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCKVOExpectationImplementation.h +32 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTDarwinNotificationExpectationImplementation.h +27 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSNotificationExpectationImplementation.h +30 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTNSPredicateExpectationImplementation.h +29 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTWaiterImpl.h +41 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseImplementation.h +70 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestCaseInterruptionException.h +13 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestExpectationImplementation.h +40 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestImplementation.h +14 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestObservationCenterImplementation.h +19 -0
- package/drivers/ios/WebDriverAgent/PrivateHeaders/XCTest/_XCTestSuiteImplementation.h +23 -0
- package/drivers/ios/WebDriverAgent/README.md +56 -0
- package/drivers/ios/WebDriverAgent/Scripts/build-webdriveragent.mjs +85 -0
- package/drivers/ios/WebDriverAgent/Scripts/build.sh +124 -0
- package/drivers/ios/WebDriverAgent/Scripts/ci/build-real.sh +24 -0
- package/drivers/ios/WebDriverAgent/Scripts/ci/build-sim.sh +15 -0
- package/drivers/ios/WebDriverAgent/Scripts/fetch-prebuilt-wda.mjs +69 -0
- package/drivers/ios/WebDriverAgent/Scripts/update-wda-version.mjs +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.pbxproj +4547 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationApp.xcscheme +87 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_1.xcscheme +86 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_2.xcscheme +86 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/IntegrationTests_3.xcscheme +86 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib.xcscheme +125 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentLib_tvOS.xcscheme +95 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner-nodebug.xcscheme +87 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner.xcscheme +114 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgent.xcodeproj/xcshareddata/xcschemes/WebDriverAgentRunner_tvOS.xcscheme +123 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/FBXCElementSnapshotWrapper+Helpers.h +100 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/FBXCElementSnapshotWrapper+Helpers.m +192 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSDictionary+FBUtf8SafeDictionary.h +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSDictionary+FBUtf8SafeDictionary.m +87 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSExpression+FBFormat.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSExpression+FBFormat.m +34 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSString+FBVisualLength.h +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSString+FBVisualLength.m +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSString+FBXMLSafeString.h +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/NSString+FBXMLSafeString.m +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.h +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCAXClient_iOS+FBSnapshotReqParams.m +82 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCTIssue+FBPatcher.h +17 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCTIssue+FBPatcher.m +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.h +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +109 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBFocused.h +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.h +171 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +645 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBQuiescence.h +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBQuiescence.m +28 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBTouchAction.m +75 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.h +22 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.m +31 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.h +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIApplicationProcess+FBQuiescence.m +118 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHealthCheck.h +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHealthCheck.m +47 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.h +193 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +388 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.h +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIDevice+FBRotation.m +68 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBAccessibility.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBAccessibility.m +50 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBCaching.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBCaching.m +36 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.h +57 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBClassChain.m +98 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBCustomActions.h +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBCustomActions.m +127 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBFind.h +75 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBFind.m +133 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBForceTouch.h +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBForceTouch.m +52 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBIsVisible.h +28 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBIsVisible.m +78 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBMinMax.h +33 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBMinMax.m +75 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBPickerWheel.h +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBPickerWheel.m +58 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBResolve.h +37 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBResolve.m +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.h +98 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +342 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBSwiping.h +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBSwiping.m +56 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTVFocuse.h +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTVFocuse.m +71 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.h +64 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBTyping.m +199 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUID.h +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUID.m +85 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.h +106 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m +170 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBVisibleFrame.h +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBVisibleFrame.m +52 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.h +32 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +294 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.h +28 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElementQuery+FBHelpers.m +46 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBAlertViewCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBAlertViewCommands.m +130 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBCustomCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBCustomCommands.m +633 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBDebugCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBDebugCommands.m +81 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBElementCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBElementCommands.m +705 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBFindElementCommands.h +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBFindElementCommands.m +186 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBOrientationCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBOrientationCommands.m +185 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBScreenshotCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBScreenshotCommands.m +40 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBSessionCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBSessionCommands.m +594 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBTouchActionCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBTouchActionCommands.m +41 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBTouchIDCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBTouchIDCommands.m +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBUnknownCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBUnknownCommands.m +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBVideoCommands.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Commands/FBVideoCommands.m +84 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.h +91 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/FBAlert.m +274 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Info.plist +26 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBCommandHandler.h +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBCommandStatus.h +80 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBCommandStatus.m +279 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElement.h +95 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElementCache.h +61 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElementCache.m +100 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElementUtils.h +76 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBElementUtils.m +153 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptionHandler.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptionHandler.m +58 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.h +60 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBExceptions.m +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBHTTPStatusCodes.h +581 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponseJSONPayload.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponseJSONPayload.m +59 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponsePayload.h +74 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBResponsePayload.m +148 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.h +77 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRoute.m +174 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRouteRequest-Private.h +20 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRouteRequest.h +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBRouteRequest.m +32 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.h +56 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingContainer.m +72 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingPromise.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingPromise.m +31 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingRequest.h +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBScreenRecordingRequest.m +94 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession-Private.h +26 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.h +141 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBSession.m +295 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.h +65 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBTCPSocket.m +85 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.h +52 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m +248 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCAccessibilityElement.h +34 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCAccessibilityElement.m +17 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCDeviceEvent.h +34 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCDeviceEvent.m +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshot.h +82 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshot.m +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshotWrapper.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Routing/FBXCElementSnapshotWrapper.m +114 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAccessibilityTraits.h +20 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAccessibilityTraits.m +61 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.h +56 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBActiveAppDetectionPoint.m +87 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAlertsMonitor.h +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBAlertsMonitor.m +94 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.h +131 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBBaseActionsSynthesizer.m +165 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.h +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBCapabilities.m +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBClassChainQueryParser.h +99 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBClassChainQueryParser.m +666 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.h +403 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBConfiguration.m +711 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBDebugLogDelegateDecorator.h +26 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBDebugLogDelegateDecorator.m +49 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBElementHelpers.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBElementHelpers.m +21 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBElementTypeTransformer.h +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBElementTypeTransformer.m +149 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBErrorBuilder.h +64 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBErrorBuilder.m +75 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m +68 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageProcessor.h +55 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageProcessor.m +170 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageUtils.h +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBImageUtils.m +80 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBKeyboard.h +37 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBKeyboard.m +123 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBLogger.h +32 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBLogger.m +47 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMacros.h +57 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.h +36 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMathUtils.m +63 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.h +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBMjpegServer.m +151 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBNotificationsHelper.h +37 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBNotificationsHelper.m +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.h +40 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBPasteboard.m +172 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBProtocolHelpers.h +46 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBProtocolHelpers.m +144 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBReflectionUtils.h +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBReflectionUtils.m +31 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBRunLoopSpinner.h +77 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBRunLoopSpinner.m +94 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBRuntimeUtils.h +79 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBRuntimeUtils.m +112 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.h +22 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreen.m +21 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreenshot.h +44 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBScreenshot.m +227 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.h +48 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBSettings.m +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker-Private.h +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.h +52 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBTVNavigationTracker.m +142 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBUnattachedAppLauncher.h +26 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBUnattachedAppLauncher.m +21 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsHelpers.h +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsHelpers.m +119 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.h +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBW3CActionsSynthesizer.m +885 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBWebServerParams.h +22 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBWebServerParams.m +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.h +49 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +119 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.h +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +359 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.h +80 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXCodeCompatibility.m +99 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXMLGenerationOptions.h +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXMLGenerationOptions.m +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath-Private.h +56 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath.h +59 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/FBXPath.m +979 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/LRUCache/LRUCache.h +66 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/LRUCache/LRUCache.m +146 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/LRUCache/LRUCacheNode.h +43 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/LRUCache/LRUCacheNode.m +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/NSPredicate+FBFormat.h +42 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/NSPredicate+FBFormat.m +69 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.h +78 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.m +107 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCUIApplicationProcessDelay.h +37 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Utilities/XCUIApplicationProcessDelay.m +83 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +1220 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +8812 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.h +1036 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m +5868 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.h +12 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.m +88 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.h +56 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.m +106 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.h +107 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.m +2238 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPLogging.h +122 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.h +53 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.m +357 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPResponse.h +149 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.h +126 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.m +372 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/LICENSE +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h +13 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.m +83 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h +9 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +40 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h +13 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.m +84 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/LICENSE +19 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.h +18 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.m +11 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.h +16 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.m +50 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.h +20 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.m +66 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.h +5 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.m +142 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.h +55 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.m +303 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentLib/WebDriverAgentLib.h +59 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/Info.plist +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentRunner/UITestingUITests.m +58 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/AppDelegate.h +14 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/AppDelegate.m +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBAlertViewController.h +14 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBAlertViewController.m +82 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBNavigationController.h +12 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBNavigationController.m +25 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBScrollViewController.h +13 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBScrollViewController.m +39 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBTableDataSource.h +16 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/FBTableDataSource.m +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/SceneDelegate.h +20 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/SceneDelegate.m +48 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchSpotView.h +17 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchSpotView.m +28 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchViewController.h +23 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchViewController.m +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.h +29 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/TouchableView.m +108 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/ViewController.h +12 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Classes/ViewController.m +88 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Info.plist +71 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/Resources/Base.lproj/Main.storyboard +620 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationApp/main.m +15 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +194 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBAutoAlertsHandlerTests.m +73 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBConfigurationTests.m +38 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementAttributeTests.m +264 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +127 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +73 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBFailureProofTestCaseTests.m +41 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +85 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBImageProcessorTests.m +82 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.h +76 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +140 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBKeyboardTests.m +61 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBPasteboardTests.m +91 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBPickerWheelSelectTests.m +55 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +73 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScreenTests.m +31 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBScrollingTests.m +126 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBSessionIntegrationTests.m +131 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTapTest.m +103 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTestMacros.h +33 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBTypingTest.m +68 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBVideoRecordingTests.m +64 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CMultiTouchActionsIntegrationTests.m +124 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +491 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBW3CTypeActionsTests.m +184 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +157 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/Info.plist +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCElementSnapshotHelperTests.m +211 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCElementSnapshotHitPointTests.m +30 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +162 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceHealthCheckTests.m +27 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceHelperTests.m +220 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIDeviceRotationTests.m +84 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementAttributesTests.m +248 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +472 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/IntegrationTests/XCUIElementHelperIntegrationTests.m +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCElementSnapshotDouble.h +16 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCElementSnapshotDouble.m +110 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIApplicationDouble.h +17 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIApplicationDouble.m +66 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.h +51 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Doubles/XCUIElementDouble.m +104 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBClassChainTests.m +313 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBConfigurationTests.m +60 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBElementCacheTests.m +124 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBElementTypeTransformerTests.m +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBElementUtilitiesTests.m +36 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBErrorBuilderTests.m +61 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBExceptionHandlerTests.m +59 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBLRUCacheTests.m +127 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBMathUtilsTests.m +113 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBProtocolHelpersTests.m +81 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBRouteTests.m +129 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBRunLoopSpinnerTests.m +98 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBRuntimeUtilsTests.m +45 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBSDKVersionTests.m +66 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBSessionTests.m +67 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXMLSafeStringTests.m +35 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/FBXPathTests.m +155 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/Info.plist +24 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSDictionaryFBUtf8SafeTests.m +34 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSExpressionFBFormatTests.m +60 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/NSPredicateFBFormatTests.m +72 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests/XCUIElementHelpersTests.m +50 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.h +46 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Doubles/XCUIElementDouble.m +80 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/FBTVNavigationTrackerTests.m +86 -0
- package/drivers/ios/WebDriverAgent/WebDriverAgentTests/UnitTests_tvOS/Info.plist +24 -0
- package/drivers/ios/WebDriverAgent/eslint.config.mjs +13 -0
- package/drivers/ios/WebDriverAgent/index.ts +7 -0
- package/drivers/ios/WebDriverAgent/lib/check-dependencies.ts +34 -0
- package/drivers/ios/WebDriverAgent/lib/constants.ts +18 -0
- package/drivers/ios/WebDriverAgent/lib/logger.ts +3 -0
- package/drivers/ios/WebDriverAgent/lib/no-session-proxy.ts +25 -0
- package/drivers/ios/WebDriverAgent/lib/types.ts +139 -0
- package/drivers/ios/WebDriverAgent/lib/utils.ts +342 -0
- package/drivers/ios/WebDriverAgent/lib/webdriveragent.ts +715 -0
- package/drivers/ios/WebDriverAgent/lib/xcodebuild.ts +488 -0
- package/drivers/ios/WebDriverAgent/package.json +102 -0
- package/drivers/ios/WebDriverAgent/test/functional/desired.ts +7 -0
- package/drivers/ios/WebDriverAgent/test/functional/helpers/simulator.ts +34 -0
- package/drivers/ios/WebDriverAgent/test/functional/webdriveragent-e2e-specs.ts +119 -0
- package/drivers/ios/WebDriverAgent/test/unit/utils-specs.ts +157 -0
- package/drivers/ios/WebDriverAgent/test/unit/webdriveragent-specs.ts +446 -0
- package/drivers/ios/WebDriverAgent/tsconfig.json +16 -0
- package/package.json +16 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
@class GCDAsyncSocket;
|
|
4
|
+
@class WebSocket;
|
|
5
|
+
|
|
6
|
+
#if TARGET_OS_IPHONE
|
|
7
|
+
#define IMPLEMENTED_PROTOCOLS
|
|
8
|
+
#else
|
|
9
|
+
#define IMPLEMENTED_PROTOCOLS
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@interface HTTPServer : NSObject IMPLEMENTED_PROTOCOLS
|
|
14
|
+
{
|
|
15
|
+
// Underlying asynchronous TCP/IP socket
|
|
16
|
+
GCDAsyncSocket *asyncSocket;
|
|
17
|
+
|
|
18
|
+
// Dispatch queues
|
|
19
|
+
dispatch_queue_t serverQueue;
|
|
20
|
+
dispatch_queue_t connectionQueue;
|
|
21
|
+
void *IsOnServerQueueKey;
|
|
22
|
+
void *IsOnConnectionQueueKey;
|
|
23
|
+
|
|
24
|
+
// HTTP server configuration
|
|
25
|
+
NSString *documentRoot;
|
|
26
|
+
Class connectionClass;
|
|
27
|
+
NSString *interface;
|
|
28
|
+
UInt16 port;
|
|
29
|
+
|
|
30
|
+
// Connection management
|
|
31
|
+
NSMutableArray *connections;
|
|
32
|
+
NSLock *connectionsLock;
|
|
33
|
+
|
|
34
|
+
BOOL isRunning;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Specifies the document root to serve files from.
|
|
39
|
+
* For example, if you set this to "/Users/<your_username>/Sites",
|
|
40
|
+
* then it will serve files out of the local Sites directory (including subdirectories).
|
|
41
|
+
*
|
|
42
|
+
* The default value is nil.
|
|
43
|
+
* The default server configuration will not serve any files until this is set.
|
|
44
|
+
*
|
|
45
|
+
* If you change the documentRoot while the server is running,
|
|
46
|
+
* the change will affect future incoming http connections.
|
|
47
|
+
**/
|
|
48
|
+
- (NSString *)documentRoot;
|
|
49
|
+
- (void)setDocumentRoot:(NSString *)value;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* The connection class is the class used to handle incoming HTTP connections.
|
|
53
|
+
*
|
|
54
|
+
* The default value is [HTTPConnection class].
|
|
55
|
+
* You can override HTTPConnection, and then set this to [MyHTTPConnection class].
|
|
56
|
+
*
|
|
57
|
+
* If you change the connectionClass while the server is running,
|
|
58
|
+
* the change will affect future incoming http connections.
|
|
59
|
+
**/
|
|
60
|
+
- (Class)connectionClass;
|
|
61
|
+
- (void)setConnectionClass:(Class)value;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Set what interface you'd like the server to listen on.
|
|
65
|
+
* By default this is nil, which causes the server to listen on all available interfaces like en1, wifi etc.
|
|
66
|
+
*
|
|
67
|
+
* The interface may be specified by name (e.g. "en1" or "lo0") or by IP address (e.g. "192.168.4.34").
|
|
68
|
+
* You may also use the special strings "localhost" or "loopback" to specify that
|
|
69
|
+
* the socket only accept connections from the local machine.
|
|
70
|
+
**/
|
|
71
|
+
- (NSString *)interface;
|
|
72
|
+
- (void)setInterface:(NSString *)value;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The port number to run the HTTP server on.
|
|
76
|
+
*
|
|
77
|
+
* The default port number is zero, meaning the server will automatically use any available port.
|
|
78
|
+
* This is the recommended port value, as it avoids possible port conflicts with other applications.
|
|
79
|
+
* Technologies such as Bonjour can be used to allow other applications to automatically discover the port number.
|
|
80
|
+
*
|
|
81
|
+
* Note: As is common on most OS's, you need root privledges to bind to port numbers below 1024.
|
|
82
|
+
*
|
|
83
|
+
* You can change the port property while the server is running, but it won't affect the running server.
|
|
84
|
+
* To actually change the port the server is listening for connections on you'll need to restart the server.
|
|
85
|
+
*
|
|
86
|
+
* The listeningPort method will always return the port number the running server is listening for connections on.
|
|
87
|
+
* If the server is not running this method returns 0.
|
|
88
|
+
**/
|
|
89
|
+
- (UInt16)port;
|
|
90
|
+
- (UInt16)listeningPort;
|
|
91
|
+
- (void)setPort:(UInt16)value;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Attempts to starts the server on the configured port, interface, etc.
|
|
95
|
+
*
|
|
96
|
+
* If an error occurs, this method returns NO and sets the errPtr (if given).
|
|
97
|
+
* Otherwise returns YES on success.
|
|
98
|
+
*
|
|
99
|
+
* Some examples of errors that might occur:
|
|
100
|
+
* - You specified the server listen on a port which is already in use by another application.
|
|
101
|
+
* - You specified the server listen on a port number below 1024, which requires root priviledges.
|
|
102
|
+
*
|
|
103
|
+
* Code Example:
|
|
104
|
+
*
|
|
105
|
+
* NSError *err = nil;
|
|
106
|
+
* if (![httpServer start:&err])
|
|
107
|
+
* {
|
|
108
|
+
* NSLog(@"Error starting http server: %@", err);
|
|
109
|
+
* }
|
|
110
|
+
**/
|
|
111
|
+
- (BOOL)start:(NSError **)errPtr;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Stops the server, preventing it from accepting any new connections.
|
|
115
|
+
* You may specify whether or not you want to close the existing client connections.
|
|
116
|
+
*
|
|
117
|
+
* The default stop method (with no arguments) will close any existing connections. (It invokes [self stop:NO])
|
|
118
|
+
**/
|
|
119
|
+
- (void)stop;
|
|
120
|
+
- (void)stop:(BOOL)keepExistingConnections;
|
|
121
|
+
|
|
122
|
+
- (BOOL)isRunning;
|
|
123
|
+
|
|
124
|
+
- (NSUInteger)numberOfHTTPConnections;
|
|
125
|
+
|
|
126
|
+
@end
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
#import "HTTPServer.h"
|
|
2
|
+
#import "HTTPConnection.h"
|
|
3
|
+
#import "HTTPLogging.h"
|
|
4
|
+
|
|
5
|
+
#import "GCDAsyncSocket.h"
|
|
6
|
+
|
|
7
|
+
#if ! __has_feature(objc_arc)
|
|
8
|
+
#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
#pragma clang diagnostic ignored "-Wdirect-ivar-access"
|
|
12
|
+
#pragma clang diagnostic ignored "-Wimplicit-retain-self"
|
|
13
|
+
#pragma clang diagnostic ignored "-Wnullable-to-nonnull-conversion"
|
|
14
|
+
#pragma clang diagnostic ignored "-Wunused"
|
|
15
|
+
|
|
16
|
+
// Log levels: off, error, warn, info, verbose
|
|
17
|
+
// Other flags: trace
|
|
18
|
+
static const int httpLogLevel = HTTP_LOG_LEVEL_INFO; // | HTTP_LOG_FLAG_TRACE;
|
|
19
|
+
|
|
20
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
21
|
+
#pragma mark -
|
|
22
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
@implementation HTTPServer
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Standard Constructor.
|
|
28
|
+
* Instantiates an HTTP server, but does not start it.
|
|
29
|
+
**/
|
|
30
|
+
- (id)init
|
|
31
|
+
{
|
|
32
|
+
if ((self = [super init]))
|
|
33
|
+
{
|
|
34
|
+
HTTPLogTrace();
|
|
35
|
+
|
|
36
|
+
// Setup underlying dispatch queues
|
|
37
|
+
serverQueue = dispatch_queue_create("HTTPServer", NULL);
|
|
38
|
+
connectionQueue = dispatch_queue_create("HTTPConnection", NULL);
|
|
39
|
+
|
|
40
|
+
IsOnServerQueueKey = &IsOnServerQueueKey;
|
|
41
|
+
IsOnConnectionQueueKey = &IsOnConnectionQueueKey;
|
|
42
|
+
|
|
43
|
+
void *nonNullUnusedPointer = (__bridge void *)self; // Whatever, just not null
|
|
44
|
+
|
|
45
|
+
dispatch_queue_set_specific(serverQueue, IsOnServerQueueKey, nonNullUnusedPointer, NULL);
|
|
46
|
+
dispatch_queue_set_specific(connectionQueue, IsOnConnectionQueueKey, nonNullUnusedPointer, NULL);
|
|
47
|
+
|
|
48
|
+
// Initialize underlying GCD based tcp socket
|
|
49
|
+
asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:(id<GCDAsyncSocketDelegate>)self delegateQueue:serverQueue];
|
|
50
|
+
|
|
51
|
+
// Use default connection class of HTTPConnection
|
|
52
|
+
connectionClass = [HTTPConnection self];
|
|
53
|
+
|
|
54
|
+
// By default bind on all available interfaces, en1, wifi etc
|
|
55
|
+
interface = nil;
|
|
56
|
+
|
|
57
|
+
// Use a default port of 0
|
|
58
|
+
// This will allow the kernel to automatically pick an open port for us
|
|
59
|
+
port = 0;
|
|
60
|
+
|
|
61
|
+
// Initialize arrays to hold all the HTTP connections
|
|
62
|
+
connections = [[NSMutableArray alloc] init];
|
|
63
|
+
|
|
64
|
+
connectionsLock = [[NSLock alloc] init];
|
|
65
|
+
|
|
66
|
+
// Register for notifications of closed connections
|
|
67
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
68
|
+
selector:@selector(connectionDidDie:)
|
|
69
|
+
name:HTTPConnectionDidDieNotification
|
|
70
|
+
object:nil];
|
|
71
|
+
|
|
72
|
+
isRunning = NO;
|
|
73
|
+
}
|
|
74
|
+
return self;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Standard Deconstructor.
|
|
79
|
+
* Stops the server, and clients, and releases any resources connected with this instance.
|
|
80
|
+
**/
|
|
81
|
+
- (void)dealloc
|
|
82
|
+
{
|
|
83
|
+
HTTPLogTrace();
|
|
84
|
+
|
|
85
|
+
// Remove notification observer
|
|
86
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
87
|
+
|
|
88
|
+
// Stop the server if it's running
|
|
89
|
+
[self stop];
|
|
90
|
+
|
|
91
|
+
// Release all instance variables
|
|
92
|
+
|
|
93
|
+
#if !OS_OBJECT_USE_OBJC
|
|
94
|
+
dispatch_release(serverQueue);
|
|
95
|
+
dispatch_release(connectionQueue);
|
|
96
|
+
#endif
|
|
97
|
+
|
|
98
|
+
[asyncSocket setDelegate:nil delegateQueue:NULL];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
102
|
+
#pragma mark Server Configuration
|
|
103
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* The document root is filesystem root for the webserver.
|
|
107
|
+
* Thus requests for /index.html will be referencing the index.html file within the document root directory.
|
|
108
|
+
* All file requests are relative to this document root.
|
|
109
|
+
**/
|
|
110
|
+
- (NSString *)documentRoot
|
|
111
|
+
{
|
|
112
|
+
__block NSString *result;
|
|
113
|
+
|
|
114
|
+
dispatch_sync(serverQueue, ^{
|
|
115
|
+
result = documentRoot;
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
- (void)setDocumentRoot:(NSString *)value
|
|
122
|
+
{
|
|
123
|
+
HTTPLogTrace();
|
|
124
|
+
|
|
125
|
+
// Document root used to be of type NSURL.
|
|
126
|
+
// Add type checking for early warning to developers upgrading from older versions.
|
|
127
|
+
|
|
128
|
+
if (value && ![value isKindOfClass:[NSString class]])
|
|
129
|
+
{
|
|
130
|
+
HTTPLogWarn(@"%@: %@ - Expecting NSString parameter, received %@ parameter",
|
|
131
|
+
THIS_FILE, THIS_METHOD, NSStringFromClass([value class]));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
NSString *valueCopy = [value copy];
|
|
136
|
+
|
|
137
|
+
dispatch_async(serverQueue, ^{
|
|
138
|
+
documentRoot = valueCopy;
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The connection class is the class that will be used to handle connections.
|
|
145
|
+
* That is, when a new connection is created, an instance of this class will be intialized.
|
|
146
|
+
* The default connection class is HTTPConnection.
|
|
147
|
+
* If you use a different connection class, it is assumed that the class extends HTTPConnection
|
|
148
|
+
**/
|
|
149
|
+
- (Class)connectionClass
|
|
150
|
+
{
|
|
151
|
+
__block Class result;
|
|
152
|
+
|
|
153
|
+
dispatch_sync(serverQueue, ^{
|
|
154
|
+
result = connectionClass;
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
- (void)setConnectionClass:(Class)value
|
|
161
|
+
{
|
|
162
|
+
HTTPLogTrace();
|
|
163
|
+
|
|
164
|
+
dispatch_async(serverQueue, ^{
|
|
165
|
+
connectionClass = value;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* What interface to bind the listening socket to.
|
|
171
|
+
**/
|
|
172
|
+
- (NSString *)interface
|
|
173
|
+
{
|
|
174
|
+
__block NSString *result;
|
|
175
|
+
|
|
176
|
+
dispatch_sync(serverQueue, ^{
|
|
177
|
+
result = interface;
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
- (void)setInterface:(NSString *)value
|
|
184
|
+
{
|
|
185
|
+
NSString *valueCopy = [value copy];
|
|
186
|
+
|
|
187
|
+
dispatch_async(serverQueue, ^{
|
|
188
|
+
interface = valueCopy;
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* The port to listen for connections on.
|
|
195
|
+
* By default this port is initially set to zero, which allows the kernel to pick an available port for us.
|
|
196
|
+
* After the HTTP server has started, the port being used may be obtained by this method.
|
|
197
|
+
**/
|
|
198
|
+
- (UInt16)port
|
|
199
|
+
{
|
|
200
|
+
__block UInt16 result;
|
|
201
|
+
|
|
202
|
+
dispatch_sync(serverQueue, ^{
|
|
203
|
+
result = port;
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
- (UInt16)listeningPort
|
|
210
|
+
{
|
|
211
|
+
__block UInt16 result;
|
|
212
|
+
|
|
213
|
+
dispatch_sync(serverQueue, ^{
|
|
214
|
+
if (isRunning)
|
|
215
|
+
result = [asyncSocket localPort];
|
|
216
|
+
else
|
|
217
|
+
result = 0;
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
- (void)setPort:(UInt16)value
|
|
224
|
+
{
|
|
225
|
+
HTTPLogTrace();
|
|
226
|
+
|
|
227
|
+
dispatch_async(serverQueue, ^{
|
|
228
|
+
port = value;
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
233
|
+
#pragma mark Server Control
|
|
234
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
235
|
+
|
|
236
|
+
- (BOOL)start:(NSError **)errPtr
|
|
237
|
+
{
|
|
238
|
+
HTTPLogTrace();
|
|
239
|
+
|
|
240
|
+
__block BOOL success = YES;
|
|
241
|
+
__block NSError *err = nil;
|
|
242
|
+
|
|
243
|
+
dispatch_sync(serverQueue, ^{ @autoreleasepool {
|
|
244
|
+
|
|
245
|
+
success = [asyncSocket acceptOnInterface:interface port:port error:&err];
|
|
246
|
+
if (success)
|
|
247
|
+
{
|
|
248
|
+
HTTPLogInfo(@"%@: Started HTTP server on port %hu", THIS_FILE, [asyncSocket localPort]);
|
|
249
|
+
|
|
250
|
+
isRunning = YES;
|
|
251
|
+
}
|
|
252
|
+
else
|
|
253
|
+
{
|
|
254
|
+
HTTPLogError(@"%@: Failed to start HTTP Server: %@", THIS_FILE, err);
|
|
255
|
+
}
|
|
256
|
+
}});
|
|
257
|
+
|
|
258
|
+
if (errPtr)
|
|
259
|
+
*errPtr = err;
|
|
260
|
+
|
|
261
|
+
return success;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
- (void)stop
|
|
265
|
+
{
|
|
266
|
+
[self stop:NO];
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
- (void)stop:(BOOL)keepExistingConnections
|
|
270
|
+
{
|
|
271
|
+
HTTPLogTrace();
|
|
272
|
+
|
|
273
|
+
dispatch_sync(serverQueue, ^{ @autoreleasepool {
|
|
274
|
+
// Stop listening / accepting incoming connections
|
|
275
|
+
[asyncSocket disconnect];
|
|
276
|
+
isRunning = NO;
|
|
277
|
+
|
|
278
|
+
if (!keepExistingConnections)
|
|
279
|
+
{
|
|
280
|
+
// Stop all HTTP connections the server owns
|
|
281
|
+
[connectionsLock lock];
|
|
282
|
+
for (HTTPConnection *connection in connections)
|
|
283
|
+
{
|
|
284
|
+
[connection stop];
|
|
285
|
+
}
|
|
286
|
+
[connections removeAllObjects];
|
|
287
|
+
[connectionsLock unlock];
|
|
288
|
+
}
|
|
289
|
+
}});
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
- (BOOL)isRunning
|
|
293
|
+
{
|
|
294
|
+
__block BOOL result;
|
|
295
|
+
|
|
296
|
+
dispatch_sync(serverQueue, ^{
|
|
297
|
+
result = isRunning;
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
return result;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
304
|
+
#pragma mark Server Status
|
|
305
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Returns the number of http client connections that are currently connected to the server.
|
|
309
|
+
**/
|
|
310
|
+
- (NSUInteger)numberOfHTTPConnections
|
|
311
|
+
{
|
|
312
|
+
NSUInteger result = 0;
|
|
313
|
+
|
|
314
|
+
[connectionsLock lock];
|
|
315
|
+
result = [connections count];
|
|
316
|
+
[connectionsLock unlock];
|
|
317
|
+
|
|
318
|
+
return result;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
322
|
+
#pragma mark Incoming Connections
|
|
323
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
324
|
+
|
|
325
|
+
- (HTTPConfig *)config
|
|
326
|
+
{
|
|
327
|
+
// Override me if you want to provide a custom config to the new connection.
|
|
328
|
+
//
|
|
329
|
+
// Generally this involves overriding the HTTPConfig class to include any custom settings,
|
|
330
|
+
// and then having this method return an instance of 'MyHTTPConfig'.
|
|
331
|
+
|
|
332
|
+
// Note: Think you can make the server faster by putting each connection on its own queue?
|
|
333
|
+
// Then benchmark it before and after and discover for yourself the shocking truth!
|
|
334
|
+
//
|
|
335
|
+
// Try the apache benchmark tool (already installed on your Mac):
|
|
336
|
+
// $ ab -n 1000 -c 1 http://localhost:<port>/some_path.html
|
|
337
|
+
|
|
338
|
+
return [[HTTPConfig alloc] initWithServer:self documentRoot:documentRoot queue:connectionQueue];
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket
|
|
342
|
+
{
|
|
343
|
+
HTTPConnection *newConnection = (HTTPConnection *)[[connectionClass alloc] initWithAsyncSocket:newSocket
|
|
344
|
+
configuration:[self config]];
|
|
345
|
+
[connectionsLock lock];
|
|
346
|
+
[connections addObject:newConnection];
|
|
347
|
+
[connectionsLock unlock];
|
|
348
|
+
|
|
349
|
+
[newConnection start];
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
353
|
+
#pragma mark Notifications
|
|
354
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* This method is automatically called when a notification of type HTTPConnectionDidDieNotification is posted.
|
|
358
|
+
* It allows us to remove the connection from our array.
|
|
359
|
+
**/
|
|
360
|
+
- (void)connectionDidDie:(NSNotification *)notification
|
|
361
|
+
{
|
|
362
|
+
// Note: This method is called on the connection queue that posted the notification
|
|
363
|
+
|
|
364
|
+
[connectionsLock lock];
|
|
365
|
+
|
|
366
|
+
HTTPLogTrace();
|
|
367
|
+
[connections removeObject:[notification object]];
|
|
368
|
+
|
|
369
|
+
[connectionsLock unlock];
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
@end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Software License Agreement (BSD License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2011, Deusty, LLC
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use of this software in source and binary forms,
|
|
7
|
+
with or without modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above
|
|
10
|
+
copyright notice, this list of conditions and the
|
|
11
|
+
following disclaimer.
|
|
12
|
+
|
|
13
|
+
* Neither the name of Deusty nor the names of its
|
|
14
|
+
contributors may be used to endorse or promote products
|
|
15
|
+
derived from this software without specific prior
|
|
16
|
+
written permission of Deusty, LLC.
|
|
17
|
+
|
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#import "HTTPDataResponse.h"
|
|
2
|
+
#import "HTTPLogging.h"
|
|
3
|
+
|
|
4
|
+
#if ! __has_feature(objc_arc)
|
|
5
|
+
#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#pragma clang diagnostic ignored "-Wdirect-ivar-access"
|
|
9
|
+
#pragma clang diagnostic ignored "-Wcast-qual"
|
|
10
|
+
#pragma clang diagnostic ignored "-Wunused-variable"
|
|
11
|
+
|
|
12
|
+
// Log levels : off, error, warn, info, verbose
|
|
13
|
+
// Other flags: trace
|
|
14
|
+
static const int httpLogLevel = HTTP_LOG_LEVEL_OFF; // | HTTP_LOG_FLAG_TRACE;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@implementation HTTPDataResponse
|
|
18
|
+
|
|
19
|
+
- (id)initWithData:(NSData *)dataParam
|
|
20
|
+
{
|
|
21
|
+
if((self = [super init]))
|
|
22
|
+
{
|
|
23
|
+
HTTPLogTrace();
|
|
24
|
+
|
|
25
|
+
offset = 0;
|
|
26
|
+
data = dataParam;
|
|
27
|
+
}
|
|
28
|
+
return self;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (void)dealloc
|
|
32
|
+
{
|
|
33
|
+
HTTPLogTrace();
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
- (UInt64)contentLength
|
|
38
|
+
{
|
|
39
|
+
UInt64 result = (UInt64)[data length];
|
|
40
|
+
|
|
41
|
+
HTTPLogTrace2(@"%@[%p]: contentLength - %llu", THIS_FILE, self, result);
|
|
42
|
+
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (UInt64)offset
|
|
47
|
+
{
|
|
48
|
+
HTTPLogTrace();
|
|
49
|
+
|
|
50
|
+
return offset;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
- (void)setOffset:(UInt64)offsetParam
|
|
54
|
+
{
|
|
55
|
+
HTTPLogTrace2(@"%@[%p]: setOffset:%lu", THIS_FILE, self, (unsigned long)offset);
|
|
56
|
+
|
|
57
|
+
offset = (NSUInteger)offsetParam;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- (NSData *)readDataOfLength:(NSUInteger)lengthParameter
|
|
61
|
+
{
|
|
62
|
+
HTTPLogTrace2(@"%@[%p]: readDataOfLength:%lu", THIS_FILE, self, (unsigned long)lengthParameter);
|
|
63
|
+
|
|
64
|
+
NSUInteger remaining = [data length] - offset;
|
|
65
|
+
NSUInteger length = lengthParameter < remaining ? lengthParameter : remaining;
|
|
66
|
+
|
|
67
|
+
void *bytes = (void *)(((char*)[data bytes]) + offset);
|
|
68
|
+
|
|
69
|
+
offset += length;
|
|
70
|
+
|
|
71
|
+
return [NSData dataWithBytesNoCopy:bytes length:length freeWhenDone:NO];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
- (BOOL)isDone
|
|
75
|
+
{
|
|
76
|
+
BOOL result = (offset == [data length]);
|
|
77
|
+
|
|
78
|
+
HTTPLogTrace2(@"%@[%p]: isDone - %@", THIS_FILE, self, (result ? @"YES" : @"NO"));
|
|
79
|
+
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#import "HTTPErrorResponse.h"
|
|
2
|
+
|
|
3
|
+
#pragma clang diagnostic ignored "-Wdirect-ivar-access"
|
|
4
|
+
|
|
5
|
+
@implementation HTTPErrorResponse
|
|
6
|
+
|
|
7
|
+
-(id)initWithErrorCode:(int)httpErrorCode
|
|
8
|
+
{
|
|
9
|
+
if ((self = [super init]))
|
|
10
|
+
{
|
|
11
|
+
_status = httpErrorCode;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return self;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
- (UInt64) contentLength {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (UInt64) offset {
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
- (void)setOffset:(UInt64)offset {
|
|
26
|
+
;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (NSData*) readDataOfLength:(NSUInteger)length {
|
|
30
|
+
return nil;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (BOOL) isDone {
|
|
34
|
+
return YES;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
- (NSInteger) status {
|
|
38
|
+
return _status;
|
|
39
|
+
}
|
|
40
|
+
@end
|
package/drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
#import "HTTPResponse.h"
|
|
3
|
+
|
|
4
|
+
// Wraps an HTTPResponse object to allow setting a custom status code
|
|
5
|
+
// without needing to create subclasses of every response.
|
|
6
|
+
@interface HTTPResponseProxy : NSObject <HTTPResponse>
|
|
7
|
+
|
|
8
|
+
@property (nonatomic) NSObject<HTTPResponse> *response;
|
|
9
|
+
@property (nonatomic) NSInteger status;
|
|
10
|
+
|
|
11
|
+
- (NSInteger)customStatus;
|
|
12
|
+
|
|
13
|
+
@end
|