appium-webdriveragent 3.13.3 → 3.15.1
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/PrivateHeaders/.DS_Store +0 -0
- package/Scripts/build.sh +13 -16
- package/WebDriverAgent.xcodeproj/project.pbxproj +26 -2
- package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/elf.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/WebDriverAgent.xcodeproj/xcuserdata/elf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +91 -0
- package/WebDriverAgent.xcodeproj/xcuserdata/{kazuaki.xcuserdatad → elf.xcuserdatad}/xcschemes/xcschememanagement.plist +12 -35
- package/WebDriverAgentLib/.DS_Store +0 -0
- package/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +1 -4
- package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.h +23 -0
- package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.m +32 -0
- package/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +10 -1
- package/WebDriverAgentLib/Commands/FBCustomCommands.m +10 -2
- package/WebDriverAgentLib/Routing/FBElement.h +2 -2
- package/WebDriverAgentLib/Routing/FBResponsePayload.m +1 -1
- package/WebDriverAgentLib/Utilities/FBConfiguration.h +5 -0
- package/WebDriverAgentLib/Utilities/FBConfiguration.m +6 -0
- package/WebDriverAgentLib/Utilities/FBMathUtils.h +0 -3
- package/WebDriverAgentLib/Utilities/FBMathUtils.m +0 -13
- package/WebDriverAgentLib/Utilities/FBReflectionUtils.h +24 -0
- package/WebDriverAgentLib/Utilities/FBReflectionUtils.m +32 -0
- package/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +5 -23
- package/WebDriverAgentLib/Utilities/LRUCache/.DS_Store +0 -0
- package/WebDriverAgentLib/Vendor/.DS_Store +0 -0
- package/WebDriverAgentRunner/.DS_Store +0 -0
- package/WebDriverAgentRunner/UITestingUITests.m +1 -0
- package/WebDriverAgentRunner-Runner.app.zip +0 -0
- package/WebDriverAgentTests/IntegrationApp/Resources/.DS_Store +0 -0
- package/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +1 -0
- package/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +13 -10
- package/build/index.js +3 -5
- package/build/lib/utils.js +2 -2
- package/build/lib/webdriveragent.js +1 -1
- package/build/lib/xcodebuild.js +1 -1
- package/lib/utils.js +2 -1
- package/package.json +1 -1
- package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/WorkspaceSettings.xcsettings +0 -20
- package/WebDriverAgent.xcodeproj/xcuserdata/kazuaki.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -1446
|
Binary file
|
package/Scripts/build.sh
CHANGED
|
@@ -68,24 +68,21 @@ function xcbuild() {
|
|
|
68
68
|
if [ $(which xcpretty) ] ; then
|
|
69
69
|
output_command=xcpretty
|
|
70
70
|
fi
|
|
71
|
+
|
|
72
|
+
XC_BUILD_ARGS=(-project "WebDriverAgent.xcodeproj")
|
|
73
|
+
XC_BUILD_ARGS+=(-scheme "$XC_TARGET")
|
|
74
|
+
XC_BUILD_ARGS+=(-sdk "$XC_SDK")
|
|
75
|
+
XC_BUILD_ARGS+=($XC_ACTION)
|
|
71
76
|
if [[ -n "$XC_DESTINATION" ]]; then
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-destination "$XC_DESTINATION" \
|
|
77
|
-
$XC_ACTION \
|
|
78
|
-
$XC_MACROS $EXTRA_XC_ARGS \
|
|
79
|
-
| $output_command && exit ${PIPESTATUS[0]}
|
|
80
|
-
else
|
|
81
|
-
xcodebuild \
|
|
82
|
-
-project "WebDriverAgent.xcodeproj" \
|
|
83
|
-
-scheme "$XC_TARGET" \
|
|
84
|
-
-sdk "$XC_SDK" \
|
|
85
|
-
$XC_ACTION \
|
|
86
|
-
$XC_MACROS $EXTRA_XC_ARGS \
|
|
87
|
-
| $output_command && exit ${PIPESTATUS[0]}
|
|
77
|
+
XC_BUILD_ARGS+=(-destination "${XC_DESTINATION}")
|
|
78
|
+
fi
|
|
79
|
+
if [[ -n "$DERIVED_DATA_PATH" ]]; then
|
|
80
|
+
XC_BUILD_ARGS+=(-derivedDataPath ${DERIVED_DATA_PATH})
|
|
88
81
|
fi
|
|
82
|
+
XC_BUILD_ARGS+=($XC_MACROS $EXTRA_XC_ARGS)
|
|
83
|
+
|
|
84
|
+
xcodebuild "${XC_BUILD_ARGS[@]}" | $output_command && exit ${PIPESTATUS[0]}
|
|
85
|
+
|
|
89
86
|
}
|
|
90
87
|
|
|
91
88
|
function fastlane_test() {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
archiveVersion = 1;
|
|
4
4
|
classes = {
|
|
5
5
|
};
|
|
6
|
-
objectVersion =
|
|
6
|
+
objectVersion = 52;
|
|
7
7
|
objects = {
|
|
8
8
|
|
|
9
9
|
/* Begin PBXBuildFile section */
|
|
@@ -386,6 +386,14 @@
|
|
|
386
386
|
71649ECE2518C19C0087F212 /* IOSTestSettings.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 71649EC82518C19C0087F212 /* IOSTestSettings.xcconfig */; };
|
|
387
387
|
716C9346224D540C004B8542 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 716C9345224D540C004B8542 /* libxml2.tbd */; };
|
|
388
388
|
716C9347224D540C004B8542 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 716C9345224D540C004B8542 /* libxml2.tbd */; };
|
|
389
|
+
716C9DFA27315D21005AD475 /* FBReflectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DF827315D21005AD475 /* FBReflectionUtils.h */; };
|
|
390
|
+
716C9DFB27315D21005AD475 /* FBReflectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DF827315D21005AD475 /* FBReflectionUtils.h */; };
|
|
391
|
+
716C9DFC27315D21005AD475 /* FBReflectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DF927315D21005AD475 /* FBReflectionUtils.m */; };
|
|
392
|
+
716C9DFD27315D21005AD475 /* FBReflectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DF927315D21005AD475 /* FBReflectionUtils.m */; };
|
|
393
|
+
716C9E0027315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */; };
|
|
394
|
+
716C9E0127315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */; };
|
|
395
|
+
716C9E0227315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */; };
|
|
396
|
+
716C9E0327315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */; };
|
|
389
397
|
716E0BCE1E917E810087A825 /* NSString+FBXMLSafeString.h in Headers */ = {isa = PBXBuildFile; fileRef = 716E0BCC1E917E810087A825 /* NSString+FBXMLSafeString.h */; };
|
|
390
398
|
716E0BCF1E917E810087A825 /* NSString+FBXMLSafeString.m in Sources */ = {isa = PBXBuildFile; fileRef = 716E0BCD1E917E810087A825 /* NSString+FBXMLSafeString.m */; };
|
|
391
399
|
716E0BD11E917F260087A825 /* FBXMLSafeStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 716E0BD01E917F260087A825 /* FBXMLSafeStringTests.m */; };
|
|
@@ -992,6 +1000,10 @@
|
|
|
992
1000
|
716C9343224D53DF004B8542 /* libAccessibility.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libAccessibility.tbd; path = usr/lib/libAccessibility.tbd; sourceTree = SDKROOT; };
|
|
993
1001
|
716C9344224D53FC004B8542 /* XCTAutomationSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTAutomationSupport.framework; path = Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework; sourceTree = DEVELOPER_DIR; };
|
|
994
1002
|
716C9345224D540C004B8542 /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; };
|
|
1003
|
+
716C9DF827315D21005AD475 /* FBReflectionUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBReflectionUtils.h; sourceTree = "<group>"; };
|
|
1004
|
+
716C9DF927315D21005AD475 /* FBReflectionUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBReflectionUtils.m; sourceTree = "<group>"; };
|
|
1005
|
+
716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "XCUIApplication+FBUIInterruptions.h"; sourceTree = "<group>"; };
|
|
1006
|
+
716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "XCUIApplication+FBUIInterruptions.m"; sourceTree = "<group>"; };
|
|
995
1007
|
716E0BCC1E917E810087A825 /* NSString+FBXMLSafeString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+FBXMLSafeString.h"; sourceTree = "<group>"; };
|
|
996
1008
|
716E0BCD1E917E810087A825 /* NSString+FBXMLSafeString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+FBXMLSafeString.m"; sourceTree = "<group>"; };
|
|
997
1009
|
716E0BD01E917F260087A825 /* FBXMLSafeStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBXMLSafeStringTests.m; sourceTree = "<group>"; };
|
|
@@ -1725,6 +1737,8 @@
|
|
|
1725
1737
|
AD6C269B1CF2494200F8B5FF /* XCUIApplication+FBHelpers.m */,
|
|
1726
1738
|
71C8E54F25399A6B008572C1 /* XCUIApplication+FBQuiescence.h */,
|
|
1727
1739
|
71C8E55025399A6B008572C1 /* XCUIApplication+FBQuiescence.m */,
|
|
1740
|
+
716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */,
|
|
1741
|
+
716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */,
|
|
1728
1742
|
71D475C02538F5A8008D9401 /* XCUIApplicationProcess+FBQuiescence.h */,
|
|
1729
1743
|
71D475C12538F5A8008D9401 /* XCUIApplicationProcess+FBQuiescence.m */,
|
|
1730
1744
|
EEC9EED420064FAA00BC0D5B /* XCUICoordinate+FBFix.h */,
|
|
@@ -1899,6 +1913,8 @@
|
|
|
1899
1913
|
EEEC7C911F21F27A0053426C /* FBPredicate.m */,
|
|
1900
1914
|
71B155DD23080CA600646AFB /* FBProtocolHelpers.h */,
|
|
1901
1915
|
71B155DE23080CA600646AFB /* FBProtocolHelpers.m */,
|
|
1916
|
+
716C9DF827315D21005AD475 /* FBReflectionUtils.h */,
|
|
1917
|
+
716C9DF927315D21005AD475 /* FBReflectionUtils.m */,
|
|
1902
1918
|
EEE9B4701CD02B88009D2030 /* FBRunLoopSpinner.h */,
|
|
1903
1919
|
EEE9B4711CD02B88009D2030 /* FBRunLoopSpinner.m */,
|
|
1904
1920
|
EE9AB7911CAEDF0C008C271F /* FBRuntimeUtils.h */,
|
|
@@ -2247,6 +2263,7 @@
|
|
|
2247
2263
|
641EE6352240C5CA00173FCB /* XCUIElement+FBUtilities.h in Headers */,
|
|
2248
2264
|
641EE6362240C5CA00173FCB /* XCUIElement+FBScrolling.h in Headers */,
|
|
2249
2265
|
1357E297233D05240054BDB8 /* XCUIHitPointResult.h in Headers */,
|
|
2266
|
+
716C9DFB27315D21005AD475 /* FBReflectionUtils.h in Headers */,
|
|
2250
2267
|
641EE6372240C5CA00173FCB /* XCSourceCodeTreeNode.h in Headers */,
|
|
2251
2268
|
641EE6382240C5CA00173FCB /* XCPointerEventPath.h in Headers */,
|
|
2252
2269
|
641EE6392240C5CA00173FCB /* FBRouteRequest.h in Headers */,
|
|
@@ -2312,6 +2329,7 @@
|
|
|
2312
2329
|
641EE66C2240C5CA00173FCB /* UIPinchGestureRecognizer-RecordingAdditions.h in Headers */,
|
|
2313
2330
|
641EE66D2240C5CA00173FCB /* XCTestManager_TestsInterface-Protocol.h in Headers */,
|
|
2314
2331
|
641EE66E2240C5CA00173FCB /* XCUIApplication+FBAlert.h in Headers */,
|
|
2332
|
+
716C9E0127315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */,
|
|
2315
2333
|
7182275C258744C300661B83 /* HTTPServer.h in Headers */,
|
|
2316
2334
|
641EE66F2240C5CA00173FCB /* XCDeviceEvent.h in Headers */,
|
|
2317
2335
|
641EE6702240C5CA00173FCB /* FBMathUtils.h in Headers */,
|
|
@@ -2485,6 +2503,7 @@
|
|
|
2485
2503
|
71F5BE4F252F14EB00EE9EBA /* FBExceptions.h in Headers */,
|
|
2486
2504
|
648C10AB22AAAD9C00B81B9A /* UIKeyboardImpl.h in Headers */,
|
|
2487
2505
|
EE35AD401E3B77D600A02D78 /* XCTest.h in Headers */,
|
|
2506
|
+
716C9E0027315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */,
|
|
2488
2507
|
719CD8F82126C78F00C7D0C2 /* FBAlertsMonitor.h in Headers */,
|
|
2489
2508
|
EE35AD241E3B77D600A02D78 /* XCAccessibilityElement.h in Headers */,
|
|
2490
2509
|
EE158AE41CBD456F00A3E3F0 /* FBSession.h in Headers */,
|
|
@@ -2688,6 +2707,7 @@
|
|
|
2688
2707
|
EE35AD151E3B77D600A02D78 /* CDStructures.h in Headers */,
|
|
2689
2708
|
71E75E6D254824230099FC87 /* XCUIElementQuery+FBHelpers.h in Headers */,
|
|
2690
2709
|
EE35AD311E3B77D600A02D78 /* XCKeyboardLayout.h in Headers */,
|
|
2710
|
+
716C9DFA27315D21005AD475 /* FBReflectionUtils.h in Headers */,
|
|
2691
2711
|
E444DCB624913C220060D7EB /* RouteRequest.h in Headers */,
|
|
2692
2712
|
71F5BE23252E576C00EE9EBA /* XCUIElement+FBSwiping.h in Headers */,
|
|
2693
2713
|
718226CC2587443700661B83 /* GCDAsyncSocket.h in Headers */,
|
|
@@ -2930,7 +2950,7 @@
|
|
|
2930
2950
|
};
|
|
2931
2951
|
};
|
|
2932
2952
|
buildConfigurationList = 91F9DAE41B99DBC2001349B2 /* Build configuration list for PBXProject "WebDriverAgent" */;
|
|
2933
|
-
compatibilityVersion = "Xcode
|
|
2953
|
+
compatibilityVersion = "Xcode 11.0";
|
|
2934
2954
|
developmentRegion = English;
|
|
2935
2955
|
hasScannedForEncodings = 0;
|
|
2936
2956
|
knownRegions = (
|
|
@@ -3120,6 +3140,7 @@
|
|
|
3120
3140
|
641EE5FD2240C5CA00173FCB /* FBBaseActionsSynthesizer.m in Sources */,
|
|
3121
3141
|
641EE5FE2240C5CA00173FCB /* XCUIElement+FBWebDriverAttributes.m in Sources */,
|
|
3122
3142
|
641EE5FF2240C5CA00173FCB /* XCUIElement+FBForceTouch.m in Sources */,
|
|
3143
|
+
716C9E0327315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */,
|
|
3123
3144
|
641EE6002240C5CA00173FCB /* FBTouchActionCommands.m in Sources */,
|
|
3124
3145
|
719DCF182601EAFB000E765F /* FBNotificationsHelper.m in Sources */,
|
|
3125
3146
|
714EAA102673FDFE005C5B47 /* FBCapabilities.m in Sources */,
|
|
@@ -3154,6 +3175,7 @@
|
|
|
3154
3175
|
641EE61B2240C5CA00173FCB /* FBPasteboard.m in Sources */,
|
|
3155
3176
|
641EE61C2240C5CA00173FCB /* FBAlert.m in Sources */,
|
|
3156
3177
|
718F49CB23087B040045FE8B /* FBCommandStatus.m in Sources */,
|
|
3178
|
+
716C9DFD27315D21005AD475 /* FBReflectionUtils.m in Sources */,
|
|
3157
3179
|
641EE61D2240C5CA00173FCB /* FBElementCommands.m in Sources */,
|
|
3158
3180
|
641EE61E2240C5CA00173FCB /* FBExceptionHandler.m in Sources */,
|
|
3159
3181
|
641EE61F2240C5CA00173FCB /* FBXCodeCompatibility.m in Sources */,
|
|
@@ -3253,6 +3275,7 @@
|
|
|
3253
3275
|
EE9B76A91CF7A43900275851 /* FBLogger.m in Sources */,
|
|
3254
3276
|
EE158ABB1CBD456F00A3E3F0 /* FBCustomCommands.m in Sources */,
|
|
3255
3277
|
AD6C26991CF2481700F8B5FF /* XCUIDevice+FBHelpers.m in Sources */,
|
|
3278
|
+
716C9E0227315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */,
|
|
3256
3279
|
EE6B64FE1D0F86EF00E85F5D /* XCTestPrivateSymbols.m in Sources */,
|
|
3257
3280
|
AD76723E1D6B7CC000610457 /* XCUIElement+FBTyping.m in Sources */,
|
|
3258
3281
|
EE158AAF1CBD456F00A3E3F0 /* XCUIElement+FBAccessibility.m in Sources */,
|
|
@@ -3265,6 +3288,7 @@
|
|
|
3265
3288
|
E444DCB224913C220060D7EB /* RoutingConnection.m in Sources */,
|
|
3266
3289
|
EE158AC11CBD456F00A3E3F0 /* FBFindElementCommands.m in Sources */,
|
|
3267
3290
|
EE7E271D1D06C69F001BEC7B /* FBDebugLogDelegateDecorator.m in Sources */,
|
|
3291
|
+
716C9DFC27315D21005AD475 /* FBReflectionUtils.m in Sources */,
|
|
3268
3292
|
71C8E55325399A6B008572C1 /* XCUIApplication+FBQuiescence.m in Sources */,
|
|
3269
3293
|
71414EDA2670A1EE003A8C5D /* LRUCacheNode.m in Sources */,
|
|
3270
3294
|
EE158AB91CBD456F00A3E3F0 /* FBAlertViewCommands.m in Sources */,
|
|
Binary file
|
package/WebDriverAgent.xcodeproj/xcuserdata/elf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<Bucket
|
|
3
|
+
uuid = "2F0174F2-ED3F-4D11-9A17-7C590053D796"
|
|
4
|
+
type = "1"
|
|
5
|
+
version = "2.0">
|
|
6
|
+
<Breakpoints>
|
|
7
|
+
<BreakpointProxy
|
|
8
|
+
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
|
|
9
|
+
<BreakpointContent
|
|
10
|
+
uuid = "471ECA8C-2C53-4C59-88DB-1C1CB3D61601"
|
|
11
|
+
shouldBeEnabled = "No"
|
|
12
|
+
ignoreCount = "0"
|
|
13
|
+
continueAfterRunningActions = "No"
|
|
14
|
+
breakpointStackSelectionBehavior = "1"
|
|
15
|
+
scope = "1"
|
|
16
|
+
stopOnStyle = "0">
|
|
17
|
+
</BreakpointContent>
|
|
18
|
+
</BreakpointProxy>
|
|
19
|
+
<BreakpointProxy
|
|
20
|
+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
21
|
+
<BreakpointContent
|
|
22
|
+
uuid = "C2E06865-6A52-4686-9771-279AF13ABF8A"
|
|
23
|
+
shouldBeEnabled = "Yes"
|
|
24
|
+
ignoreCount = "0"
|
|
25
|
+
continueAfterRunningActions = "No"
|
|
26
|
+
filePath = "WebDriverAgentLib/Categories/XCUIElement+FBUtilities.m"
|
|
27
|
+
timestampString = "0"
|
|
28
|
+
startingColumnNumber = "9223372036854775807"
|
|
29
|
+
endingColumnNumber = "9223372036854775807"
|
|
30
|
+
startingLineNumber = "264"
|
|
31
|
+
endingLineNumber = "264">
|
|
32
|
+
</BreakpointContent>
|
|
33
|
+
</BreakpointProxy>
|
|
34
|
+
<BreakpointProxy
|
|
35
|
+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
36
|
+
<BreakpointContent
|
|
37
|
+
uuid = "54216FE6-E240-47F1-88D3-D450CF0AF44E"
|
|
38
|
+
shouldBeEnabled = "Yes"
|
|
39
|
+
ignoreCount = "0"
|
|
40
|
+
continueAfterRunningActions = "No"
|
|
41
|
+
filePath = "WebDriverAgentLib/Categories/XCUIElement+FBResolve.m"
|
|
42
|
+
startingColumnNumber = "9223372036854775807"
|
|
43
|
+
endingColumnNumber = "9223372036854775807"
|
|
44
|
+
startingLineNumber = "37"
|
|
45
|
+
endingLineNumber = "37"
|
|
46
|
+
landmarkName = "-fb_stableInstance"
|
|
47
|
+
landmarkType = "7">
|
|
48
|
+
<Locations>
|
|
49
|
+
<Location
|
|
50
|
+
uuid = "54216FE6-E240-47F1-88D3-D450CF0AF44E - b09f4ce1ce926e6"
|
|
51
|
+
shouldBeEnabled = "Yes"
|
|
52
|
+
ignoreCount = "0"
|
|
53
|
+
continueAfterRunningActions = "No"
|
|
54
|
+
symbolName = "-[XCUIElement(FBResolve) fb_stableInstance]"
|
|
55
|
+
moduleName = "WebDriverAgentLib"
|
|
56
|
+
usesParentBreakpointCondition = "Yes"
|
|
57
|
+
urlString = "file:///Users/elf/code/WebDriverAgent/WebDriverAgentLib/Categories/XCUIElement+FBResolve.m"
|
|
58
|
+
startingColumnNumber = "9223372036854775807"
|
|
59
|
+
endingColumnNumber = "9223372036854775807"
|
|
60
|
+
startingLineNumber = "37"
|
|
61
|
+
endingLineNumber = "37"
|
|
62
|
+
offsetFromSymbolStart = "19">
|
|
63
|
+
</Location>
|
|
64
|
+
<Location
|
|
65
|
+
shouldBeEnabled = "Yes"
|
|
66
|
+
ignoreCount = "0"
|
|
67
|
+
continueAfterRunningActions = "No"
|
|
68
|
+
usesParentBreakpointCondition = "Yes"
|
|
69
|
+
offsetFromSymbolStart = "0">
|
|
70
|
+
</Location>
|
|
71
|
+
</Locations>
|
|
72
|
+
</BreakpointContent>
|
|
73
|
+
</BreakpointProxy>
|
|
74
|
+
<BreakpointProxy
|
|
75
|
+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
76
|
+
<BreakpointContent
|
|
77
|
+
uuid = "D3009B57-42BC-4905-99BC-70232544FAFB"
|
|
78
|
+
shouldBeEnabled = "Yes"
|
|
79
|
+
ignoreCount = "0"
|
|
80
|
+
continueAfterRunningActions = "No"
|
|
81
|
+
filePath = "WebDriverAgentTests/IntegrationTests/FBAlertTests.m"
|
|
82
|
+
startingColumnNumber = "5"
|
|
83
|
+
endingColumnNumber = "64"
|
|
84
|
+
startingLineNumber = "32"
|
|
85
|
+
endingLineNumber = "32"
|
|
86
|
+
landmarkName = "-setUp"
|
|
87
|
+
landmarkType = "7">
|
|
88
|
+
</BreakpointContent>
|
|
89
|
+
</BreakpointProxy>
|
|
90
|
+
</Breakpoints>
|
|
91
|
+
</Bucket>
|
|
@@ -4,78 +4,55 @@
|
|
|
4
4
|
<dict>
|
|
5
5
|
<key>SchemeUserState</key>
|
|
6
6
|
<dict>
|
|
7
|
-
<key>IntegrationApp.xcscheme</key>
|
|
8
|
-
<dict>
|
|
9
|
-
<key>orderHint</key>
|
|
10
|
-
<integer>3</integer>
|
|
11
|
-
</dict>
|
|
12
7
|
<key>IntegrationApp.xcscheme_^#shared#^_</key>
|
|
13
8
|
<dict>
|
|
14
9
|
<key>orderHint</key>
|
|
15
|
-
<integer>
|
|
10
|
+
<integer>0</integer>
|
|
16
11
|
</dict>
|
|
17
12
|
<key>IntegrationTests_1.xcscheme_^#shared#^_</key>
|
|
18
13
|
<dict>
|
|
19
14
|
<key>orderHint</key>
|
|
20
|
-
<integer>
|
|
15
|
+
<integer>1</integer>
|
|
21
16
|
</dict>
|
|
22
17
|
<key>IntegrationTests_2.xcscheme_^#shared#^_</key>
|
|
23
18
|
<dict>
|
|
24
19
|
<key>orderHint</key>
|
|
25
|
-
<integer>
|
|
20
|
+
<integer>2</integer>
|
|
26
21
|
</dict>
|
|
27
22
|
<key>IntegrationTests_3.xcscheme_^#shared#^_</key>
|
|
28
23
|
<dict>
|
|
29
24
|
<key>orderHint</key>
|
|
30
|
-
<integer>
|
|
25
|
+
<integer>3</integer>
|
|
31
26
|
</dict>
|
|
32
|
-
<key>WebDriverAgentLib.xcscheme_^#shared#^_</key>
|
|
27
|
+
<key>WebDriverAgentLib copy.xcscheme_^#shared#^_</key>
|
|
33
28
|
<dict>
|
|
34
29
|
<key>orderHint</key>
|
|
35
|
-
<integer>
|
|
30
|
+
<integer>9</integer>
|
|
36
31
|
</dict>
|
|
37
|
-
<key>
|
|
32
|
+
<key>WebDriverAgentLib.xcscheme_^#shared#^_</key>
|
|
38
33
|
<dict>
|
|
39
34
|
<key>orderHint</key>
|
|
40
|
-
<integer>
|
|
35
|
+
<integer>4</integer>
|
|
41
36
|
</dict>
|
|
42
37
|
<key>WebDriverAgentLib_tvOS.xcscheme_^#shared#^_</key>
|
|
43
38
|
<dict>
|
|
44
39
|
<key>orderHint</key>
|
|
45
|
-
<integer>
|
|
46
|
-
</dict>
|
|
47
|
-
<key>WebDriverAgentLib_watchOS.xcscheme_^#shared#^_</key>
|
|
48
|
-
<dict>
|
|
49
|
-
<key>orderHint</key>
|
|
50
|
-
<integer>10</integer>
|
|
40
|
+
<integer>5</integer>
|
|
51
41
|
</dict>
|
|
52
42
|
<key>WebDriverAgentRunner-nodebug.xcscheme_^#shared#^_</key>
|
|
53
43
|
<dict>
|
|
54
44
|
<key>orderHint</key>
|
|
55
|
-
<integer>
|
|
45
|
+
<integer>7</integer>
|
|
56
46
|
</dict>
|
|
57
47
|
<key>WebDriverAgentRunner.xcscheme_^#shared#^_</key>
|
|
58
48
|
<dict>
|
|
59
49
|
<key>orderHint</key>
|
|
60
|
-
<integer>
|
|
50
|
+
<integer>6</integer>
|
|
61
51
|
</dict>
|
|
62
52
|
<key>WebDriverAgentRunner_tvOS.xcscheme_^#shared#^_</key>
|
|
63
53
|
<dict>
|
|
64
54
|
<key>orderHint</key>
|
|
65
|
-
<integer>
|
|
66
|
-
</dict>
|
|
67
|
-
<key>WebDriverAgentRunner_watchOS.xcscheme_^#shared#^_</key>
|
|
68
|
-
<dict>
|
|
69
|
-
<key>orderHint</key>
|
|
70
|
-
<integer>9</integer>
|
|
71
|
-
</dict>
|
|
72
|
-
</dict>
|
|
73
|
-
<key>SuppressBuildableAutocreation</key>
|
|
74
|
-
<dict>
|
|
75
|
-
<key>72F9A2AB26B5121A00A27636</key>
|
|
76
|
-
<dict>
|
|
77
|
-
<key>primary</key>
|
|
78
|
-
<true/>
|
|
55
|
+
<integer>8</integer>
|
|
79
56
|
</dict>
|
|
80
57
|
</dict>
|
|
81
58
|
</dict>
|
|
Binary file
|
|
@@ -121,10 +121,7 @@ static NSString* const FBUnknownBundleId = @"unknown";
|
|
|
121
121
|
info[@"name"] = FBValueOrNull(snapshot.wdName);
|
|
122
122
|
info[@"value"] = FBValueOrNull(snapshot.wdValue);
|
|
123
123
|
info[@"label"] = FBValueOrNull(snapshot.wdLabel);
|
|
124
|
-
|
|
125
|
-
// exceptions like https://github.com/facebook/WebDriverAgent/issues/639#issuecomment-314421206
|
|
126
|
-
// caused by broken element dimensions returned by XCTest
|
|
127
|
-
info[@"rect"] = FBwdRectNoInf(snapshot.wdRect);
|
|
124
|
+
info[@"rect"] = snapshot.wdRect;
|
|
128
125
|
info[@"frame"] = NSStringFromCGRect(snapshot.wdFrame);
|
|
129
126
|
info[@"isEnabled"] = [@([snapshot isWDEnabled]) stringValue];
|
|
130
127
|
info[@"isVisible"] = [@([snapshot isWDVisible]) stringValue];
|
|
@@ -0,0 +1,23 @@
|
|
|
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. An additional grant
|
|
7
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#import <XCTest/XCTest.h>
|
|
11
|
+
|
|
12
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
13
|
+
|
|
14
|
+
@interface XCUIApplication (FBUIInterruptions)
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Disables automatic UI interruptions handling for all applications.
|
|
18
|
+
*/
|
|
19
|
+
+ (void)fb_disableUIInterruptionsHandling;
|
|
20
|
+
|
|
21
|
+
@end
|
|
22
|
+
|
|
23
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,32 @@
|
|
|
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. An additional grant
|
|
7
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#import "XCUIApplication+FBUIInterruptions.h"
|
|
11
|
+
|
|
12
|
+
#import "FBReflectionUtils.h"
|
|
13
|
+
#import "XCUIApplication.h"
|
|
14
|
+
|
|
15
|
+
@implementation XCUIApplication (FBUIInterruptions)
|
|
16
|
+
|
|
17
|
+
- (BOOL)fb_doesNotHandleUIInterruptions
|
|
18
|
+
{
|
|
19
|
+
return YES;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
+ (void)fb_disableUIInterruptionsHandling
|
|
23
|
+
{
|
|
24
|
+
static dispatch_once_t onceToken;
|
|
25
|
+
dispatch_once(&onceToken, ^{
|
|
26
|
+
FBReplaceMethod([self class],
|
|
27
|
+
@selector(doesNotHandleUIInterruptions),
|
|
28
|
+
@selector(fb_doesNotHandleUIInterruptions));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@end
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
#import "FBElementUtils.h"
|
|
23
23
|
#import "XCTestPrivateSymbols.h"
|
|
24
24
|
|
|
25
|
+
#define BROKEN_RECT CGRectMake(-1, -1, 0, 0)
|
|
26
|
+
|
|
25
27
|
@implementation XCUIElement (WebDriverAttributesForwarding)
|
|
26
28
|
|
|
27
29
|
- (XCElementSnapshot *)fb_snapshotForAttributeName:(NSString *)name
|
|
@@ -129,7 +131,14 @@
|
|
|
129
131
|
|
|
130
132
|
- (CGRect)wdFrame
|
|
131
133
|
{
|
|
132
|
-
|
|
134
|
+
CGRect frame = self.frame;
|
|
135
|
+
// It is mandatory to replace all Infinity values with numbers to avoid JSON parsing
|
|
136
|
+
// exceptions like https://github.com/facebook/WebDriverAgent/issues/639#issuecomment-314421206
|
|
137
|
+
// caused by broken element dimensions returned by XCTest
|
|
138
|
+
return (isinf(frame.size.width) || isinf(frame.size.height)
|
|
139
|
+
|| isinf(frame.origin.x) || isinf(frame.origin.y))
|
|
140
|
+
? CGRectIntegral(BROKEN_RECT)
|
|
141
|
+
: CGRectIntegral(frame);
|
|
133
142
|
}
|
|
134
143
|
|
|
135
144
|
- (BOOL)isWDVisible
|
|
@@ -380,7 +380,8 @@
|
|
|
380
380
|
// https://developer.apple.com/documentation/foundation/nslocale/1414388-autoupdatingcurrentlocale
|
|
381
381
|
NSString *currentLocale = [[NSLocale autoupdatingCurrentLocale] localeIdentifier];
|
|
382
382
|
|
|
383
|
-
|
|
383
|
+
NSMutableDictionary *deviceInfo = [NSMutableDictionary dictionaryWithDictionary:
|
|
384
|
+
@{
|
|
384
385
|
@"currentLocale": currentLocale,
|
|
385
386
|
@"timeZone": self.timeZone,
|
|
386
387
|
@"name": UIDevice.currentDevice.name,
|
|
@@ -394,7 +395,14 @@
|
|
|
394
395
|
#else
|
|
395
396
|
@"isSimulator": @(NO),
|
|
396
397
|
#endif
|
|
397
|
-
}
|
|
398
|
+
}];
|
|
399
|
+
|
|
400
|
+
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"11.0")) {
|
|
401
|
+
// https://developer.apple.com/documentation/foundation/nsprocessinfothermalstate
|
|
402
|
+
deviceInfo[@"thermalState"] = @(NSProcessInfo.processInfo.thermalState);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
return FBResponseWithObject(deviceInfo);
|
|
398
406
|
}
|
|
399
407
|
|
|
400
408
|
/**
|
|
@@ -17,10 +17,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
17
17
|
*/
|
|
18
18
|
@protocol FBElement <NSObject>
|
|
19
19
|
|
|
20
|
-
/*! Element's frame in CGRect format */
|
|
20
|
+
/*! Element's frame in normalized (rounded dimensions without Infinity values) CGRect format */
|
|
21
21
|
@property (nonatomic, readonly, assign) CGRect wdFrame;
|
|
22
22
|
|
|
23
|
-
/*! Element's
|
|
23
|
+
/*! Element's wsFrame in NSDictionary format */
|
|
24
24
|
@property (nonatomic, readonly, copy) NSDictionary *wdRect;
|
|
25
25
|
|
|
26
26
|
/*! Element's name */
|
|
@@ -107,7 +107,7 @@ inline NSDictionary *FBDictionaryResponseWithElement(XCUIElement *element, BOOL
|
|
|
107
107
|
} else if ([field isEqualToString:@"text"]) {
|
|
108
108
|
dictionary[field] = FBFirstNonEmptyValue(snapshot.wdValue, snapshot.wdLabel) ?: [NSNull null];
|
|
109
109
|
} else if ([field isEqualToString:@"rect"]) {
|
|
110
|
-
dictionary[field] =
|
|
110
|
+
dictionary[field] = snapshot.wdRect;
|
|
111
111
|
} else if ([field isEqualToString:@"enabled"]) {
|
|
112
112
|
dictionary[field] = @(snapshot.wdEnabled);
|
|
113
113
|
} else if ([field isEqualToString:@"displayed"]) {
|
|
@@ -118,6 +118,11 @@ extern NSString *const FBSnapshotMaxDepthKey;
|
|
|
118
118
|
*/
|
|
119
119
|
+ (BOOL)verboseLoggingEnabled;
|
|
120
120
|
|
|
121
|
+
/**
|
|
122
|
+
Disables automatic handling of XCTest UI interruptions.
|
|
123
|
+
*/
|
|
124
|
+
+ (void)disableApplicationUIInterruptionsHandling;
|
|
125
|
+
|
|
121
126
|
/**
|
|
122
127
|
* Configure keyboards preference to make test running stable
|
|
123
128
|
*/
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#import "XCTestPrivateSymbols.h"
|
|
18
18
|
#import "XCElementSnapshot.h"
|
|
19
19
|
#import "XCTestConfiguration.h"
|
|
20
|
+
#import "XCUIApplication+FBUIInterruptions.h"
|
|
20
21
|
|
|
21
22
|
static NSUInteger const DefaultStartingPort = 8100;
|
|
22
23
|
static NSUInteger const DefaultMjpegServerPort = 9100;
|
|
@@ -74,6 +75,11 @@ static UIInterfaceOrientation FBScreenshotOrientation = UIInterfaceOrientationUn
|
|
|
74
75
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"XCTDisableRemoteQueryEvaluation"];
|
|
75
76
|
}
|
|
76
77
|
|
|
78
|
+
+ (void)disableApplicationUIInterruptionsHandling
|
|
79
|
+
{
|
|
80
|
+
[XCUIApplication fb_disableUIInterruptionsHandling];
|
|
81
|
+
}
|
|
82
|
+
|
|
77
83
|
+ (void)enableXcTestDebugLogs
|
|
78
84
|
{
|
|
79
85
|
((XCTestConfiguration *)XCTestConfiguration.activeTestConfiguration).emitOSLogs = YES;
|
|
@@ -41,6 +41,3 @@ CGPoint FBInvertOffsetForOrientation(CGPoint offset, UIInterfaceOrientation orie
|
|
|
41
41
|
/*! Inverts size if necessary to match current screen orientation */
|
|
42
42
|
CGSize FBAdjustDimensionsForApplication(CGSize actualSize, UIInterfaceOrientation orientation);
|
|
43
43
|
#endif
|
|
44
|
-
|
|
45
|
-
/*! Replaces the wdRect dictionary passed as the argument with zero-size wdRect if any of its attributes equal to Infinity */
|
|
46
|
-
NSDictionary<NSString *, NSNumber *> *FBwdRectNoInf(NSDictionary<NSString *, NSNumber *> *wdRect);
|
|
@@ -91,16 +91,3 @@ CGSize FBAdjustDimensionsForApplication(CGSize actualSize, UIInterfaceOrientatio
|
|
|
91
91
|
return actualSize;
|
|
92
92
|
}
|
|
93
93
|
#endif
|
|
94
|
-
|
|
95
|
-
NSDictionary<NSString *, NSNumber *> *FBwdRectNoInf(NSDictionary<NSString *, NSNumber *> *wdRect)
|
|
96
|
-
{
|
|
97
|
-
NSMutableDictionary<NSString *, NSNumber *> *result = wdRect.mutableCopy;
|
|
98
|
-
if (isinf(result[@"x"].doubleValue) || isinf(result[@"y"].doubleValue) ||
|
|
99
|
-
isinf(result[@"width"].doubleValue) || isinf(result[@"height"].doubleValue)) {
|
|
100
|
-
[result setObject:@-1 forKey:@"x"];
|
|
101
|
-
[result setObject:@-1 forKey:@"y"];
|
|
102
|
-
[result setObject:@0 forKey:@"width"];
|
|
103
|
-
[result setObject:@0 forKey:@"height"];
|
|
104
|
-
}
|
|
105
|
-
return result.copy;
|
|
106
|
-
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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. An additional grant
|
|
7
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#import <Foundation/Foundation.h>
|
|
11
|
+
|
|
12
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Swizzles the implemntation of originalSelector with the swizzledSelector for the given class.
|
|
16
|
+
* Both methods must belong to this class.
|
|
17
|
+
*
|
|
18
|
+
* @param cls The class where to swizzle
|
|
19
|
+
* @param originalSelector original method selector
|
|
20
|
+
* @paramswizzledSelector swizzled method selector
|
|
21
|
+
*/
|
|
22
|
+
void FBReplaceMethod(Class cls, SEL originalSelector, SEL swizzledSelector);
|
|
23
|
+
|
|
24
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,32 @@
|
|
|
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. An additional grant
|
|
7
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#import "FBReflectionUtils.h"
|
|
11
|
+
|
|
12
|
+
#import <objc/runtime.h>
|
|
13
|
+
|
|
14
|
+
void FBReplaceMethod(Class class, SEL originalSelector, SEL swizzledSelector) {
|
|
15
|
+
Method originalMethod = class_getInstanceMethod(class, originalSelector);
|
|
16
|
+
Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector);
|
|
17
|
+
|
|
18
|
+
BOOL didAddMethod =
|
|
19
|
+
class_addMethod(class,
|
|
20
|
+
originalSelector,
|
|
21
|
+
method_getImplementation(swizzledMethod),
|
|
22
|
+
method_getTypeEncoding(swizzledMethod));
|
|
23
|
+
|
|
24
|
+
if (didAddMethod) {
|
|
25
|
+
class_replaceMethod(class,
|
|
26
|
+
swizzledSelector,
|
|
27
|
+
method_getImplementation(originalMethod),
|
|
28
|
+
method_getTypeEncoding(originalMethod));
|
|
29
|
+
} else {
|
|
30
|
+
method_exchangeImplementations(originalMethod, swizzledMethod);
|
|
31
|
+
}
|
|
32
|
+
}
|