├── .gitignore
├── .travis.yml
├── README.md
├── VodQAReactNative.app
├── Base.lproj
│ └── LaunchScreen.nib
├── Frameworks
│ ├── IDEBundleInjection.framework
│ │ ├── IDEBundleInjection
│ │ ├── Info.plist
│ │ ├── _CodeSignature
│ │ │ └── CodeResources
│ │ └── version.plist
│ └── XCTest.framework
│ │ ├── Headers
│ │ ├── XCAbstractTest.h
│ │ ├── XCTest.h
│ │ ├── XCTestAssertions.h
│ │ ├── XCTestAssertionsImpl.h
│ │ ├── XCTestCase+AsynchronousTesting.h
│ │ ├── XCTestCase.h
│ │ ├── XCTestCaseRun.h
│ │ ├── XCTestDefines.h
│ │ ├── XCTestErrors.h
│ │ ├── XCTestExpectation.h
│ │ ├── XCTestLog.h
│ │ ├── XCTestObservation.h
│ │ ├── XCTestObservationCenter.h
│ │ ├── XCTestObserver.h
│ │ ├── XCTestProbe.h
│ │ ├── XCTestRun.h
│ │ ├── XCTestSuite.h
│ │ ├── XCTestSuiteRun.h
│ │ ├── XCUIApplication.h
│ │ ├── XCUICoordinate.h
│ │ ├── XCUIDevice.h
│ │ ├── XCUIElement.h
│ │ ├── XCUIElementAttributes.h
│ │ ├── XCUIElementQuery.h
│ │ ├── XCUIElementTypeQueryProvider.h
│ │ ├── XCUIElementTypes.h
│ │ ├── XCUIKeyboardKeys.h
│ │ └── XCUIRemote.h
│ │ ├── Info.plist
│ │ ├── Modules
│ │ └── module.modulemap
│ │ ├── TextBasedStubs
│ │ └── XCTest.tbd
│ │ ├── XCTest
│ │ ├── XCTest.tbd
│ │ ├── XPCServices
│ │ ├── XCUIRecorderService.xpc
│ │ │ ├── Info.plist
│ │ │ ├── XCUIRecorderService
│ │ │ ├── _CodeSignature
│ │ │ │ └── CodeResources
│ │ │ └── version.plist
│ │ └── xctestSymbolicator.xpc
│ │ │ ├── Info.plist
│ │ │ ├── _CodeSignature
│ │ │ └── CodeResources
│ │ │ ├── version.plist
│ │ │ └── xctestSymbolicator
│ │ ├── _CodeSignature
│ │ └── CodeResources
│ │ ├── en.lproj
│ │ └── InfoPlist.strings
│ │ └── version.plist
├── Info.plist
├── PkgInfo
├── PlugIns
│ └── VodQAReactNativeTests.xctest
│ │ ├── Info.plist
│ │ ├── VodQAReactNativeTests
│ │ └── _CodeSignature
│ │ └── CodeResources
├── VodQAReactNative
├── _CodeSignature
│ └── CodeResources
├── assets
│ ├── assets
│ │ └── vodqa.png
│ └── node_modules
│ │ └── react-native
│ │ └── Libraries
│ │ └── CustomComponents
│ │ └── NavigationExperimental
│ │ └── assets
│ │ ├── back-icon.png
│ │ ├── back-icon@1.5x.png
│ │ ├── back-icon@2x.png
│ │ ├── back-icon@3x.png
│ │ └── back-icon@4x.png
├── main.jsbundle
└── main.jsbundle.meta
├── pom.xml
└── src
├── main
└── java
│ └── com
│ └── github
│ ├── android
│ └── AndroidManager.java
│ ├── device
│ ├── Device.java
│ ├── DeviceManager.java
│ ├── DeviceType.java
│ ├── IOSRuntime.java
│ └── SimulatorManager.java
│ ├── iOS
│ └── IOSManager.java
│ ├── interfaces
│ ├── ISimulatorManager.java
│ └── Manager.java
│ └── utils
│ └── CommandPromptUtil.java
└── test
└── java
└── com
├── github
└── device
│ ├── AndroidTest.java
│ ├── IOSDeviceTest.java
│ └── SimulatorTest.java
└── test
└── SampleTest.java
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | iOSDeviceManager.iml
3 | .idea/
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 |
3 | jdk:
4 | - oraclejdk8
5 |
6 | script: mvn clean site install -Dmaven.test.skip=true
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DeviceManager
2 | Utility to Manage Connected iOS & Android Devices (Including iOS Simulators and Android Emulators)
3 |
4 | ## Maven:
5 |
6 | Add following dependency to your pom.xml
7 |
8 | ```
9 |
10 |
11 | jitpack.io
12 | https://jitpack.io
13 |
14 |
15 | ```
16 |
17 | ```
18 |
19 | com.github.SrinivasanTarget
20 | iOSDeviceManager
21 | master-SNAPSHOT
22 |
23 | ```
24 |
25 | ## Exposed Methods:
26 |
27 | * getAllSimulators - Gets all available or installed simulators in macOS
28 | * getSimulatorUDID - Returns UDID of simulator needed.
29 | * getSimulatorState - Returns state of Simulator e.g `booted`, `shutdown`, etc
30 | * bootSimulator - Will boot the specified Simulator
31 | * install - Will install the application on Simulator
32 | * uninstall - Will remove the application from Simulator
33 | * getSimulatorDetailsFromUDID - Retrives simulator details for given UDID
34 | * captureScreenshot - Captures screenshot for given UDID.
35 | * shutDownAllBootedSimulators - Shutdown all booted simulators
36 | * getAllBootedSimulators - Retrives all booted simulators
37 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Base.lproj/LaunchScreen.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Base.lproj/LaunchScreen.nib
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/IDEBundleInjection:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/IDEBundleInjection
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Info.plist
8 |
9 | jVuquTxW/zgsDhVvtjnDjaLklQM=
10 |
11 | version.plist
12 |
13 | 8QWxGqKg24q+pGg+L+4KKzAFC2I=
14 |
15 |
16 | files2
17 |
18 | version.plist
19 |
20 | 8QWxGqKg24q+pGg+L+4KKzAFC2I=
21 |
22 |
23 | rules
24 |
25 | ^
26 |
27 | ^.*\.lproj/
28 |
29 | optional
30 |
31 | weight
32 | 1000
33 |
34 | ^.*\.lproj/locversion.plist$
35 |
36 | omit
37 |
38 | weight
39 | 1100
40 |
41 | ^version.plist$
42 |
43 |
44 | rules2
45 |
46 | .*\.dSYM($|/)
47 |
48 | weight
49 | 11
50 |
51 | ^
52 |
53 | weight
54 | 20
55 |
56 | ^(.*/)?\.DS_Store$
57 |
58 | omit
59 |
60 | weight
61 | 2000
62 |
63 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
64 |
65 | nested
66 |
67 | weight
68 | 10
69 |
70 | ^.*
71 |
72 | ^.*\.lproj/
73 |
74 | optional
75 |
76 | weight
77 | 1000
78 |
79 | ^.*\.lproj/locversion.plist$
80 |
81 | omit
82 |
83 | weight
84 | 1100
85 |
86 | ^Info\.plist$
87 |
88 | omit
89 |
90 | weight
91 | 20
92 |
93 | ^PkgInfo$
94 |
95 | omit
96 |
97 | weight
98 | 20
99 |
100 | ^[^/]+$
101 |
102 | nested
103 |
104 | weight
105 | 10
106 |
107 | ^embedded\.provisionprofile$
108 |
109 | weight
110 | 20
111 |
112 | ^version\.plist$
113 |
114 | weight
115 | 20
116 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/IDEBundleInjection.framework/version.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildAliasOf
6 | IDEBundleInjection
7 | BuildVersion
8 | 119
9 | CFBundleShortVersionString
10 | 5.0
11 | CFBundleVersion
12 | 11004
13 | ProjectName
14 | IDEBundleInjection_Sim
15 | SourceVersion
16 | 11004000000000000
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCAbstractTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | @class XCTestRun;
37 |
38 | /*!
39 | * @class XCTest
40 | *
41 | * An abstract base class for testing. XCTestCase and XCTestSuite extend XCTest to provide
42 | * for creating, managing, and executing tests. Most developers will not need to subclass
43 | * XCTest directly.
44 | */
45 | @interface XCTest : NSObject {
46 | #ifndef __OBJC2__
47 | @private
48 | id _internal;
49 | #endif
50 | }
51 |
52 | /*!
53 | * @property testCaseCount
54 | * Number of test cases. Must be overridden by subclasses.
55 | */
56 | @property (readonly) NSUInteger testCaseCount;
57 |
58 | /*!
59 | * @property name
60 | * Test's name. Must be overridden by subclasses.
61 | */
62 | @property (readonly, copy, nullable) NSString *name;
63 |
64 | /*!
65 | * @property testRunClass
66 | * The XCTestRun subclass that will be instantiated when the test is run to hold
67 | * the test's results. Must be overridden by subclasses.
68 | */
69 | @property (readonly, nullable) Class testRunClass;
70 |
71 | /*!
72 | * @property testRun
73 | * The test run object that executed the test, an instance of testRunClass. If the test has not yet been run, this will be nil.
74 | */
75 | @property (readonly, nullable) XCTestRun *testRun;
76 |
77 | /*!
78 | * @method -performTest:
79 | * The method through which tests are executed. Must be overridden by subclasses.
80 | */
81 | - (void)performTest:(XCTestRun *)run;
82 |
83 | /*!
84 | * @method -runTest
85 | * Creates an instance of the testRunClass and passes it as a parameter to -performTest:.
86 | */
87 | - (void)runTest;
88 |
89 | /*!
90 | * @method -setUp
91 | * Setup method called before the invocation of each test method in the class.
92 | */
93 | - (void)setUp;
94 |
95 | /*!
96 | * @method -tearDown
97 | * Teardown method called after the invocation of each test method in the class.
98 | */
99 | - (void)tearDown;
100 |
101 | @end
102 |
103 | NS_ASSUME_NONNULL_END
104 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2016 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 | #import
34 |
35 | #import
36 | #import
37 | #import
38 | #import
39 | #import
40 | #import
41 | #import
42 | #import
43 | #import
44 | #import
45 | #import
46 | #import
47 | #import
48 | #import
49 | #import
50 |
51 | #import
52 | #import
53 | #import
54 | #import
55 | #import
56 | #import
57 | #import
58 | #import
59 | #import
60 | #import
61 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestAssertions.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | /*!
35 | * @function XCTFail(...)
36 | * Generates a failure unconditionally.
37 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
38 | */
39 | #define XCTFail(...) \
40 | _XCTPrimitiveFail(self, __VA_ARGS__)
41 |
42 | /*!
43 | * @define XCTAssertNil(expression, ...)
44 | * Generates a failure when ((\a expression) != nil).
45 | * @param expression An expression of id type.
46 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
47 | */
48 | #define XCTAssertNil(expression, ...) \
49 | _XCTPrimitiveAssertNil(self, expression, @#expression, __VA_ARGS__)
50 |
51 | /*!
52 | * @define XCTAssertNotNil(expression, ...)
53 | * Generates a failure when ((\a expression) == nil).
54 | * @param expression An expression of id type.
55 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
56 | */
57 | #define XCTAssertNotNil(expression, ...) \
58 | _XCTPrimitiveAssertNotNil(self, expression, @#expression, __VA_ARGS__)
59 |
60 | /*!
61 | * @define XCTAssert(expression, ...)
62 | * Generates a failure when ((\a expression) == false).
63 | * @param expression An expression of boolean type.
64 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
65 | */
66 | #define XCTAssert(expression, ...) \
67 | _XCTPrimitiveAssertTrue(self, expression, @#expression, __VA_ARGS__)
68 |
69 | /*!
70 | * @define XCTAssertTrue(expression, ...)
71 | * Generates a failure when ((\a expression) == false).
72 | * @param expression An expression of boolean type.
73 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
74 | */
75 | #define XCTAssertTrue(expression, ...) \
76 | _XCTPrimitiveAssertTrue(self, expression, @#expression, __VA_ARGS__)
77 |
78 | /*!
79 | * @define XCTAssertFalse(expression, ...)
80 | * Generates a failure when ((\a expression) != false).
81 | * @param expression An expression of boolean type.
82 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
83 | */
84 | #define XCTAssertFalse(expression, ...) \
85 | _XCTPrimitiveAssertFalse(self, expression, @#expression, __VA_ARGS__)
86 |
87 | /*!
88 | * @define XCTAssertEqualObjects(expression1, expression2, ...)
89 | * Generates a failure when ((\a expression1) not equal to (\a expression2)).
90 | * @param expression1 An expression of id type.
91 | * @param expression2 An expression of id type.
92 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
93 | */
94 | #define XCTAssertEqualObjects(expression1, expression2, ...) \
95 | _XCTPrimitiveAssertEqualObjects(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
96 |
97 | /*!
98 | * @define XCTAssertNotEqualObjects(expression1, expression2, ...)
99 | * Generates a failure when ((\a expression1) equal to (\a expression2)).
100 | * @param expression1 An expression of id type.
101 | * @param expression2 An expression of id type.
102 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
103 | */
104 | #define XCTAssertNotEqualObjects(expression1, expression2, ...) \
105 | _XCTPrimitiveAssertNotEqualObjects(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
106 |
107 | /*!
108 | * @define XCTAssertEqual(expression1, expression2, ...)
109 | * Generates a failure when ((\a expression1) != (\a expression2)).
110 | * @param expression1 An expression of C scalar type.
111 | * @param expression2 An expression of C scalar type.
112 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
113 | */
114 | #define XCTAssertEqual(expression1, expression2, ...) \
115 | _XCTPrimitiveAssertEqual(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
116 |
117 | /*!
118 | * @define XCTAssertNotEqual(expression1, expression2, ...)
119 | * Generates a failure when ((\a expression1) == (\a expression2)).
120 | * @param expression1 An expression of C scalar type.
121 | * @param expression2 An expression of C scalar type.
122 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
123 | */
124 | #define XCTAssertNotEqual(expression1, expression2, ...) \
125 | _XCTPrimitiveAssertNotEqual(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
126 |
127 | /*!
128 | * @define XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...)
129 | * Generates a failure when (difference between (\a expression1) and (\a expression2) is > (\a accuracy))).
130 | * @param expression1 An expression of C scalar type.
131 | * @param expression2 An expression of C scalar type.
132 | * @param accuracy An expression of C scalar type describing the maximum difference between \a expression1 and \a expression2 for these values to be considered equal.
133 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
134 | */
135 | #define XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...) \
136 | _XCTPrimitiveAssertEqualWithAccuracy(self, expression1, @#expression1, expression2, @#expression2, accuracy, @#accuracy, __VA_ARGS__)
137 |
138 | /*!
139 | * @define XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...)
140 | * Generates a failure when (difference between (\a expression1) and (\a expression2) is <= (\a accuracy)).
141 | * @param expression1 An expression of C scalar type.
142 | * @param expression2 An expression of C scalar type.
143 | * @param accuracy An expression of C scalar type describing the maximum difference between \a expression1 and \a expression2 for these values to be considered equal.
144 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
145 | */
146 | #define XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...) \
147 | _XCTPrimitiveAssertNotEqualWithAccuracy(self, expression1, @#expression1, expression2, @#expression2, accuracy, @#accuracy, __VA_ARGS__)
148 |
149 | /*!
150 | * @define XCTAssertGreaterThan(expression1, expression2, ...)
151 | * Generates a failure when ((\a expression1) <= (\a expression2)).
152 | * @param expression1 An expression of C scalar type.
153 | * @param expression2 An expression of C scalar type.
154 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
155 | */
156 | #define XCTAssertGreaterThan(expression1, expression2, ...) \
157 | _XCTPrimitiveAssertGreaterThan(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
158 |
159 | /*!
160 | * @define XCTAssertGreaterThanOrEqual(expression1, expression2, ...)
161 | * Generates a failure when ((\a expression1) < (\a expression2)).
162 | * @param expression1 An expression of C scalar type.
163 | * @param expression2 An expression of C scalar type.
164 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
165 | */
166 | #define XCTAssertGreaterThanOrEqual(expression1, expression2, ...) \
167 | _XCTPrimitiveAssertGreaterThanOrEqual(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
168 |
169 | /*!
170 | * @define XCTAssertLessThan(expression1, expression2, ...)
171 | * Generates a failure when ((\a expression1) >= (\a expression2)).
172 | * @param expression1 An expression of C scalar type.
173 | * @param expression2 An expression of C scalar type.
174 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
175 | */
176 | #define XCTAssertLessThan(expression1, expression2, ...) \
177 | _XCTPrimitiveAssertLessThan(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
178 |
179 | /*!
180 | * @define XCTAssertLessThanOrEqual(expression1, expression2, ...)
181 | * Generates a failure when ((\a expression1) > (\a expression2)).
182 | * @param expression1 An expression of C scalar type.
183 | * @param expression2 An expression of C scalar type.
184 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
185 | */
186 | #define XCTAssertLessThanOrEqual(expression1, expression2, ...) \
187 | _XCTPrimitiveAssertLessThanOrEqual(self, expression1, @#expression1, expression2, @#expression2, __VA_ARGS__)
188 |
189 | /*!
190 | * @define XCTAssertThrows(expression, ...)
191 | * Generates a failure when ((\a expression) does not throw).
192 | * @param expression An expression.
193 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
194 | */
195 | #define XCTAssertThrows(expression, ...) \
196 | _XCTPrimitiveAssertThrows(self, expression, @#expression, __VA_ARGS__)
197 |
198 | /*!
199 | * @define XCTAssertThrowsSpecific(expression, exception_class, ...)
200 | * Generates a failure when ((\a expression) does not throw \a exception_class).
201 | * @param expression An expression.
202 | * @param exception_class The class of the exception. Must be NSException, or a subclass of NSException.
203 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
204 | */
205 | #define XCTAssertThrowsSpecific(expression, exception_class, ...) \
206 | _XCTPrimitiveAssertThrowsSpecific(self, expression, @#expression, exception_class, __VA_ARGS__)
207 |
208 | /*!
209 | * @define XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...)
210 | * Generates a failure when ((\a expression) does not throw \a exception_class with \a exception_name).
211 | * @param expression An expression.
212 | * @param exception_class The class of the exception. Must be NSException, or a subclass of NSException.
213 | * @param exception_name The name of the exception.
214 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
215 | */
216 | #define XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...) \
217 | _XCTPrimitiveAssertThrowsSpecificNamed(self, expression, @#expression, exception_class, exception_name, __VA_ARGS__)
218 |
219 | /*!
220 | * @define XCTAssertNoThrow(expression, ...)
221 | * Generates a failure when ((\a expression) throws).
222 | * @param expression An expression.
223 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
224 | */
225 | #define XCTAssertNoThrow(expression, ...) \
226 | _XCTPrimitiveAssertNoThrow(self, expression, @#expression, __VA_ARGS__)
227 |
228 | /*!
229 | * @define XCTAssertNoThrowSpecific(expression, exception_class, ...)
230 | * Generates a failure when ((\a expression) throws \a exception_class).
231 | * @param expression An expression.
232 | * @param exception_class The class of the exception. Must be NSException, or a subclass of NSException.
233 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
234 | */
235 | #define XCTAssertNoThrowSpecific(expression, exception_class, ...) \
236 | _XCTPrimitiveAssertNoThrowSpecific(self, expression, @#expression, exception_class, __VA_ARGS__)
237 |
238 | /*!
239 | * @define XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...)
240 | * Generates a failure when ((\a expression) throws \a exception_class with \a exception_name).
241 | * @param expression An expression.
242 | * @param exception_class The class of the exception. Must be NSException, or a subclass of NSException.
243 | * @param exception_name The name of the exception.
244 | * @param ... An optional supplementary description of the failure. A literal NSString, optionally with string format specifiers. This parameter can be completely omitted.
245 | */
246 | #define XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...) \
247 | _XCTPrimitiveAssertNoThrowSpecificNamed(self, expression, @#expression, exception_class, exception_name, __VA_ARGS__)
248 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestCase+AsynchronousTesting.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2016 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | @class XCTestExpectation;
8 |
9 | NS_ASSUME_NONNULL_BEGIN
10 |
11 | /*!
12 | * @category AsynchronousTesting
13 | *
14 | * @discussion
15 | * This category introduces support for asynchronous testing in XCTestCase. The mechanism
16 | * allows you to specify one or more "expectations" that will occur asynchronously
17 | * as a result of actions in the test. Once all expectations have been set, a "wait"
18 | * API is called that will block execution of subsequent test code until all expected
19 | * conditions have been fulfilled or a timeout occurs.
20 | */
21 | @interface XCTestCase (AsynchronousTesting)
22 |
23 | /*!
24 | * @method -expectationWithDescription:
25 | *
26 | * @param description
27 | * This string will be displayed in the test log to help diagnose failures.
28 | *
29 | * @discussion
30 | * Creates and returns an expectation associated with the test case.
31 | */
32 | - (XCTestExpectation *)expectationWithDescription:(NSString *)description;
33 |
34 | /*!
35 | * @typedef XCWaitCompletionHandler
36 | * A block to be invoked when a call to -waitForExpectationsWithTimeout:handler: times out or has
37 | * had all associated expectations fulfilled.
38 | *
39 | * @param error
40 | * If the wait timed out or a failure was raised while waiting, the error's code
41 | * will specify the type of failure. Otherwise error will be nil.
42 | */
43 | typedef void (^XCWaitCompletionHandler)(NSError * __nullable error);
44 |
45 | /*!
46 | * @method -waitForExpectationsWithTimeout:handler:
47 | *
48 | * @param timeout
49 | * The amount of time within which all expectations must be fulfilled.
50 | *
51 | * @param handler
52 | * If provided, the handler will be invoked both on timeout or fulfillment of all
53 | * expectations. Timeout is always treated as a test failure.
54 | *
55 | * @discussion
56 | * -waitForExpectationsWithTimeout:handler: creates a point of synchronization in the flow of a
57 | * test. Only one -waitForExpectationsWithTimeout:handler: can be active at any given time, but
58 | * multiple discrete sequences of { expectations -> wait } can be chained together.
59 | *
60 | * -waitForExpectationsWithTimeout:handler: runs the run loop while handling events until all expectations
61 | * are fulfilled or the timeout is reached. Clients should not manipulate the run
62 | * loop while using this API.
63 | */
64 | - (void)waitForExpectationsWithTimeout:(NSTimeInterval)timeout handler:(nullable XCWaitCompletionHandler)handler;
65 |
66 | #pragma mark Convenience APIs
67 |
68 | /*!
69 | * @method -keyValueObservingExpectationForObject:keyPath:expectedValue:
70 | *
71 | * @discussion
72 | * A convenience method for asynchronous tests that use Key Value Observing to detect changes
73 | * to values on an object. This variant takes an expected value and observes changes on the object
74 | * until the keyPath's value matches the expected value using -[NSObject isEqual:]. If
75 | * other comparisions are needed, use the variant below that takes a handler block.
76 | *
77 | * @param objectToObserve
78 | * The object to observe.
79 | *
80 | * @param keyPath
81 | * The key path to observe.
82 | *
83 | * @param expectedValue
84 | * Expected value of the keyPath for the object. The expectation will fulfill itself when the
85 | * keyPath is equal, as tested using -[NSObject isEqual:]. If nil, the expectation will be
86 | * fulfilled by the first change to the key path of the observed object.
87 | *
88 | * @return
89 | * Creates and returns an expectation associated with the test case.
90 | */
91 | - (XCTestExpectation *)keyValueObservingExpectationForObject:(id)objectToObserve keyPath:(NSString *)keyPath expectedValue:(nullable id)expectedValue;
92 |
93 | /*!
94 | * @typedef
95 | * A block to be invoked when a change is observed for the keyPath of the observed object.
96 | *
97 | * @param observedObject
98 | * The observed object, provided to avoid block capture issues.
99 | *
100 | * @param change
101 | * The KVO change dictionary.
102 | *
103 | * @return
104 | * Return YES if the expectation is fulfilled, NO if it is not.
105 | */
106 | typedef BOOL (^XCKeyValueObservingExpectationHandler)(id observedObject, NSDictionary *change);
107 |
108 | /*!
109 | * @method -keyValueObservingExpectationForObject:keyPath:handler:
110 | *
111 | * @discussion
112 | * Variant of the convenience for tests that use Key Value Observing. Takes a handler
113 | * block instead of an expected value. Every KVO change will run the handler block until
114 | * it returns YES (or the wait times out). Returning YES from the block will fulfill the
115 | * expectation. XCTAssert and related APIs can be used in the block to report a failure.
116 | *
117 | * @param objectToObserve
118 | * The object to observe.
119 | *
120 | * @param keyPath
121 | * The key path to observe.
122 | *
123 | * @param handler
124 | * Optional handler, /see XCKeyValueObservingExpectationHandler. If not provided, the expectation will
125 | * be fulfilled by the first change to the key path of the observed object.
126 | *
127 | * @return
128 | * Creates and returns an expectation associated with the test case.
129 | */
130 | - (XCTestExpectation *)keyValueObservingExpectationForObject:(id)objectToObserve keyPath:(NSString *)keyPath handler:(nullable XCKeyValueObservingExpectationHandler)handler;
131 |
132 | /*!
133 | * @typedef
134 | * A block to be invoked when a notification matching the specified name is observed
135 | * from the object.
136 | *
137 | * @param notification
138 | * The notification object.
139 | *
140 | * @return
141 | * Return YES if the expectation is fulfilled, NO if it is not.
142 | */
143 | typedef BOOL (^XCNotificationExpectationHandler)(NSNotification *notification);
144 |
145 | /*!
146 | * @method -expectationForNotification:object:handler:
147 | *
148 | * @discussion
149 | * A convenience method for asynchronous tests that observe NSNotifications.
150 | *
151 | * @param notificationName
152 | * The notification to register for.
153 | *
154 | * @param objectToObserve
155 | * The object to observe.
156 | *
157 | * @param handler
158 | * Optional handler, /see XCNotificationExpectationHandler. If not provided, the expectation
159 | * will be fulfilled by the first notification matching the specified name from the
160 | * observed object.
161 | *
162 | * @return
163 | * Creates and returns an expectation associated with the test case.
164 | */
165 | - (XCTestExpectation *)expectationForNotification:(NSString *)notificationName object:(nullable id)objectToObserve handler:(nullable XCNotificationExpectationHandler)handler;
166 |
167 | /*!
168 | * @typedef
169 | * Handler called when evaluating the predicate against the object returns true. If the handler is not
170 | * provided the first successful evaluation will fulfill the expectation. If provided, the handler can
171 | * override that behavior which leaves the caller responsible for fulfilling the expectation.
172 | */
173 | typedef BOOL (^XCPredicateExpectationHandler)();
174 |
175 | /*!
176 | * @method -expectationForPredicate:evaluatedWithObject:handler:
177 | * Creates an expectation that is fulfilled if the predicate returns true when evaluated with the given
178 | * object. The expectation periodically evaluates the predicate and also may use notifications or other
179 | * events to optimistically re-evaluate.
180 | */
181 | - (XCTestExpectation *)expectationForPredicate:(NSPredicate *)predicate evaluatedWithObject:(id)object handler:(nullable XCPredicateExpectationHandler)handler;
182 |
183 | @end
184 |
185 | NS_ASSUME_NONNULL_END
186 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestCase.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 | #import
34 |
35 | NS_ASSUME_NONNULL_BEGIN
36 |
37 | @class XCTestSuite;
38 | @class XCTestCaseRun;
39 |
40 | #if XCT_UI_TESTING_AVAILABLE
41 | @class XCUIElement;
42 | #endif
43 |
44 | /*!
45 | * @class XCTestCase
46 | * XCTestCase is a concrete subclass of XCTest that should be the override point for
47 | * most developers creating tests for their projects. A test case subclass can have
48 | * multiple test methods and supports setup and tear down that executes for every test
49 | * method as well as class level setup and tear down.
50 | *
51 | * To define a test case:
52 | *
53 | * • Create a subclass of XCTestCase.
54 | * • Implement -test methods.
55 | * • Optionally define instance variables or properties that store the state of the test.
56 | * • Optionally initialize state by overriding -setUp
57 | * • Optionally clean-up after a test by overriding -tearDown.
58 | *
59 | * Test methods are instance methods meeting these requirements:
60 | * • accepting no parameters
61 | * • returning no value
62 | * • prefixed with 'test'
63 | *
64 | * For example:
65 |
66 | - (void)testSomething;
67 |
68 | * Test methods are automatically recognized as test cases by the XCTest framework.
69 | * Each XCTestCase subclass's defaultTestSuite is a XCTestSuite which includes these
70 | * tests. Test method implementations usually contain assertions that must be verified
71 | * for the test to pass, for example:
72 |
73 | @interface MathTest : XCTestCase {
74 | @private
75 | float f1;
76 | float f2;
77 | }
78 |
79 | - (void)testAddition;
80 |
81 | @end
82 |
83 | @implementation MathTest
84 |
85 | - (void)setUp
86 | {
87 | f1 = 2.0;
88 | f2 = 3.0;
89 | }
90 |
91 | - (void)testAddition
92 | {
93 | XCTAssertTrue (f1 + f2 == 5.0);
94 | }
95 | @end
96 | */
97 | @interface XCTestCase : XCTest {
98 | #ifndef __OBJC2__
99 | @private
100 | id _internalImplementation;
101 | #endif
102 | }
103 |
104 | /*!
105 | * @method +testCaseWithInvocation:
106 | */
107 | + (instancetype)testCaseWithInvocation:(nullable NSInvocation *)invocation;
108 |
109 | /*!
110 | * @method -initWithInvocation:
111 | */
112 | - (instancetype)initWithInvocation:(nullable NSInvocation *)invocation;
113 |
114 | /*!
115 | * @method +testCaseWithSelector:
116 | */
117 | + (nullable instancetype)testCaseWithSelector:(SEL)selector;
118 |
119 | /*!
120 | * @method -initWithSelector:
121 | */
122 | - (instancetype)initWithSelector:(SEL)selector;
123 |
124 | /*!
125 | * @property invocation
126 | * The invocation used when this test is run.
127 | */
128 | @property (strong, nullable) NSInvocation *invocation;
129 |
130 | /*!
131 | * @method -invokeTest
132 | * Invoking a test performs its setUp, invocation, and tearDown. In general this
133 | * should not be called directly.
134 | */
135 | - (void)invokeTest;
136 |
137 | /*!
138 | * @property continueAfterFailure
139 | * The test case behavior after a failure. Defaults to YES.
140 | */
141 | @property BOOL continueAfterFailure;
142 |
143 | /*!
144 | * @method -recordFailureWithDescription:inFile:atLine:expected:
145 | * Records a failure in the execution of the test and is used by all test assertions.
146 | *
147 | * @param description The description of the failure being reported.
148 | *
149 | * @param filePath The file path to the source file where the failure being reported
150 | * was encountered.
151 | *
152 | * @param lineNumber The line number in the source file at filePath where the
153 | * failure being reported was encountered.
154 | *
155 | * @param expected YES if the failure being reported was the result of a failed assertion,
156 | * NO if it was the result of an uncaught exception.
157 | *
158 | */
159 | - (void)recordFailureWithDescription:(NSString *)description inFile:(NSString *)filePath atLine:(NSUInteger)lineNumber expected:(BOOL)expected;
160 |
161 | /*!
162 | * @method +testInvocations
163 | * Invocations for each test method in the test case.
164 | */
165 | + (NSArray *)testInvocations;
166 |
167 | #pragma mark - Measuring Performance Metrics
168 |
169 | /*!
170 | * @const XCTPerformanceMetric_WallClockTime
171 | * Records wall clock time in seconds between startMeasuring/stopMeasuring.
172 | */
173 | XCT_EXPORT NSString * const XCTPerformanceMetric_WallClockTime;
174 |
175 | /*!
176 | * @method +defaultPerformanceMetrics
177 | * The names of the performance metrics to measure when invoking -measureBlock:. Returns XCTPerformanceMetric_WallClockTime by default. Subclasses can override this to change the behavior of -measureBlock:
178 | */
179 | + (NSArray *)defaultPerformanceMetrics;
180 |
181 | /*!
182 | * @method -measureBlock:
183 | *
184 | * Call from a test method to measure resources (+defaultPerformanceMetrics) used by the
185 | * block in the current process.
186 |
187 | - (void)testPerformanceOfMyFunction {
188 |
189 | [self measureBlock:^{
190 | // Do that thing you want to measure.
191 | MyFunction();
192 | }];
193 | }
194 |
195 | * @param block A block whose performance to measure.
196 | */
197 | - (void)measureBlock:(void (^)(void))block;
198 |
199 | /*!
200 | * @method -measureMetrics:automaticallyStartMeasuring:forBlock:
201 | *
202 | * Call from a test method to measure resources (XCTPerformanceMetrics) used by the
203 | * block in the current process. Each metric will be measured across calls to the block.
204 | * The number of times the block will be called is undefined and may change in the
205 | * future. For one example of why, as long as the requested performance metrics do
206 | * not interfere with each other the API will measure all metrics across the same
207 | * calls to the block. If the performance metrics may interfere the API will measure
208 | * them separately.
209 |
210 | - (void)testMyFunction2_WallClockTime {
211 | [self measureMetrics:[[self class] defaultPerformanceMetrics] automaticallyStartMeasuring:NO forBlock:^{
212 |
213 | // Do setup work that needs to be done for every iteration but you don't want to measure before the call to -startMeasuring
214 | SetupSomething();
215 | [self startMeasuring];
216 |
217 | // Do that thing you want to measure.
218 | MyFunction();
219 | [self stopMeasuring];
220 |
221 | // Do teardown work that needs to be done for every iteration but you don't want to measure after the call to -stopMeasuring
222 | TeardownSomething();
223 | }];
224 | }
225 |
226 | * Caveats:
227 | * • If YES was passed for automaticallyStartMeasuring and -startMeasuring is called
228 | * anyway, the test will fail.
229 | * • If NO was passed for automaticallyStartMeasuring then -startMeasuring must be
230 | * called once and only once before the end of the block or the test will fail.
231 | * • If -stopMeasuring is called multiple times during the block the test will fail.
232 | *
233 | * @param metrics An array of NSStrings (XCTPerformanceMetrics) to measure. Providing an unrecognized string is a test failure.
234 | *
235 | * @param automaticallyStartMeasuring If NO, XCTestCase will not take any measurements until -startMeasuring is called.
236 | *
237 | * @param block A block whose performance to measure.
238 | */
239 | - (void)measureMetrics:(NSArray *)metrics automaticallyStartMeasuring:(BOOL)automaticallyStartMeasuring forBlock:(void (^)(void))block;
240 |
241 | /*!
242 | * @method -startMeasuring
243 | * Call this from within a measure block to set the beginning of the critical section.
244 | * Measurement of metrics will start at this point.
245 | */
246 | - (void)startMeasuring;
247 |
248 | /*!
249 | * @method -stopMeasuring
250 | * Call this from within a measure block to set the ending of the critical section.
251 | * Measurement of metrics will stop at this point.
252 | */
253 | - (void)stopMeasuring;
254 |
255 | #pragma mark - UI Testing Support
256 | #if XCT_UI_TESTING_AVAILABLE
257 |
258 | /*! Adds a handler to the current context. Returns a token that can be used to unregister the handler. Handlers are invoked in the reverse order in which they are added until one of the handlers returns true, indicating that it has handled the alert.
259 | @param handlerDescription Explanation of the behavior and purpose of this handler, mainly used for debugging and analysis.
260 | @param handler Handler block for asynchronous UI such as alerts and other dialogs. Handlers should return true if they handled the UI, false if they did not. The handler is passed an XCUIElement representing the top level UI element for the alert.
261 | */
262 | - (id )addUIInterruptionMonitorWithDescription:(NSString *)handlerDescription handler:(BOOL (^)(XCUIElement *interruptingElement))handler;
263 |
264 | /*! Removes a handler using the token provided when it was added. */
265 | - (void)removeUIInterruptionMonitor:(id )monitor;
266 |
267 | #endif
268 |
269 | @end
270 |
271 | @interface XCTestCase (XCTestSuiteExtensions)
272 |
273 | /*!
274 | * @method +defaultTestSuite
275 | * Returns a test suite containing test cases for all of the tests in the class.
276 | */
277 | + (XCTestSuite *)defaultTestSuite;
278 |
279 | /*!
280 | * @method +setUp
281 | * Setup method called before the invocation of any test method in the class.
282 | */
283 | + (void)setUp;
284 |
285 | /*!
286 | * @method +testDown
287 | * Teardown method called after the invocation of every test method in the class.
288 | */
289 | + (void)tearDown;
290 |
291 | @end
292 |
293 | NS_ASSUME_NONNULL_END
294 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestCaseRun.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | @class XCTestCase;
37 |
38 | @interface XCTestCaseRun : XCTestRun
39 |
40 | - (void)recordFailureInTest:(XCTestCase *)testCase withDescription:(NSString *)description inFile:(NSString *)filePath atLine:(NSUInteger)lineNumber expected:(BOOL)expected DEPRECATED_ATTRIBUTE;
41 |
42 | @end
43 |
44 | NS_ASSUME_NONNULL_END
45 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestDefines.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | #if defined(__cplusplus)
35 | #define XCT_EXPORT extern "C"
36 | #else
37 | #define XCT_EXPORT extern
38 | #endif
39 |
40 | #if (!defined(__OBJC_GC__) || (defined(__OBJC_GC__) && ! __OBJC_GC__)) && (defined(__OBJC2__) && __OBJC2__)
41 | #ifndef XCT_UI_TESTING_AVAILABLE
42 | #define XCT_UI_TESTING_AVAILABLE 1
43 | #endif
44 | #endif
45 |
46 | #ifndef XCT_UI_TESTING_AVAILABLE
47 | #define XCT_UI_TESTING_AVAILABLE 0
48 | #endif
49 |
50 | #if TARGET_OS_SIMULATOR
51 | #define XCTEST_SIMULATOR_UNAVAILABLE(_msg) __attribute__((availability(ios,unavailable,message=_msg)))
52 | #else
53 | #define XCTEST_SIMULATOR_UNAVAILABLE(_msg)
54 | #endif
55 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestErrors.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | /*!
8 | * @const XCTestErrorDomain
9 | * Domain for errors provided by the XCTest framework.
10 | */
11 | XCT_EXPORT NSString *const XCTestErrorDomain;
12 |
13 | /*!
14 | * @typedef XCTestErrorCode
15 | * Error codes used with errors in the XCTestErrorDomain.
16 | *
17 | * @constant XCTestErrorCodeTimeoutWhileWaiting Indicates that a call to -waitForExpectationsWithTimeout:handler: timed out.
18 | * @constant XCTestErrorCodeFailureWhileWaiting Indicates that a failure assertion was raised while waiting in -waitForExpectationsWithTimeout:handler:.
19 | */
20 | typedef NS_ENUM(NSInteger, XCTestErrorCode) {
21 | XCTestErrorCodeTimeoutWhileWaiting,
22 | XCTestErrorCodeFailureWhileWaiting,
23 | };
24 |
25 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestExpectation.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2016 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | NS_ASSUME_NONNULL_BEGIN
8 |
9 | /*!
10 | * @class XCTestExpectation
11 | *
12 | * @discussion
13 | * Expectations represent specific conditions in asynchronous testing.
14 | */
15 | @interface XCTestExpectation : NSObject {
16 | #ifndef __OBJC2__
17 | id _internalImplementation;
18 | #endif
19 | }
20 |
21 | /*!
22 | * @method -fulfill
23 | *
24 | * @discussion
25 | * Call -fulfill to mark an expectation as having been met. It's an error to call
26 | * -fulfill on an expectation that has already been fulfilled or when the test case
27 | * that vended the expectation has already completed.
28 | */
29 | - (void)fulfill;
30 |
31 | @end
32 |
33 | NS_ASSUME_NONNULL_END
34 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | /*!
35 | * XCTestLog is deprecated.
36 | */
37 |
38 | DEPRECATED_ATTRIBUTE
39 | #pragma clang diagnostic push
40 | #pragma clang diagnostic ignored "-Wdeprecated-declarations"
41 | @interface XCTestLog : XCTestObserver
42 | #pragma clang diagnostic pop
43 |
44 | @property (readonly, strong) NSFileHandle *logFileHandle;
45 | - (void)testLogWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
46 | - (void)testLogWithFormat:(NSString *)format arguments:(va_list)arguments NS_FORMAT_FUNCTION(1,0);
47 |
48 | @end
49 |
50 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestObservation.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | NS_ASSUME_NONNULL_BEGIN
8 |
9 | @class XCTestSuite, XCTestCase;
10 |
11 | /*!
12 | * @protocol XCTestObservation
13 | *
14 | * Objects conforming to XCTestObservation can register to be notified of the progress of test runs. See XCTestObservationCenter
15 | * for details on registration.
16 | *
17 | * Progress events are delivered in the following sequence:
18 | *
19 | * -testBundleWillStart: // exactly once per test bundle
20 | * -testSuiteWillStart: // exactly once per test suite
21 | * -testCaseWillStart: // exactly once per test case
22 | * -testCase:didFailWithDescription:... // zero or more times per test case, any time between test case start and finish
23 | * -testCaseDidFinish: // exactly once per test case
24 | * -testSuite:didFailWithDescription:... // zero or more times per test suite, any time between test suite start and finish
25 | * -testSuiteDidFinish: // exactly once per test suite
26 | * -testBundleDidFinish: // exactly once per test bundle
27 | */
28 | @protocol XCTestObservation
29 | @optional
30 |
31 | /*!
32 | * @method -testBundleWillStart:
33 | *
34 | * Sent immediately before tests begin as a hook for any pre-testing setup.
35 | *
36 | * @param testBundle The bundle containing the tests that were executed.
37 | */
38 | - (void)testBundleWillStart:(NSBundle *)testBundle;
39 |
40 | /*!
41 | * @method -testBundleDidFinish:
42 | *
43 | * Sent immediately after all tests have finished as a hook for any post-testing activity. The test process will generally
44 | * exit after this method returns, so if there is long running and/or asynchronous work to be done after testing, be sure
45 | * to implement this method in a way that it blocks until all such activity is complete.
46 | *
47 | * @param testBundle The bundle containing the tests that were executed.
48 | */
49 | - (void)testBundleDidFinish:(NSBundle *)testBundle;
50 |
51 | /*!
52 | * @method -testSuiteWillStart:
53 | *
54 | * Sent when a test suite starts executing.
55 | *
56 | * @param testSuite The test suite that started. Additional information can be retrieved from the associated XCTestRun.
57 | */
58 | - (void)testSuiteWillStart:(XCTestSuite *)testSuite;
59 |
60 | /*!
61 | * @method -testSuiteDidFail:withDescription:inFile:atLine:
62 | *
63 | * Sent when a test suite reports a failure. Suite failures are most commonly reported during suite-level setup and teardown
64 | * whereas failures during tests are reported for the test case alone and are not reported as suite failures.
65 | *
66 | * @param testSuite The test suite that failed. Additional information can be retrieved from the associated XCTestRun.
67 | * @param description A textual description of the failure.
68 | * @param filePath The path of file where the failure occurred, nil if unknown.
69 | * @param lineNumber The line where the failure was reported.
70 | */
71 | - (void)testSuite:(XCTestSuite *)testSuite didFailWithDescription:(NSString *)description inFile:(nullable NSString *)filePath atLine:(NSUInteger)lineNumber;
72 |
73 | /*!
74 | * @method -testSuiteDidFinish:
75 | *
76 | * Sent when a test suite finishes executing.
77 | *
78 | * @param testSuite The test suite that finished. Additional information can be retrieved from the associated XCTestRun.
79 | */
80 | - (void)testSuiteDidFinish:(XCTestSuite *)testSuite;
81 |
82 | /*!
83 | * @method -testCaseWillStart:
84 | *
85 | * Sent when a test case starts executing.
86 | *
87 | * @param testCase The test case that started. Additional information can be retrieved from the associated XCTestRun.
88 | */
89 | - (void)testCaseWillStart:(XCTestCase *)testCase;
90 |
91 | /*!
92 | * @method -testCaseDidFail:withDescription:inFile:atLine:
93 | *
94 | * Sent when a test case reports a failure.
95 | *
96 | * @param testCase The test case that failed. Additional information can be retrieved from the associated XCTestRun.
97 | * @param description A textual description of the failure.
98 | * @param filePath The path of file where the failure occurred, nil if unknown.
99 | * @param lineNumber The line where the failure was reported.
100 | */
101 | - (void)testCase:(XCTestCase *)testCase didFailWithDescription:(NSString *)description inFile:(nullable NSString *)filePath atLine:(NSUInteger)lineNumber;
102 |
103 | /*!
104 | * @method -testCaseDidFinish:
105 | *
106 | * Sent when a test case finishes executing.
107 | *
108 | * @param testCase The test case that finished. Additional information can be retrieved from the associated XCTestRun.
109 | */
110 | - (void)testCaseDidFinish:(XCTestCase *)testCase;
111 |
112 | @end
113 |
114 | NS_ASSUME_NONNULL_END
115 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestObservationCenter.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #import
8 |
9 | NS_ASSUME_NONNULL_BEGIN
10 |
11 | /*!
12 | * @class XCTestObservationCenter
13 | *
14 | * The XCTestObservationCenter distributes information about the progress of test runs to registered
15 | * observers. Observers can be any object conforming to the XCTestObservation protocol.
16 | *
17 | * If an NSPrincipalClass is declared in the test bundle's Info.plist, XCTest automatically creates a
18 | * single instance of that class when the test bundle is loaded. This instance provides a means to register
19 | * observers or do other pretesting global set up.
20 | *
21 | * Observers must be registered manually. The NSPrincipalClass instance is not automatically
22 | * registered as an observer even if the class conforms to .
23 | */
24 | @interface XCTestObservationCenter : NSObject {
25 | #ifndef __OBJC2__
26 | @private
27 | id _internalImplementation;
28 | #endif
29 | }
30 |
31 | /*!
32 | * @method +sharedTestObservationCenter
33 | *
34 | * @return The shared XCTestObservationCenter singleton instance.
35 | */
36 | + (XCTestObservationCenter *)sharedTestObservationCenter;
37 |
38 | /*!
39 | * @method -addTestObserver:
40 | *
41 | * Register an object conforming to XCTestObservation as an observer for the current test session. Observers may be added
42 | * at any time, but will not receive events that occurred before they were registered. The observation center maintains a strong
43 | * reference to observers.
44 | *
45 | * Events may be delivered to observers in any order - given observers A and B, A may be notified of a test failure before
46 | * or after B. Any ordering dependencies or serialization requirements must be managed by clients.
47 | */
48 | - (void)addTestObserver:(id )testObserver;
49 |
50 | /*!
51 | * @method -removeTestObserver:
52 | *
53 | * Unregister an object conforming to XCTestObservation as an observer for the current test session.
54 | */
55 | - (void)removeTestObserver:(id )testObserver;
56 |
57 | @end
58 |
59 | NS_ASSUME_NONNULL_END
60 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestObserver.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | @class XCTestRun;
35 |
36 | /*!
37 | * XCTestObserver is deprecated.
38 | */
39 | DEPRECATED_ATTRIBUTE
40 | @interface XCTestObserver : NSObject
41 |
42 | - (void)startObserving;
43 | - (void)stopObserving;
44 | - (void)testSuiteDidStart:(XCTestRun *)testRun;
45 | - (void)testSuiteDidStop:(XCTestRun *)testRun;
46 | - (void)testCaseDidStart:(XCTestRun *)testRun;
47 | - (void)testCaseDidStop:(XCTestRun *)testRun;
48 | - (void)testCaseDidFail:(XCTestRun *)testRun withDescription:(NSString *)description inFile:(NSString *)filePath atLine:(NSUInteger)lineNumber;
49 |
50 | @end
51 |
52 | /*!
53 | * XCTestObserverClassKey is deprecated and ignored.
54 | */
55 | XCT_EXPORT NSString * const XCTestObserverClassKey DEPRECATED_ATTRIBUTE;
56 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestProbe.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | #import
35 |
36 | XCT_EXPORT int XCTSelfTestMain(void) DEPRECATED_ATTRIBUTE;
37 |
38 | DEPRECATED_ATTRIBUTE
39 | @interface XCTestProbe : NSObject
40 |
41 | + (BOOL)isTesting;
42 |
43 | @end
44 |
45 | XCT_EXPORT NSString * const XCTestedUnitPath DEPRECATED_ATTRIBUTE;
46 | XCT_EXPORT NSString * const XCTestScopeKey DEPRECATED_ATTRIBUTE;
47 | XCT_EXPORT NSString * const XCTestScopeAll DEPRECATED_ATTRIBUTE;
48 | XCT_EXPORT NSString * const XCTestScopeNone DEPRECATED_ATTRIBUTE;
49 | XCT_EXPORT NSString * const XCTestScopeSelf DEPRECATED_ATTRIBUTE;
50 | XCT_EXPORT NSString * const XCTestToolKey DEPRECATED_ATTRIBUTE;
51 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestRun.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | /*!
37 | * @class XCTestRun
38 | * A test run collects information about the execution of a test. Failures in explicit
39 | * test assertions are classified as "expected", while failures from unrelated or
40 | * uncaught exceptions are classified as "unexpected".
41 | */
42 | @interface XCTestRun : NSObject {
43 | #ifndef __OBJC2__
44 | @private
45 | id _internalTestRun;
46 | #endif
47 | }
48 |
49 | /*!
50 | * @method +testRunWithTest:
51 | * Class factory method for the XCTestRun class.
52 | *
53 | * @param test An XCTest instance.
54 | *
55 | * @return A test run for the provided test.
56 | */
57 | + (instancetype)testRunWithTest:(XCTest *)test;
58 |
59 | /*!
60 | * @method -initWithTest:
61 | * Designated initializer for the XCTestRun class.
62 | *
63 | * @param test An XCTest instance.
64 | *
65 | * @return A test run for the provided test.
66 | */
67 | - (instancetype)initWithTest:(XCTest *)test NS_DESIGNATED_INITIALIZER;
68 |
69 | /*!
70 | * @property test
71 | * The test instance provided when the test run was initialized.
72 | */
73 | @property (readonly, strong) XCTest *test;
74 |
75 | /*!
76 | * @method -start
77 | * Start a test run. Must not be called more than once.
78 | */
79 | - (void)start;
80 |
81 | /*!
82 | * @method -stop
83 | * Stop a test run. Must not be called unless the run has been started. Must not be called more than once.
84 | */
85 | - (void)stop;
86 |
87 | /*!
88 | * @property startDate
89 | * The time at which the test run was started, or nil.
90 | */
91 | @property (readonly, copy, nullable) NSDate *startDate;
92 |
93 | /*!
94 | * @property stopDate
95 | * The time at which the test run was stopped, or nil.
96 | */
97 | @property (readonly, copy, nullable) NSDate *stopDate;
98 |
99 | /*!
100 | * @property totalDuration
101 | * The number of seconds that elapsed between when the run was started and when it was stopped.
102 | */
103 | @property (readonly) NSTimeInterval totalDuration;
104 |
105 | /*!
106 | * @property testDuration
107 | * The number of seconds that elapsed between when the run was started and when it was stopped.
108 | */
109 | @property (readonly) NSTimeInterval testDuration;
110 |
111 | /*!
112 | * @property testCaseCount
113 | * The number of tests in the run.
114 | */
115 | @property (readonly) NSUInteger testCaseCount;
116 |
117 | /*!
118 | * @property executionCount
119 | * The number of test executions recorded during the run.
120 | */
121 | @property (readonly) NSUInteger executionCount;
122 |
123 | /*!
124 | * @property failureCount
125 | * The number of test failures recorded during the run.
126 | */
127 | @property (readonly) NSUInteger failureCount;
128 |
129 | /*!
130 | * @property unexpectedExceptionCount
131 | * The number of uncaught exceptions recorded during the run.
132 | */
133 | @property (readonly) NSUInteger unexpectedExceptionCount;
134 |
135 | /*!
136 | * @property totalFailureCount
137 | * The total number of test failures and uncaught exceptions recorded during the run.
138 | */
139 | @property (readonly) NSUInteger totalFailureCount;
140 |
141 | /*!
142 | * @property hasSucceeded
143 | * YES if all tests in the run completed their execution without recording any failures, otherwise NO.
144 | */
145 | @property (readonly) BOOL hasSucceeded;
146 |
147 | /*!
148 | * @method -recordFailureWithDescription:inFile:atLine:expected:
149 | * Records a failure in the execution of the test for this test run. Must not be called
150 | * unless the run has been started. Must not be called if the test run has been stopped.
151 | *
152 | * @param description The description of the failure being reported.
153 | *
154 | * @param filePath The file path to the source file where the failure being reported
155 | * was encountered or nil if unknown.
156 | *
157 | * @param lineNumber The line number in the source file at filePath where the
158 | * failure being reported was encountered.
159 | *
160 | * @param expected YES if the failure being reported was the result of a failed assertion,
161 | * NO if it was the result of an uncaught exception.
162 | *
163 | */
164 | - (void)recordFailureWithDescription:(NSString *)description inFile:(nullable NSString *)filePath atLine:(NSUInteger)lineNumber expected:(BOOL)expected;
165 |
166 | @end
167 |
168 | NS_ASSUME_NONNULL_END
169 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestSuite.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | /*!
37 | * @class XCTestSuite
38 | * A concrete subclass of XCTest, XCTestSuite is a collection of test cases. Suites
39 | * are usually managed by the IDE, but XCTestSuite also provides API for dynamic test
40 | * and suite management:
41 |
42 | XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
43 | [suite addTest:[MathTest testCaseWithSelector:@selector(testAdd)]];
44 | [suite addTest:[MathTest testCaseWithSelector:@selector(testDivideByZero)]];
45 |
46 | * Alternatively, a test suite can extract the tests to be run automatically. To do so,
47 | * pass the class of your test case class to the suite's constructor:
48 |
49 | XCTestSuite *suite = [XCTestSuite testSuiteForTestCaseClass:[MathTest class]];
50 |
51 | * This creates a suite with all the methods starting with "test" that take no arguments.
52 | * Also, a test suite of all the test cases found in the runtime can be created automatically:
53 |
54 | XCTestSuite *suite = [XCTestSuite defaultTestSuite];
55 |
56 | * This creates a suite of suites with all the XCTestCase subclasses methods that start
57 | * with "test" and take no arguments.
58 | */
59 | @interface XCTestSuite : XCTest {
60 | #ifndef __OBJC2__
61 | @private
62 | id _internalImplementation;
63 | #endif
64 | }
65 |
66 | + (instancetype)defaultTestSuite;
67 | + (instancetype)testSuiteForBundlePath:(NSString *)bundlePath;
68 | + (instancetype)testSuiteForTestCaseWithName:(NSString *)name;
69 | + (instancetype)testSuiteForTestCaseClass:(Class)testCaseClass;
70 |
71 | + (instancetype)testSuiteWithName:(NSString *)name;
72 | - (instancetype)initWithName:(NSString *)name NS_DESIGNATED_INITIALIZER;
73 |
74 | - (void)addTest:(XCTest *)test;
75 |
76 | @property (readonly, copy) NSArray <__kindof XCTest *> *tests;
77 |
78 | @end
79 |
80 | NS_ASSUME_NONNULL_END
81 |
82 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCTestSuiteRun.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2013-2015 Apple Inc. All rights reserved.
3 | //
4 | // Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
5 | //
6 | // Use of this source code is governed by the following license:
7 | //
8 | // Redistribution and use in source and binary forms, with or without modification,
9 | // are permitted provided that the following conditions are met:
10 | //
11 | // (1) Redistributions of source code must retain the above copyright notice,
12 | // this list of conditions and the following disclaimer.
13 | //
14 | // (2) Redistributions in binary form must reproduce the above copyright notice,
15 | // this list of conditions and the following disclaimer in the documentation
16 | // and/or other materials provided with the distribution.
17 | //
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 | // IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 | // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | //
28 | // Note: this license is equivalent to the FreeBSD license.
29 | //
30 | // This notice may not be removed from this file.
31 |
32 | #import
33 |
34 | NS_ASSUME_NONNULL_BEGIN
35 |
36 | @interface XCTestSuiteRun : XCTestRun {
37 | #ifndef __OBJC2__
38 | @private
39 | NSMutableArray *_testRuns;
40 | #endif
41 | }
42 |
43 | @property (readonly, copy) NSArray *testRuns;
44 |
45 | - (void)addTestRun:(XCTestRun *)testRun;
46 |
47 | @end
48 |
49 | NS_ASSUME_NONNULL_END
50 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIApplication.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 | #import
7 |
8 | NS_ASSUME_NONNULL_BEGIN
9 |
10 | #if XCT_UI_TESTING_AVAILABLE
11 |
12 | NS_CLASS_AVAILABLE(10_11, 9_0)
13 |
14 | /*! Proxy for an application. The information identifying the application is specified in the Xcode target settings as the "Target Application". */
15 | @interface XCUIApplication : XCUIElement
16 |
17 | /*!
18 | * Launches the application. This call is synchronous and when it returns the application is launched
19 | * and ready to handle user events. Any failure in the launch sequence is reported as a test failure
20 | * and halts the test at this point. If the application is already running, this call will first
21 | * terminate the existing instance to ensure clean state of the launched instance.
22 | */
23 | - (void)launch;
24 |
25 | /*!
26 | * Terminates any running instance of the application. If the application has an existing debug session
27 | * via Xcode, the termination is implemented as a halt via that debug connection. Otherwise, a SIGKILL
28 | * is sent to the process.
29 | */
30 | - (void)terminate;
31 |
32 | /*!
33 | * The arguments that will be passed to the application on launch. If not modified, these are the
34 | * arguments that Xcode will pass on launch. Those arguments can be changed, added to, or removed.
35 | * Unlike NSTask, it is legal to modify these arguments after the application has been launched. These
36 | * changes will not affect the current launch session, but will take effect the next time the application
37 | * is launched.
38 | */
39 | @property (nonatomic, copy) NSArray *launchArguments;
40 |
41 | /*!
42 | * The environment that will be passed to the application on launch. If not modified, this is the
43 | * environment that Xcode will pass on launch. Those variables can be changed, added to, or removed.
44 | * Unlike NSTask, it is legal to modify the environment after the application has been launched. These
45 | * changes will not affect the current launch session, but will take effect the next time the application
46 | * is launched.
47 | */
48 | @property (nonatomic, copy) NSDictionary *launchEnvironment;
49 |
50 | @end
51 |
52 | #endif
53 |
54 | NS_ASSUME_NONNULL_END
55 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUICoordinate.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if TARGET_OS_IPHONE
8 | #import
9 | #else
10 | #import
11 | #endif
12 |
13 |
14 | NS_ASSUME_NONNULL_BEGIN
15 |
16 | #if XCT_UI_TESTING_AVAILABLE && !TARGET_OS_TV
17 |
18 | @class XCUIElement;
19 |
20 | NS_CLASS_AVAILABLE(10_11, 9_0)
21 |
22 | /*! A coordinate represents a location on screen, relative to some element. Coordinates are dynamic, just like the elements to which they refer, and may compute different screen locations at different times, or be invalid if the referenced element does not exist. */
23 | @interface XCUICoordinate : NSObject
24 |
25 | /*! Coordinates are never instantiated directly. Instead, they are created by elements or by other coordinates. */
26 | - (instancetype)init NS_UNAVAILABLE;
27 |
28 | /*! The element that the coordinate is based on, either directly or via the coordinate from which it was derived. */
29 | @property (readonly) XCUIElement *referencedElement;
30 |
31 | /*! The dynamically computed value of the coordinate's location on screen. Note that this value is dependent on the current frame of the referenced element; if the element's frame changes, so will the value returned by this property. If the referenced element does exist when this is called, it will fail the test; check the referenced element's exists property if the element may not be present. */
32 | @property (readonly) CGPoint screenPoint;
33 |
34 | /*! Creates a new coordinate with an absolute offset in points from the original coordinate. */
35 | - (XCUICoordinate *)coordinateWithOffset:(CGVector)offsetVector;
36 |
37 | @end
38 |
39 | #if TARGET_OS_IPHONE
40 |
41 | @interface XCUICoordinate (XCUICoordinateTouchEvents)
42 |
43 | - (void)tap;
44 | - (void)doubleTap;
45 | - (void)pressForDuration:(NSTimeInterval)duration;
46 | - (void)pressForDuration:(NSTimeInterval)duration thenDragToCoordinate:(XCUICoordinate *)otherCoordinate;
47 |
48 | @end
49 |
50 | #endif // TARGET_OS_IPHONE
51 |
52 | #if TARGET_OS_OSX
53 |
54 | @interface XCUICoordinate (XCUICoordinateMouseEvents)
55 |
56 | - (void)hover;
57 | - (void)click;
58 | - (void)doubleClick;
59 | - (void)rightClick;
60 | - (void)clickForDuration:(NSTimeInterval)duration thenDragToCoordinate:(XCUICoordinate *)otherCoordinate;
61 | - (void)scrollByDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY;
62 |
63 | @end
64 |
65 | @interface XCUICoordinate (XCUICoordinateTouchBarEvents)
66 |
67 | - (void)tap;
68 | - (void)doubleTap;
69 | - (void)pressForDuration:(NSTimeInterval)duration;
70 | - (void)pressForDuration:(NSTimeInterval)duration thenDragToCoordinate:(XCUICoordinate *)otherCoordinate;
71 |
72 | @end
73 |
74 | #endif // TARGET_OS_OSX
75 |
76 | #endif
77 |
78 | NS_ASSUME_NONNULL_END
79 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIDevice.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if XCT_UI_TESTING_AVAILABLE
8 |
9 | #if TARGET_OS_IPHONE
10 |
11 | #import
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | /*!
16 | * @enum XCUIDeviceButton
17 | *
18 | * Represents a physical button on a device.
19 | *
20 | * @note Some buttons are not available in the Simulator, and should not be used in your tests.
21 | * You can use a block like this:
22 | *
23 | * #if !TARGET_OS_SIMULATOR
24 | * // test code that depends on buttons not available in the Simulator
25 | * #endif
26 | *
27 | * in your test code to ensure it does not call unavailable APIs.
28 | */
29 | typedef NS_ENUM(NSInteger, XCUIDeviceButton) {
30 | XCUIDeviceButtonHome = 1,
31 | XCUIDeviceButtonVolumeUp XCTEST_SIMULATOR_UNAVAILABLE("This API is not available in the Simulator, see the XCUIDeviceButton documentation for details.") = 2,
32 | XCUIDeviceButtonVolumeDown XCTEST_SIMULATOR_UNAVAILABLE("This API is not available in the Simulator, see the XCUIDeviceButton documentation for details.") = 3
33 | };
34 |
35 | /*! Represents a device, providing an interface for simulating events involving physical buttons and device state. */
36 | NS_CLASS_AVAILABLE(NA, 9_0)
37 | @interface XCUIDevice : NSObject
38 |
39 | /*! The current device. */
40 | + (XCUIDevice *)sharedDevice;
41 |
42 | #if TARGET_OS_IOS
43 | /*! The orientation of the device. */
44 | @property (nonatomic) UIDeviceOrientation orientation;
45 | #endif
46 |
47 | /*! Simulates the user pressing a physical button. */
48 | - (void)pressButton:(XCUIDeviceButton)button;
49 |
50 | @end
51 |
52 | NS_ASSUME_NONNULL_END
53 |
54 | #endif
55 |
56 | #endif
57 |
58 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIElement.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if TARGET_OS_IPHONE
8 | #import
9 | #else
10 | #import
11 | #endif
12 |
13 | #import
14 | #import
15 |
16 | NS_ASSUME_NONNULL_BEGIN
17 |
18 | #if XCT_UI_TESTING_AVAILABLE
19 |
20 | NS_ENUM_AVAILABLE(10_11, 9_0)
21 | typedef NS_OPTIONS(NSUInteger, XCUIKeyModifierFlags) {
22 | XCUIKeyModifierNone = 0,
23 | XCUIKeyModifierAlphaShift = (1UL << 0),
24 | XCUIKeyModifierShift = (1UL << 1),
25 | XCUIKeyModifierControl = (1UL << 2),
26 | XCUIKeyModifierAlternate = (1UL << 3),
27 | XCUIKeyModifierOption = XCUIKeyModifierAlternate,
28 | XCUIKeyModifierCommand = (1UL << 4),
29 | };
30 |
31 | @class XCUIElementQuery;
32 | @class XCUICoordinate;
33 |
34 | /*!
35 | * @class XCUIElement (/seealso XCUIElementAttributes)
36 | * Elements are objects encapsulating the information needed to dynamically locate a user interface
37 | * element in an application. Elements are described in terms of queries /seealso XCUIElementQuery.
38 | */
39 | NS_CLASS_AVAILABLE(10_11, 9_0)
40 | @interface XCUIElement : NSObject
41 |
42 | /*! Test to determine if the element exists. */
43 | @property (readonly) BOOL exists;
44 |
45 | /*! Whether or not a hit point can be computed for the element for the purpose of synthesizing events. */
46 | @property (readonly, getter = isHittable) BOOL hittable;
47 |
48 | /*! Returns a query for all descendants of the element matching the specified type. */
49 | - (XCUIElementQuery *)descendantsMatchingType:(XCUIElementType)type;
50 |
51 | /*! Returns a query for direct children of the element matching the specified type. */
52 | - (XCUIElementQuery *)childrenMatchingType:(XCUIElementType)type;
53 |
54 | #if !TARGET_OS_TV
55 | /*! Creates and returns a new coordinate that will compute its screen point by adding the offset multiplied by the size of the element’s frame to the origin of the element’s frame. */
56 | - (XCUICoordinate *)coordinateWithNormalizedOffset:(CGVector)normalizedOffset;
57 | #endif
58 |
59 | /*!
60 | @discussion
61 | Provides debugging information about the element. The data in the string will vary based on the
62 | time at which it is captured, but it may include any of the following as well as additional data:
63 | • Values for the elements attributes.
64 | • The entire tree of descendants rooted at the element.
65 | • The element's query.
66 | This data should be used for debugging only - depending on any of the data as part of a test is unsupported.
67 | */
68 | @property (readonly, copy) NSString *debugDescription;
69 |
70 | @end
71 |
72 | #pragma mark - Event Synthesis
73 |
74 | /*!
75 | * @category Events
76 | * Events that can be synthesized relative to an XCUIElement object. When an event API is called, the element
77 | * will be resolved. If zero or multiple matches are found, an error will be raised.
78 | */
79 | @interface XCUIElement (XCUIElementKeyboardEvents)
80 |
81 | /*!
82 | * Types a string into the element. The element or a descendant must have keyboard focus; otherwise an
83 | * error is raised.
84 | *
85 | * This API discards any modifiers set in the current context by +performWithKeyModifiers:block: so that
86 | * it strictly interprets the provided text. To input keys with modifier flags, use -typeKey:modifierFlags:.
87 | */
88 | - (void)typeText:(NSString *)text;
89 |
90 | #if TARGET_OS_OSX
91 |
92 | /*!
93 | * Hold modifier keys while the given block runs. This method pushes and pops the modifiers as global state
94 | * without need for reference to a particular element. Inside the block, elements can be clicked on, dragged
95 | * from, typed into, etc.
96 | */
97 | + (void)performWithKeyModifiers:(XCUIKeyModifierFlags)flags block:(void (^)(void))block;
98 |
99 | /*!
100 | * Types a single key with the specified modifier flags. Although `key` is a string, it must represent
101 | * a single key on a physical keyboard; strings that resolve to multiple keys will raise an error at runtime.
102 | * In addition to literal string key representations like "a", "6", and "[", keys such as the arrow keys,
103 | * command, control, option, and function keys can be typed using constants defined for them in XCUIKeyboardKeys.h
104 | */
105 | - (void)typeKey:(NSString *)key modifierFlags:(XCUIKeyModifierFlags)flags;
106 |
107 | #endif // TARGET_OS_OSX
108 |
109 | @end
110 |
111 | #if TARGET_OS_IOS
112 |
113 | @interface XCUIElement (XCUIElementTouchEvents)
114 |
115 | /*!
116 | * Sends a tap event to a hittable point computed for the element.
117 | */
118 | - (void)tap;
119 |
120 | /*!
121 | * Sends a double tap event to a hittable point computed for the element.
122 | */
123 | - (void)doubleTap;
124 |
125 | /*!
126 | * Sends a two finger tap event to a hittable point computed for the element.
127 | */
128 | - (void)twoFingerTap;
129 |
130 | /*!
131 | * Sends one or more taps with one of more touch points.
132 | *
133 | * @param numberOfTaps
134 | * The number of taps.
135 | *
136 | * @param numberOfTouches
137 | * The number of touch points.
138 | */
139 | - (void)tapWithNumberOfTaps:(NSUInteger)numberOfTaps numberOfTouches:(NSUInteger)numberOfTouches;
140 |
141 | /*!
142 | * Sends a long press gesture to a hittable point computed for the element, holding for the specified duration.
143 | *
144 | * @param duration
145 | * Duration in seconds.
146 | */
147 | - (void)pressForDuration:(NSTimeInterval)duration;
148 |
149 | /*!
150 | * Initiates a press-and-hold gesture that then drags to another element, suitable for table cell reordering and similar operations.
151 | * @param duration
152 | * Duration of the initial press-and-hold.
153 | * @param otherElement
154 | * The element to finish the drag gesture over. In the example of table cell reordering, this would be the reorder element of the destination row.
155 | */
156 | - (void)pressForDuration:(NSTimeInterval)duration thenDragToElement:(XCUIElement *)otherElement;
157 |
158 | /*!
159 | * Sends a swipe-up gesture.
160 | */
161 | - (void)swipeUp;
162 |
163 | /*!
164 | * Sends a swipe-down gesture.
165 | */
166 | - (void)swipeDown;
167 |
168 | /*!
169 | * Sends a swipe-left gesture.
170 | */
171 | - (void)swipeLeft;
172 |
173 | /*!
174 | * Sends a swipe-right gesture.
175 | */
176 | - (void)swipeRight;
177 |
178 | /*!
179 | * Sends a pinching gesture with two touches.
180 | *
181 | * The system makes a best effort to synthesize the requested scale and velocity: absolute accuracy is not guaranteed.
182 | * Some values may not be possible based on the size of the element's frame - these will result in test failures.
183 | *
184 | * @param scale
185 | * The scale of the pinch gesture. Use a scale between 0 and 1 to "pinch close" or zoom out and a scale greater than 1 to "pinch open" or zoom in.
186 | *
187 | * @param velocity
188 | * The velocity of the pinch in scale factor per second.
189 | */
190 | - (void)pinchWithScale:(CGFloat)scale velocity:(CGFloat)velocity;
191 |
192 | /*!
193 | * Sends a rotation gesture with two touches.
194 | *
195 | * The system makes a best effort to synthesize the requested rotation and velocity: absolute accuracy is not guaranteed.
196 | * Some values may not be possible based on the size of the element's frame - these will result in test failures.
197 | *
198 | * @param rotation
199 | * The rotation of the gesture in radians.
200 | *
201 | * @param velocity
202 | * The velocity of the rotation gesture in radians per second.
203 | */
204 | - (void)rotate:(CGFloat)rotation withVelocity:(CGFloat)velocity;
205 |
206 | @end
207 |
208 | #endif // TARGET_OS_IOS
209 |
210 | #if TARGET_OS_OSX
211 |
212 | @interface XCUIElement (XCUIElementMouseEvents)
213 |
214 | /*!
215 | * Moves the cursor over the element.
216 | */
217 | - (void)hover;
218 |
219 | /*!
220 | * Sends a click event to a hittable point computed for the element.
221 | */
222 | - (void)click;
223 |
224 | /*!
225 | * Sends a double click event to a hittable point computed for the element.
226 | */
227 | - (void)doubleClick;
228 |
229 | /*!
230 | * Sends a right click event to a hittable point computed for the element.
231 | */
232 | - (void)rightClick;
233 |
234 | /*!
235 | * Clicks and holds for a specified duration (generally long enough to start a drag operation) then drags
236 | * to the other element.
237 | */
238 | - (void)clickForDuration:(NSTimeInterval)duration thenDragToElement:(XCUIElement *)otherElement;
239 |
240 | /*!
241 | * Scroll the view the specified pixels, x and y.
242 | */
243 | - (void)scrollByDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY;
244 |
245 | @end
246 |
247 | /*! This category on XCUIElement provides functionality for automating elements in the Touch Bar. */
248 | @interface XCUIElement (XCUIElementTouchBarEvents)
249 |
250 | /*!
251 | * Sends a tap event to a central point computed for the element.
252 | */
253 | - (void)tap;
254 |
255 | /*!
256 | * Sends a double tap event to a central point computed for the element.
257 | */
258 | - (void)doubleTap;
259 |
260 | /*!
261 | * Sends a long press gesture to a central point computed for the element, holding for the specified duration.
262 | *
263 | * @param duration
264 | * Duration in seconds.
265 | */
266 | - (void)pressForDuration:(NSTimeInterval)duration;
267 |
268 | /*!
269 | * Initiates a press-and-hold gesture that then drags to another element.
270 | * @param duration
271 | * Duration of the initial press-and-hold.
272 | * @param otherElement
273 | * The element to finish the drag gesture over.
274 | */
275 | - (void)pressForDuration:(NSTimeInterval)duration thenDragToElement:(XCUIElement *)otherElement;
276 |
277 | @end
278 |
279 | #endif // TARGET_OS_OSX
280 |
281 | /*! This category on XCUIElement provides functionality for automating UISlider and NSSlider. */
282 | @interface XCUIElement (XCUIElementTypeSlider)
283 |
284 | /*! Manipulates the UI to change the displayed value of the slider to one based on a normalized position. 0 corresponds to the minimum value of the slider, 1 corresponds to its maximum value. The adjustment is a "best effort" to move the indicator to the desired position; absolute fidelity is not guaranteed. */
285 | - (void)adjustToNormalizedSliderPosition:(CGFloat)normalizedSliderPosition;
286 |
287 | /*! Returns the position of the slider's indicator as a normalized value where 0 corresponds to the minimum value of the slider and 1 corresponds to its maximum value. */
288 | @property (readonly) CGFloat normalizedSliderPosition;
289 |
290 | @end
291 |
292 | #if TARGET_OS_IOS
293 |
294 | /*! This category on XCUIElement provides functionality for automating the picker wheels of UIPickerViews and UIDatePickers. */
295 | @interface XCUIElement (XCUIElementTypePickerWheel)
296 |
297 | /*! Changes the displayed value for the picker wheel. Will generate a test failure if the specified value is not available. */
298 | - (void)adjustToPickerWheelValue:(NSString *)pickerWheelValue;
299 |
300 | @end
301 |
302 | #endif // TARGET_OS_IOS
303 |
304 | #endif
305 |
306 | NS_ASSUME_NONNULL_END
307 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIElementAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 | #import
7 |
8 | #if XCT_UI_TESTING_AVAILABLE
9 |
10 | #if TARGET_OS_IPHONE
11 |
12 | #import
13 |
14 | typedef NS_ENUM(NSInteger, XCUIUserInterfaceSizeClass) {
15 | XCUIUserInterfaceSizeClassUnspecified = UIUserInterfaceSizeClassUnspecified,
16 | XCUIUserInterfaceSizeClassCompact = UIUserInterfaceSizeClassCompact,
17 | XCUIUserInterfaceSizeClassRegular = UIUserInterfaceSizeClassRegular,
18 | };
19 |
20 | #else
21 |
22 | #import
23 |
24 | typedef NS_ENUM(NSInteger, XCUIUserInterfaceSizeClass) {
25 | XCUIUserInterfaceSizeClassUnspecified = 0,
26 | };
27 |
28 | #endif
29 |
30 | NS_ASSUME_NONNULL_BEGIN
31 |
32 | /*! Protocol describing the attributes exposed on user interface elements and available during query matching. These attributes represent data exposed to the Accessibility system. */
33 | @protocol XCUIElementAttributes
34 |
35 | /*! The accessibility identifier. */
36 | @property (readonly) NSString *identifier;
37 |
38 | /*! The frame of the element in the screen coordinate space. */
39 | @property (readonly) CGRect frame;
40 |
41 | /*! The raw value attribute of the element. Depending on the element, the actual type can vary. */
42 | @property (readonly, nullable) id value;
43 |
44 | /*! The title attribute of the element. */
45 | @property (readonly, copy) NSString *title;
46 |
47 | /*! The label attribute of the element. */
48 | @property (readonly, copy) NSString *label;
49 |
50 | /*! The type of the element. /seealso XCUIElementType. */
51 | @property (readonly) XCUIElementType elementType;
52 |
53 | /*! Whether or not the element is enabled for user interaction. */
54 | @property (readonly, getter = isEnabled) BOOL enabled;
55 |
56 | /*! The horizontal size class of the element. */
57 | @property (readonly) XCUIUserInterfaceSizeClass horizontalSizeClass;
58 |
59 | /*! The vertical size class of the element. */
60 | @property (readonly) XCUIUserInterfaceSizeClass verticalSizeClass;
61 |
62 | /*! The value that is displayed when the element has no value. */
63 | @property (readonly, nullable) NSString *placeholderValue;
64 |
65 | /*! Whether or not the element is selected. */
66 | @property (readonly, getter = isSelected) BOOL selected;
67 |
68 | #if TARGET_OS_TV
69 | /*! Whether or not the elment has UI focus. */
70 | @property (readonly) BOOL hasFocus;
71 | #endif
72 |
73 | @end
74 |
75 | NS_ASSUME_NONNULL_END
76 |
77 | #endif
78 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIElementQuery.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if XCT_UI_TESTING_AVAILABLE
8 |
9 | #import
10 | #import
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | XCT_EXPORT NSString *XCUIIdentifierCloseWindow;
15 | XCT_EXPORT NSString *XCUIIdentifierMinimizeWindow;
16 | XCT_EXPORT NSString *XCUIIdentifierZoomWindow;
17 | XCT_EXPORT NSString *XCUIIdentifierFullScreenWindow;
18 |
19 | @class XCUIElement;
20 |
21 | /*! Object for locating elements that can be chained with other queries. */
22 | NS_CLASS_AVAILABLE(10_11, 9_0)
23 | @interface XCUIElementQuery : NSObject
24 |
25 | /*! Returns an element that will use the query for resolution. */
26 | @property (readonly) XCUIElement *element;
27 |
28 | /*! Evaluates the query at the time it is called and returns the number of matches found. */
29 | @property (readonly) NSUInteger count;
30 |
31 | /*! Returns an element that will resolve to the index into the query's result set. */
32 | - (XCUIElement *)elementAtIndex:(NSUInteger)index NS_DEPRECATED(10_11, 10_11, 9_0, 9_0, "Use elementBoundByIndex instead.");
33 |
34 | /*! Returns an element that will use the index into the query's results to determine which underlying accessibility element it is matched with. */
35 | - (XCUIElement *)elementBoundByIndex:(NSUInteger)index;
36 |
37 | /*! Returns an element that matches the predicate. The predicate will be evaluated against objects of type id. */
38 | - (XCUIElement *)elementMatchingPredicate:(NSPredicate *)predicate;
39 |
40 | /*! Returns an element that matches the type and identifier. */
41 | - (XCUIElement *)elementMatchingType:(XCUIElementType)elementType identifier:(nullable NSString *)identifier;
42 |
43 | /*! Keyed subscripting is implemented as a shortcut for matching an identifier only. For example, app.descendants["Foo"] -> XCUIElement. */
44 | - (XCUIElement *)objectForKeyedSubscript:(NSString *)key;
45 |
46 | /*! Immediately evaluates the query and returns an array of elements bound to the resulting accessibility elements. */
47 | @property (readonly, copy) NSArray *allElementsBoundByAccessibilityElement;
48 |
49 | /*! Immediately evaluates the query and returns an array of elements bound by the index of each result. */
50 | @property (readonly, copy) NSArray *allElementsBoundByIndex;
51 |
52 | /*! Returns a new query that finds the descendants of all the elements found by the receiver. */
53 | - (XCUIElementQuery *)descendantsMatchingType:(XCUIElementType)type;
54 |
55 | /*! Returns a new query that finds the direct children of all the elements found by the receiver. */
56 | - (XCUIElementQuery *)childrenMatchingType:(XCUIElementType)type;
57 |
58 | /*! Returns a new query that applies the specified attributes or predicate to the receiver. The predicate will be evaluated against objects of type id. */
59 | - (XCUIElementQuery *)matchingPredicate:(NSPredicate *)predicate;
60 | - (XCUIElementQuery *)matchingType:(XCUIElementType)elementType identifier:(nullable NSString *)identifier;
61 | - (XCUIElementQuery *)matchingIdentifier:(NSString *)identifier;
62 |
63 | /*! Returns a new query for finding elements that contain a descendant matching the specification. The predicate will be evaluated against objects of type id. */
64 | - (XCUIElementQuery *)containingPredicate:(NSPredicate *)predicate;
65 | - (XCUIElementQuery *)containingType:(XCUIElementType)elementType identifier:(nullable NSString *)identifier;
66 |
67 | /*!
68 | @discussion
69 | Provides debugging information about the query. The data in the string will vary based on the time
70 | at which it is captured, but it may include any of the following as well as additional data:
71 | • A description of each step of the query.
72 | • Information about the inputs and matched outputs of each step of the query.
73 | This data should be used for debugging only - depending on any of the data as part of a test is unsupported.
74 | */
75 | @property (readonly, copy) NSString *debugDescription;
76 |
77 | @end
78 |
79 | NS_ASSUME_NONNULL_END
80 |
81 | #endif
82 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIElementTypeQueryProvider.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if XCT_UI_TESTING_AVAILABLE
8 |
9 | NS_ASSUME_NONNULL_BEGIN
10 |
11 | @class XCUIElementQuery;
12 |
13 | @protocol XCUIElementTypeQueryProvider
14 |
15 | @property (readonly, copy) XCUIElementQuery *touchBars;
16 | @property (readonly, copy) XCUIElementQuery *groups;
17 | @property (readonly, copy) XCUIElementQuery *windows;
18 | @property (readonly, copy) XCUIElementQuery *sheets;
19 | @property (readonly, copy) XCUIElementQuery *drawers;
20 | @property (readonly, copy) XCUIElementQuery *alerts;
21 | @property (readonly, copy) XCUIElementQuery *dialogs;
22 | @property (readonly, copy) XCUIElementQuery *buttons;
23 | @property (readonly, copy) XCUIElementQuery *radioButtons;
24 | @property (readonly, copy) XCUIElementQuery *radioGroups;
25 | @property (readonly, copy) XCUIElementQuery *checkBoxes;
26 | @property (readonly, copy) XCUIElementQuery *disclosureTriangles;
27 | @property (readonly, copy) XCUIElementQuery *popUpButtons;
28 | @property (readonly, copy) XCUIElementQuery *comboBoxes;
29 | @property (readonly, copy) XCUIElementQuery *menuButtons;
30 | @property (readonly, copy) XCUIElementQuery *toolbarButtons;
31 | @property (readonly, copy) XCUIElementQuery *popovers;
32 | @property (readonly, copy) XCUIElementQuery *keyboards;
33 | @property (readonly, copy) XCUIElementQuery *keys;
34 | @property (readonly, copy) XCUIElementQuery *navigationBars;
35 | @property (readonly, copy) XCUIElementQuery *tabBars;
36 | @property (readonly, copy) XCUIElementQuery *tabGroups;
37 | @property (readonly, copy) XCUIElementQuery *toolbars;
38 | @property (readonly, copy) XCUIElementQuery *statusBars;
39 | @property (readonly, copy) XCUIElementQuery *tables;
40 | @property (readonly, copy) XCUIElementQuery *tableRows;
41 | @property (readonly, copy) XCUIElementQuery *tableColumns;
42 | @property (readonly, copy) XCUIElementQuery *outlines;
43 | @property (readonly, copy) XCUIElementQuery *outlineRows;
44 | @property (readonly, copy) XCUIElementQuery *browsers;
45 | @property (readonly, copy) XCUIElementQuery *collectionViews;
46 | @property (readonly, copy) XCUIElementQuery *sliders;
47 | @property (readonly, copy) XCUIElementQuery *pageIndicators;
48 | @property (readonly, copy) XCUIElementQuery *progressIndicators;
49 | @property (readonly, copy) XCUIElementQuery *activityIndicators;
50 | @property (readonly, copy) XCUIElementQuery *segmentedControls;
51 | @property (readonly, copy) XCUIElementQuery *pickers;
52 | @property (readonly, copy) XCUIElementQuery *pickerWheels;
53 | @property (readonly, copy) XCUIElementQuery *switches;
54 | @property (readonly, copy) XCUIElementQuery *toggles;
55 | @property (readonly, copy) XCUIElementQuery *links;
56 | @property (readonly, copy) XCUIElementQuery *images;
57 | @property (readonly, copy) XCUIElementQuery *icons;
58 | @property (readonly, copy) XCUIElementQuery *searchFields;
59 | @property (readonly, copy) XCUIElementQuery *scrollViews;
60 | @property (readonly, copy) XCUIElementQuery *scrollBars;
61 | @property (readonly, copy) XCUIElementQuery *staticTexts;
62 | @property (readonly, copy) XCUIElementQuery *textFields;
63 | @property (readonly, copy) XCUIElementQuery *secureTextFields;
64 | @property (readonly, copy) XCUIElementQuery *datePickers;
65 | @property (readonly, copy) XCUIElementQuery *textViews;
66 | @property (readonly, copy) XCUIElementQuery *menus;
67 | @property (readonly, copy) XCUIElementQuery *menuItems;
68 | @property (readonly, copy) XCUIElementQuery *menuBars;
69 | @property (readonly, copy) XCUIElementQuery *menuBarItems;
70 | @property (readonly, copy) XCUIElementQuery *maps;
71 | @property (readonly, copy) XCUIElementQuery *webViews;
72 | @property (readonly, copy) XCUIElementQuery *steppers;
73 | @property (readonly, copy) XCUIElementQuery *incrementArrows;
74 | @property (readonly, copy) XCUIElementQuery *decrementArrows;
75 | @property (readonly, copy) XCUIElementQuery *tabs;
76 | @property (readonly, copy) XCUIElementQuery *timelines;
77 | @property (readonly, copy) XCUIElementQuery *ratingIndicators;
78 | @property (readonly, copy) XCUIElementQuery *valueIndicators;
79 | @property (readonly, copy) XCUIElementQuery *splitGroups;
80 | @property (readonly, copy) XCUIElementQuery *splitters;
81 | @property (readonly, copy) XCUIElementQuery *relevanceIndicators;
82 | @property (readonly, copy) XCUIElementQuery *colorWells;
83 | @property (readonly, copy) XCUIElementQuery *helpTags;
84 | @property (readonly, copy) XCUIElementQuery *mattes;
85 | @property (readonly, copy) XCUIElementQuery *dockItems;
86 | @property (readonly, copy) XCUIElementQuery *rulers;
87 | @property (readonly, copy) XCUIElementQuery *rulerMarkers;
88 | @property (readonly, copy) XCUIElementQuery *grids;
89 | @property (readonly, copy) XCUIElementQuery *levelIndicators;
90 | @property (readonly, copy) XCUIElementQuery *cells;
91 | @property (readonly, copy) XCUIElementQuery *layoutAreas;
92 | @property (readonly, copy) XCUIElementQuery *layoutItems;
93 | @property (readonly, copy) XCUIElementQuery *handles;
94 | @property (readonly, copy) XCUIElementQuery *otherElements;
95 |
96 | @end
97 |
98 | NS_ASSUME_NONNULL_END
99 |
100 | #endif
101 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIElementTypes.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 |
7 | #if XCT_UI_TESTING_AVAILABLE
8 |
9 | NS_ENUM_AVAILABLE(10_11, 9_0)
10 | typedef NS_ENUM(NSUInteger, XCUIElementType) {
11 | XCUIElementTypeAny = 0,
12 | XCUIElementTypeOther = 1,
13 | XCUIElementTypeApplication = 2,
14 | XCUIElementTypeGroup = 3,
15 | XCUIElementTypeWindow = 4,
16 | XCUIElementTypeSheet = 5,
17 | XCUIElementTypeDrawer = 6,
18 | XCUIElementTypeAlert = 7,
19 | XCUIElementTypeDialog = 8,
20 | XCUIElementTypeButton = 9,
21 | XCUIElementTypeRadioButton = 10,
22 | XCUIElementTypeRadioGroup = 11,
23 | XCUIElementTypeCheckBox = 12,
24 | XCUIElementTypeDisclosureTriangle = 13,
25 | XCUIElementTypePopUpButton = 14,
26 | XCUIElementTypeComboBox = 15,
27 | XCUIElementTypeMenuButton = 16,
28 | XCUIElementTypeToolbarButton = 17,
29 | XCUIElementTypePopover = 18,
30 | XCUIElementTypeKeyboard = 19,
31 | XCUIElementTypeKey = 20,
32 | XCUIElementTypeNavigationBar = 21,
33 | XCUIElementTypeTabBar = 22,
34 | XCUIElementTypeTabGroup = 23,
35 | XCUIElementTypeToolbar = 24,
36 | XCUIElementTypeStatusBar = 25,
37 | XCUIElementTypeTable = 26,
38 | XCUIElementTypeTableRow = 27,
39 | XCUIElementTypeTableColumn = 28,
40 | XCUIElementTypeOutline = 29,
41 | XCUIElementTypeOutlineRow = 30,
42 | XCUIElementTypeBrowser = 31,
43 | XCUIElementTypeCollectionView = 32,
44 | XCUIElementTypeSlider = 33,
45 | XCUIElementTypePageIndicator = 34,
46 | XCUIElementTypeProgressIndicator = 35,
47 | XCUIElementTypeActivityIndicator = 36,
48 | XCUIElementTypeSegmentedControl = 37,
49 | XCUIElementTypePicker = 38,
50 | XCUIElementTypePickerWheel = 39,
51 | XCUIElementTypeSwitch = 40,
52 | XCUIElementTypeToggle = 41,
53 | XCUIElementTypeLink = 42,
54 | XCUIElementTypeImage = 43,
55 | XCUIElementTypeIcon = 44,
56 | XCUIElementTypeSearchField = 45,
57 | XCUIElementTypeScrollView = 46,
58 | XCUIElementTypeScrollBar = 47,
59 | XCUIElementTypeStaticText = 48,
60 | XCUIElementTypeTextField = 49,
61 | XCUIElementTypeSecureTextField = 50,
62 | XCUIElementTypeDatePicker = 51,
63 | XCUIElementTypeTextView = 52,
64 | XCUIElementTypeMenu = 53,
65 | XCUIElementTypeMenuItem = 54,
66 | XCUIElementTypeMenuBar = 55,
67 | XCUIElementTypeMenuBarItem = 56,
68 | XCUIElementTypeMap = 57,
69 | XCUIElementTypeWebView = 58,
70 | XCUIElementTypeIncrementArrow = 59,
71 | XCUIElementTypeDecrementArrow = 60,
72 | XCUIElementTypeTimeline = 61,
73 | XCUIElementTypeRatingIndicator = 62,
74 | XCUIElementTypeValueIndicator = 63,
75 | XCUIElementTypeSplitGroup = 64,
76 | XCUIElementTypeSplitter = 65,
77 | XCUIElementTypeRelevanceIndicator = 66,
78 | XCUIElementTypeColorWell = 67,
79 | XCUIElementTypeHelpTag = 68,
80 | XCUIElementTypeMatte = 69,
81 | XCUIElementTypeDockItem = 70,
82 | XCUIElementTypeRuler = 71,
83 | XCUIElementTypeRulerMarker = 72,
84 | XCUIElementTypeGrid = 73,
85 | XCUIElementTypeLevelIndicator = 74,
86 | XCUIElementTypeCell = 75,
87 | XCUIElementTypeLayoutArea = 76,
88 | XCUIElementTypeLayoutItem = 77,
89 | XCUIElementTypeHandle = 78,
90 | XCUIElementTypeStepper = 79,
91 | XCUIElementTypeTab = 80,
92 | XCUIElementTypeTouchBar = 81
93 | };
94 |
95 | #endif
96 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIKeyboardKeys.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 | #import
7 |
8 | #if XCT_UI_TESTING_AVAILABLE
9 |
10 | /*!
11 | Constants for use with -[XCUIElement typeKey:modifierFlags:],
12 | representing keys that have no textual representation. These comprise
13 | the set of control, function, and modifier keys found on most keyboards.
14 | */
15 |
16 | extern NSString *const XCUIKeyboardKeyDelete;
17 | extern NSString *const XCUIKeyboardKeyReturn;
18 | extern NSString *const XCUIKeyboardKeyEnter;
19 | extern NSString *const XCUIKeyboardKeyTab;
20 | extern NSString *const XCUIKeyboardKeySpace;
21 | extern NSString *const XCUIKeyboardKeyEscape;
22 |
23 | extern NSString *const XCUIKeyboardKeyUpArrow;
24 | extern NSString *const XCUIKeyboardKeyDownArrow;
25 | extern NSString *const XCUIKeyboardKeyLeftArrow;
26 | extern NSString *const XCUIKeyboardKeyRightArrow;
27 |
28 | extern NSString *const XCUIKeyboardKeyF1;
29 | extern NSString *const XCUIKeyboardKeyF2;
30 | extern NSString *const XCUIKeyboardKeyF3;
31 | extern NSString *const XCUIKeyboardKeyF4;
32 | extern NSString *const XCUIKeyboardKeyF5;
33 | extern NSString *const XCUIKeyboardKeyF6;
34 | extern NSString *const XCUIKeyboardKeyF7;
35 | extern NSString *const XCUIKeyboardKeyF8;
36 | extern NSString *const XCUIKeyboardKeyF9;
37 | extern NSString *const XCUIKeyboardKeyF10;
38 | extern NSString *const XCUIKeyboardKeyF11;
39 | extern NSString *const XCUIKeyboardKeyF12;
40 | extern NSString *const XCUIKeyboardKeyF13;
41 | extern NSString *const XCUIKeyboardKeyF14;
42 | extern NSString *const XCUIKeyboardKeyF15;
43 | extern NSString *const XCUIKeyboardKeyF16;
44 | extern NSString *const XCUIKeyboardKeyF17;
45 | extern NSString *const XCUIKeyboardKeyF18;
46 | extern NSString *const XCUIKeyboardKeyF19;
47 |
48 | extern NSString *const XCUIKeyboardKeyForwardDelete;
49 | extern NSString *const XCUIKeyboardKeyHome;
50 | extern NSString *const XCUIKeyboardKeyEnd;
51 | extern NSString *const XCUIKeyboardKeyPageUp;
52 | extern NSString *const XCUIKeyboardKeyPageDown;
53 | extern NSString *const XCUIKeyboardKeyClear;
54 | extern NSString *const XCUIKeyboardKeyHelp;
55 |
56 | extern NSString *const XCUIKeyboardKeyCapsLock;
57 | extern NSString *const XCUIKeyboardKeyShift;
58 | extern NSString *const XCUIKeyboardKeyControl;
59 | extern NSString *const XCUIKeyboardKeyOption;
60 | extern NSString *const XCUIKeyboardKeyCommand;
61 | extern NSString *const XCUIKeyboardKeyRightShift;
62 | extern NSString *const XCUIKeyboardKeyRightControl;
63 | extern NSString *const XCUIKeyboardKeyRightOption;
64 | extern NSString *const XCUIKeyboardKeyRightCommand;
65 | extern NSString *const XCUIKeyboardKeySecondaryFn;
66 |
67 | #endif
68 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Headers/XCUIRemote.h:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) 2014-2015 Apple Inc. All rights reserved.
3 | //
4 |
5 | #import
6 | #import
7 |
8 | NS_ASSUME_NONNULL_BEGIN
9 |
10 | #if XCT_UI_TESTING_AVAILABLE
11 |
12 | /*!
13 | * @enum XCUIRemoteButton
14 | *
15 | * A button on a physical remote control.
16 | */
17 | typedef NS_ENUM(NSUInteger, XCUIRemoteButton) {
18 | XCUIRemoteButtonUp = 0,
19 | XCUIRemoteButtonDown = 1,
20 | XCUIRemoteButtonLeft = 2,
21 | XCUIRemoteButtonRight = 3,
22 |
23 | XCUIRemoteButtonSelect = 4,
24 | XCUIRemoteButtonMenu = 5,
25 | XCUIRemoteButtonPlayPause = 6,
26 | };
27 |
28 | #if TARGET_OS_TV
29 |
30 | /*!
31 | * @class XCUIRemote
32 | *
33 | * Simulates interaction with a physical remote control.
34 | */
35 | NS_CLASS_AVAILABLE_IOS(9_0)
36 | @interface XCUIRemote : NSObject
37 |
38 | /*!
39 | * The simulated physical remote control.
40 | */
41 | + (instancetype)sharedRemote;
42 |
43 | /*!
44 | * Sends a momentary press of a button on a physical remote control.
45 | *
46 | * @param remoteButton
47 | * The button on the physical remote control for which to synthesize a press.
48 | */
49 | - (void)pressButton:(XCUIRemoteButton)remoteButton;
50 |
51 | /*!
52 | * Sends a press and hold of a button on a physical remote control, holding for the specified duration.
53 | *
54 | * @param remoteButton
55 | * The button on the physical remote control for which to synthesize a press.
56 | *
57 | * @param duration
58 | * Duration in seconds.
59 | */
60 | - (void)pressButton:(XCUIRemoteButton)remoteButton forDuration:(NSTimeInterval)duration;
61 |
62 | @end
63 |
64 | #endif
65 |
66 | #endif
67 |
68 | NS_ASSUME_NONNULL_END
69 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module XCTest {
2 | umbrella header "XCTest.h"
3 | requires objc
4 | export *
5 | }
6 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/TextBasedStubs/XCTest.tbd:
--------------------------------------------------------------------------------
1 | --- !tapi-tbd-v2
2 | archs: [ i386, x86_64 ]
3 | uuids: [ 'i386: 3C6E14E1-3408-3782-BB75-3CDC60174D45', 'x86_64: 14D068AE-3D33-3D18-BAFE-2EF9A4537EA1' ]
4 | platform: ios
5 | flags: [ not_app_extension_safe ]
6 | install-name: '@rpath/XCTest.framework/XCTest'
7 | current-version: 11753.0
8 | objc-constraint: none
9 | exports:
10 | - archs: [ i386, x86_64 ]
11 | symbols: [ '_OBJC_EHTYPE_$__XCTestCaseInterruptionException', _XCCGPointDistanceToPoint,
12 | _XCCGRectMinimumDistanceToPoint, _XCSourceCodeTreeNode_PrefixDelimiter,
13 | _XCSourceCodeTreeNode_SuffixDelimiter, _XCTPerformanceMetric_HighWaterMarkForHeapAllocations,
14 | _XCTPerformanceMetric_HighWaterMarkForVMAllocations, _XCTPerformanceMetric_PersistentHeapAllocations,
15 | _XCTPerformanceMetric_PersistentHeapAllocationsNodes, _XCTPerformanceMetric_PersistentVMAllocations,
16 | _XCTPerformanceMetric_RunTime, _XCTPerformanceMetric_SystemTime,
17 | _XCTPerformanceMetric_TemporaryHeapAllocationsKilobytes, _XCTPerformanceMetric_TemporaryHeapAllocationsNodes,
18 | _XCTPerformanceMetric_TemporaryVMAllocationsKilobytes, _XCTPerformanceMetric_TotalHeapAllocationsKilobytes,
19 | _XCTPerformanceMetric_TransientHeapAllocationsKilobytes, _XCTPerformanceMetric_TransientHeapAllocationsNodes,
20 | _XCTPerformanceMetric_TransientVMAllocationsKilobytes, _XCTPerformanceMetric_UserTime,
21 | _XCTPerformanceMetric_WallClockTime, _XCTSelfTestMain, _XCTestErrorDomain,
22 | _XCTestObserverClassKey, _XCTestScopeAll, _XCTestScopeKey,
23 | _XCTestScopeNone, _XCTestScopeSelf, _XCTestToolKey, _XCTestedUnitPath,
24 | _XCUIIdentifierCloseWindow, _XCUIIdentifierFullScreenWindow,
25 | _XCUIIdentifierMinimizeWindow, _XCUIIdentifierZoomWindow,
26 | _XCUIKeyModifierFlagsFromUIKeyModifierFlags, _XCUIKeyModifierFlagsToDisplayString,
27 | _XCUIKeyModifierFlagsToUIKeyModifierFlags, _XCUIKeyModifiersMaskAll,
28 | _XCUIKeyboardKeyCapsLock, _XCUIKeyboardKeyClear, _XCUIKeyboardKeyCommand,
29 | _XCUIKeyboardKeyControl, _XCUIKeyboardKeyDelete, _XCUIKeyboardKeyDownArrow,
30 | _XCUIKeyboardKeyEnd, _XCUIKeyboardKeyEnter, _XCUIKeyboardKeyEscape,
31 | _XCUIKeyboardKeyF1, _XCUIKeyboardKeyF10, _XCUIKeyboardKeyF11,
32 | _XCUIKeyboardKeyF12, _XCUIKeyboardKeyF13, _XCUIKeyboardKeyF14,
33 | _XCUIKeyboardKeyF15, _XCUIKeyboardKeyF16, _XCUIKeyboardKeyF17,
34 | _XCUIKeyboardKeyF18, _XCUIKeyboardKeyF19, _XCUIKeyboardKeyF2,
35 | _XCUIKeyboardKeyF3, _XCUIKeyboardKeyF4, _XCUIKeyboardKeyF5,
36 | _XCUIKeyboardKeyF6, _XCUIKeyboardKeyF7, _XCUIKeyboardKeyF8,
37 | _XCUIKeyboardKeyF9, _XCUIKeyboardKeyForwardDelete, _XCUIKeyboardKeyHelp,
38 | _XCUIKeyboardKeyHome, _XCUIKeyboardKeyLeftArrow, _XCUIKeyboardKeyOption,
39 | _XCUIKeyboardKeyPageDown, _XCUIKeyboardKeyPageUp, _XCUIKeyboardKeyReturn,
40 | _XCUIKeyboardKeyRightArrow, _XCUIKeyboardKeyRightCommand,
41 | _XCUIKeyboardKeyRightControl, _XCUIKeyboardKeyRightOption,
42 | _XCUIKeyboardKeyRightShift, _XCUIKeyboardKeySecondaryFn, _XCUIKeyboardKeyShift,
43 | _XCUIKeyboardKeySpace, _XCUIKeyboardKeyTab, _XCUIKeyboardKeyUpArrow,
44 | _XCUIMatchingPointAlignment, _XCUIMatchingPointIgnoreFrame,
45 | _XCUIMatchingPointIgnoringFrames, _XCUIMatchingPointInFrame,
46 | _XCUIMatchingPointSuggestedPoints, _XCUnoccludedSubrects,
47 | __XCINFLog, __XCLog, __XCTAXMessagingTimeout, __XCTAXResponseTimeout,
48 | __XCTApplicationStateTimeout, __XCTCurrentTestCase, __XCTDaemonConfirmationTimeout,
49 | __XCTDescriptionForValue, __XCTEventConfirmationTimeout, __XCTFailInCurrentTest,
50 | __XCTFailureFormat, __XCTFailureHandler, __XCTPreformattedFailureHandler,
51 | __XCTSetAXMessagingTimeout, __XCTSetAXResponseTimeout, __XCTSetApplicationStateTimeout,
52 | __XCTSetDaemonConfirmationTimeout, __XCTSetEventConfirmationTimeout,
53 | __XCTestMain, __XCWaitLoopIsValid ]
54 | objc-classes: [ _XCAXClient_iOS, _XCAccessibilityElement, _XCActivityRecord,
55 | _XCApplicationMonitor, _XCElementSnapshot, _XCEventGenerator,
56 | _XCPointerEvent, _XCPointerEventPath, _XCSourceCodeRecording,
57 | _XCSourceCodeTreeNode, _XCSymbolicationRecord, _XCSynthesizedEventRecord,
58 | _XCTest, _XCTestCase, _XCTestCaseRun, _XCTestConfiguration,
59 | _XCTestContext, _XCTestDriver, _XCTestExpectation, _XCTestExpectationWaiter,
60 | _XCTestLog, _XCTestObservationCenter, _XCTestObserver, _XCTestProbe,
61 | _XCTestRun, _XCTestSuite, _XCTestSuiteRun, _XCUIApplication,
62 | _XCUIApplicationImpl, _XCUIApplicationProcess, _XCUICoordinate,
63 | _XCUIDevice, _XCUIElement, _XCUIElementQuery, _XCUIRecorderUtilities,
64 | __XCTestCaseImplementation, __XCTestCaseInterruptionException ]
65 | objc-ivars: [ _XCAXClient_iOS._alertNotificationCounter, _XCAXClient_iOS._cacheAccessibilityLoadedValuesForPIDs,
66 | _XCAXClient_iOS._userTestingNotificationHandlers, _XCApplicationMonitor._applicationImplementations,
67 | _XCApplicationMonitor._applicationProcessesForPID, _XCApplicationMonitor._applicationProcessesForToken,
68 | _XCApplicationMonitor._launchedApplications, _XCEventGenerator._eventQueue,
69 | _XCEventGenerator._generation, _XCEventGenerator._generationObserver,
70 | _XCTestConfiguration._absolutePath, _XCTestConfiguration._aggregateStatisticsBeforeCrash,
71 | _XCTestConfiguration._baselineFileRelativePath, _XCTestConfiguration._baselineFileURL,
72 | _XCTestConfiguration._disablePerformanceMetrics, _XCTestConfiguration._initializeForUITesting,
73 | _XCTestConfiguration._pathToXcodeReportingSocket, _XCTestConfiguration._productModuleName,
74 | _XCTestConfiguration._reportActivities, _XCTestConfiguration._reportResultsToIDE,
75 | _XCTestConfiguration._sessionIdentifier, _XCTestConfiguration._targetApplicationBundleID,
76 | _XCTestConfiguration._targetApplicationPath, _XCTestConfiguration._testBundleRelativePath,
77 | _XCTestConfiguration._testBundleURL, _XCTestConfiguration._testsMustRunOnMainThread,
78 | _XCTestConfiguration._testsToRun, _XCTestConfiguration._testsToSkip,
79 | _XCTestConfiguration._treatMissingBaselinesAsFailures ]
80 | ...
81 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XCTest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/XCTest
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XCTest.tbd:
--------------------------------------------------------------------------------
1 | --- !tapi-tbd-v2
2 | archs: [ i386, x86_64 ]
3 | uuids: [ 'i386: 3C6E14E1-3408-3782-BB75-3CDC60174D45', 'x86_64: 14D068AE-3D33-3D18-BAFE-2EF9A4537EA1' ]
4 | platform: ios
5 | flags: [ not_app_extension_safe ]
6 | install-name: '@rpath/XCTest.framework/XCTest'
7 | current-version: 11753.0
8 | objc-constraint: none
9 | exports:
10 | - archs: [ i386, x86_64 ]
11 | symbols: [ '_OBJC_EHTYPE_$__XCTestCaseInterruptionException', _XCCGPointDistanceToPoint,
12 | _XCCGRectMinimumDistanceToPoint, _XCSourceCodeTreeNode_PrefixDelimiter,
13 | _XCSourceCodeTreeNode_SuffixDelimiter, _XCTPerformanceMetric_HighWaterMarkForHeapAllocations,
14 | _XCTPerformanceMetric_HighWaterMarkForVMAllocations, _XCTPerformanceMetric_PersistentHeapAllocations,
15 | _XCTPerformanceMetric_PersistentHeapAllocationsNodes, _XCTPerformanceMetric_PersistentVMAllocations,
16 | _XCTPerformanceMetric_RunTime, _XCTPerformanceMetric_SystemTime,
17 | _XCTPerformanceMetric_TemporaryHeapAllocationsKilobytes, _XCTPerformanceMetric_TemporaryHeapAllocationsNodes,
18 | _XCTPerformanceMetric_TemporaryVMAllocationsKilobytes, _XCTPerformanceMetric_TotalHeapAllocationsKilobytes,
19 | _XCTPerformanceMetric_TransientHeapAllocationsKilobytes, _XCTPerformanceMetric_TransientHeapAllocationsNodes,
20 | _XCTPerformanceMetric_TransientVMAllocationsKilobytes, _XCTPerformanceMetric_UserTime,
21 | _XCTPerformanceMetric_WallClockTime, _XCTSelfTestMain, _XCTestErrorDomain,
22 | _XCTestObserverClassKey, _XCTestScopeAll, _XCTestScopeKey,
23 | _XCTestScopeNone, _XCTestScopeSelf, _XCTestToolKey, _XCTestedUnitPath,
24 | _XCUIIdentifierCloseWindow, _XCUIIdentifierFullScreenWindow,
25 | _XCUIIdentifierMinimizeWindow, _XCUIIdentifierZoomWindow,
26 | _XCUIKeyModifierFlagsFromUIKeyModifierFlags, _XCUIKeyModifierFlagsToDisplayString,
27 | _XCUIKeyModifierFlagsToUIKeyModifierFlags, _XCUIKeyModifiersMaskAll,
28 | _XCUIKeyboardKeyCapsLock, _XCUIKeyboardKeyClear, _XCUIKeyboardKeyCommand,
29 | _XCUIKeyboardKeyControl, _XCUIKeyboardKeyDelete, _XCUIKeyboardKeyDownArrow,
30 | _XCUIKeyboardKeyEnd, _XCUIKeyboardKeyEnter, _XCUIKeyboardKeyEscape,
31 | _XCUIKeyboardKeyF1, _XCUIKeyboardKeyF10, _XCUIKeyboardKeyF11,
32 | _XCUIKeyboardKeyF12, _XCUIKeyboardKeyF13, _XCUIKeyboardKeyF14,
33 | _XCUIKeyboardKeyF15, _XCUIKeyboardKeyF16, _XCUIKeyboardKeyF17,
34 | _XCUIKeyboardKeyF18, _XCUIKeyboardKeyF19, _XCUIKeyboardKeyF2,
35 | _XCUIKeyboardKeyF3, _XCUIKeyboardKeyF4, _XCUIKeyboardKeyF5,
36 | _XCUIKeyboardKeyF6, _XCUIKeyboardKeyF7, _XCUIKeyboardKeyF8,
37 | _XCUIKeyboardKeyF9, _XCUIKeyboardKeyForwardDelete, _XCUIKeyboardKeyHelp,
38 | _XCUIKeyboardKeyHome, _XCUIKeyboardKeyLeftArrow, _XCUIKeyboardKeyOption,
39 | _XCUIKeyboardKeyPageDown, _XCUIKeyboardKeyPageUp, _XCUIKeyboardKeyReturn,
40 | _XCUIKeyboardKeyRightArrow, _XCUIKeyboardKeyRightCommand,
41 | _XCUIKeyboardKeyRightControl, _XCUIKeyboardKeyRightOption,
42 | _XCUIKeyboardKeyRightShift, _XCUIKeyboardKeySecondaryFn, _XCUIKeyboardKeyShift,
43 | _XCUIKeyboardKeySpace, _XCUIKeyboardKeyTab, _XCUIKeyboardKeyUpArrow,
44 | _XCUIMatchingPointAlignment, _XCUIMatchingPointIgnoreFrame,
45 | _XCUIMatchingPointIgnoringFrames, _XCUIMatchingPointInFrame,
46 | _XCUIMatchingPointSuggestedPoints, _XCUnoccludedSubrects,
47 | __XCINFLog, __XCLog, __XCTAXMessagingTimeout, __XCTAXResponseTimeout,
48 | __XCTApplicationStateTimeout, __XCTCurrentTestCase, __XCTDaemonConfirmationTimeout,
49 | __XCTDescriptionForValue, __XCTEventConfirmationTimeout, __XCTFailInCurrentTest,
50 | __XCTFailureFormat, __XCTFailureHandler, __XCTPreformattedFailureHandler,
51 | __XCTSetAXMessagingTimeout, __XCTSetAXResponseTimeout, __XCTSetApplicationStateTimeout,
52 | __XCTSetDaemonConfirmationTimeout, __XCTSetEventConfirmationTimeout,
53 | __XCTestMain, __XCWaitLoopIsValid ]
54 | objc-classes: [ _XCAXClient_iOS, _XCAccessibilityElement, _XCActivityRecord,
55 | _XCApplicationMonitor, _XCElementSnapshot, _XCEventGenerator,
56 | _XCPointerEvent, _XCPointerEventPath, _XCSourceCodeRecording,
57 | _XCSourceCodeTreeNode, _XCSymbolicationRecord, _XCSynthesizedEventRecord,
58 | _XCTest, _XCTestCase, _XCTestCaseRun, _XCTestConfiguration,
59 | _XCTestContext, _XCTestDriver, _XCTestExpectation, _XCTestExpectationWaiter,
60 | _XCTestLog, _XCTestObservationCenter, _XCTestObserver, _XCTestProbe,
61 | _XCTestRun, _XCTestSuite, _XCTestSuiteRun, _XCUIApplication,
62 | _XCUIApplicationImpl, _XCUIApplicationProcess, _XCUICoordinate,
63 | _XCUIDevice, _XCUIElement, _XCUIElementQuery, _XCUIRecorderUtilities,
64 | __XCTestCaseImplementation, __XCTestCaseInterruptionException ]
65 | objc-ivars: [ _XCAXClient_iOS._alertNotificationCounter, _XCAXClient_iOS._cacheAccessibilityLoadedValuesForPIDs,
66 | _XCAXClient_iOS._userTestingNotificationHandlers, _XCApplicationMonitor._applicationImplementations,
67 | _XCApplicationMonitor._applicationProcessesForPID, _XCApplicationMonitor._applicationProcessesForToken,
68 | _XCApplicationMonitor._launchedApplications, _XCEventGenerator._eventQueue,
69 | _XCEventGenerator._generation, _XCEventGenerator._generationObserver,
70 | _XCTestConfiguration._absolutePath, _XCTestConfiguration._aggregateStatisticsBeforeCrash,
71 | _XCTestConfiguration._baselineFileRelativePath, _XCTestConfiguration._baselineFileURL,
72 | _XCTestConfiguration._disablePerformanceMetrics, _XCTestConfiguration._initializeForUITesting,
73 | _XCTestConfiguration._pathToXcodeReportingSocket, _XCTestConfiguration._productModuleName,
74 | _XCTestConfiguration._reportActivities, _XCTestConfiguration._reportResultsToIDE,
75 | _XCTestConfiguration._sessionIdentifier, _XCTestConfiguration._targetApplicationBundleID,
76 | _XCTestConfiguration._targetApplicationPath, _XCTestConfiguration._testBundleRelativePath,
77 | _XCTestConfiguration._testBundleURL, _XCTestConfiguration._testsMustRunOnMainThread,
78 | _XCTestConfiguration._testsToRun, _XCTestConfiguration._testsToSkip,
79 | _XCTestConfiguration._treatMissingBaselinesAsFailures ]
80 | ...
81 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/XCUIRecorderService:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/XCUIRecorderService
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Info.plist
8 |
9 | kyL3MKt/Hh8S9COPUG40xFkWaoQ=
10 |
11 | version.plist
12 |
13 | xrAWmlwsl7/ygiScJZnSfbwgffI=
14 |
15 |
16 | files2
17 |
18 | version.plist
19 |
20 | xrAWmlwsl7/ygiScJZnSfbwgffI=
21 |
22 |
23 | rules
24 |
25 | ^
26 |
27 | ^.*\.lproj/
28 |
29 | optional
30 |
31 | weight
32 | 1000
33 |
34 | ^.*\.lproj/locversion.plist$
35 |
36 | omit
37 |
38 | weight
39 | 1100
40 |
41 | ^version.plist$
42 |
43 |
44 | rules2
45 |
46 | .*\.dSYM($|/)
47 |
48 | weight
49 | 11
50 |
51 | ^
52 |
53 | weight
54 | 20
55 |
56 | ^(.*/)?\.DS_Store$
57 |
58 | omit
59 |
60 | weight
61 | 2000
62 |
63 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
64 |
65 | nested
66 |
67 | weight
68 | 10
69 |
70 | ^.*
71 |
72 | ^.*\.lproj/
73 |
74 | optional
75 |
76 | weight
77 | 1000
78 |
79 | ^.*\.lproj/locversion.plist$
80 |
81 | omit
82 |
83 | weight
84 | 1100
85 |
86 | ^Info\.plist$
87 |
88 | omit
89 |
90 | weight
91 | 20
92 |
93 | ^PkgInfo$
94 |
95 | omit
96 |
97 | weight
98 | 20
99 |
100 | ^[^/]+$
101 |
102 | nested
103 |
104 | weight
105 | 10
106 |
107 | ^embedded\.provisionprofile$
108 |
109 | weight
110 | 20
111 |
112 | ^version\.plist$
113 |
114 | weight
115 | 20
116 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/XCUIRecorderService.xpc/version.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildAliasOf
6 | XCTest
7 | BuildVersion
8 | 4
9 | CFBundleShortVersionString
10 | 1.0
11 | CFBundleVersion
12 | 1
13 | ProjectName
14 | XCTest_Sim
15 | SourceVersion
16 | 11753000000000000
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Info.plist
8 |
9 | i1ilUYSCt6kbw9IUS/EVTKdd4Dg=
10 |
11 | version.plist
12 |
13 | xrAWmlwsl7/ygiScJZnSfbwgffI=
14 |
15 |
16 | files2
17 |
18 | version.plist
19 |
20 | xrAWmlwsl7/ygiScJZnSfbwgffI=
21 |
22 |
23 | rules
24 |
25 | ^
26 |
27 | ^.*\.lproj/
28 |
29 | optional
30 |
31 | weight
32 | 1000
33 |
34 | ^.*\.lproj/locversion.plist$
35 |
36 | omit
37 |
38 | weight
39 | 1100
40 |
41 | ^version.plist$
42 |
43 |
44 | rules2
45 |
46 | .*\.dSYM($|/)
47 |
48 | weight
49 | 11
50 |
51 | ^
52 |
53 | weight
54 | 20
55 |
56 | ^(.*/)?\.DS_Store$
57 |
58 | omit
59 |
60 | weight
61 | 2000
62 |
63 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
64 |
65 | nested
66 |
67 | weight
68 | 10
69 |
70 | ^.*
71 |
72 | ^.*\.lproj/
73 |
74 | optional
75 |
76 | weight
77 | 1000
78 |
79 | ^.*\.lproj/locversion.plist$
80 |
81 | omit
82 |
83 | weight
84 | 1100
85 |
86 | ^Info\.plist$
87 |
88 | omit
89 |
90 | weight
91 | 20
92 |
93 | ^PkgInfo$
94 |
95 | omit
96 |
97 | weight
98 | 20
99 |
100 | ^[^/]+$
101 |
102 | nested
103 |
104 | weight
105 | 10
106 |
107 | ^embedded\.provisionprofile$
108 |
109 | weight
110 | 20
111 |
112 | ^version\.plist$
113 |
114 | weight
115 | 20
116 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/version.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildAliasOf
6 | XCTest
7 | BuildVersion
8 | 4
9 | CFBundleShortVersionString
10 | 1.0
11 | CFBundleVersion
12 | 1
13 | ProjectName
14 | XCTest_Sim
15 | SourceVersion
16 | 11753000000000000
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/xctestSymbolicator:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/XPCServices/xctestSymbolicator.xpc/xctestSymbolicator
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Headers/XCAbstractTest.h
8 |
9 | glimZR9g23UWmtfTfpa3DtRU32o=
10 |
11 | Headers/XCTest.h
12 |
13 | FeItRoIRWX9yeukRVtg0l8vKWu0=
14 |
15 | Headers/XCTestAssertions.h
16 |
17 | t430vwqgq3wiAocVV386i0N+lOY=
18 |
19 | Headers/XCTestAssertionsImpl.h
20 |
21 | ZbDVHohdSHIPtEqmg7zN34qa0T4=
22 |
23 | Headers/XCTestCase+AsynchronousTesting.h
24 |
25 | PL1ZOdDhdZzPNjCxecLsCysb3OQ=
26 |
27 | Headers/XCTestCase.h
28 |
29 | YzjVm663E0vT+P6c0ORX46w/zQ0=
30 |
31 | Headers/XCTestCaseRun.h
32 |
33 | /XUqDHA/BFdQDUxQU8Ft5LXo/Ps=
34 |
35 | Headers/XCTestDefines.h
36 |
37 | Dz7Tri4hztdVrwGfOLzpE53H3kk=
38 |
39 | Headers/XCTestErrors.h
40 |
41 | oZFqJmcKHuKZIgeKOwsFDxhfEEc=
42 |
43 | Headers/XCTestExpectation.h
44 |
45 | dwE0LefMLJ+L/tF8PwAW0Adc7I0=
46 |
47 | Headers/XCTestLog.h
48 |
49 | 9BU/gwbaKcfn2L9dfo2dHRFN6Bc=
50 |
51 | Headers/XCTestObservation.h
52 |
53 | 24hjfD82jAN7/PhxU8RiEWTo5gs=
54 |
55 | Headers/XCTestObservationCenter.h
56 |
57 | 0rP5BQIIjFP/HdaM97/A9mUteRg=
58 |
59 | Headers/XCTestObserver.h
60 |
61 | DV3Cjdd1CAe6nYFEzmUrCtnzxQg=
62 |
63 | Headers/XCTestProbe.h
64 |
65 | fIVR0xRsxMAabrJmeGX3hPDwL0Y=
66 |
67 | Headers/XCTestRun.h
68 |
69 | LAZ8VzMsuBB9pLfqrrnltc7bl1E=
70 |
71 | Headers/XCTestSuite.h
72 |
73 | 8I97NjqsYFEmiGVB5ZkFAdtT3ic=
74 |
75 | Headers/XCTestSuiteRun.h
76 |
77 | OX+g52bOAnhjLVDKkweTKM8jTHQ=
78 |
79 | Headers/XCUIApplication.h
80 |
81 | Dck9MbhtVGBeWIgQiEVEpTDtrTw=
82 |
83 | Headers/XCUICoordinate.h
84 |
85 | h93xArf56RHLG0oQUpJsVrR2esg=
86 |
87 | Headers/XCUIDevice.h
88 |
89 | 9pxehhPyrWb03igVA7PwEtgkzLM=
90 |
91 | Headers/XCUIElement.h
92 |
93 | lCooSq4totv00z9Cpjsf3qZk1fw=
94 |
95 | Headers/XCUIElementAttributes.h
96 |
97 | kWitRD0ClLa1hUvctZ6Jw2DmOW8=
98 |
99 | Headers/XCUIElementQuery.h
100 |
101 | owQe3VU8ucSdoJ7QiOvOS/rHAww=
102 |
103 | Headers/XCUIElementTypeQueryProvider.h
104 |
105 | hRIiU4QCL7DtuacVXjl7A5M0MNo=
106 |
107 | Headers/XCUIElementTypes.h
108 |
109 | U3yZ50UN++NXOpSMIy49comcTwc=
110 |
111 | Headers/XCUIKeyboardKeys.h
112 |
113 | RE/yMpRDrcsUljcKW/YgNGkt5Oc=
114 |
115 | Headers/XCUIRemote.h
116 |
117 | GuQMu1KdZMJO3/yRBQHEbrVVv38=
118 |
119 | Info.plist
120 |
121 | zUEJesmFI6/+tEAh5MVteZyrRHQ=
122 |
123 | Modules/module.modulemap
124 |
125 | 0hPLcrGRiL8HEYGWbYL+qhcqBZI=
126 |
127 | TextBasedStubs/XCTest.tbd
128 |
129 | a88XIbyyK4c/LWXFfuMspfqry7g=
130 |
131 | XPCServices/XCUIRecorderService.xpc/Info.plist
132 |
133 | kyL3MKt/Hh8S9COPUG40xFkWaoQ=
134 |
135 | XPCServices/XCUIRecorderService.xpc/XCUIRecorderService
136 |
137 | Vt88WAlPf+8RECv5LdNqJk5Vc+4=
138 |
139 | XPCServices/XCUIRecorderService.xpc/_CodeSignature/CodeResources
140 |
141 | NXvlk2GusNV3KfxdNqqvTQCctx0=
142 |
143 | XPCServices/XCUIRecorderService.xpc/version.plist
144 |
145 | xrAWmlwsl7/ygiScJZnSfbwgffI=
146 |
147 | XPCServices/xctestSymbolicator.xpc/Info.plist
148 |
149 | i1ilUYSCt6kbw9IUS/EVTKdd4Dg=
150 |
151 | XPCServices/xctestSymbolicator.xpc/_CodeSignature/CodeResources
152 |
153 | ihFdkvXv9V89Ad9iVO8ZcjkANi4=
154 |
155 | XPCServices/xctestSymbolicator.xpc/version.plist
156 |
157 | xrAWmlwsl7/ygiScJZnSfbwgffI=
158 |
159 | XPCServices/xctestSymbolicator.xpc/xctestSymbolicator
160 |
161 | xdIaL9B4tgZhOSKveOJN39oxA0A=
162 |
163 | en.lproj/InfoPlist.strings
164 |
165 | hash
166 |
167 | WbY3O0G7IBs11w3Ll/yYYaDQvo8=
168 |
169 | optional
170 |
171 |
172 | version.plist
173 |
174 | vHbX6lUB887dP9NbQ5tEl5TRRKU=
175 |
176 |
177 | files2
178 |
179 | Headers/XCAbstractTest.h
180 |
181 | glimZR9g23UWmtfTfpa3DtRU32o=
182 |
183 | Headers/XCTest.h
184 |
185 | FeItRoIRWX9yeukRVtg0l8vKWu0=
186 |
187 | Headers/XCTestAssertions.h
188 |
189 | t430vwqgq3wiAocVV386i0N+lOY=
190 |
191 | Headers/XCTestAssertionsImpl.h
192 |
193 | ZbDVHohdSHIPtEqmg7zN34qa0T4=
194 |
195 | Headers/XCTestCase+AsynchronousTesting.h
196 |
197 | PL1ZOdDhdZzPNjCxecLsCysb3OQ=
198 |
199 | Headers/XCTestCase.h
200 |
201 | YzjVm663E0vT+P6c0ORX46w/zQ0=
202 |
203 | Headers/XCTestCaseRun.h
204 |
205 | /XUqDHA/BFdQDUxQU8Ft5LXo/Ps=
206 |
207 | Headers/XCTestDefines.h
208 |
209 | Dz7Tri4hztdVrwGfOLzpE53H3kk=
210 |
211 | Headers/XCTestErrors.h
212 |
213 | oZFqJmcKHuKZIgeKOwsFDxhfEEc=
214 |
215 | Headers/XCTestExpectation.h
216 |
217 | dwE0LefMLJ+L/tF8PwAW0Adc7I0=
218 |
219 | Headers/XCTestLog.h
220 |
221 | 9BU/gwbaKcfn2L9dfo2dHRFN6Bc=
222 |
223 | Headers/XCTestObservation.h
224 |
225 | 24hjfD82jAN7/PhxU8RiEWTo5gs=
226 |
227 | Headers/XCTestObservationCenter.h
228 |
229 | 0rP5BQIIjFP/HdaM97/A9mUteRg=
230 |
231 | Headers/XCTestObserver.h
232 |
233 | DV3Cjdd1CAe6nYFEzmUrCtnzxQg=
234 |
235 | Headers/XCTestProbe.h
236 |
237 | fIVR0xRsxMAabrJmeGX3hPDwL0Y=
238 |
239 | Headers/XCTestRun.h
240 |
241 | LAZ8VzMsuBB9pLfqrrnltc7bl1E=
242 |
243 | Headers/XCTestSuite.h
244 |
245 | 8I97NjqsYFEmiGVB5ZkFAdtT3ic=
246 |
247 | Headers/XCTestSuiteRun.h
248 |
249 | OX+g52bOAnhjLVDKkweTKM8jTHQ=
250 |
251 | Headers/XCUIApplication.h
252 |
253 | Dck9MbhtVGBeWIgQiEVEpTDtrTw=
254 |
255 | Headers/XCUICoordinate.h
256 |
257 | h93xArf56RHLG0oQUpJsVrR2esg=
258 |
259 | Headers/XCUIDevice.h
260 |
261 | 9pxehhPyrWb03igVA7PwEtgkzLM=
262 |
263 | Headers/XCUIElement.h
264 |
265 | lCooSq4totv00z9Cpjsf3qZk1fw=
266 |
267 | Headers/XCUIElementAttributes.h
268 |
269 | kWitRD0ClLa1hUvctZ6Jw2DmOW8=
270 |
271 | Headers/XCUIElementQuery.h
272 |
273 | owQe3VU8ucSdoJ7QiOvOS/rHAww=
274 |
275 | Headers/XCUIElementTypeQueryProvider.h
276 |
277 | hRIiU4QCL7DtuacVXjl7A5M0MNo=
278 |
279 | Headers/XCUIElementTypes.h
280 |
281 | U3yZ50UN++NXOpSMIy49comcTwc=
282 |
283 | Headers/XCUIKeyboardKeys.h
284 |
285 | RE/yMpRDrcsUljcKW/YgNGkt5Oc=
286 |
287 | Headers/XCUIRemote.h
288 |
289 | GuQMu1KdZMJO3/yRBQHEbrVVv38=
290 |
291 | Modules/module.modulemap
292 |
293 | 0hPLcrGRiL8HEYGWbYL+qhcqBZI=
294 |
295 | TextBasedStubs/XCTest.tbd
296 |
297 | a88XIbyyK4c/LWXFfuMspfqry7g=
298 |
299 | XCTest.tbd
300 |
301 | symlink
302 | TextBasedStubs/XCTest.tbd
303 |
304 | XPCServices/XCUIRecorderService.xpc/Info.plist
305 |
306 | kyL3MKt/Hh8S9COPUG40xFkWaoQ=
307 |
308 | XPCServices/XCUIRecorderService.xpc/XCUIRecorderService
309 |
310 | Vt88WAlPf+8RECv5LdNqJk5Vc+4=
311 |
312 | XPCServices/XCUIRecorderService.xpc/_CodeSignature/CodeResources
313 |
314 | NXvlk2GusNV3KfxdNqqvTQCctx0=
315 |
316 | XPCServices/XCUIRecorderService.xpc/version.plist
317 |
318 | xrAWmlwsl7/ygiScJZnSfbwgffI=
319 |
320 | XPCServices/xctestSymbolicator.xpc/Info.plist
321 |
322 | i1ilUYSCt6kbw9IUS/EVTKdd4Dg=
323 |
324 | XPCServices/xctestSymbolicator.xpc/_CodeSignature/CodeResources
325 |
326 | ihFdkvXv9V89Ad9iVO8ZcjkANi4=
327 |
328 | XPCServices/xctestSymbolicator.xpc/version.plist
329 |
330 | xrAWmlwsl7/ygiScJZnSfbwgffI=
331 |
332 | XPCServices/xctestSymbolicator.xpc/xctestSymbolicator
333 |
334 | xdIaL9B4tgZhOSKveOJN39oxA0A=
335 |
336 | en.lproj/InfoPlist.strings
337 |
338 | hash
339 |
340 | WbY3O0G7IBs11w3Ll/yYYaDQvo8=
341 |
342 | optional
343 |
344 |
345 | version.plist
346 |
347 | vHbX6lUB887dP9NbQ5tEl5TRRKU=
348 |
349 |
350 | rules
351 |
352 | ^
353 |
354 | ^.*\.lproj/
355 |
356 | optional
357 |
358 | weight
359 | 1000
360 |
361 | ^.*\.lproj/locversion.plist$
362 |
363 | omit
364 |
365 | weight
366 | 1100
367 |
368 | ^version.plist$
369 |
370 |
371 | rules2
372 |
373 | .*\.dSYM($|/)
374 |
375 | weight
376 | 11
377 |
378 | ^
379 |
380 | weight
381 | 20
382 |
383 | ^(.*/)?\.DS_Store$
384 |
385 | omit
386 |
387 | weight
388 | 2000
389 |
390 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
391 |
392 | nested
393 |
394 | weight
395 | 10
396 |
397 | ^.*
398 |
399 | ^.*\.lproj/
400 |
401 | optional
402 |
403 | weight
404 | 1000
405 |
406 | ^.*\.lproj/locversion.plist$
407 |
408 | omit
409 |
410 | weight
411 | 1100
412 |
413 | ^Info\.plist$
414 |
415 | omit
416 |
417 | weight
418 | 20
419 |
420 | ^PkgInfo$
421 |
422 | omit
423 |
424 | weight
425 | 20
426 |
427 | ^[^/]+$
428 |
429 | nested
430 |
431 | weight
432 | 10
433 |
434 | ^embedded\.provisionprofile$
435 |
436 | weight
437 | 20
438 |
439 | ^version\.plist$
440 |
441 | weight
442 | 20
443 |
444 |
445 |
446 |
447 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Frameworks/XCTest.framework/en.lproj/InfoPlist.strings
--------------------------------------------------------------------------------
/VodQAReactNative.app/Frameworks/XCTest.framework/version.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildAliasOf
6 | XCTest
7 | BuildVersion
8 | 4
9 | CFBundleShortVersionString
10 | 1.0
11 | CFBundleVersion
12 | 11753
13 | ProjectName
14 | XCTest_Sim
15 | SourceVersion
16 | 11753000000000000
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/VodQAReactNative.app/PlugIns/VodQAReactNativeTests.xctest/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/PlugIns/VodQAReactNativeTests.xctest/Info.plist
--------------------------------------------------------------------------------
/VodQAReactNative.app/PlugIns/VodQAReactNativeTests.xctest/VodQAReactNativeTests:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/PlugIns/VodQAReactNativeTests.xctest/VodQAReactNativeTests
--------------------------------------------------------------------------------
/VodQAReactNative.app/PlugIns/VodQAReactNativeTests.xctest/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Info.plist
8 |
9 | OtPSl+cby9T52VG3pXYOvc12CEE=
10 |
11 |
12 | files2
13 |
14 | rules
15 |
16 | ^
17 |
18 | ^.*\.lproj/
19 |
20 | optional
21 |
22 | weight
23 | 1000
24 |
25 | ^.*\.lproj/locversion.plist$
26 |
27 | omit
28 |
29 | weight
30 | 1100
31 |
32 | ^version.plist$
33 |
34 |
35 | rules2
36 |
37 | .*\.dSYM($|/)
38 |
39 | weight
40 | 11
41 |
42 | ^
43 |
44 | weight
45 | 20
46 |
47 | ^(.*/)?\.DS_Store$
48 |
49 | omit
50 |
51 | weight
52 | 2000
53 |
54 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
55 |
56 | nested
57 |
58 | weight
59 | 10
60 |
61 | ^.*
62 |
63 | ^.*\.lproj/
64 |
65 | optional
66 |
67 | weight
68 | 1000
69 |
70 | ^.*\.lproj/locversion.plist$
71 |
72 | omit
73 |
74 | weight
75 | 1100
76 |
77 | ^Info\.plist$
78 |
79 | omit
80 |
81 | weight
82 | 20
83 |
84 | ^PkgInfo$
85 |
86 | omit
87 |
88 | weight
89 | 20
90 |
91 | ^[^/]+$
92 |
93 | nested
94 |
95 | weight
96 | 10
97 |
98 | ^embedded\.provisionprofile$
99 |
100 | weight
101 | 20
102 |
103 | ^version\.plist$
104 |
105 | weight
106 | 20
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/VodQAReactNative:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/VodQAReactNative
--------------------------------------------------------------------------------
/VodQAReactNative.app/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Base.lproj/LaunchScreen.nib
8 |
9 | hash
10 |
11 | OeYtoDYL/i6QiKywUcfIoQu3oqY=
12 |
13 | optional
14 |
15 |
16 | Info.plist
17 |
18 | /vbj0zqxjpr4i73E2OQrB319FYU=
19 |
20 | PkgInfo
21 |
22 | n57qDP4tZfLD1rCS43W0B4LQjzE=
23 |
24 | assets/assets/vodqa.png
25 |
26 | X+SEyPbOImSKnuGZWjmgc4jnyoU=
27 |
28 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon.png
29 |
30 | HQQuB4amjtwGUXBLceBrWJNimVs=
31 |
32 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@1.5x.png
33 |
34 | fyhAnrjV5JZ0o7tt89t5OIcPTLk=
35 |
36 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@2x.png
37 |
38 | YQmWVwhekbk+X2RKpCPehMO0Ldk=
39 |
40 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@3x.png
41 |
42 | QKLfEeBLZVOc0niKWvbIrcWyxuM=
43 |
44 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@4x.png
45 |
46 | h6iaRr2yULlW7VdhK/SZVFO7UBM=
47 |
48 | main.jsbundle
49 |
50 | uRHptVCkqR5OD8oo09rZcdMPLZk=
51 |
52 | main.jsbundle.meta
53 |
54 | ppNnpZRgzMYkxofBjrbOvgfV52A=
55 |
56 |
57 | files2
58 |
59 | Base.lproj/LaunchScreen.nib
60 |
61 | hash
62 |
63 | OeYtoDYL/i6QiKywUcfIoQu3oqY=
64 |
65 | hash2
66 |
67 | 5yviA1Wha90zH/lvFOLOeOpTCDpv4LBNv53H9ohT4wU=
68 |
69 | optional
70 |
71 |
72 | assets/assets/vodqa.png
73 |
74 | hash
75 |
76 | X+SEyPbOImSKnuGZWjmgc4jnyoU=
77 |
78 | hash2
79 |
80 | gO0dq/+jnRXuaiJt+OocBk6GuSglAOt46nSLQkGk1tw=
81 |
82 |
83 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon.png
84 |
85 | hash
86 |
87 | HQQuB4amjtwGUXBLceBrWJNimVs=
88 |
89 | hash2
90 |
91 | ZRmGSaJTHS3L1geJPCTsy3ta28sYsD/gSOfZHsq95eA=
92 |
93 |
94 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@1.5x.png
95 |
96 | hash
97 |
98 | fyhAnrjV5JZ0o7tt89t5OIcPTLk=
99 |
100 | hash2
101 |
102 | sy0MsvX5EG4qN5eyCJTMmuBXN1YgSb0fT1H6KD3Xkj8=
103 |
104 |
105 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@2x.png
106 |
107 | hash
108 |
109 | YQmWVwhekbk+X2RKpCPehMO0Ldk=
110 |
111 | hash2
112 |
113 | xeXoDgmh6mz50dLBF7YNRharVPyFToLffO76MoOETlg=
114 |
115 |
116 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@3x.png
117 |
118 | hash
119 |
120 | QKLfEeBLZVOc0niKWvbIrcWyxuM=
121 |
122 | hash2
123 |
124 | GrXKevPCf+AB3RpyQfVtjn5ladOg7y5vToH8KQfVcMg=
125 |
126 |
127 | assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@4x.png
128 |
129 | hash
130 |
131 | h6iaRr2yULlW7VdhK/SZVFO7UBM=
132 |
133 | hash2
134 |
135 | yxFa1GbJewG0cdCqfhCkFthTjRQEENRWSwgGsiXcyFQ=
136 |
137 |
138 | main.jsbundle
139 |
140 | hash
141 |
142 | uRHptVCkqR5OD8oo09rZcdMPLZk=
143 |
144 | hash2
145 |
146 | 1wNuH+jVwK/+jPnAd5zmrAwT8pG2jnae4aVipWGlnvc=
147 |
148 |
149 | main.jsbundle.meta
150 |
151 | hash
152 |
153 | ppNnpZRgzMYkxofBjrbOvgfV52A=
154 |
155 | hash2
156 |
157 | knr6Z3ZHBZNFQqrWIv/ASRSwZqicyMMx6T2+aP3TzWQ=
158 |
159 |
160 |
161 | rules
162 |
163 | ^
164 |
165 | ^.*\.lproj/
166 |
167 | optional
168 |
169 | weight
170 | 1000
171 |
172 | ^.*\.lproj/locversion.plist$
173 |
174 | omit
175 |
176 | weight
177 | 1100
178 |
179 | ^version.plist$
180 |
181 |
182 | rules2
183 |
184 | .*\.dSYM($|/)
185 |
186 | weight
187 | 11
188 |
189 | ^
190 |
191 | weight
192 | 20
193 |
194 | ^(.*/)?\.DS_Store$
195 |
196 | omit
197 |
198 | weight
199 | 2000
200 |
201 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
202 |
203 | nested
204 |
205 | weight
206 | 10
207 |
208 | ^.*
209 |
210 | ^.*\.lproj/
211 |
212 | optional
213 |
214 | weight
215 | 1000
216 |
217 | ^.*\.lproj/locversion.plist$
218 |
219 | omit
220 |
221 | weight
222 | 1100
223 |
224 | ^Info\.plist$
225 |
226 | omit
227 |
228 | weight
229 | 20
230 |
231 | ^PkgInfo$
232 |
233 | omit
234 |
235 | weight
236 | 20
237 |
238 | ^[^/]+$
239 |
240 | nested
241 |
242 | weight
243 | 10
244 |
245 | ^embedded\.provisionprofile$
246 |
247 | weight
248 | 20
249 |
250 | ^version\.plist$
251 |
252 | weight
253 | 20
254 |
255 |
256 |
257 |
258 |
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/assets/vodqa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/assets/vodqa.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@1.5x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@1.5x.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@2x.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@3x.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@4x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/assets/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/assets/back-icon@4x.png
--------------------------------------------------------------------------------
/VodQAReactNative.app/main.jsbundle.meta:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AppiumTestDistribution/DeviceManager/4b03e430606a23e6de9501f22185662b2dd2fe44/VodQAReactNative.app/main.jsbundle.meta
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 | com.github.appiumtestdistribution
7 | devicemanager
8 | 3.1
9 | DeviceManager
10 | "Utility to Manage Connected iOS and Android Devices (Including iOS Simulators and Android Emulators)"
11 | https://github.com/AppiumTestDistribution/DeviceManager
12 |
13 | https://github.com/AppiumTestDistribution/DeviceManager.git
14 | scm:git:git@github.com:AppiumTestDistribution/DeviceManager.git
15 | scm:git:git@github.com:AppiumTestDistribution/DeviceManager.git
16 |
17 |
18 |
19 | GNU Public License version 3.0
20 | http://www.gnu.org/licenses/gpl-3.0.txt
21 |
22 |
23 |
24 |
25 | Sai Krishna
26 | saikrishna321@yahoo.com
27 |
28 | owner
29 |
30 |
31 |
32 | Srinivasan Sekar
33 | srinivasan.sekar1990@gmail.com
34 |
35 |
36 |
37 |
38 | junit
39 | junit
40 | 4.12
41 |
42 |
43 | org.projectlombok
44 | lombok
45 | 1.18.8
46 |
47 |
48 | org.apache.logging.log4j
49 | log4j-core
50 | 2.20.0
51 |
52 |
53 |
54 | org.json
55 | json
56 | 20170516
57 |
58 |
59 |
60 |
61 | ossrh
62 | https://oss.sonatype.org/content/repositories/snapshots
63 |
64 |
65 | ossrh
66 | https://oss.sonatype.org/service/local/staging/deploy/maven2/
67 |
68 |
69 |
70 |
71 |
72 |
73 | org.apache.maven.plugins
74 | maven-surefire-plugin
75 | 2.22.2
76 |
77 |
78 | org.apache.maven.plugins
79 | maven-source-plugin
80 | 3.1.0
81 |
82 |
83 | attach-sources
84 |
85 | jar
86 |
87 |
88 |
89 |
90 |
91 | org.apache.maven.plugins
92 | maven-gpg-plugin
93 | 1.6
94 |
95 |
96 | sign-artifacts
97 | verify
98 |
99 | sign
100 |
101 |
102 |
103 |
104 |
105 | maven-assembly-plugin
106 | 3.1.1
107 |
108 |
109 | jar-with-dependencies
110 |
111 |
112 |
113 |
114 | package
115 |
116 | single
117 |
118 |
119 |
120 |
121 |
122 | org.apache.maven.plugins
123 | maven-javadoc-plugin
124 |
125 |
126 | attach-javadocs
127 |
128 | jar
129 |
130 |
131 |
132 |
133 |
134 | org.apache.maven.plugins
135 | maven-compiler-plugin
136 |
137 | 1.8
138 | 1.8
139 |
140 |
141 |
142 |
143 |
144 |
145 | disable-java8-doclint
146 |
147 | [1.8,)
148 |
149 |
150 | -Xdoclint:none
151 |
152 |
153 |
154 |
155 |
--------------------------------------------------------------------------------
/src/main/java/com/github/android/AndroidManager.java:
--------------------------------------------------------------------------------
1 | package com.github.android;
2 |
3 | import com.github.device.Device;
4 | import com.github.interfaces.Manager;
5 | import com.github.utils.CommandPromptUtil;
6 | import org.json.JSONObject;
7 |
8 | import java.io.IOException;
9 | import java.lang.reflect.Field;
10 | import java.util.*;
11 |
12 | public class AndroidManager implements Manager {
13 |
14 | private CommandPromptUtil cmd;
15 | private JSONObject adbDevices;
16 | private static Map processUDIDs = new HashMap<>();
17 | Process process;
18 |
19 | public AndroidManager() {
20 | cmd = new CommandPromptUtil();
21 | adbDevices = new JSONObject();
22 | }
23 |
24 |
25 | public void startADB() throws Exception {
26 | String output = cmd.runCommandThruProcess("adb start-server");
27 | String[] lines = output.split("\n");
28 | if (lines[0].contains("internal or external command")) {
29 | System.out.println("Please set ANDROID_HOME in your system variables");
30 | }
31 | }
32 |
33 | public JSONObject getDeviceInfo(String deviceID) throws InterruptedException, IOException {
34 | String model =
35 | cmd.runCommandThruProcess("adb -s " + deviceID
36 | + " shell getprop ro.product.model");
37 | String brand =
38 | cmd.runCommandThruProcess("adb -s " + deviceID
39 | + " shell getprop ro.product.brand")
40 | .replaceAll("\\s+", "");
41 | String osVersion = cmd.runCommandThruProcess(
42 | "adb -s " + deviceID + " shell getprop ro.build.version.release")
43 | .replaceAll("\\s+", "");
44 | String deviceName = brand + " " + model;
45 | String apiLevel =
46 | cmd.runCommandThruProcess("adb -s " + deviceID
47 | + " shell getprop ro.build.version.sdk")
48 | .replaceAll("\n", "");
49 | String deviceOrEmulator = cmd.runCommandThruProcess("adb -s " +
50 | deviceID +
51 | " shell getprop ro.product.manufacturer");
52 | String getScreenResolution = cmd.runCommandThruProcess("adb -s " + deviceID
53 | + " shell wm size").split(":")[1].replace("\n", "");
54 |
55 | boolean isDevice = true;
56 | if (deviceOrEmulator.contains("Genymotion")
57 | || deviceOrEmulator.contains("unknown")) {
58 | isDevice = false;
59 | }
60 |
61 | String deviceModel = cmd.runCommandThruProcess("adb -s " + deviceID
62 | + " shell getprop ro.product.model");
63 | adbDevices.put("name", deviceName);
64 | adbDevices.put("osVersion", osVersion);
65 | adbDevices.put("apiLevel", apiLevel);
66 | adbDevices.put("brand", brand);
67 | adbDevices.put("udid", deviceID);
68 | adbDevices.put("isDevice", isDevice);
69 | adbDevices.put("deviceModel", deviceModel);
70 | adbDevices.put("screenSize", getScreenResolution);
71 | adbDevices.put("deviceManufacturer",deviceOrEmulator);
72 | adbDevices.put("os", "android");
73 | return adbDevices;
74 | }
75 |
76 |
77 | public List getDevices() throws Exception {
78 | List devices = new ArrayList<>();
79 | startADB(); // start adb service
80 | String output = cmd.runCommandThruProcess("adb devices");
81 | String[] lines = output.split("\n");
82 |
83 | if (lines.length <= 1) {
84 | //stopADB();
85 | } else {
86 | for (int i = 1; i < lines.length; i++) {
87 | lines[i] = lines[i].replaceAll("\\s+", "");
88 |
89 | if (lines[i].contains("device")) {
90 | lines[i] = lines[i].replaceAll("device", "");
91 | String deviceID = lines[i];
92 | JSONObject deviceInfo = getDeviceInfo(deviceID);
93 | devices.add(new Device(deviceInfo));
94 | }
95 | }
96 | }
97 | return devices;
98 | }
99 |
100 | @Override
101 | public Device getDevice(String udid) throws Exception {
102 | Optional device = getDevices().stream().filter(d ->
103 | udid.equals(d.getUdid())).findFirst();
104 | return device.orElseThrow(() ->
105 | new RuntimeException("Provided DeviceUDID " + udid
106 | + " is not found on the machine")
107 | );
108 | }
109 |
110 | public String startADBLog(String udid, String filePath) throws Exception {
111 | cmd.execForProcessToExecute("adb -s " + udid + " logcat -b all -c");
112 | process = cmd.execForProcessToExecute("adb -s " + udid + " logcat > " + filePath);
113 | processUDIDs.put(udid, process);
114 | return "Collecting ADB logs for device " + udid + " in file " + filePath;
115 | }
116 |
117 | public String startADBLogWithPackage(String udid, String packageName, String filePath) throws Exception {
118 | cmd.execForProcessToExecute("adb -s " + udid + " logcat -b all -c");
119 | process = cmd.execForProcessToExecute("adb -s " + udid
120 | + " logcat | grep -F \"`adb shell ps | grep " + packageName + " | cut -c10-15`\"" + " > " + filePath);
121 | processUDIDs.put(udid, process);
122 | return "Collecting ADB logs for device " + udid + " for package " + packageName + " in file " + filePath;
123 | }
124 |
125 | public String stopADBLog(String udid) throws Exception {
126 | Process p = processUDIDs.get(udid);
127 | if (getPid(p) > 0) {
128 | cmd.runCommandThruProcess("kill -9 " + getPid(p));
129 | return "Stopped collecting ADB logs " + udid;
130 | } else
131 | return "No process found to kill";
132 |
133 | }
134 |
135 | public int getPid(Process process) {
136 | try {
137 | Class> cProcessImpl = process.getClass();
138 | Field fPid = cProcessImpl.getDeclaredField("pid");
139 | if (!fPid.isAccessible()) {
140 | fPid.setAccessible(true);
141 | }
142 | return fPid.getInt(process);
143 | } catch (Exception e) {
144 | return -1;
145 | }
146 | }
147 | }
148 |
--------------------------------------------------------------------------------
/src/main/java/com/github/device/Device.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import lombok.Data;
4 | import org.json.JSONObject;
5 |
6 | import java.util.HashMap;
7 | import java.util.Map;
8 |
9 | @Data
10 | public class Device {
11 |
12 | private String udid;
13 | private String name;
14 | private String state = "Not Supported";
15 | private boolean isAvailable;
16 | private String osVersion;
17 | private String os = "Not Supported";
18 | private String deviceType = "Not Supported";
19 | private String brand = "Not Supported";
20 | private String apiLevel = "Not Supported";
21 | private boolean isDevice;
22 | private String deviceModel = "Not Supported";
23 | private String screenSize;
24 | private String deviceManufacturer;
25 | private boolean isCloud = false;
26 |
27 | private static Map deviceIdentifier = new HashMap<>();
28 |
29 | static {
30 | deviceIdentifier.put("iPhone 5s", "iPhone6,1");
31 | deviceIdentifier.put("iPhone 6", "iPhone7,2");
32 | deviceIdentifier.put("iPhone 6 Plus", "iPhone7,1");
33 | deviceIdentifier.put("iPhone 6s", "iPhone8,1");
34 | deviceIdentifier.put("iPhone 6s Plus", "iPhone8,2");
35 | deviceIdentifier.put("iPhone 7", "iPhone9,1");
36 | deviceIdentifier.put("iPhone 7 Plus", "iPhone9,2");
37 | deviceIdentifier.put("iPhone 8", "iPhone10,1");
38 | deviceIdentifier.put("iPhone 8 Plus", "iPhone10,2");
39 | deviceIdentifier.put("iPhone SE", "iPhone8,4");
40 | deviceIdentifier.put("iPhone X", "iPhone10,3");
41 | }
42 |
43 | public Device(JSONObject deviceJson, String deviceType) {
44 | this.udid = deviceJson.getString("udid");
45 | this.name = deviceJson.getString("name");
46 | this.state = deviceJson.getString("state");
47 | this.isAvailable = deviceJson.getBoolean("isAvailable");
48 | this.deviceType = deviceType;
49 | getOSAndVersion(deviceType);
50 | this.deviceModel = deviceIdentifier.getOrDefault(this.name, "Not Supported");
51 | this.deviceManufacturer= "apple";
52 | }
53 |
54 | private void getOSAndVersion(String deviceType) {
55 | String[] osAndVersion = deviceType.split(" ");
56 | if (osAndVersion.length == 2) {
57 | this.os = osAndVersion[0];
58 | this.osVersion = osAndVersion[1];
59 | } else {
60 | String[] splitDeviceType = deviceType.split("\\.");
61 | if (splitDeviceType.length == 5) {
62 | osAndVersion = splitDeviceType[splitDeviceType.length - 1].split("-");
63 | if (osAndVersion.length == 3) {
64 | this.os = osAndVersion[0];
65 | this.osVersion = osAndVersion[1] + "." + osAndVersion[2];
66 | }
67 | }
68 | }
69 |
70 | }
71 |
72 |
73 | public Device(JSONObject deviceJson) {
74 | this.udid = deviceJson.getString("udid");
75 | this.name = deviceJson.getString("name");
76 | this.osVersion = deviceJson.getString("osVersion");
77 | this.brand = deviceJson.getString("brand");
78 | this.apiLevel = deviceJson.getString("apiLevel");
79 | this.isDevice = deviceJson.getBoolean("isDevice");
80 | this.deviceModel = deviceJson.getString("deviceModel");
81 | this.screenSize = deviceJson.getString("screenSize");
82 | this.os = deviceJson.getString("os");
83 | this.deviceManufacturer=deviceJson.getString("deviceManufacturer");
84 | }
85 |
86 | public Device() {
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/src/main/java/com/github/device/DeviceManager.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 |
4 | import com.github.android.AndroidManager;
5 | import com.github.iOS.IOSManager;
6 | import com.github.interfaces.Manager;
7 |
8 | import java.util.ArrayList;
9 | import java.util.List;
10 | import java.util.Optional;
11 | import java.util.stream.Stream;
12 |
13 | public class DeviceManager implements Manager {
14 |
15 | @Override
16 | public Device getDevice(String udid) throws Exception {
17 | Optional device = new AndroidManager().getDevices().stream().filter(d ->
18 | udid.equals(d.getUdid())).findFirst();
19 | Optional simulator = new SimulatorManager().getAllAvailableSimulators().stream().filter(sim ->
20 | udid.equals(sim.getUdid())).findFirst();
21 | Optional realDevice = new IOSManager().getDevices().stream().filter(sim ->
22 | udid.equals(sim.getUdid())).findFirst();
23 | Optional finalDeviceList = Optional.of(device
24 | .orElseGet(() -> simulator
25 | .orElseGet(() -> realDevice
26 | .orElseThrow(() -> new RuntimeException("No Results found")))));
27 | return finalDeviceList.get();
28 | }
29 |
30 | public List getDevices() throws Exception {
31 | List allDevice = new ArrayList<>();
32 | List androidDevice = new AndroidManager().getDevices();
33 | if(System.getProperty("os.name").contains("Mac")) {
34 | List iOSSimulators = new SimulatorManager().getAllBootedSimulators("iOS");
35 | List iOSRealDevice = new IOSManager().getDevices();
36 | Stream.of(androidDevice, iOSSimulators, iOSRealDevice).forEach(allDevice::addAll);
37 | } else {
38 | Stream.of(androidDevice).forEach(allDevice::addAll);
39 | }
40 | return allDevice;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/com/github/device/DeviceType.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class DeviceType {
7 | private String name;
8 | private String identifier;
9 |
10 | public DeviceType(String name, String identifier) {
11 | this.name = name;
12 | this.identifier = identifier;
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/github/device/IOSRuntime.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import lombok.Data;
4 | import org.json.JSONObject;
5 |
6 | @Data
7 | public class IOSRuntime {
8 | private final String buildversion;
9 | private final boolean isAvailable;
10 | private final String name;
11 | private final String identifier;
12 | private final String version;
13 | private final String os;
14 |
15 | public IOSRuntime(JSONObject runtimeJSON) {
16 | buildversion = runtimeJSON.getString("buildversion");
17 | name = runtimeJSON.getString("name");
18 | version = runtimeJSON.getString("version");
19 | identifier = runtimeJSON.getString("identifier");
20 | isAvailable = runtimeJSON.getString("availability").equals("(available)");
21 | os = name.split(" ")[0];
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/github/device/SimulatorManager.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import com.github.interfaces.ISimulatorManager;
4 | import com.github.utils.CommandPromptUtil;
5 | import org.apache.logging.log4j.LogManager;
6 | import org.apache.logging.log4j.Logger;
7 | import org.json.JSONArray;
8 | import org.json.JSONObject;
9 |
10 | import java.io.IOException;
11 | import java.lang.reflect.Field;
12 | import java.util.ArrayList;
13 | import java.util.Iterator;
14 | import java.util.List;
15 | import java.util.Optional;
16 | import java.util.stream.Collector;
17 | import java.util.stream.Collectors;
18 |
19 | public class SimulatorManager implements ISimulatorManager {
20 |
21 | final static Logger logger = LogManager.getLogger(SimulatorManager.class);
22 | private CommandPromptUtil commandPromptUtil;
23 | String ANSI_RED_BACKGROUND = "\u001B[41m";
24 | Process screenRecordProcess;
25 |
26 | public SimulatorManager() {
27 | commandPromptUtil = new CommandPromptUtil();
28 | }
29 |
30 | @Override
31 | public List getAllSimulators(String osType)
32 | throws InterruptedException, IOException {
33 | List devices = getAllAvailableSimulators();
34 | List deviceListForOS = devices.stream().filter(device -> osType.equals(device.getOs())).collect(toList());
35 | return deviceListForOS;
36 | }
37 |
38 | @Override
39 | public Device getDevice(String deviceName, String osVersion, String osType) throws InterruptedException, IOException {
40 | List allSimulators = getAllSimulators(osType);
41 | Optional device = allSimulators.stream().filter(d ->
42 | deviceName.equals(d.getName()) &&
43 | osVersion.equals(d.getOsVersion()) &&
44 | osType.equals(d.getOs())).findFirst();
45 | return device.orElseThrow(() ->
46 | new RuntimeException("Device Not found with deviceName-" + deviceName + " osVersion-" + osVersion + " osType-" + osType)
47 | );
48 | }
49 |
50 | @Override
51 | public String getSimulatorUDID(String deviceName, String osVersion, String osType)
52 | throws Throwable {
53 | Device device = getDevice(deviceName, osVersion, osType);
54 | return device.getUdid();
55 | }
56 |
57 | @Override
58 | public String getSimulatorState(String deviceName, String osVersion, String osType)
59 | throws Throwable {
60 | Device device = getDevice(deviceName, osVersion, osType);
61 | return device.getState();
62 | }
63 |
64 | @Override
65 | public void bootSimulator(String deviceName, String osVersion, String osType)
66 | throws Throwable {
67 | String simulatorUDID = getSimulatorUDID(deviceName, osVersion, osType);
68 | commandPromptUtil.runCommandThruProcess("xcrun simctl boot " + simulatorUDID);
69 | logger.debug(ANSI_RED_BACKGROUND + "Waiting for Simulator to Boot Completely.....");
70 | commandPromptUtil.runCommandThruProcess("xcrun simctl launch booted com.apple.springboard");
71 | commandPromptUtil.runCommandThruProcess("open -a Simulator --args -CurrentDeviceUDID "
72 | + simulatorUDID);
73 | }
74 |
75 | @Override
76 | public Device getSimulatorDetailsFromUDID(String UDID){
77 | List allSimulators = null;
78 | try {
79 | allSimulators = getAllAvailableSimulators();
80 | } catch (IOException e) {
81 | e.printStackTrace();
82 | } catch (InterruptedException e) {
83 | e.printStackTrace();
84 | }
85 | Optional device = allSimulators.stream().filter(d ->
86 | UDID.equals(d.getUdid())).findFirst();
87 | return device.orElseThrow(() ->
88 | new RuntimeException("Device Not found")
89 | );
90 | }
91 |
92 | @Override
93 | public void captureScreenshot(String UDID, String fileName, String fileDestination, String format) throws IOException, InterruptedException {
94 | String xcodeVersion = commandPromptUtil.runCommandThruProcess("xcodebuild -version").split("(\\n)|(Xcode)")[1].trim();
95 | if (Float.valueOf(xcodeVersion) < 8.2 ) {
96 | new RuntimeException("Screenshot capture is only supported with xcode version 8.2 and above");
97 | } else {
98 | commandPromptUtil.runCommandThruProcess("xcrun simctl io " + UDID + " screenshot "
99 | + fileDestination + "/" + fileName + "." + format);
100 | }
101 | }
102 |
103 | @Override
104 | public boolean shutDownAllBootedSimulators() throws IOException, InterruptedException {
105 | List bootedDevices = commandPromptUtil.runCommand("xcrun simctl list | grep Booted");
106 | bootedDevices
107 | .forEach(bootedUDID -> {
108 | try {
109 | commandPromptUtil.runCommandThruProcess("xcrun simctl shutdown " + bootedUDID);
110 | } catch (InterruptedException e) {
111 | e.printStackTrace();
112 | } catch (IOException e) {
113 | e.printStackTrace();
114 | }
115 | });
116 | String bootedDeviceCountAfterShutDown = commandPromptUtil.
117 | runCommandThruProcess("xcrun simctl list | grep Booted | wc -l");
118 | if (Integer.valueOf(bootedDeviceCountAfterShutDown.trim()) == 0 ) {
119 | logger.debug(ANSI_RED_BACKGROUND + "All Booted Simulators Shut...");
120 | return true;
121 | } else {
122 | logger.debug(ANSI_RED_BACKGROUND + "Simulators that needs to be ShutDown are"
123 | + commandPromptUtil.runCommand("xcrun simctl list | grep Booted"));
124 | return false;
125 | }
126 | }
127 |
128 | @Override
129 | public List getAllBootedSimulators(String osType) throws InterruptedException, IOException {
130 | List allSimulators = getAllSimulators(osType);
131 | List bootedSim = allSimulators.stream().filter( device ->
132 | device.getState().equalsIgnoreCase("Booted")).collect(Collectors.toList());
133 | return bootedSim;
134 | }
135 |
136 | @Override
137 | public void uploadMediaToSimulator(String deviceName, String osVersion, String osType, String filePath) throws Throwable {
138 | String simulatorUDID = getSimulatorUDID(deviceName, osVersion, osType);
139 | String execute = "xcrun simctl addmedia " + simulatorUDID
140 | + " " + filePath;
141 | commandPromptUtil.execForProcessToExecute(execute).waitFor();
142 | }
143 |
144 | @Override
145 | public void startScreenRecording(String pathWithFileName) throws IOException {
146 | System.out.println("xcrun simctl io booted recordVideo " + pathWithFileName);
147 | screenRecordProcess = commandPromptUtil
148 | .execForProcessToExecute("xcrun simctl io booted recordVideo " + pathWithFileName);
149 | System.out.println(screenRecordProcess);
150 | }
151 |
152 | @Override
153 | public Process startScreenRecording(String UDID, String pathWithFileName) throws IOException {
154 | System.out.println("xcrun simctl io " + UDID + " recordVideo " + pathWithFileName);
155 | screenRecordProcess = commandPromptUtil
156 | .execForProcessToExecute("xcrun simctl io " + UDID + " recordVideo " + pathWithFileName);
157 | System.out.println(screenRecordProcess);
158 | return screenRecordProcess;
159 | }
160 |
161 | @Override
162 | public void stopScreenRecording() throws IOException, InterruptedException {
163 | Integer processId = getPid(screenRecordProcess);
164 | String command = "kill -9 " + processId;
165 | System.out.println("Stopping Video Recording" + command);
166 | commandPromptUtil.execForProcessToExecute(command);
167 | }
168 |
169 | @Override
170 | public void installAppOnSimulator(String deviceName, String osVersion,
171 | String osType, String appPath) throws Throwable {
172 | String simulatorUDID = getSimulatorUDID(deviceName, osVersion, osType);
173 | String execute = "xcrun simctl install " + simulatorUDID
174 | + " " + appPath;
175 | commandPromptUtil.execForProcessToExecute(execute).waitFor();
176 | }
177 |
178 | @Override
179 | public void uninstallAppFromSimulator(String deviceName, String osVersion,
180 | String osType, String bundleID) throws Throwable {
181 | String simulatorUDID = getSimulatorUDID(deviceName, osVersion, osType);
182 | String execute = "xcrun simctl uninstall " + simulatorUDID
183 | + " " + bundleID;
184 | commandPromptUtil.execForProcessToExecute(execute).waitFor();
185 | }
186 |
187 | @Override
188 | public void createSimulator(String simName, String deviceName, String osVersion, String osType)
189 | throws Throwable {
190 | List deviceTypes = getAllDeviceTypes();
191 | DeviceType deviceType = deviceTypes.stream().filter(d -> deviceName.equals(d.getName())).findFirst().get();
192 | List deviceIOSRuntimes = getAllRuntimes();
193 | IOSRuntime IOSRuntime = deviceIOSRuntimes.stream().filter(r ->
194 | osType.equals(r.getOs()) && osVersion.equals(r.getVersion())
195 | ).findFirst().get();
196 |
197 | commandPromptUtil.runCommandThruProcess("xcrun simctl create " + simName + " " + deviceType.getIdentifier() + " " +
198 | IOSRuntime.getIdentifier());
199 | }
200 |
201 | @Override
202 | public void deleteSimulator(String deviceName, String osVersion, String osType)
203 | throws Throwable {
204 | String simulatorUDID = getSimulatorUDID(deviceName, osVersion, osType);
205 | commandPromptUtil.runCommandThruProcess("xcrun simctl delete " + simulatorUDID);
206 | }
207 |
208 |
209 | public List getAllAvailableSimulators() throws IOException, InterruptedException {
210 | CommandPromptUtil commandPromptUtil = new CommandPromptUtil();
211 | String simulatorJsonString = commandPromptUtil.runCommandThruProcess("xcrun simctl list -j devices");
212 |
213 | JSONObject simulatorsJson = new JSONObject(simulatorJsonString);
214 | JSONObject devicesByTypeJson = (JSONObject) simulatorsJson.get("devices");
215 | Iterator keys = devicesByTypeJson.keys();
216 | List deviceList = new ArrayList<>();
217 | while (keys.hasNext()) {
218 | String key = keys.next();
219 | JSONArray devicesJson = (JSONArray) devicesByTypeJson.get(key);
220 | devicesJson.forEach(deviceJson -> {
221 | deviceList.add(new Device((JSONObject) deviceJson, key));
222 | });
223 | }
224 | return deviceList;
225 | }
226 |
227 |
228 | private List getAllDeviceTypes() throws IOException, InterruptedException {
229 | CommandPromptUtil commandPromptUtil = new CommandPromptUtil();
230 | String deviceTypesJSONString = commandPromptUtil.runCommandThruProcess("xcrun simctl list -j devicetypes");
231 |
232 | JSONObject devicesTypesJSON = new JSONObject(deviceTypesJSONString);
233 | JSONArray devicesTypes = devicesTypesJSON.getJSONArray("devicetypes");
234 | List deviceTypes = new ArrayList<>();
235 | devicesTypes.forEach(deviceType -> {
236 | String name = ((JSONObject) deviceType).getString("name");
237 | String identifier = ((JSONObject) deviceType).getString("identifier");
238 | deviceTypes.add(new DeviceType(name, identifier));
239 | });
240 | return deviceTypes;
241 | }
242 |
243 |
244 | private List getAllRuntimes() throws IOException, InterruptedException {
245 | CommandPromptUtil commandPromptUtil = new CommandPromptUtil();
246 | String runtimesJSONString = commandPromptUtil.runCommandThruProcess("xcrun simctl list -j runtimes");
247 |
248 | JSONArray runtimesJSON = new JSONObject(runtimesJSONString).getJSONArray("runtimes");
249 | List IOSRuntimes = new ArrayList<>();
250 | runtimesJSON.forEach(runtime -> {
251 | IOSRuntimes.add(new IOSRuntime((JSONObject) runtime));
252 | });
253 | return IOSRuntimes;
254 | }
255 |
256 | public int getPid(Process process) {
257 | try {
258 | Class> cProcessImpl = process.getClass();
259 | Field fPid = cProcessImpl.getDeclaredField("pid");
260 | if (!fPid.isAccessible()) {
261 | fPid.setAccessible(true);
262 | }
263 | return fPid.getInt(process);
264 | } catch (Exception e) {
265 | return -1;
266 | }
267 | }
268 |
269 | private static Collector> toList() {
270 | return Collectors.toCollection(ArrayList::new);
271 | }
272 | }
273 |
--------------------------------------------------------------------------------
/src/main/java/com/github/iOS/IOSManager.java:
--------------------------------------------------------------------------------
1 | package com.github.iOS;
2 |
3 | import com.github.device.Device;
4 | import com.github.interfaces.Manager;
5 | import com.github.utils.CommandPromptUtil;
6 | import org.json.JSONObject;
7 |
8 | import java.io.IOException;
9 | import java.util.ArrayList;
10 | import java.util.Arrays;
11 | import java.util.List;
12 | import java.util.Optional;
13 |
14 | public class IOSManager implements Manager {
15 |
16 | private CommandPromptUtil cmd;
17 | private final static int IOS_UDID_LENGTH = 40;
18 | private final static int SIM_UDID_LENGTH = 36;
19 | JSONObject iOSDevices;
20 | String profile = "system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad|iPod)/"
21 | + ",/Serial/s/ *Serial Number: *(.+)/\\1/p'";
22 |
23 | /*String profile = "idevice_id --list";*/
24 |
25 | public IOSManager() {
26 | cmd = new CommandPromptUtil();
27 | iOSDevices = new JSONObject();
28 | }
29 |
30 | @Override
31 | public Device getDevice(String udid) {
32 | Optional device = getDevices().stream().filter(d ->
33 | udid.equals(d.getUdid())).findFirst();
34 | return device.orElseThrow(() ->
35 | new RuntimeException("Provided DeviceUDID " + udid
36 | + " is not found on the machine")
37 | );
38 | }
39 |
40 | public List getDevices() {
41 | List device = new ArrayList<>();
42 | getIOSUDID().forEach(udid -> {
43 | try {
44 | device.add(new Device(getDeviceInfo(udid)));
45 | } catch (InterruptedException e) {
46 | e.printStackTrace();
47 | } catch (IOException e) {
48 | e.printStackTrace();
49 | }
50 | });
51 | return device;
52 | }
53 |
54 | public JSONObject getDeviceInfo(String udid) throws InterruptedException, IOException {
55 |
56 | String model = cmd.runProcessCommandToGetDeviceID("ideviceinfo -u "
57 | + udid + " | grep ProductType").replace("\n", "");
58 |
59 | String name = cmd.runProcessCommandToGetDeviceID("idevicename --udid " + udid);
60 | String osVersion = cmd.runProcessCommandToGetDeviceID("ideviceinfo --udid "
61 | + udid
62 | + " | grep ProductVersion").replace("ProductVersion:", "")
63 | .replace("\n", "").trim();
64 |
65 | iOSDevices.put("deviceModel", model);
66 | iOSDevices.put("udid", udid);
67 | iOSDevices.put("name", name);
68 | iOSDevices.put("brand", "Apple");
69 | iOSDevices.put("isDevice", "true");
70 | iOSDevices.put("screenSize", "Not Supported");
71 | iOSDevices.put("apiLevel", "");
72 | iOSDevices.put("osVersion", osVersion);
73 | iOSDevices.put("os", "iOS");
74 | iOSDevices.put("deviceManufacturer", "apple");
75 | return iOSDevices;
76 | }
77 |
78 |
79 | private List getIOSUDID() {
80 | ArrayList iosDeviceUDIDS = new ArrayList<>();
81 | try {
82 | Optional getIOSDeviceID = Optional.of(cmd.runProcessCommandToGetDeviceID(profile));
83 | String[] iosDevices = getIOSDeviceID.get().split("\n");
84 | for (String iosDevice : iosDevices) {
85 | if (iosDevice.length() == 24) {
86 | iosDeviceUDIDS.add(addChar(iosDevice, '-', 8));
87 | } else {
88 | iosDeviceUDIDS.add(iosDevice);
89 | }
90 | }
91 | return iosDeviceUDIDS;
92 | } catch (IOException e) {
93 | e.printStackTrace();
94 | throw new IllegalStateException("Failed to fetch iOS device connected");
95 | }
96 |
97 | }
98 |
99 | private String addChar(String str, char ch, int position) {
100 | return str.substring(0, position) + ch + str.substring(position);
101 | }
102 | }
--------------------------------------------------------------------------------
/src/main/java/com/github/interfaces/ISimulatorManager.java:
--------------------------------------------------------------------------------
1 | package com.github.interfaces;
2 |
3 | import com.github.device.Device;
4 |
5 | import java.io.IOException;
6 | import java.util.List;
7 |
8 | public interface ISimulatorManager {
9 |
10 | String getSimulatorState(String deviceName, String osVersion, String osType) throws Throwable;
11 |
12 | Device getDevice(String deviceName, String osVersion, String osType) throws InterruptedException, IOException;
13 |
14 | String getSimulatorUDID(String deviceName, String osVersion, String osType) throws Throwable;
15 |
16 | List getAllSimulators(String osType) throws InterruptedException, IOException;
17 |
18 | void deleteSimulator(String deviceName, String osVersion, String osType) throws Throwable;
19 |
20 | void createSimulator(String simName, String deviceName, String osVersion, String osType) throws Throwable;
21 |
22 | void uninstallAppFromSimulator(String deviceName, String osVersion, String osType, String bundleID) throws Throwable;
23 |
24 | void installAppOnSimulator(String deviceName, String osVersion, String osType, String appPath) throws Throwable;
25 |
26 | void bootSimulator(String deviceName, String osVersion, String osType) throws Throwable;
27 |
28 | Device getSimulatorDetailsFromUDID(String UDID) throws IOException, InterruptedException;
29 |
30 | void captureScreenshot(String UDID, String fileName,String fileDestination, String format) throws IOException, InterruptedException;
31 |
32 | boolean shutDownAllBootedSimulators() throws IOException, InterruptedException;
33 |
34 | List getAllBootedSimulators(String osType) throws InterruptedException, IOException;
35 |
36 | void uploadMediaToSimulator(String deviceName, String osVersion, String osType, String filePath) throws Throwable;
37 |
38 | void startScreenRecording(String pathWithFileName) throws IOException;
39 |
40 | void stopScreenRecording() throws IOException, InterruptedException;
41 |
42 | Process startScreenRecording(String UDID, String pathWithFileName) throws IOException;
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/github/interfaces/Manager.java:
--------------------------------------------------------------------------------
1 | package com.github.interfaces;
2 |
3 |
4 | import com.github.device.Device;
5 |
6 | import java.util.List;
7 |
8 |
9 | public interface Manager {
10 |
11 | Device getDevice(String udid) throws Exception;
12 |
13 | List getDevices() throws Exception;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/github/utils/CommandPromptUtil.java:
--------------------------------------------------------------------------------
1 | package com.github.utils;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 | import java.io.InputStreamReader;
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 |
11 | public class CommandPromptUtil {
12 | String OSType =null;
13 | public CommandPromptUtil()
14 | {
15 | OSType = System.getProperty("os.name");
16 | }
17 |
18 | public String runCommandThruProcess(String command)
19 | throws InterruptedException, IOException {
20 | BufferedReader br = getBufferedReader(command);
21 | String line;
22 | String allLine = "";
23 | while ((line = br.readLine()) != null) {
24 | allLine = allLine + "" + line + "\n";
25 | }
26 | return allLine;
27 | }
28 |
29 | public List runCommand(String command)
30 | throws InterruptedException, IOException {
31 | BufferedReader br = getBufferedReader(command);
32 | String line;
33 | List allLine = new ArrayList<>();
34 | while ((line = br.readLine()) != null) {
35 | allLine.add(line.replaceAll("[\\[\\](){}]","_").split("_")[1]);
36 | }
37 | return allLine;
38 | }
39 |
40 | private BufferedReader getBufferedReader(String command) throws IOException {
41 | List commands = new ArrayList<>();
42 | if(OSType.contains("Windows"))
43 | {
44 | commands.add("cmd");
45 | commands.add("/c");
46 | }
47 | else
48 | {
49 | commands.add("/bin/sh");
50 | commands.add("-c");
51 | }
52 | commands.add(command);
53 | ProcessBuilder builder = new ProcessBuilder(commands);
54 | final Process process = builder.start();
55 | InputStream is = process.getInputStream();
56 | InputStreamReader isr = new InputStreamReader(is);
57 | return new BufferedReader(isr);
58 | }
59 |
60 | public Process execForProcessToExecute(String cmd) throws IOException {
61 | Process pr = null;
62 | List commands = new ArrayList<>();
63 |
64 | if(OSType.contains("Windows"))
65 | {
66 | commands.add("cmd");
67 | commands.add("/c");
68 | }
69 | else {
70 | commands.add("/bin/sh");
71 | commands.add("-c");
72 | }
73 | commands.add(cmd);
74 | ProcessBuilder builder = new ProcessBuilder(commands);
75 | pr = builder.start();
76 | return pr;
77 | }
78 |
79 | public String runProcessCommandToGetDeviceID(String command)
80 | throws IOException {
81 | BufferedReader br = getBufferedReader(command);
82 | String line;
83 | String allLine = "";
84 | while ((line = br.readLine()) != null) {
85 | allLine = allLine + "" + line.trim() + "\n";
86 | }
87 | return allLine.trim();
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/src/test/java/com/github/device/AndroidTest.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 |
4 | import com.github.android.AndroidManager;
5 | import org.junit.Test;
6 |
7 | public class AndroidTest {
8 |
9 | AndroidManager deviceManager;
10 |
11 |
12 | @Test
13 | public void getDetails() throws Exception {
14 | deviceManager = new AndroidManager();
15 | Device deviceProperties = deviceManager.getDevice("192.168.58.101:5555");
16 | System.out.println(deviceProperties.isDevice());
17 | System.out.println(deviceProperties.getScreenSize());
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/test/java/com/github/device/IOSDeviceTest.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import com.github.iOS.IOSManager;
4 | import org.junit.Test;
5 |
6 | import java.util.List;
7 |
8 | import static org.junit.Assert.assertTrue;
9 |
10 | public class IOSDeviceTest {
11 |
12 | @Test
13 | public void getDevices() {
14 | IOSManager ios = new IOSManager();
15 | List devices = ios.getDevices();
16 | assertTrue(devices.size() > 0);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/test/java/com/github/device/SimulatorTest.java:
--------------------------------------------------------------------------------
1 | package com.github.device;
2 |
3 | import org.junit.Assert;
4 | import org.junit.Test;
5 |
6 | import java.io.File;
7 | import java.io.IOException;
8 | import java.util.List;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | public class SimulatorTest {
13 |
14 | SimulatorManager simulatorManager;
15 |
16 | @Test
17 | public void getAllSimulatorsTest() throws IOException, InterruptedException {
18 | simulatorManager = new SimulatorManager();
19 | List allSimulators = simulatorManager.getAllSimulators("iOS");
20 | assertTrue(allSimulators.size() > 0);
21 | }
22 |
23 |
24 | @Test
25 | public void getSimulatorUDID() throws Throwable {
26 | simulatorManager = new SimulatorManager();
27 | String simulatorUDID = simulatorManager.getSimulatorUDID
28 | ("iPhone 14", "11.4", "iOS");
29 | assertTrue(simulatorUDID.length() == 36);
30 | }
31 |
32 | @Test
33 | public void throwExceptionWhenInvalidOSVersionIsGiven() throws Throwable {
34 | simulatorManager = new SimulatorManager();
35 | try {
36 | simulatorManager.getSimulatorUDID
37 | ("iPhone 14", "9.99" , "iOS");
38 | } catch (RuntimeException e) {
39 | assertEquals(e.getMessage(),"Device Not found with deviceName-iPhone 14 osVersion-9.99 osType-iOS");
40 | }
41 | }
42 |
43 | @Test
44 | public void throwExceptionWhenInvalidDeviceNameVersionIsGiven() throws Throwable {
45 | simulatorManager = new SimulatorManager();
46 | try {
47 | simulatorManager.getSimulatorUDID
48 | ("iPhone 14", "16.4", "iOS");
49 | } catch (RuntimeException e) {
50 | assertEquals(e.getMessage(),"Device Not found with deviceName-iPhone 14 osVersion-16.4 osType-iOS");
51 | }
52 | }
53 |
54 | @Test
55 | public void getSimulatorStateTest() throws Throwable {
56 | simulatorManager = new SimulatorManager();
57 | String simulatorState = simulatorManager.getSimulatorState(
58 | "iPhone 14", "16.4", "iOS");
59 | assertNotNull(simulatorState);
60 | }
61 |
62 | @Test
63 | public void bootSimulatorAndCheckStatus() throws Throwable {
64 | simulatorManager = new SimulatorManager();
65 | simulatorManager.bootSimulator(
66 | "iPhone 14", "16.4", "iOS");
67 | String deviceState = simulatorManager.getSimulatorState("iPhone 14",
68 | "16.4", "iOS");
69 | assertEquals(deviceState,"Booted");
70 | }
71 |
72 | @Test
73 | public void installApp() throws Throwable {
74 | simulatorManager = new SimulatorManager();
75 | simulatorManager.installAppOnSimulator("iPhone 14", "16.4", "iOS"
76 | ,System.getProperty("user.dir") + "/VodQAReactNative.app");
77 | }
78 |
79 | @Test
80 | public void uninstallApp() throws Throwable {
81 | simulatorManager = new SimulatorManager();
82 | simulatorManager.uninstallAppFromSimulator("iPhone 14", "16.4", "iOS"
83 | , "com.hariharanweb");
84 | }
85 |
86 | @Test
87 | public void createAndDeleteSimulatorTest() throws Throwable {
88 | simulatorManager = new SimulatorManager();
89 | long randomNumber = System.currentTimeMillis();
90 | String deviceName = "srini" + randomNumber;
91 |
92 | simulatorManager.createSimulator(deviceName, "iPhone 14", "16.4","iOS");
93 | assertNotNull(simulatorManager.getSimulatorState(deviceName, "16.4", "iOS"));
94 | simulatorManager.deleteSimulator(deviceName, "16.4", "iOS");
95 | try {
96 | simulatorManager.deleteSimulator(deviceName, "16.4", "iOS");
97 | } catch (Exception e){
98 | assertEquals("Device Not found with deviceName-" + deviceName + " osVersion-16.4 osType-iOS", e.getMessage());
99 | }
100 | }
101 |
102 | @Test
103 | public void getDeviceDetails() throws Throwable {
104 | simulatorManager = new SimulatorManager();
105 | String iOSUDID = simulatorManager.getSimulatorUDID
106 | ("iPhone 14", "11.3", "iOS");
107 | Device deviceDetails = simulatorManager.getSimulatorDetailsFromUDID(iOSUDID);
108 | assertEquals(deviceDetails.getName(),"iPhone 14");
109 | assertEquals(deviceDetails.getDeviceModel(),"iPhone8,1");
110 | }
111 |
112 | @Test
113 | public void captureScreenshot() throws Throwable {
114 | simulatorManager = new SimulatorManager();
115 | simulatorManager.bootSimulator(
116 | "iPhone 14", "16.4", "iOS");
117 | String iOSUDID = simulatorManager.getSimulatorUDID
118 | ("iPhone 14", "16.4", "iOS");
119 | simulatorManager.captureScreenshot(iOSUDID,"simulator",
120 | System.getProperty("user.dir") + "/target/", "jpeg");
121 | assertTrue(new File(System.getProperty("user.dir")
122 | + "/target/simulator.jpeg").exists());
123 | }
124 |
125 | @Test
126 | public void simulatorShutDown() throws IOException, InterruptedException {
127 | simulatorManager = new SimulatorManager();
128 | assertTrue(simulatorManager.shutDownAllBootedSimulators());
129 | }
130 |
131 | @Test
132 | public void getAllBootedSimulatorsTest() throws IOException, InterruptedException {
133 | simulatorManager = new SimulatorManager();
134 | assertEquals(simulatorManager.getAllBootedSimulators("iOS").get(0).getState(), "Booted");
135 | }
136 |
137 | @Test
138 | public void uploadMediaToSimulatorTest() throws Throwable {
139 | simulatorManager = new SimulatorManager();
140 | simulatorManager.uploadMediaToSimulator("iPhone 14", "16.4", "iOS",
141 | "/Users/ssekar/Desktop/GC_BCPage.png");
142 | }
143 |
144 | @Test
145 | public void getPropertiesTest() throws Exception {
146 | Device deviceProperties = new DeviceManager().getDevice("E2C34EB6-E91E-4148-8E95-73D53143E9EF");
147 | System.out.println(deviceProperties.getDeviceManufacturer());
148 | }
149 |
150 | @Test
151 | public void getDevicePropertiesTest() throws Exception {
152 | // List deviceProperties = new DeviceManager().getDevices();
153 | // System.out.println(deviceProperties.get(0).getName());
154 | new DeviceManager().getDevices();
155 | }
156 |
157 | @Test
158 | public void screenRecording() throws Exception {
159 | SimulatorManager simulatorManager = new SimulatorManager();
160 | simulatorManager.startScreenRecording("D97F6677-C9CE-45C5-87A1-B7C4B77C1D25","sample.mp4");
161 | Thread.sleep(10000);
162 | simulatorManager.stopScreenRecording();
163 | Assert.assertTrue(new File(System.getProperty("user.dir") + "/sample.mp4").exists());
164 | }
165 |
166 | @Test
167 | public void getOSandVersionLatest() throws Throwable {
168 | simulatorManager = new SimulatorManager();
169 | String iOSUDID = simulatorManager.getSimulatorUDID
170 | ("iPhone 14", "16.4", "iOS");
171 | Device deviceDetails = simulatorManager.getSimulatorDetailsFromUDID(iOSUDID);
172 | assertEquals(deviceDetails.getOsVersion(),"16.4");
173 | assertEquals(deviceDetails.getOs(),"iOS");
174 | }
175 |
176 | }
177 |
--------------------------------------------------------------------------------
/src/test/java/com/test/SampleTest.java:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------