appium-webdriveragent 3.14.0 → 4.0.0

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 (56) hide show
  1. package/Scripts/build-webdriveragent.js +1 -1
  2. package/Scripts/fetch-prebuilt-wda.js +1 -1
  3. package/WebDriverAgent.xcodeproj/project.pbxproj +38 -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/Categories/XCUIApplication+FBHelpers.h +9 -6
  8. package/WebDriverAgentLib/Categories/XCUIApplication+FBHelpers.m +4 -6
  9. package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.h +23 -0
  10. package/WebDriverAgentLib/Categories/XCUIApplication+FBUIInterruptions.m +32 -0
  11. package/WebDriverAgentLib/Commands/FBAlertViewCommands.m +6 -6
  12. package/WebDriverAgentLib/Commands/FBDebugCommands.m +6 -3
  13. package/WebDriverAgentLib/FBAlert.m +1 -0
  14. package/WebDriverAgentLib/Utilities/FBConfiguration.h +5 -0
  15. package/WebDriverAgentLib/Utilities/FBConfiguration.m +6 -0
  16. package/WebDriverAgentLib/Utilities/FBReflectionUtils.h +24 -0
  17. package/WebDriverAgentLib/Utilities/FBReflectionUtils.m +32 -0
  18. package/WebDriverAgentLib/Utilities/FBScreen.m +3 -1
  19. package/WebDriverAgentLib/Utilities/FBXCAXClientProxy.m +5 -23
  20. package/WebDriverAgentLib/Utilities/FBXMLGenerationOptions.h +46 -0
  21. package/WebDriverAgentLib/Utilities/FBXMLGenerationOptions.m +26 -0
  22. package/WebDriverAgentLib/Utilities/FBXPath.h +4 -3
  23. package/WebDriverAgentLib/Utilities/FBXPath.m +65 -28
  24. package/WebDriverAgentRunner/UITestingUITests.m +1 -0
  25. package/WebDriverAgentRunner-Runner.app.zip +0 -0
  26. package/WebDriverAgentTests/IntegrationTests/FBAlertTests.m +6 -0
  27. package/WebDriverAgentTests/IntegrationTests/FBAppiumMultiTouchActionsIntegrationTests.m +7 -0
  28. package/WebDriverAgentTests/IntegrationTests/FBAppiumTouchActionsIntegrationTests.m +19 -0
  29. package/WebDriverAgentTests/IntegrationTests/FBElementScreenshotTests.m +4 -0
  30. package/WebDriverAgentTests/IntegrationTests/FBElementSwipingTests.m +71 -6
  31. package/WebDriverAgentTests/IntegrationTests/FBElementVisibilityTests.m +3 -1
  32. package/WebDriverAgentTests/IntegrationTests/FBForceTouchTests.m +6 -0
  33. package/WebDriverAgentTests/IntegrationTests/FBIntegrationTestCase.m +2 -1
  34. package/WebDriverAgentTests/IntegrationTests/FBKeyboardTests.m +19 -0
  35. package/WebDriverAgentTests/IntegrationTests/FBW3CTouchActionsIntegrationTests.m +15 -0
  36. package/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +16 -2
  37. package/WebDriverAgentTests/IntegrationTests/XCUIApplicationHelperTests.m +1 -1
  38. package/WebDriverAgentTests/IntegrationTests/XCUIElementFBFindTests.m +1 -1
  39. package/WebDriverAgentTests/UnitTests/FBXPathTests.m +28 -15
  40. package/build/lib/check-dependencies.js +3 -3
  41. package/build/lib/logger.js +3 -3
  42. package/build/lib/no-session-proxy.js +3 -3
  43. package/build/lib/utils.js +17 -17
  44. package/build/lib/webdriveragent.js +16 -16
  45. package/build/lib/xcodebuild.js +5 -5
  46. package/lib/check-dependencies.js +1 -1
  47. package/lib/logger.js +1 -1
  48. package/lib/no-session-proxy.js +1 -1
  49. package/lib/utils.js +3 -2
  50. package/lib/webdriveragent.js +2 -2
  51. package/lib/xcodebuild.js +1 -1
  52. package/package.json +10 -11
  53. package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  54. package/WebDriverAgent.xcodeproj/project.xcworkspace/xcuserdata/kazuaki.xcuserdatad/WorkspaceSettings.xcsettings +0 -20
  55. package/WebDriverAgent.xcodeproj/xcuserdata/kazuaki.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -1979
  56. package/WebDriverAgentLib/.DS_Store +0 -0
@@ -1,7 +1,7 @@
1
1
  const path = require('path');
2
2
  const os = require('os');
3
3
  const { asyncify } = require('asyncbox');
4
- const { logger, fs, mkdirp, zip } = require('appium-support');
4
+ const { logger, fs, mkdirp, zip } = require('@appium/support');
5
5
  const { exec } = require('teen_process');
6
6
  const xcode = require('appium-xcode');
7
7
 
@@ -1,7 +1,7 @@
1
1
  const path = require('path');
2
2
  const axios = require('axios');
3
3
  const { asyncify } = require('asyncbox');
4
- const { logger, fs, mkdirp, net } = require('appium-support');
4
+ const { logger, fs, mkdirp, net } = require('@appium/support');
5
5
  const _ = require('lodash');
6
6
  const B = require('bluebird');
7
7
 
@@ -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 */
@@ -347,6 +347,10 @@
347
347
  71414EDA2670A1EE003A8C5D /* LRUCacheNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 71414ED32670A1ED003A8C5D /* LRUCacheNode.m */; };
348
348
  71414EDB2670A1EE003A8C5D /* LRUCacheNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 71414ED32670A1ED003A8C5D /* LRUCacheNode.m */; };
349
349
  714801D11FA9D9FA00DC5997 /* FBSDKVersionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 714801D01FA9D9FA00DC5997 /* FBSDKVersionTests.m */; };
350
+ 714D88CC2733FB970074A925 /* FBXMLGenerationOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 714D88CA2733FB970074A925 /* FBXMLGenerationOptions.h */; };
351
+ 714D88CD2733FB970074A925 /* FBXMLGenerationOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 714D88CA2733FB970074A925 /* FBXMLGenerationOptions.h */; };
352
+ 714D88CE2733FB970074A925 /* FBXMLGenerationOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 714D88CB2733FB970074A925 /* FBXMLGenerationOptions.m */; };
353
+ 714D88CF2733FB970074A925 /* FBXMLGenerationOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 714D88CB2733FB970074A925 /* FBXMLGenerationOptions.m */; };
350
354
  714EAA0D2673FDFE005C5B47 /* FBCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 714EAA0B2673FDFE005C5B47 /* FBCapabilities.h */; };
351
355
  714EAA0E2673FDFE005C5B47 /* FBCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 714EAA0B2673FDFE005C5B47 /* FBCapabilities.h */; };
352
356
  714EAA0F2673FDFE005C5B47 /* FBCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 714EAA0C2673FDFE005C5B47 /* FBCapabilities.m */; };
@@ -386,6 +390,14 @@
386
390
  71649ECE2518C19C0087F212 /* IOSTestSettings.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 71649EC82518C19C0087F212 /* IOSTestSettings.xcconfig */; };
387
391
  716C9346224D540C004B8542 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 716C9345224D540C004B8542 /* libxml2.tbd */; };
388
392
  716C9347224D540C004B8542 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 716C9345224D540C004B8542 /* libxml2.tbd */; };
393
+ 716C9DFA27315D21005AD475 /* FBReflectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DF827315D21005AD475 /* FBReflectionUtils.h */; };
394
+ 716C9DFB27315D21005AD475 /* FBReflectionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DF827315D21005AD475 /* FBReflectionUtils.h */; };
395
+ 716C9DFC27315D21005AD475 /* FBReflectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DF927315D21005AD475 /* FBReflectionUtils.m */; };
396
+ 716C9DFD27315D21005AD475 /* FBReflectionUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DF927315D21005AD475 /* FBReflectionUtils.m */; };
397
+ 716C9E0027315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */; };
398
+ 716C9E0127315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */; };
399
+ 716C9E0227315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */; };
400
+ 716C9E0327315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */; };
389
401
  716E0BCE1E917E810087A825 /* NSString+FBXMLSafeString.h in Headers */ = {isa = PBXBuildFile; fileRef = 716E0BCC1E917E810087A825 /* NSString+FBXMLSafeString.h */; };
390
402
  716E0BCF1E917E810087A825 /* NSString+FBXMLSafeString.m in Sources */ = {isa = PBXBuildFile; fileRef = 716E0BCD1E917E810087A825 /* NSString+FBXMLSafeString.m */; };
391
403
  716E0BD11E917F260087A825 /* FBXMLSafeStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 716E0BD01E917F260087A825 /* FBXMLSafeStringTests.m */; };
@@ -966,6 +978,8 @@
966
978
  71414ED32670A1ED003A8C5D /* LRUCacheNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LRUCacheNode.m; sourceTree = "<group>"; };
967
979
  714801D01FA9D9FA00DC5997 /* FBSDKVersionTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBSDKVersionTests.m; sourceTree = "<group>"; };
968
980
  714CA3C61DC23186000F12C9 /* FBXPathIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBXPathIntegrationTests.m; sourceTree = "<group>"; };
981
+ 714D88CA2733FB970074A925 /* FBXMLGenerationOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBXMLGenerationOptions.h; sourceTree = "<group>"; };
982
+ 714D88CB2733FB970074A925 /* FBXMLGenerationOptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBXMLGenerationOptions.m; sourceTree = "<group>"; };
969
983
  714EAA0B2673FDFE005C5B47 /* FBCapabilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCapabilities.h; sourceTree = "<group>"; };
970
984
  714EAA0C2673FDFE005C5B47 /* FBCapabilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBCapabilities.m; sourceTree = "<group>"; };
971
985
  7150348521A6DAD600A0F4BA /* FBImageUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBImageUtils.h; sourceTree = "<group>"; };
@@ -992,6 +1006,10 @@
992
1006
  716C9343224D53DF004B8542 /* libAccessibility.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libAccessibility.tbd; path = usr/lib/libAccessibility.tbd; sourceTree = SDKROOT; };
993
1007
  716C9344224D53FC004B8542 /* XCTAutomationSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTAutomationSupport.framework; path = Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework; sourceTree = DEVELOPER_DIR; };
994
1008
  716C9345224D540C004B8542 /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; };
1009
+ 716C9DF827315D21005AD475 /* FBReflectionUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBReflectionUtils.h; sourceTree = "<group>"; };
1010
+ 716C9DF927315D21005AD475 /* FBReflectionUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBReflectionUtils.m; sourceTree = "<group>"; };
1011
+ 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "XCUIApplication+FBUIInterruptions.h"; sourceTree = "<group>"; };
1012
+ 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "XCUIApplication+FBUIInterruptions.m"; sourceTree = "<group>"; };
995
1013
  716E0BCC1E917E810087A825 /* NSString+FBXMLSafeString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+FBXMLSafeString.h"; sourceTree = "<group>"; };
996
1014
  716E0BCD1E917E810087A825 /* NSString+FBXMLSafeString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+FBXMLSafeString.m"; sourceTree = "<group>"; };
997
1015
  716E0BD01E917F260087A825 /* FBXMLSafeStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBXMLSafeStringTests.m; sourceTree = "<group>"; };
@@ -1725,6 +1743,8 @@
1725
1743
  AD6C269B1CF2494200F8B5FF /* XCUIApplication+FBHelpers.m */,
1726
1744
  71C8E54F25399A6B008572C1 /* XCUIApplication+FBQuiescence.h */,
1727
1745
  71C8E55025399A6B008572C1 /* XCUIApplication+FBQuiescence.m */,
1746
+ 716C9DFE27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h */,
1747
+ 716C9DFF27315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m */,
1728
1748
  71D475C02538F5A8008D9401 /* XCUIApplicationProcess+FBQuiescence.h */,
1729
1749
  71D475C12538F5A8008D9401 /* XCUIApplicationProcess+FBQuiescence.m */,
1730
1750
  EEC9EED420064FAA00BC0D5B /* XCUICoordinate+FBFix.h */,
@@ -1899,6 +1919,8 @@
1899
1919
  EEEC7C911F21F27A0053426C /* FBPredicate.m */,
1900
1920
  71B155DD23080CA600646AFB /* FBProtocolHelpers.h */,
1901
1921
  71B155DE23080CA600646AFB /* FBProtocolHelpers.m */,
1922
+ 716C9DF827315D21005AD475 /* FBReflectionUtils.h */,
1923
+ 716C9DF927315D21005AD475 /* FBReflectionUtils.m */,
1902
1924
  EEE9B4701CD02B88009D2030 /* FBRunLoopSpinner.h */,
1903
1925
  EEE9B4711CD02B88009D2030 /* FBRunLoopSpinner.m */,
1904
1926
  EE9AB7911CAEDF0C008C271F /* FBRuntimeUtils.h */,
@@ -1926,6 +1948,8 @@
1926
1948
  EE7E271B1D06C69F001BEC7B /* FBXCTestCaseImplementationFailureHoldingProxy.m */,
1927
1949
  EE35AD791E3B80C000A02D78 /* FBXCTestDaemonsProxy.h */,
1928
1950
  EE35AD7A1E3B80C000A02D78 /* FBXCTestDaemonsProxy.m */,
1951
+ 714D88CA2733FB970074A925 /* FBXMLGenerationOptions.h */,
1952
+ 714D88CB2733FB970074A925 /* FBXMLGenerationOptions.m */,
1929
1953
  712A0C861DA3E55D007D02E5 /* FBXPath-Private.h */,
1930
1954
  711084421DA3AA7500F913D6 /* FBXPath.h */,
1931
1955
  711084431DA3AA7500F913D6 /* FBXPath.m */,
@@ -2247,6 +2271,7 @@
2247
2271
  641EE6352240C5CA00173FCB /* XCUIElement+FBUtilities.h in Headers */,
2248
2272
  641EE6362240C5CA00173FCB /* XCUIElement+FBScrolling.h in Headers */,
2249
2273
  1357E297233D05240054BDB8 /* XCUIHitPointResult.h in Headers */,
2274
+ 716C9DFB27315D21005AD475 /* FBReflectionUtils.h in Headers */,
2250
2275
  641EE6372240C5CA00173FCB /* XCSourceCodeTreeNode.h in Headers */,
2251
2276
  641EE6382240C5CA00173FCB /* XCPointerEventPath.h in Headers */,
2252
2277
  641EE6392240C5CA00173FCB /* FBRouteRequest.h in Headers */,
@@ -2260,6 +2285,7 @@
2260
2285
  641EE63E2240C5CA00173FCB /* _XCTestImplementation.h in Headers */,
2261
2286
  641EE63F2240C5CA00173FCB /* FBTouchActionCommands.h in Headers */,
2262
2287
  641EE6402240C5CA00173FCB /* FBTouchIDCommands.h in Headers */,
2288
+ 714D88CD2733FB970074A925 /* FBXMLGenerationOptions.h in Headers */,
2263
2289
  641EE6412240C5CA00173FCB /* XCUIApplication.h in Headers */,
2264
2290
  641EE6422240C5CA00173FCB /* FBCustomCommands.h in Headers */,
2265
2291
  641EE6432240C5CA00173FCB /* _XCTestCaseInterruptionException.h in Headers */,
@@ -2312,6 +2338,7 @@
2312
2338
  641EE66C2240C5CA00173FCB /* UIPinchGestureRecognizer-RecordingAdditions.h in Headers */,
2313
2339
  641EE66D2240C5CA00173FCB /* XCTestManager_TestsInterface-Protocol.h in Headers */,
2314
2340
  641EE66E2240C5CA00173FCB /* XCUIApplication+FBAlert.h in Headers */,
2341
+ 716C9E0127315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */,
2315
2342
  7182275C258744C300661B83 /* HTTPServer.h in Headers */,
2316
2343
  641EE66F2240C5CA00173FCB /* XCDeviceEvent.h in Headers */,
2317
2344
  641EE6702240C5CA00173FCB /* FBMathUtils.h in Headers */,
@@ -2485,6 +2512,7 @@
2485
2512
  71F5BE4F252F14EB00EE9EBA /* FBExceptions.h in Headers */,
2486
2513
  648C10AB22AAAD9C00B81B9A /* UIKeyboardImpl.h in Headers */,
2487
2514
  EE35AD401E3B77D600A02D78 /* XCTest.h in Headers */,
2515
+ 716C9E0027315EFF005AD475 /* XCUIApplication+FBUIInterruptions.h in Headers */,
2488
2516
  719CD8F82126C78F00C7D0C2 /* FBAlertsMonitor.h in Headers */,
2489
2517
  EE35AD241E3B77D600A02D78 /* XCAccessibilityElement.h in Headers */,
2490
2518
  EE158AE41CBD456F00A3E3F0 /* FBSession.h in Headers */,
@@ -2646,6 +2674,7 @@
2646
2674
  EE35AD261E3B77D600A02D78 /* XCApplicationMonitor_iOS.h in Headers */,
2647
2675
  EE3A18661CDE734B00DE4205 /* FBKeyboard.h in Headers */,
2648
2676
  AD6C269C1CF2494200F8B5FF /* XCUIApplication+FBHelpers.h in Headers */,
2677
+ 714D88CC2733FB970074A925 /* FBXMLGenerationOptions.h in Headers */,
2649
2678
  EE35AD101E3B77D600A02D78 /* _XCTestObservationCenterImplementation.h in Headers */,
2650
2679
  AD6C26981CF2481700F8B5FF /* XCUIDevice+FBHelpers.h in Headers */,
2651
2680
  71A7EAF91E224648001DA4F2 /* FBClassChainQueryParser.h in Headers */,
@@ -2688,6 +2717,7 @@
2688
2717
  EE35AD151E3B77D600A02D78 /* CDStructures.h in Headers */,
2689
2718
  71E75E6D254824230099FC87 /* XCUIElementQuery+FBHelpers.h in Headers */,
2690
2719
  EE35AD311E3B77D600A02D78 /* XCKeyboardLayout.h in Headers */,
2720
+ 716C9DFA27315D21005AD475 /* FBReflectionUtils.h in Headers */,
2691
2721
  E444DCB624913C220060D7EB /* RouteRequest.h in Headers */,
2692
2722
  71F5BE23252E576C00EE9EBA /* XCUIElement+FBSwiping.h in Headers */,
2693
2723
  718226CC2587443700661B83 /* GCDAsyncSocket.h in Headers */,
@@ -2930,7 +2960,7 @@
2930
2960
  };
2931
2961
  };
2932
2962
  buildConfigurationList = 91F9DAE41B99DBC2001349B2 /* Build configuration list for PBXProject "WebDriverAgent" */;
2933
- compatibilityVersion = "Xcode 10.0";
2963
+ compatibilityVersion = "Xcode 11.0";
2934
2964
  developmentRegion = English;
2935
2965
  hasScannedForEncodings = 0;
2936
2966
  knownRegions = (
@@ -3082,6 +3112,7 @@
3082
3112
  641EE5DC2240C5CA00173FCB /* XCUIApplication+FBAlert.m in Sources */,
3083
3113
  641EE5DD2240C5CA00173FCB /* FBAppiumActionsSynthesizer.m in Sources */,
3084
3114
  641EE70F2240CE4800173FCB /* FBTVNavigationTracker.m in Sources */,
3115
+ 714D88CF2733FB970074A925 /* FBXMLGenerationOptions.m in Sources */,
3085
3116
  641EE5DE2240C5CA00173FCB /* XCUIApplication+FBTouchAction.m in Sources */,
3086
3117
  641EE5DF2240C5CA00173FCB /* FBWebServer.m in Sources */,
3087
3118
  641EE5E02240C5CA00173FCB /* FBTCPSocket.m in Sources */,
@@ -3120,6 +3151,7 @@
3120
3151
  641EE5FD2240C5CA00173FCB /* FBBaseActionsSynthesizer.m in Sources */,
3121
3152
  641EE5FE2240C5CA00173FCB /* XCUIElement+FBWebDriverAttributes.m in Sources */,
3122
3153
  641EE5FF2240C5CA00173FCB /* XCUIElement+FBForceTouch.m in Sources */,
3154
+ 716C9E0327315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */,
3123
3155
  641EE6002240C5CA00173FCB /* FBTouchActionCommands.m in Sources */,
3124
3156
  719DCF182601EAFB000E765F /* FBNotificationsHelper.m in Sources */,
3125
3157
  714EAA102673FDFE005C5B47 /* FBCapabilities.m in Sources */,
@@ -3154,6 +3186,7 @@
3154
3186
  641EE61B2240C5CA00173FCB /* FBPasteboard.m in Sources */,
3155
3187
  641EE61C2240C5CA00173FCB /* FBAlert.m in Sources */,
3156
3188
  718F49CB23087B040045FE8B /* FBCommandStatus.m in Sources */,
3189
+ 716C9DFD27315D21005AD475 /* FBReflectionUtils.m in Sources */,
3157
3190
  641EE61D2240C5CA00173FCB /* FBElementCommands.m in Sources */,
3158
3191
  641EE61E2240C5CA00173FCB /* FBExceptionHandler.m in Sources */,
3159
3192
  641EE61F2240C5CA00173FCB /* FBXCodeCompatibility.m in Sources */,
@@ -3231,6 +3264,7 @@
3231
3264
  EE7E271F1D06C69F001BEC7B /* FBXCTestCaseImplementationFailureHoldingProxy.m in Sources */,
3232
3265
  7155D704211DCEF400166C20 /* FBMjpegServer.m in Sources */,
3233
3266
  EEDFE1221D9C06F800E6FFE5 /* XCUIDevice+FBHealthCheck.m in Sources */,
3267
+ 714D88CE2733FB970074A925 /* FBXMLGenerationOptions.m in Sources */,
3234
3268
  E444DCB424913C220060D7EB /* RoutingHTTPServer.m in Sources */,
3235
3269
  7140974E1FAE20EE008FB2C5 /* FBBaseActionsSynthesizer.m in Sources */,
3236
3270
  EEE3764A1D59FAE900ED88DD /* XCUIElement+FBWebDriverAttributes.m in Sources */,
@@ -3253,6 +3287,7 @@
3253
3287
  EE9B76A91CF7A43900275851 /* FBLogger.m in Sources */,
3254
3288
  EE158ABB1CBD456F00A3E3F0 /* FBCustomCommands.m in Sources */,
3255
3289
  AD6C26991CF2481700F8B5FF /* XCUIDevice+FBHelpers.m in Sources */,
3290
+ 716C9E0227315EFF005AD475 /* XCUIApplication+FBUIInterruptions.m in Sources */,
3256
3291
  EE6B64FE1D0F86EF00E85F5D /* XCTestPrivateSymbols.m in Sources */,
3257
3292
  AD76723E1D6B7CC000610457 /* XCUIElement+FBTyping.m in Sources */,
3258
3293
  EE158AAF1CBD456F00A3E3F0 /* XCUIElement+FBAccessibility.m in Sources */,
@@ -3265,6 +3300,7 @@
3265
3300
  E444DCB224913C220060D7EB /* RoutingConnection.m in Sources */,
3266
3301
  EE158AC11CBD456F00A3E3F0 /* FBFindElementCommands.m in Sources */,
3267
3302
  EE7E271D1D06C69F001BEC7B /* FBDebugLogDelegateDecorator.m in Sources */,
3303
+ 716C9DFC27315D21005AD475 /* FBReflectionUtils.m in Sources */,
3268
3304
  71C8E55325399A6B008572C1 /* XCUIApplication+FBQuiescence.m in Sources */,
3269
3305
  71414EDA2670A1EE003A8C5D /* LRUCacheNode.m in Sources */,
3270
3306
  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>
@@ -11,6 +11,7 @@
11
11
 
12
12
  @class XCElementSnapshot;
13
13
  @class XCAccessibilityElement;
14
+ @class FBXMLGenerationOptions;
14
15
 
15
16
  NS_ASSUME_NONNULL_BEGIN
16
17
 
@@ -45,18 +46,20 @@ NS_ASSUME_NONNULL_BEGIN
45
46
  - (NSDictionary *)fb_accessibilityTree;
46
47
 
47
48
  /**
48
- Return application elements tree in form of xml string
49
+ Return application elements tree in a form of xml string
50
+ with default options.
51
+
52
+ @return nil if there was a failure while retriveing the page source.
49
53
  */
50
54
  - (nullable NSString *)fb_xmlRepresentation;
51
55
 
52
56
  /**
53
- Return application elements tree in form of xml string exluding the given attribute names.
57
+ Return application elements tree in a form of xml string
54
58
 
55
- @param excludedAttributes the list of XML attribute names to be excluded from the resulting document.
56
- Invalid attribute names are silently skipped
57
- @returns The XML representation of the current element as a string
59
+ @param options Optional values that affect the resulting XML generation process.
60
+ @return nil if there was a failure while retriveing the page source.
58
61
  */
59
- - (NSString *)fb_xmlRepresentationWithoutAttributes:(NSArray<NSString *> *)excludedAttributes;
62
+ - (nullable NSString *)fb_xmlRepresentationWithOptions:(nullable FBXMLGenerationOptions *)options;
60
63
 
61
64
  /**
62
65
  Return application elements tree in form of internal XCTest debugDescription string
@@ -20,6 +20,7 @@
20
20
  #import "FBXPath.h"
21
21
  #import "FBXCTestDaemonsProxy.h"
22
22
  #import "FBXCAXClientProxy.h"
23
+ #import "FBXMLGenerationOptions.h"
23
24
  #import "XCAccessibilityElement.h"
24
25
  #import "XCElementSnapshot+FBHelpers.h"
25
26
  #import "XCUIDevice+FBHelpers.h"
@@ -180,15 +181,12 @@ static NSString* const FBUnknownBundleId = @"unknown";
180
181
 
181
182
  - (NSString *)fb_xmlRepresentation
182
183
  {
183
- return [FBXPath xmlStringWithRootElement:self excludingAttributes:nil];
184
+ return [self fb_xmlRepresentationWithOptions:nil];
184
185
  }
185
186
 
186
- - (NSString *)fb_xmlRepresentationWithoutAttributes:(NSArray<NSString *> *)excludedAttributes
187
+ - (NSString *)fb_xmlRepresentationWithOptions:(FBXMLGenerationOptions *)options
187
188
  {
188
- #pragma clang diagnostic push
189
- #pragma clang diagnostic ignored "-Wnullable-to-nonnull-conversion"
190
- return [FBXPath xmlStringWithRootElement:self excludingAttributes:excludedAttributes];
191
- #pragma clang diagnostic pop
189
+ return [FBXPath xmlStringWithRootElement:self options:options];
192
190
  }
193
191
 
194
192
  - (NSString *)fb_descriptionRepresentation
@@ -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
@@ -38,8 +38,8 @@
38
38
 
39
39
  + (id<FBResponsePayload>)handleAlertGetTextCommand:(FBRouteRequest *)request
40
40
  {
41
- FBSession *session = request.session;
42
- NSString *alertText = [FBAlert alertWithApplication:session.activeApplication].text;
41
+ FBApplication *application = request.session.activeApplication ?: FBApplication.fb_activeApplication;
42
+ NSString *alertText = [FBAlert alertWithApplication:application].text;
43
43
  if (!alertText) {
44
44
  return FBResponseWithStatus([FBCommandStatus noAlertOpenErrorWithMessage:nil
45
45
  traceback:nil]);
@@ -73,9 +73,9 @@
73
73
 
74
74
  + (id<FBResponsePayload>)handleAlertAcceptCommand:(FBRouteRequest *)request
75
75
  {
76
- FBSession *session = request.session;
76
+ FBApplication *application = request.session.activeApplication ?: FBApplication.fb_activeApplication;
77
77
  NSString *name = request.arguments[@"name"];
78
- FBAlert *alert = [FBAlert alertWithApplication:session.activeApplication];
78
+ FBAlert *alert = [FBAlert alertWithApplication:application];
79
79
  NSError *error;
80
80
 
81
81
  if (!alert.isPresent) {
@@ -96,9 +96,9 @@
96
96
 
97
97
  + (id<FBResponsePayload>)handleAlertDismissCommand:(FBRouteRequest *)request
98
98
  {
99
- FBSession *session = request.session;
99
+ FBApplication *application = request.session.activeApplication ?: FBApplication.fb_activeApplication;
100
100
  NSString *name = request.arguments[@"name"];
101
- FBAlert *alert = [FBAlert alertWithApplication:session.activeApplication];
101
+ FBAlert *alert = [FBAlert alertWithApplication:application];
102
102
  NSError *error;
103
103
 
104
104
  if (!alert.isPresent) {
@@ -12,6 +12,7 @@
12
12
  #import "FBApplication.h"
13
13
  #import "FBRouteRequest.h"
14
14
  #import "FBSession.h"
15
+ #import "FBXMLGenerationOptions.h"
15
16
  #import "XCUIApplication+FBHelpers.h"
16
17
  #import "XCUIElement+FBUtilities.h"
17
18
  #import "FBXPath.h"
@@ -43,14 +44,16 @@ static NSString *const SOURCE_FORMAT_DESCRIPTION = @"description";
43
44
  // This method might be called without session
44
45
  FBApplication *application = request.session.activeApplication ?: FBApplication.fb_activeApplication;
45
46
  NSString *sourceType = request.parameters[@"format"] ?: SOURCE_FORMAT_XML;
47
+ NSString *sourceScope = request.parameters[@"scope"];
46
48
  id result;
47
49
  if ([sourceType caseInsensitiveCompare:SOURCE_FORMAT_XML] == NSOrderedSame) {
48
50
  NSArray<NSString *> *excludedAttributes = nil == request.parameters[@"excluded_attributes"]
49
51
  ? nil
50
52
  : [request.parameters[@"excluded_attributes"] componentsSeparatedByString:@","];
51
- result = nil == excludedAttributes
52
- ? application.fb_xmlRepresentation
53
- : [application fb_xmlRepresentationWithoutAttributes:(NSArray<NSString *> *)excludedAttributes];
53
+ result = [application fb_xmlRepresentationWithOptions:
54
+ [[[FBXMLGenerationOptions new]
55
+ withExcludedAttributes:excludedAttributes]
56
+ withScope:sourceScope]];
54
57
  } else if ([sourceType caseInsensitiveCompare:SOURCE_FORMAT_JSON] == NSOrderedSame) {
55
58
  result = application.fb_tree;
56
59
  } else if ([sourceType caseInsensitiveCompare:SOURCE_FORMAT_DESCRIPTION] == NSOrderedSame) {
@@ -226,6 +226,7 @@
226
226
  ? buttons.firstObject
227
227
  : buttons.lastObject;
228
228
  }
229
+
229
230
  return nil == dismissButton
230
231
  ? [[[FBErrorBuilder builder]
231
232
  withDescriptionFormat:@"Failed to find dismiss button for alert: %@", self.alertElement]
@@ -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;
@@ -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