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.
Files changed (38) hide show
  1. package/PrivateHeaders/.DS_Store +0 -0
  2. package/Scripts/build.sh +13 -16
  3. package/WebDriverAgent.xcodeproj/project.pbxproj +26 -2
  4. package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/elf.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  5. package/WebDriverAgent.xcodeproj/xcuserdata/elf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +91 -0
  6. package/WebDriverAgent.xcodeproj/xcuserdata/{kazuaki.xcuserdatad → elf.xcuserdatad}/xcschemes/xcschememanagement.plist +12 -35
  7. package/WebDriverAgentLib/.DS_Store +0 -0
  8. package/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +1 -4
  9. package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.h +23 -0
  10. package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.m +32 -0
  11. package/WebDriverAgentLib/Categories/XCUIElement+FBWebDriverAttributes.m +10 -1
  12. package/WebDriverAgentLib/Commands/FBCustomCommands.m +10 -2
  13. package/WebDriverAgentLib/Routing/FBElement.h +2 -2
  14. package/WebDriverAgentLib/Routing/FBResponsePayload.m +1 -1
  15. package/WebDriverAgentLib/Utilities/FBConfiguration.h +5 -0
  16. package/WebDriverAgentLib/Utilities/FBConfiguration.m +6 -0
  17. package/WebDriverAgentLib/Utilities/FBMathUtils.h +0 -3
  18. package/WebDriverAgentLib/Utilities/FBMathUtils.m +0 -13
  19. package/WebDriverAgentLib/Utilities/FBReflectionUtils.h +24 -0
  20. package/WebDriverAgentLib/Utilities/FBReflectionUtils.m +32 -0
  21. package/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +5 -23
  22. package/WebDriverAgentLib/Utilities/LRUCache/.DS_Store +0 -0
  23. package/WebDriverAgentLib/Vendor/.DS_Store +0 -0
  24. package/WebDriverAgentRunner/.DS_Store +0 -0
  25. package/WebDriverAgentRunner/UITestingUITests.m +1 -0
  26. package/WebDriverAgentRunner-Runner.app.zip +0 -0
  27. package/WebDriverAgentTests/IntegrationApp/Resources/.DS_Store +0 -0
  28. package/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +1 -0
  29. package/WebDriverAgentTests/IntegrationTests/FBSafariAlertTests.m +13 -10
  30. package/build/index.js +3 -5
  31. package/build/lib/utils.js +2 -2
  32. package/build/lib/webdriveragent.js +1 -1
  33. package/build/lib/xcodebuild.js +1 -1
  34. package/lib/utils.js +2 -1
  35. package/package.json +1 -1
  36. package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  37. package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/WorkspaceSettings.xcsettings +0 -20
  38. 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
- xcodebuild \
73
- -project "WebDriverAgent.xcodeproj" \
74
- -scheme "$XC_TARGET" \
75
- -sdk "$XC_SDK" \
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 = 51;
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 10.0";
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 */,
@@ -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>5</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>6</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>7</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>8</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>0</integer>
30
+ <integer>9</integer>
36
31
  </dict>
37
- <key>WebDriverAgentLib_tvOS copy.xcscheme_^#shared#^_</key>
32
+ <key>WebDriverAgentLib.xcscheme_^#shared#^_</key>
38
33
  <dict>
39
34
  <key>orderHint</key>
40
- <integer>10</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>3</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>2</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>1</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>4</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
- // It is mandatory to replace all Infinity values with zeroes to avoid JSON parsing
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
- return CGRectIntegral(self.frame);
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
- return FBResponseWithObject(@{
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 frame in NSDictionary format */
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] = FBwdRectNoInf(snapshot.wdRect);
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
+ }