├── .gitignore
├── pom.xml
├── readme.md
├── src
├── main
│ └── java
│ │ └── io
│ │ └── github
│ │ └── mfaisalkhatri
│ │ ├── drivers
│ │ ├── AndroidDriverManager.java
│ │ └── IOSDriverManager.java
│ │ └── server
│ │ └── AppiumServerManager.java
└── test
│ ├── java
│ └── io
│ │ └── github
│ │ └── mfaisalkhatri
│ │ ├── android
│ │ ├── pages
│ │ │ ├── browser
│ │ │ │ └── TheInternetPage.java
│ │ │ ├── proverbial
│ │ │ │ └── Notifications.java
│ │ │ └── wdio
│ │ │ │ ├── DragPage.java
│ │ │ │ ├── FormPage.java
│ │ │ │ ├── HomePage.java
│ │ │ │ ├── SignUpPage.java
│ │ │ │ ├── SwipePage.java
│ │ │ │ └── WebViewPage.java
│ │ └── tests
│ │ │ ├── AndroidTests.java
│ │ │ └── BaseTest.java
│ │ └── ios
│ │ ├── pages
│ │ ├── DragPage.java
│ │ ├── FormPage.java
│ │ ├── HomePage.java
│ │ ├── SwipePage.java
│ │ └── WebViewPage.java
│ │ ├── paralleltests
│ │ ├── demo
│ │ │ ├── BaseTest.java
│ │ │ └── IOSParallelTests.java
│ │ ├── pages
│ │ │ ├── FormPage.java
│ │ │ └── HomePage.java
│ │ └── tests
│ │ │ ├── BaseTest.java
│ │ │ ├── IOSTestOnIPhoneFifteen.java
│ │ │ └── IOSTestOnIPhoneFifteenPro.java
│ │ └── tests
│ │ ├── BaseTest.java
│ │ └── IOSTests.java
│ └── resources
│ ├── app
│ ├── iOS-Real-Device-MyRNDemoApp.1.3.0-162.ipa
│ ├── iOS-Simulator-NativeDemoApp-0.4.0.app.zip
│ ├── wdioNativeDemoApp.app
│ │ ├── AccessibilityResources.bundle
│ │ │ ├── Info.plist
│ │ │ ├── _CodeSignature
│ │ │ │ ├── CodeDirectory
│ │ │ │ ├── CodeRequirements
│ │ │ │ ├── CodeRequirements-1
│ │ │ │ ├── CodeResources
│ │ │ │ └── CodeSignature
│ │ │ └── en.lproj
│ │ │ │ └── Localizable.strings
│ │ ├── AntDesign.ttf
│ │ ├── AppIcon20x20@2x.png
│ │ ├── AppIcon20x20@3x.png
│ │ ├── AppIcon29x29.png
│ │ ├── AppIcon29x29@2x.png
│ │ ├── AppIcon29x29@3x.png
│ │ ├── AppIcon40x40@2x.png
│ │ ├── AppIcon40x40@3x.png
│ │ ├── AppIcon57x57.png
│ │ ├── AppIcon57x57@2x.png
│ │ ├── AppIcon60x60@2x.png
│ │ ├── AppIcon60x60@3x.png
│ │ ├── Assets.car
│ │ ├── Entypo.ttf
│ │ ├── EvilIcons.ttf
│ │ ├── Feather.ttf
│ │ ├── FontAwesome.ttf
│ │ ├── FontAwesome5_Brands.ttf
│ │ ├── FontAwesome5_Regular.ttf
│ │ ├── FontAwesome5_Solid.ttf
│ │ ├── Fontisto.ttf
│ │ ├── Foundation.ttf
│ │ ├── Frameworks
│ │ │ └── OpenSSL.framework
│ │ │ │ ├── Info.plist
│ │ │ │ ├── OpenSSL
│ │ │ │ └── _CodeSignature
│ │ │ │ └── CodeResources
│ │ ├── Info.plist
│ │ ├── Ionicons.ttf
│ │ ├── LaunchScreen.storyboardc
│ │ │ ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib
│ │ │ ├── Info.plist
│ │ │ └── UIViewController-01J-lp-oVM.nib
│ │ ├── MaterialCommunityIcons.ttf
│ │ ├── MaterialIcons.ttf
│ │ ├── Octicons.ttf
│ │ ├── PkgInfo
│ │ ├── SimpleLineIcons.ttf
│ │ ├── Zocial.ttf
│ │ ├── _CodeSignature
│ │ │ └── CodeResources
│ │ ├── assets
│ │ │ ├── node_modules
│ │ │ │ ├── react-native-ratings
│ │ │ │ │ └── src
│ │ │ │ │ │ └── images
│ │ │ │ │ │ ├── airbnb-star-selected.png
│ │ │ │ │ │ ├── airbnb-star.png
│ │ │ │ │ │ ├── bell.png
│ │ │ │ │ │ ├── heart.png
│ │ │ │ │ │ ├── rocket.png
│ │ │ │ │ │ └── star.png
│ │ │ │ └── react-native-vector-icons
│ │ │ │ │ └── glyphmaps
│ │ │ │ │ ├── AntDesign.json
│ │ │ │ │ ├── Entypo.json
│ │ │ │ │ ├── EvilIcons.json
│ │ │ │ │ ├── Feather.json
│ │ │ │ │ ├── FontAwesome.json
│ │ │ │ │ ├── FontAwesome5Free.json
│ │ │ │ │ ├── FontAwesome5Free_meta.json
│ │ │ │ │ ├── Fontisto.json
│ │ │ │ │ ├── Foundation.json
│ │ │ │ │ ├── Ionicons.json
│ │ │ │ │ ├── MaterialCommunityIcons.json
│ │ │ │ │ ├── MaterialIcons.json
│ │ │ │ │ ├── Octicons.json
│ │ │ │ │ ├── SimpleLineIcons.json
│ │ │ │ │ └── Zocial.json
│ │ │ └── src
│ │ │ │ ├── app.json
│ │ │ │ └── assets
│ │ │ │ ├── images
│ │ │ │ ├── wdio-c1.png
│ │ │ │ ├── wdio-c2.png
│ │ │ │ ├── wdio-c3.png
│ │ │ │ ├── wdio-l1.png
│ │ │ │ ├── wdio-l2.png
│ │ │ │ ├── wdio-l3.png
│ │ │ │ ├── wdio-r1.png
│ │ │ │ ├── wdio-r2.png
│ │ │ │ └── wdio-r3.png
│ │ │ │ ├── io.png
│ │ │ │ └── webdriverio.png
│ │ ├── main.jsbundle
│ │ └── wdioNativeDemoApp
│ └── webdriverio-app.apk
│ └── firefox-driver
│ ├── geckodriver
│ └── geckodriver-v0.33.0-macos-aarch64.tar.gz
└── test-suite
├── testng-android.xml
├── testng-ios-parallel.xml
├── testng-ios.xml
└── testng.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | # IntelliJ IDEA
2 | /.idea/
3 | *.iml
4 |
5 | # Eclipse IDE
6 | /.settings/
7 | /.classpath
8 | /.project
9 |
10 | # Other output folders
11 | /target/
12 | /bin/
13 | /test-output/
14 | /logs/
15 | /reports/
16 |
17 | # Mac OSX
18 | .DS_Store
19 |
20 | #VS code
21 | /.vscode
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
3 | 4.0.0
4 |
5 | io.github.mfaisalkhatri
6 | appium-example
7 | 1.0-SNAPSHOT
8 | jar
9 |
10 | appium-example
11 | http://maven.apache.org
12 |
13 |
14 | UTF-8
15 | 9.3.0
16 | 2.23.0
17 | 2.23.0
18 | 7.10.0
19 | 3.13.0
20 | 17
21 | 3.5.2
22 | UTF-8
23 | test-suite/testng.xml
24 |
25 |
26 |
27 |
28 |
29 |
30 | io.appium
31 | java-client
32 | ${appium-java-client-version}
33 |
34 |
35 |
36 | org.testng
37 | testng
38 | ${testng.version}
39 | test
40 |
41 |
42 |
43 | org.apache.logging.log4j
44 | log4j-core
45 | ${log4jcore.version}
46 |
47 |
48 |
49 | org.apache.logging.log4j
50 | log4j-api
51 | ${log4japi.version}
52 |
53 |
54 |
55 |
56 |
57 |
58 | org.apache.maven.plugins
59 | maven-compiler-plugin
60 | ${maven.compiler.version}
61 |
62 | ${java.release.version}
63 | ${maven.source.encoding}
64 | true
65 |
66 |
67 |
68 | org.apache.maven.plugins
69 | maven-surefire-plugin
70 | ${maven.surefire.version}
71 |
72 |
73 |
74 | test
75 |
76 |
77 |
78 |
79 | false
80 |
81 |
82 | usedefaultlisteners
83 | false
84 |
85 |
86 |
87 | ${suite-xml}
88 |
89 | ${argLine}
90 |
91 |
92 |
93 | org.apache.maven.plugins
94 | maven-enforcer-plugin
95 | 3.5.0
96 |
97 |
98 | enforce-maven
99 |
100 | enforce
101 |
102 |
103 |
104 |
105 | 3.6.3
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | ## Don't forget to give a :star: to make the project popular.
4 |
5 | ## :question: What is this Repository about?
6 |
7 | - This repository contains the example code for running Android Mobile Automation tests
8 | using [Appium 2.0](https://appium.io/docs/en/2.0/intro/)
9 | - [WebdriverIO demo app](https://github.com/webdriverio/native-demo-app/releases) is used as a demo mobile application
10 | run tests
11 | - This repo uses `Maven` as build tool and `TestNG` testing framework to run the tests.
12 |
13 | ## Talking more about the Scenarios Covered in this project:
14 |
15 | - I have tried to answer the below questions by providing working code example in this repo:
16 |
17 | 1. How to start Appium Server Programmatically?
18 | 1. How to stop Appium Server Programmatically?
19 | 1. How to run mobile automation tests on Android Emulator?
20 | 1. How to locate elements using Appium?
21 | 1. How to click on an element using Appium?
22 | 1. How to check attribute of an element using Appium?
23 | 1. How to type values in a text field?
24 | 1. How to perform assertions?
25 |
26 | ## How to run the Tests?
27 |
28 | ### Pre-Requisite:
29 |
30 | - JAVA JDK 11 should be installed
31 | - Android Emulator should be created in local machine and should be in running state
32 | - For running iOS tests, iOS Simulator needs to be started and should be in running state
33 |
34 | ### :movie_camera: Tutorial for Installing Android Studio on Windows 10
35 | [](https://youtu.be/CMrfuCR6W94)
36 |
37 | - Run the tests using `TestNG`:
38 |
39 | Right click on `test-suite\testng.xml` and select `Run test-suite\testng.xml`
40 |
41 | - Run the tests using `Maven`:
42 |
43 | `mvn clean install`
44 |
45 | ## :writing_hand: Blog Links
46 |
47 | - [Beginner’s Guide to Appium 2.0](https://medium.com/@iamfaisalkhatri/beginners-guide-to-appium-2-0-d8118b31837c)
48 | - [Appium 2 Migration Guide: Migrating From Appium 1.x To Appium 2.x](https://medium.com/@iamfaisalkhatri/appium-2-migration-guide-migrating-from-appium-1-x-to-appium-2-x-f1721b31197)
49 | - [How To Automate ServiceNow With Appium](https://medium.com/@iamfaisalkhatri/how-to-automate-servicenow-with-appium-8cc4aee3ed44)
50 | - [Complete Tutorial On Appium Parallel Testing- [With Examples]](https://www.lambdatest.com/blog/appium-parallel-testing/)
51 | - [React Native Testing For Apps On iOS And Android Using Appium](https://www.lambdatest.com/blog/test-react-native-apps-on-ios-and-android/)
52 | - [How to Choose Mobile Devices for Testing](https://medium.com/@iamfaisalkhatri/how-to-choose-mobile-devices-for-testing-pcloudy-blog-96179529d0f3)
53 | - [What is an Android Emulator? How to Start and use it?](https://medium.com/@iamfaisalkhatri/what-is-an-android-emulator-how-to-start-and-use-it-66fdcf52be7e)
54 | - [How to start Appium Server Programmatically?](https://medium.com/@iamfaisalkhatri/how-to-start-appium-server-programmatically-ec07292ab59)
55 | - [Guide to Mobile Testing](https://medium.com/@iamfaisalkhatri/guide-to-mobile-testing-d0dd2d9b59f1)
56 | - [Inspecting elements of an app using Appium Inspector and BrowserStack!](https://medium.com/@iamfaisalkhatri/inspecting-elements-of-an-app-using-appium-inspector-and-browserstack-32c095a5333c)
57 |
58 | ## :question: Need Assistance?
59 |
60 | - Discuss your queries by writing to me @ `mohammadfaisalkhatri@gmail.com`
61 | OR ping me on any of the social media sites using the below link:
62 | - [Linktree](https://linktr.ee/faisalkhatri)
63 |
64 | ## :computer: Paid Trainings
65 |
66 | Contact me for Paid trainings related to Test Automation and Software Testing,
67 | mail me @ `mohammadfaisalkhatri@gmail.com` or ping me on [LinkedIn](https://www.linkedin.com/in/faisalkhatri/)
68 |
69 | ## :thought_balloon: Checkout the blogs related to Testing written by me on the following links:
70 |
71 | - [Medium Blogs](https://medium.com/@iamfaisalkhatri)
72 | - [LambdaTest Blogs](https://www.lambdatest.com/blog/author/mfaisalkhatri/)
73 | - [My Website](https://mfaisalkhatri.github.io)
74 |
75 |
--------------------------------------------------------------------------------
/src/main/java/io/github/mfaisalkhatri/drivers/AndroidDriverManager.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.drivers;
2 |
3 | import static io.github.mfaisalkhatri.server.AppiumServerManager.startServer;
4 | import static io.github.mfaisalkhatri.server.AppiumServerManager.stopServer;
5 |
6 | import java.net.MalformedURLException;
7 | import java.net.URL;
8 | import java.nio.file.Path;
9 | import java.time.Duration;
10 | import java.util.HashMap;
11 |
12 | import io.appium.java_client.android.AndroidDriver;
13 | import io.appium.java_client.android.options.UiAutomator2Options;
14 | import io.appium.java_client.gecko.options.GeckoOptions;
15 | import io.appium.java_client.remote.AutomationName;
16 | import org.apache.logging.log4j.LogManager;
17 | import org.apache.logging.log4j.Logger;
18 |
19 | /**
20 | * @author Faisal Khatri
21 | * @since 10/13/2022
22 | **/
23 | public class AndroidDriverManager {
24 | private static final String APP_PATH = String.valueOf (
25 | Path.of (System.getProperty ("user.dir"), "/src/test/resources/app", "webdriverio-app.apk"));
26 | private static final ThreadLocal DRIVER = new ThreadLocal<> ();
27 | private static final Logger LOG = LogManager.getLogger ("DriverManager.class");
28 |
29 | public static void createAndroidDriver () {
30 | startServer ("android");
31 | // setDriver (new AndroidDriver (getService ().getUrl (), geckoOptionsFirefox ()));
32 | try {
33 | setDriver (new AndroidDriver (new URL ("http://127.0.0.1:4723/wd/hub"),uiAutomator2OptionsWdio()));
34 | } catch (final MalformedURLException e) {
35 | throw new RuntimeException (e);
36 | }
37 | setupDriverTimeouts ();
38 | }
39 |
40 | public static AndroidDriver getDriver () {
41 | return AndroidDriverManager.DRIVER.get ();
42 | }
43 |
44 | public static void quitSession () {
45 | if (null != DRIVER.get ()) {
46 | LOG.info ("Closing the driver...");
47 | getDriver ().quit ();
48 | DRIVER.remove ();
49 | stopServer ();
50 | }
51 | }
52 |
53 | private static GeckoOptions geckoOptionsFirefox () {
54 | final HashMap firefoxOptions = new HashMap<> ();
55 | firefoxOptions.put ("androidPackage", "org.mozilla.firefox");
56 | //firefoxOptions.put ("androidDeviceSerial", "EMULATOR32X1X12X0");
57 | final GeckoOptions geckoOptions;
58 | geckoOptions = new GeckoOptions ().setPlatformName ("mac")
59 | .setAutomationName (AutomationName.GECKO)
60 | .setMozFirefoxOptions (firefoxOptions)
61 | .setAndroidStorage ("app")
62 | .setAcceptInsecureCerts (true)
63 | .setNoReset (false);
64 | return geckoOptions;
65 | }
66 |
67 | private static void setDriver (final AndroidDriver driver) {
68 | AndroidDriverManager.DRIVER.set (driver);
69 | }
70 |
71 | private static void setupDriverTimeouts () {
72 | getDriver ().manage ()
73 | .timeouts ()
74 | .implicitlyWait (Duration.ofSeconds (5));
75 | }
76 |
77 | // private static DesiredCapabilities setCapabilities() {
78 | // DesiredCapabilities capabilities = new DesiredCapabilities();
79 | // capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
80 | // capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Pixel_5_API_30");
81 | // capabilities.setCapability(MobileCapabilityType.APP, APP_PATH);
82 | // capabilities.setCapability("appPackage", "com.wdiodemoapp");
83 | // capabilities.setCapability("appActivity", "com.wdiodemoapp.MainActivity");
84 | // capabilities.setCapability("noReset", false);
85 | // capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
86 | // return capabilities;
87 | // }
88 |
89 | private static UiAutomator2Options uiAutomator2OptionsChrome () {
90 |
91 | final UiAutomator2Options uiAutomator2Options;
92 | uiAutomator2Options = new UiAutomator2Options ().setAvd ("Pixel_6_API_34")
93 | .setAvdLaunchTimeout (Duration.ofSeconds (300))
94 | .setAvdReadyTimeout (Duration.ofSeconds (100))
95 | .setDeviceName ("Pixel_6_API_34")
96 | .setAutomationName (AutomationName.ANDROID_UIAUTOMATOR2)
97 | .withBrowserName ("chrome")
98 | .setAutoGrantPermissions (true)
99 | .setNoReset (false);
100 |
101 | return uiAutomator2Options;
102 | }
103 |
104 | private static UiAutomator2Options uiAutomator2OptionsProverbial () {
105 |
106 | final UiAutomator2Options uiAutomator2Options;
107 | uiAutomator2Options = new UiAutomator2Options ().setAvd ("Pixel_XL_API_33")
108 | .setAvdLaunchTimeout (Duration.ofSeconds (300))
109 | .setAvdReadyTimeout (Duration.ofSeconds (100))
110 | .setDeviceName ("Pixel_XL_API_33")
111 | .setAutomationName (AutomationName.ANDROID_UIAUTOMATOR2)
112 | .setApp (APP_PATH)
113 | .setAutoGrantPermissions (true)
114 | .setAppPackage ("com.lambdatest.proverbial")
115 | .setAppActivity ("com.lambdatest.proverbial.MainActivity")
116 | .setNoReset (false);
117 | return uiAutomator2Options;
118 | }
119 |
120 | private static UiAutomator2Options uiAutomator2OptionsWdio () {
121 | final UiAutomator2Options uiAutomator2Options;
122 | uiAutomator2Options = new UiAutomator2Options ().setAvd ("Pixel_6_Pro_API_34")
123 | .setAvdLaunchTimeout (Duration.ofSeconds (300))
124 | .setAvdReadyTimeout (Duration.ofSeconds (100))
125 | .setDeviceName ("Pixel_6_Pro_API_34")
126 | .setAutomationName (AutomationName.ANDROID_UIAUTOMATOR2)
127 | .setApp (APP_PATH)
128 | .setAppPackage ("com.wdiodemoapp")
129 | .setAppActivity ("com.wdiodemoapp.MainActivity")
130 | .setNoReset (false);
131 | return uiAutomator2Options;
132 | }
133 |
134 | }
135 |
--------------------------------------------------------------------------------
/src/main/java/io/github/mfaisalkhatri/drivers/IOSDriverManager.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.drivers;
2 |
3 | import io.appium.java_client.ios.IOSDriver;
4 | import io.appium.java_client.ios.options.XCUITestOptions;
5 | import io.appium.java_client.remote.AutomationName;
6 | import org.apache.logging.log4j.LogManager;
7 | import org.apache.logging.log4j.Logger;
8 |
9 | import java.nio.file.Path;
10 | import java.time.Duration;
11 |
12 | import static io.github.mfaisalkhatri.server.AppiumServerManager.*;
13 |
14 | public class IOSDriverManager {
15 |
16 | private static final ThreadLocal DRIVER = new ThreadLocal<>();
17 | private static final Logger LOG = LogManager.getLogger("DriverManager.class");
18 |
19 | private static final String APP_PATH = String.valueOf(Path.of(System.getProperty("user.dir"), "/src/test/resources/app", "wdioNativeDemoApp.app"));
20 |
21 | public static IOSDriver getDriver() {
22 | return IOSDriverManager.DRIVER.get();
23 | }
24 |
25 | private static void setDriver(IOSDriver driver) {
26 | IOSDriverManager.DRIVER.set(driver);
27 | }
28 |
29 |
30 | private static XCUITestOptions xcuiTestOptions() {
31 | return new XCUITestOptions()
32 | .setDeviceName("iPhone 14 Pro Max")
33 | .setAutomationName(AutomationName.IOS_XCUI_TEST)
34 | .setNewCommandTimeout(Duration.ofSeconds(60))
35 | .setPlatformVersion("16.2")
36 | .setApp(APP_PATH)
37 | .setNoReset(false);
38 | }
39 |
40 | public static void quitSession() {
41 | if (null != DRIVER.get()) {
42 | LOG.info("Closing the driver...");
43 | getDriver().quit();
44 | DRIVER.remove();
45 | stopServer();
46 | }
47 | }
48 |
49 | public static void createIOSDriver() {
50 | startServer("ios");
51 | setDriver(new IOSDriver(getService().getUrl(), xcuiTestOptions()));
52 | setupDriverTimeouts();
53 | }
54 |
55 | private static void setupDriverTimeouts() {
56 | getDriver().manage()
57 | .timeouts()
58 | .implicitlyWait(Duration.ofSeconds(5));
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/main/java/io/github/mfaisalkhatri/server/AppiumServerManager.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.server;
2 |
3 | import io.appium.java_client.android.AndroidDriver;
4 | import io.appium.java_client.service.local.AppiumDriverLocalService;
5 | import io.appium.java_client.service.local.AppiumServiceBuilder;
6 |
7 | import static io.appium.java_client.service.local.flags.GeneralServerFlag.*;
8 |
9 | public class AppiumServerManager {
10 |
11 | public static AppiumDriverLocalService service;
12 |
13 | public static AppiumDriverLocalService getService () {
14 | return service;
15 | }
16 |
17 | public static void startServer (final String platformName) {
18 | final AppiumServiceBuilder builder = new AppiumServiceBuilder ();
19 | if (platformName.equalsIgnoreCase ("android")) {
20 | builder.withIPAddress ("127.0.0.1")
21 | .usingPort (4723)
22 | //.usingDriverExecutable (new File ("E:\\Program Files\\nodejs\\node.exe"))
23 | .withArgument (BASEPATH, "/wd/hub")
24 | .withArgument (SESSION_OVERRIDE)
25 | .withArgument (LOG_LEVEL, "debug")
26 | .withArgument (USE_DRIVERS, "uiautomator2");
27 | //.withArgument (ALLOW_INSECURE, "chromedriver_autodownload");
28 | } else if (platformName.equalsIgnoreCase ("ios")) {
29 | builder.withIPAddress ("127.0.0.1")
30 | .usingPort (4723)
31 | //.usingDriverExecutable (new File ("E:\\Program Files\\nodejs\\node.exe"))
32 | .withArgument (BASEPATH, "/wd/hub")
33 | .withArgument (SESSION_OVERRIDE)
34 | .withArgument (LOG_LEVEL, "debug")
35 | .withArgument (USE_DRIVERS, "xcuitest")
36 | .withArgument (ALLOW_INSECURE, "chromedriver_autodownload");
37 | }
38 | // .withArgument(USE_PLUGINS, "element-wait");
39 |
40 | service = AppiumDriverLocalService.buildService (builder);
41 | service.start ();
42 | }
43 |
44 | public static void stopServer () {
45 | service.stop ();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/browser/TheInternetPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.browser;
2 |
3 | import org.openqa.selenium.By;
4 |
5 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
6 |
7 | public class TheInternetPage {
8 |
9 | public void navigateToInternetWebsite() {
10 | getDriver().navigate().to("https://the-internet.herokuapp.com/");
11 | }
12 |
13 | public String getPageHeader() {
14 | return getDriver().findElement(By.tagName("h1")).getText();
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/proverbial/Notifications.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.proverbial;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.WebElement;
5 |
6 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
7 |
8 | public class Notifications {
9 |
10 |
11 | private WebElement expandNotificationBtn() {
12 | return getDriver().findElements(AppiumBy.id("android:id/expand_button_touch_container")).get(0);
13 | }
14 |
15 | private WebElement notificationBtn() {
16 | return getDriver().findElement(AppiumBy.id("com.lambdatest.proverbial:id/notification"));
17 | }
18 |
19 | private WebElement notificationBar() {
20 | return getDriver().findElement(AppiumBy.id("com.lambdatest.proverbial:id/action_bar"));
21 |
22 | }
23 |
24 | public void openNotificationPanel() {
25 | getDriver().openNotifications();
26 | }
27 |
28 | public boolean checkNotificationIsDisplayed() {
29 | notificationBtn().click();
30 | return notificationBar().isDisplayed();
31 | }
32 |
33 | public String getAppNotificationTitle() {
34 | expandNotificationBtn().click();
35 | return getDriver().findElements(AppiumBy.id("android:id/app_name_text")).get(0).getText();
36 | }
37 |
38 | public String getNotificationTitle() {
39 | return getDriver().findElement(AppiumBy.id("android:id/title")).getText();
40 | }
41 |
42 | public String getNotificationText() {
43 | return getDriver().findElement(AppiumBy.id("android:id/text")).getText();
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/DragPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.Point;
5 | import org.openqa.selenium.WebElement;
6 | import org.openqa.selenium.interactions.Pause;
7 | import org.openqa.selenium.interactions.PointerInput;
8 | import org.openqa.selenium.interactions.Sequence;
9 |
10 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
11 | import static java.time.Duration.ofMillis;
12 | import static java.util.Collections.singletonList;
13 |
14 | public class DragPage {
15 |
16 | private WebElement dragLeft1() {
17 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l1"));
18 | }
19 |
20 | private WebElement dropLeft1() {
21 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l1"));
22 | }
23 |
24 | private WebElement dragLeft2() {
25 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l2"));
26 | }
27 |
28 | private WebElement dropLeft2() {
29 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l2"));
30 | }
31 |
32 | private WebElement dragLeft3() {
33 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l3"));
34 | }
35 |
36 | private WebElement dropLeft3() {
37 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l3"));
38 | }
39 |
40 | private WebElement dragRight1() {
41 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r1"));
42 | }
43 |
44 | private WebElement dropRight1() {
45 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r1"));
46 | }
47 |
48 | private WebElement dragRight2() {
49 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r2"));
50 | }
51 |
52 | private WebElement dropRight2() {
53 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r2"));
54 | }
55 |
56 | private WebElement dragRight3() {
57 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r3"));
58 | }
59 |
60 | private WebElement dropRight3() {
61 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r3"));
62 | }
63 |
64 | private WebElement dragCenter1() {
65 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c1"));
66 | }
67 |
68 | private WebElement dropCenter1() {
69 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c1"));
70 | }
71 |
72 | private WebElement dragCenter2() {
73 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c2"));
74 | }
75 |
76 | private WebElement dropCenter2() {
77 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c2"));
78 | }
79 |
80 | private WebElement dragCenter3() {
81 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c3"));
82 | }
83 |
84 | private WebElement dropCenter3() {
85 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c3"));
86 | }
87 |
88 |
89 | private Point getElementCenter(WebElement element) {
90 | var location = element.getLocation();
91 | var size = element.getSize();
92 |
93 | return new Point(location.getX() + (size.getWidth() / 2), location.getY() + (size.getHeight() / 2));
94 |
95 | }
96 |
97 | private void dragAndDrop(WebElement dragMe, WebElement dropTo) {
98 | Point source = getElementCenter(dragMe);
99 | Point target = getElementCenter(dropTo);
100 |
101 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
102 | Sequence dragAndDrop = new Sequence(finger, 1);
103 | dragAndDrop.addAction(finger.createPointerMove(ofMillis(0), PointerInput.Origin.viewport(), source.x, source.y));
104 | dragAndDrop.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
105 | dragAndDrop.addAction(new Pause(finger, ofMillis(600)));
106 | dragAndDrop.addAction(finger.createPointerMove(ofMillis(600),
107 | PointerInput.Origin.viewport(),
108 | target.x, target.y));
109 | dragAndDrop.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
110 | getDriver().perform(singletonList(dragAndDrop));
111 | }
112 |
113 | public void dragAndDropPrices() {
114 | HomePage homePage = new HomePage();
115 | homePage.openMenu("Drag");
116 | dragAndDrop(dragLeft1(), dropLeft1());
117 | dragAndDrop(dragLeft2(), dropLeft2());
118 | dragAndDrop(dragLeft3(), dropLeft3());
119 | dragAndDrop(dragRight1(), dropRight1());
120 | dragAndDrop(dragRight2(), dropRight2());
121 | dragAndDrop(dragRight3(), dropRight3());
122 | dragAndDrop(dragCenter1(), dropCenter1());
123 | dragAndDrop(dragCenter2(), dropCenter2());
124 | dragAndDrop(dragCenter3(), dropCenter3());
125 | }
126 |
127 | public String congratulationsText() {
128 | return getDriver().findElement(AppiumBy.androidUIAutomator("new UiSelector().text(\"Congratulations\")")).getText();
129 | }
130 |
131 | }
132 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/FormPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.WebElement;
5 |
6 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
7 |
8 | public class FormPage {
9 |
10 | private WebElement switchBtn() {
11 | return getDriver().findElement(AppiumBy.accessibilityId("switch"));
12 | }
13 |
14 | public String getSwitchText() {
15 | return getDriver().findElement(AppiumBy.accessibilityId("switch-text")).getText();
16 | }
17 |
18 | private WebElement dropdownField() {
19 | return getDriver().findElement(AppiumBy.accessibilityId("Dropdown"));
20 | }
21 |
22 | private void selectDropdownValue(int option) {
23 | getDriver().findElements(AppiumBy.id("android:id/text1")).get(option).click();
24 | }
25 |
26 | public String getSelectedDropdownValue() {
27 | return getDriver().findElements(AppiumBy.className("android.widget.EditText")).get(1).getText();
28 | }
29 |
30 | private WebElement activeBtn() {
31 | return getDriver().findElement(AppiumBy.accessibilityId("button-Active"));
32 | }
33 |
34 | public String getActiveMessageTitle() {
35 | return getDriver().findElement(AppiumBy.id("android:id/alertTitle")).getText();
36 | }
37 |
38 | public String getActiveMessage() {
39 | return getDriver().findElement(AppiumBy.id("android:id/message")).getText();
40 | }
41 |
42 | private WebElement okBtn() {
43 | return getDriver().findElement(AppiumBy.id("android:id/button1"));
44 | }
45 |
46 | private WebElement inActiveBtn() {
47 | return getDriver().findElement(AppiumBy.accessibilityId("button-Inactive"));
48 | }
49 |
50 | public void fillForm(String input, int option) {
51 | HomePage homePage = new HomePage();
52 | homePage.openMenu("Forms");
53 | inputField().sendKeys(input);
54 | switchBtn().click();
55 | dropdownField().click();
56 | selectDropdownValue(option);
57 | }
58 |
59 | public void submitForm() {
60 | activeBtn().click();
61 | }
62 |
63 | public String checkInActiveBtn() {
64 | return inActiveBtn().getAttribute("long-clickable");
65 | }
66 |
67 | public void closeMessage() {
68 | okBtn().click();
69 | }
70 |
71 | public String getInputText() {
72 | return getDriver().findElement(AppiumBy.accessibilityId("input-text-result")).getText();
73 | }
74 |
75 | private WebElement inputField() {
76 | return getDriver().findElement(AppiumBy.accessibilityId("text-input"));
77 | }
78 |
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/HomePage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.support.ui.ExpectedConditions;
5 | import org.openqa.selenium.support.ui.WebDriverWait;
6 |
7 | import java.time.Duration;
8 |
9 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
10 |
11 | /**
12 | * @author Faisal Khatri
13 | * @since 2/23/2023
14 | **/
15 | public class HomePage {
16 |
17 | private final WebDriverWait wait;
18 |
19 | public HomePage() {
20 | wait = new WebDriverWait(getDriver(), Duration.ofSeconds(10));
21 | }
22 |
23 | public String getTitle() {
24 | return wait.until(ExpectedConditions.visibilityOfElementLocated
25 | (AppiumBy.androidUIAutomator("new UiSelector().text(\"WEBDRIVER\")"))).getText();
26 | }
27 |
28 | void openMenu(String menuName) {
29 | getDriver().findElement(AppiumBy.accessibilityId(menuName)).click();
30 |
31 | }
32 |
33 | public String tagLine() {
34 | return wait.until(ExpectedConditions.visibilityOfElementLocated(
35 | AppiumBy.androidUIAutomator("new UiSelector().text(\"Demo app for the appium-boilerplate\")"))
36 | ).getText();
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/SignUpPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.WebElement;
5 |
6 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
7 |
8 | /**
9 | * @author Faisal Khatri
10 | * @since 2/25/2023
11 | **/
12 | public class SignUpPage {
13 |
14 |
15 | private WebElement signUpLink() {
16 | return getDriver().findElement(AppiumBy.accessibilityId("button-sign-up-container"));
17 | }
18 |
19 | private WebElement emailField() {
20 | return getDriver().findElement(AppiumBy.accessibilityId("input-email"));
21 | }
22 |
23 | private WebElement passwordField() {
24 | return getDriver().findElement(AppiumBy.accessibilityId("input-password"));
25 | }
26 |
27 | private WebElement confirmPasswordField() {
28 | return getDriver().findElement(AppiumBy.accessibilityId("input-repeat-password"));
29 | }
30 |
31 | private WebElement signUpBtn() {
32 | return getDriver().findElement(AppiumBy.accessibilityId("button-SIGN UP"));
33 | }
34 |
35 | public String getSuccessMessageTitle() {
36 | return getDriver().findElement(AppiumBy.id("android:id/alertTitle")).getText();
37 | }
38 |
39 | public String getSuccessMessage() {
40 | return getDriver().findElement(AppiumBy.id("android:id/message")).getText();
41 | }
42 |
43 | private WebElement okBtn() {
44 | return getDriver().findElement(AppiumBy.id("android:id/button1"));
45 | }
46 |
47 | private void openSignUpForm() {
48 | signUpLink().click();
49 | }
50 |
51 | public void signUp(String email, String password) {
52 | HomePage homePage = new HomePage();
53 | homePage.openMenu("Login");
54 | openSignUpForm();
55 | emailField().sendKeys(email);
56 | passwordField().sendKeys(password);
57 | confirmPasswordField().sendKeys(password);
58 | signUpBtn().click();
59 | }
60 |
61 | public void closeSuccessMessage() {
62 | okBtn().click();
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/SwipePage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.Point;
5 | import org.openqa.selenium.TimeoutException;
6 | import org.openqa.selenium.WebElement;
7 | import org.openqa.selenium.interactions.Pause;
8 | import org.openqa.selenium.interactions.PointerInput;
9 | import org.openqa.selenium.interactions.Sequence;
10 | import org.openqa.selenium.support.ui.ExpectedConditions;
11 | import org.openqa.selenium.support.ui.WebDriverWait;
12 |
13 | import java.time.Duration;
14 | import java.util.List;
15 |
16 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
17 |
18 | public class SwipePage {
19 |
20 |
21 | public SwipePage() {
22 | HomePage homePage = new HomePage();
23 | homePage.openMenu("Swipe");
24 | }
25 |
26 | public void performHorizontalSwipe() {
27 |
28 | WebElement sourceElement = getDriver().findElement(AppiumBy.xpath("(//android.view.ViewGroup[@content-desc=\"card\"])[1]"));
29 |
30 | Point source = sourceElement.getLocation();
31 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
32 | Sequence swipe = new Sequence(finger, 1);
33 | swipe.addAction(
34 | finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), source.x, source.y));
35 | swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
36 | swipe.addAction(
37 | finger.createPointerMove(Duration.ofMillis(1000), PointerInput.Origin.viewport(), source.x - (source.x * 5), source.y));
38 | swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
39 | swipe.addAction(new Pause(finger, Duration.ofMillis(600)));
40 | getDriver()
41 | .perform(List.of(swipe));
42 |
43 | }
44 |
45 | public void performVerticalSwipe() {
46 | var screenSize = getDriver()
47 | .manage()
48 | .window()
49 | .getSize();
50 | var xCenter = screenSize.width / 2;
51 | var yCenter = screenSize.height / 2;
52 | var center = new Point(xCenter, yCenter);
53 |
54 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
55 | Sequence swipe = new Sequence(finger, 1);
56 | swipe.addAction(
57 | finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), center.x, center.y));
58 | swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
59 | swipe.addAction(
60 | finger.createPointerMove(Duration.ofMillis(1000), PointerInput.Origin.viewport(), center.x, center.y - (center.y * 80 / 100)));
61 | swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
62 | swipe.addAction(new Pause(finger, Duration.ofMillis(1000)));
63 | getDriver()
64 | .perform(List.of(swipe));
65 |
66 | }
67 |
68 | public String swipeAndFindElement() {
69 | WebElement targetElement = getDriver().findElement(AppiumBy.androidUIAutomator
70 | ("new UiScrollable(new UiSelector()" +
71 | ".scrollable(true)).scrollIntoView(new UiSelector().text(\"You found me!!!\"))"));
72 | return targetElement.getText();
73 | }
74 |
75 | public String swipeTillElement() {
76 | WebDriverWait wait = new WebDriverWait(getDriver(), Duration.ofSeconds(1));
77 |
78 | WebElement targetElement = null;
79 | boolean found = false;
80 | while (!found) {
81 | try {
82 | targetElement = wait.until(ExpectedConditions.visibilityOfElementLocated(AppiumBy.
83 | androidUIAutomator("new UiSelector().text(\"You found me!!!\")")));
84 | found = true;
85 | } catch (TimeoutException e) {
86 | performVerticalSwipe();
87 | }
88 | }
89 | return targetElement.getText();
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/pages/wdio/WebViewPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.pages.wdio;
2 |
3 | import io.github.mfaisalkhatri.drivers.AndroidDriverManager;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.support.ui.WebDriverWait;
6 |
7 | import java.time.Duration;
8 | import java.util.Set;
9 |
10 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.getDriver;
11 |
12 | /**
13 | * @author Faisal Khatri
14 | * @since 3/22/2023
15 | **/
16 | public class WebViewPage {
17 |
18 |
19 | public void switchToWebView() {//
20 | Set contextNames = getDriver().getContextHandles();
21 | WebDriverWait wait = new WebDriverWait(AndroidDriverManager.getDriver(), Duration.ofSeconds(20));
22 |
23 | wait.until(d -> contextNames.size() > 1);
24 | //getDriver().context("WEBVIEW");
25 | getDriver().context(contextNames.toArray()[1].toString());
26 | }
27 |
28 | public void switchToNativeApp() {
29 | getDriver().context("NATIVE_APP");
30 | }
31 |
32 | public String getMainPageText() {
33 | HomePage homePage = new HomePage();
34 | homePage.openMenu("Webview");
35 | switchToWebView();
36 | return getDriver().findElement(By.cssSelector("header > div > p"))
37 | .getText();
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/tests/AndroidTests.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.tests;
2 |
3 | import static org.testng.Assert.assertEquals;
4 | import static org.testng.Assert.assertTrue;
5 |
6 | import io.github.mfaisalkhatri.android.pages.browser.TheInternetPage;
7 | import io.github.mfaisalkhatri.android.pages.proverbial.Notifications;
8 | import io.github.mfaisalkhatri.android.pages.wdio.DragPage;
9 | import io.github.mfaisalkhatri.android.pages.wdio.FormPage;
10 | import io.github.mfaisalkhatri.android.pages.wdio.HomePage;
11 | import io.github.mfaisalkhatri.android.pages.wdio.SignUpPage;
12 | import io.github.mfaisalkhatri.android.pages.wdio.SwipePage;
13 | import io.github.mfaisalkhatri.android.pages.wdio.WebViewPage;
14 | import org.testng.annotations.Test;
15 |
16 | /**
17 | * @author Faisal Khatri
18 | * @since 10/13/2022
19 | **/
20 | public class AndroidTests extends BaseTest {
21 |
22 | @Test
23 | public void testChrome () {
24 | final TheInternetPage theInternetPage = new TheInternetPage ();
25 | theInternetPage.navigateToInternetWebsite ();
26 | assertEquals (theInternetPage.getPageHeader (), "Welcome to the-internet");
27 | }
28 |
29 | @Test
30 | public void testDragAndDrop () {
31 | final DragPage dragPage = new DragPage ();
32 | dragPage.dragAndDropPrices ();
33 | assertEquals (dragPage.congratulationsText (), "Congratulations");
34 | }
35 |
36 | @Test
37 | public void testFirefoxBrowser () {
38 | final TheInternetPage theInternetPage = new TheInternetPage ();
39 | theInternetPage.navigateToInternetWebsite ();
40 | assertEquals (theInternetPage.getPageHeader (), "Welcome to the-internet");
41 | }
42 |
43 | @Test
44 | public void testForm () {
45 | final String inputText = "This is Appium Test";
46 | final FormPage formPage = new FormPage ();
47 | formPage.fillForm (inputText, 2);
48 | assertEquals (formPage.getInputText (), inputText);
49 | assertEquals (formPage.getSwitchText (), "Click to turn the switch OFF");
50 | assertEquals (formPage.getSelectedDropdownValue (), "Appium is awesome");
51 | formPage.submitForm ();
52 |
53 | assertEquals (formPage.getActiveMessageTitle (), "This button is");
54 | assertEquals (formPage.getActiveMessage (), "This button is active");
55 | formPage.closeMessage ();
56 |
57 | assertEquals (formPage.checkInActiveBtn (), "false");
58 |
59 | }
60 |
61 | @Test
62 | public void testHomePageTitle () {
63 | final HomePage homePage = new HomePage ();
64 | assertEquals (homePage.getTitle (), "WEBDRIVER");
65 | assertEquals (homePage.tagLine (), "Demo app for the appium-boilerplate");
66 | }
67 |
68 | @Test
69 | public void testNotification () {
70 | final Notifications notifications = new Notifications ();
71 | assertTrue (notifications.checkNotificationIsDisplayed ());
72 | notifications.openNotificationPanel ();
73 |
74 | assertEquals (notifications.getAppNotificationTitle (), "Proverbial");
75 | assertEquals (notifications.getNotificationTitle (), "Test Notification");
76 | assertEquals (notifications.getNotificationText (), "Please enjoy this notification");
77 | }
78 |
79 | @Test
80 | public void testSignUp () {
81 | final SignUpPage signUpPage = new SignUpPage ();
82 | signUpPage.signUp ("test@email.com", "Pass@12345");
83 | assertEquals (signUpPage.getSuccessMessageTitle (), "Signed Up!");
84 | assertEquals (signUpPage.getSuccessMessage (), "You successfully signed up!");
85 | signUpPage.closeSuccessMessage ();
86 | }
87 |
88 | @Test
89 | public void testSwipeOnElement () {
90 | final SwipePage swipePage = new SwipePage ();
91 | swipePage.performHorizontalSwipe ();
92 | swipePage.performVerticalSwipe ();
93 |
94 | }
95 |
96 | @Test
97 | public void testSwipeTillElement () {
98 |
99 | final SwipePage swipePage = new SwipePage ();
100 | assertEquals (swipePage.swipeTillElement (), "You found me!!!");
101 | }
102 |
103 | @Test
104 | public void testSwipeUsingScrollIntoView () {
105 | final SwipePage swipePage = new SwipePage ();
106 | assertEquals (swipePage.swipeAndFindElement (), "You found me!!!");
107 | }
108 |
109 | @Test
110 | public void testWebView () {
111 | final WebViewPage webViewPage = new WebViewPage ();
112 |
113 | assertEquals (webViewPage.getMainPageText (),
114 | "Next-gen browser and mobile automation test framework for Node.js");
115 | webViewPage.switchToNativeApp ();
116 | }
117 |
118 | }
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/android/tests/BaseTest.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.android.tests;
2 |
3 | import org.testng.annotations.AfterClass;
4 | import org.testng.annotations.BeforeClass;
5 |
6 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.createAndroidDriver;
7 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.quitSession;
8 |
9 | /**
10 | * @author Faisal Khatri
11 | * @since 10/14/2022
12 | **/
13 | public class BaseTest {
14 |
15 | @BeforeClass(alwaysRun = true)
16 | public void testSetup() {
17 | createAndroidDriver();
18 | }
19 |
20 | @AfterClass(alwaysRun = true)
21 | public void tearDown() {
22 | quitSession();
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/pages/DragPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.Point;
5 | import org.openqa.selenium.WebElement;
6 | import org.openqa.selenium.interactions.Pause;
7 | import org.openqa.selenium.interactions.PointerInput;
8 | import org.openqa.selenium.interactions.Sequence;
9 |
10 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.getDriver;
11 | import static java.time.Duration.ofMillis;
12 | import static java.util.Collections.singletonList;
13 |
14 | public class DragPage {
15 |
16 | private WebElement dragLeft1() {
17 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l1"));
18 | }
19 |
20 | private WebElement dropLeft1() {
21 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l1"));
22 | }
23 |
24 | private WebElement dragLeft2() {
25 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l2"));
26 | }
27 |
28 | private WebElement dropLeft2() {
29 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l2"));
30 | }
31 |
32 | private WebElement dragLeft3() {
33 | return getDriver().findElement(AppiumBy.accessibilityId("drag-l3"));
34 | }
35 |
36 | private WebElement dropLeft3() {
37 | return getDriver().findElement(AppiumBy.accessibilityId("drop-l3"));
38 | }
39 |
40 | private WebElement dragRight1() {
41 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r1"));
42 | }
43 |
44 | private WebElement dropRight1() {
45 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r1"));
46 | }
47 |
48 | private WebElement dragRight2() {
49 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r2"));
50 | }
51 |
52 | private WebElement dropRight2() {
53 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r2"));
54 | }
55 |
56 | private WebElement dragRight3() {
57 | return getDriver().findElement(AppiumBy.accessibilityId("drag-r3"));
58 | }
59 |
60 | private WebElement dropRight3() {
61 | return getDriver().findElement(AppiumBy.accessibilityId("drop-r3"));
62 | }
63 |
64 | private WebElement dragCenter1() {
65 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c1"));
66 | }
67 |
68 | private WebElement dropCenter1() {
69 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c1"));
70 | }
71 |
72 | private WebElement dragCenter2() {
73 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c2"));
74 | }
75 |
76 | private WebElement dropCenter2() {
77 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c2"));
78 | }
79 |
80 | private WebElement dragCenter3() {
81 | return getDriver().findElement(AppiumBy.accessibilityId("drag-c3"));
82 | }
83 |
84 | private WebElement dropCenter3() {
85 | return getDriver().findElement(AppiumBy.accessibilityId("drop-c3"));
86 | }
87 |
88 |
89 | private Point getElementCenter(WebElement element) {
90 | var location = element.getLocation();
91 | var size = element.getSize();
92 |
93 | return new Point(location.getX() + (size.getWidth() / 2), location.getY() + (size.getHeight() / 2));
94 |
95 | }
96 |
97 | private void dragAndDrop(WebElement dragMe, WebElement dropTo) {
98 | Point source = getElementCenter(dragMe);
99 | Point target = getElementCenter(dropTo);
100 |
101 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
102 | Sequence dragAndDrop = new Sequence(finger, 1);
103 | dragAndDrop.addAction(finger.createPointerMove(ofMillis(0), PointerInput.Origin.viewport(), source.x, source.y));
104 | dragAndDrop.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
105 | dragAndDrop.addAction(new Pause(finger, ofMillis(600)));
106 | dragAndDrop.addAction(finger.createPointerMove(ofMillis(600),
107 | PointerInput.Origin.viewport(),
108 | target.x, target.y));
109 | dragAndDrop.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
110 | getDriver().perform(singletonList(dragAndDrop));
111 | }
112 |
113 | public void dragAndDropPrices() {
114 | HomePage homePage = new HomePage();
115 | homePage.openMenu("Drag");
116 | dragAndDrop(dragLeft1(), dropLeft1());
117 | dragAndDrop(dragLeft2(), dropLeft2());
118 | dragAndDrop(dragLeft3(), dropLeft3());
119 | dragAndDrop(dragRight1(), dropRight1());
120 | dragAndDrop(dragRight2(), dropRight2());
121 | dragAndDrop(dragRight3(), dropRight3());
122 | dragAndDrop(dragCenter1(), dropCenter1());
123 | dragAndDrop(dragCenter2(), dropCenter2());
124 | dragAndDrop(dragCenter3(), dropCenter3());
125 | }
126 |
127 | public String congratulationsText() {
128 | return getDriver().findElement(AppiumBy.accessibilityId("Congratulations You made it, click retry if you want to try it again. Retry")).getText();
129 | }
130 |
131 | }
132 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/pages/FormPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.WebElement;
5 |
6 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.getDriver;
7 |
8 |
9 | public class FormPage {
10 |
11 | private WebElement switchBtn() {
12 | return getDriver().findElement(AppiumBy.accessibilityId("switch"));
13 | }
14 |
15 | public String getSwitchText() {
16 | return getDriver().findElement(AppiumBy.accessibilityId("switch-text")).getText();
17 | }
18 |
19 | private WebElement dropdownField() {
20 | return getDriver().findElement(AppiumBy.accessibilityId("text_input"));
21 | }
22 |
23 | private void selectDropdownValue(String option) {
24 | getDriver().findElement(AppiumBy.iOSClassChain("**/XCUIElementTypePickerWheel[`value == \"Select an item...\"`]")).sendKeys(option);
25 | }
26 |
27 | public String getDropdownValue() {
28 | return dropdownField().getAttribute("value");
29 | }
30 |
31 | private WebElement doneBtn() {
32 | return getDriver().findElement(AppiumBy.accessibilityId("done_button"));
33 | }
34 |
35 | private WebElement activeBtn() {
36 | return getDriver().findElement(AppiumBy.accessibilityId("button-Active"));
37 | }
38 |
39 | public String getActiveMessageTitle() {
40 | return getDriver().findElement(AppiumBy.iOSClassChain("**/XCUIElementTypeStaticText[`label == \"This button is\"`]")).getText();
41 | }
42 |
43 | public String getActiveMessage() {
44 | return getDriver().findElement(AppiumBy.accessibilityId("This button is active")).getText();
45 | }
46 |
47 | private WebElement okBtn() {
48 | return getDriver().findElement(AppiumBy.accessibilityId("OK"));
49 | }
50 |
51 | private WebElement inActiveBtn() {
52 | return getDriver().findElement(AppiumBy.accessibilityId("button-Inactive"));
53 | }
54 |
55 | public void fillForm(String input, String option) {
56 | HomePage homePage = new HomePage();
57 | homePage.openMenu("Forms");
58 | inputField().sendKeys(input);
59 | switchBtn().click();
60 | dropdownField().click();
61 | selectDropdownValue(option);
62 | doneBtn().click();
63 | }
64 |
65 | public void submitForm() {
66 | activeBtn().click();
67 | }
68 |
69 | public String checkInActiveBtn() {
70 | return inActiveBtn().getAttribute("accessible");
71 | }
72 |
73 | public void closeMessage() {
74 | okBtn().click();
75 | }
76 |
77 | public String getInputText() {
78 | return getDriver().findElement(AppiumBy.accessibilityId("input-text-result")).getText();
79 | }
80 |
81 | private WebElement inputField() {
82 | return getDriver().findElement(AppiumBy.accessibilityId("text-input"));
83 | }
84 |
85 |
86 | }
87 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/pages/HomePage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.support.ui.ExpectedConditions;
5 | import org.openqa.selenium.support.ui.WebDriverWait;
6 |
7 | import java.time.Duration;
8 |
9 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.getDriver;
10 |
11 | public class HomePage {
12 |
13 | private final WebDriverWait wait;
14 |
15 | public HomePage() {
16 | this.wait = new WebDriverWait(getDriver(), Duration.ofSeconds(10));
17 | }
18 |
19 | public String getTitle() {
20 | return this.wait.until(ExpectedConditions.visibilityOfElementLocated
21 | (AppiumBy.iOSClassChain("**/XCUIElementTypeStaticText[`label == \"WEBDRIVER\"`]"))).getText();
22 | }
23 |
24 | public void openMenu(final String menuName) {
25 | getDriver().findElement(AppiumBy.accessibilityId(menuName)).click();
26 |
27 | }
28 |
29 | public String tagLine() {
30 | return this.wait.until(ExpectedConditions.visibilityOfElementLocated(
31 | AppiumBy.accessibilityId("Demo app for the appium-boilerplate"))).getText();
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/pages/SwipePage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import org.openqa.selenium.JavascriptExecutor;
5 | import org.openqa.selenium.Point;
6 | import org.openqa.selenium.TimeoutException;
7 | import org.openqa.selenium.WebElement;
8 | import org.openqa.selenium.interactions.Pause;
9 | import org.openqa.selenium.interactions.PointerInput;
10 | import org.openqa.selenium.interactions.Sequence;
11 | import org.openqa.selenium.remote.RemoteWebElement;
12 | import org.openqa.selenium.support.ui.ExpectedConditions;
13 | import org.openqa.selenium.support.ui.WebDriverWait;
14 |
15 | import java.time.Duration;
16 | import java.util.HashMap;
17 | import java.util.List;
18 | import java.util.Map;
19 |
20 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.getDriver;
21 |
22 | public class SwipePage {
23 |
24 |
25 | public SwipePage() {
26 | HomePage homePage = new HomePage();
27 | homePage.openMenu("Swipe");
28 | }
29 |
30 | public void performHorizontalSwipe() {
31 |
32 | WebElement sourceElement = getDriver().findElement(AppiumBy.xpath("(//XCUIElementTypeOther[@name=\"card\"])[1]"));
33 |
34 | Point source = sourceElement.getLocation();
35 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
36 | Sequence swipe = new Sequence(finger, 1);
37 | swipe.addAction(
38 | finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), source.x, source.y));
39 | swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
40 | swipe.addAction(
41 | finger.createPointerMove(Duration.ofMillis(1000), PointerInput.Origin.viewport(), source.x - (source.x * 5), source.y));
42 | swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
43 | swipe.addAction(new Pause(finger, Duration.ofMillis(600)));
44 | getDriver()
45 | .perform(List.of(swipe));
46 |
47 | }
48 |
49 | public void performVerticalSwipe() {
50 | var screenSize = getDriver()
51 | .manage()
52 | .window()
53 | .getSize();
54 | var xCenter = screenSize.width / 2;
55 | var yCenter = screenSize.height / 2;
56 | var center = new Point(xCenter, yCenter);
57 |
58 | PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
59 | Sequence swipe = new Sequence(finger, 1);
60 | swipe.addAction(
61 | finger.createPointerMove(Duration.ofMillis(0), PointerInput.Origin.viewport(), center.x, center.y));
62 | swipe.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
63 | swipe.addAction(
64 | finger.createPointerMove(Duration.ofMillis(1000), PointerInput.Origin.viewport(), center.x, center.y - (center.y * 80 / 100)));
65 | swipe.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
66 | swipe.addAction(new Pause(finger, Duration.ofMillis(1000)));
67 | getDriver()
68 | .perform(List.of(swipe));
69 |
70 | }
71 |
72 | public String swipeAndFindElement() {
73 | JavascriptExecutor js = getDriver();
74 | Map params = new HashMap<>();
75 | params.put("direction", "up");
76 | WebElement element = getDriver().findElement(AppiumBy.
77 | iOSClassChain("**/XCUIElementTypeStaticText[`label == \"You found me!!!\"`]"));
78 | params.put("element", ((RemoteWebElement) element).getId());
79 | js.executeScript("mobile: scrollToElement", params);
80 |
81 | return element.getText();
82 | }
83 |
84 | public String swipeTillElement() {
85 | WebDriverWait wait = new WebDriverWait(getDriver(), Duration.ofSeconds(1));
86 |
87 | WebElement targetElement = null;
88 | boolean found = false;
89 | while (!found) {
90 | try {
91 | targetElement = wait.until(ExpectedConditions.visibilityOfElementLocated(AppiumBy.
92 | iOSClassChain("**/XCUIElementTypeStaticText[`label == \"You found me!!!\"`]")));
93 | found = true;
94 | } catch (TimeoutException e) {
95 | performVerticalSwipe();
96 | }
97 | }
98 | return targetElement.getText();
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/pages/WebViewPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.pages;
2 |
3 | import org.openqa.selenium.By;
4 | import org.openqa.selenium.support.ui.WebDriverWait;
5 |
6 | import java.time.Duration;
7 | import java.util.Set;
8 |
9 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.getDriver;
10 |
11 | /**
12 | * @author Faisal Khatri
13 | * @since 4/16/2023
14 | **/
15 | public class WebViewPage {
16 |
17 |
18 | public void switchToWebView() {
19 | Set contextNames = getDriver().getContextHandles();
20 | WebDriverWait wait = new WebDriverWait(getDriver(), Duration.ofSeconds(10));
21 | wait.until(d -> contextNames.size() > 1);
22 | getDriver().context(contextNames.toArray()[1].toString());
23 | //getDriver().context("WEBVIEW_com.wdiodemoapp");
24 | }
25 |
26 | public void switchToNativeApp() {
27 | getDriver().context("NATIVE_APP");
28 | }
29 |
30 | public String getMainPageText() {
31 | HomePage homePage = new HomePage();
32 | homePage.openMenu("Webview");
33 | switchToWebView();
34 | return getDriver().findElement(By.cssSelector("header > div > p"))
35 | .getText();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/demo/BaseTest.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.demo;
2 |
3 | import io.appium.java_client.ios.IOSDriver;
4 | import io.appium.java_client.ios.options.XCUITestOptions;
5 | import io.appium.java_client.remote.AutomationName;
6 | import org.testng.annotations.AfterSuite;
7 | import org.testng.annotations.BeforeClass;
8 | import org.testng.annotations.Parameters;
9 |
10 | import java.net.MalformedURLException;
11 | import java.net.URL;
12 | import java.nio.file.Path;
13 | import java.time.Duration;
14 |
15 | public class BaseTest {
16 |
17 | private static final ThreadLocal IOSDRIVER = new ThreadLocal<>();
18 | private static final String APP_PATH = String.valueOf(Path.of(System.getProperty("user.dir"), "/src/test/resources/app", "wdioNativeDemoApp.app"));
19 |
20 | @BeforeClass(alwaysRun = true)
21 | @Parameters({"devicename", "udid", "platformversion", "wdaLocalPort"})
22 | public void testFormOnIPhone(final String deviceName, final String udid, final String platformVersion, final int wdaLocalPort) {
23 | final XCUITestOptions xcuiTestOptions = new XCUITestOptions().setPlatformName("iOS")
24 | .setDeviceName(deviceName)
25 | .setPlatformVersion(platformVersion)
26 | .setUdid(udid)
27 | .setWdaLocalPort(wdaLocalPort)
28 | .setApp(APP_PATH)
29 | .setAutomationName(AutomationName.IOS_XCUI_TEST)
30 | .setNewCommandTimeout(Duration.ofSeconds(60))
31 | .setNoReset(false);
32 |
33 | try {
34 | IOSDRIVER.set(new IOSDriver(new URL("http://localhost:4723"), xcuiTestOptions));
35 | } catch (final MalformedURLException e) {
36 | throw new Error("Remote URL is not set correctly!");
37 | }
38 | }
39 |
40 | public IOSDriver getIOSDriver() {
41 | return IOSDRIVER.get();
42 | }
43 |
44 | @AfterSuite(alwaysRun = true)
45 | public void tearDown() {
46 | getIOSDriver().quit();
47 | }
48 | }
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/demo/IOSParallelTests.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.demo;
2 |
3 | import io.github.mfaisalkhatri.ios.paralleltests.pages.FormPage;
4 | import org.testng.annotations.Test;
5 |
6 | import static org.testng.Assert.assertEquals;
7 |
8 | public class IOSParallelTests extends BaseTest {
9 |
10 | @Test
11 | public void testForm() {
12 |
13 | final String inputText = "This is Appium Test";
14 | final String dropdownValue = "This app is awesome";
15 |
16 | final FormPage formPage = new FormPage(getIOSDriver());
17 | formPage.fillForm(inputText, dropdownValue);
18 | assertEquals(formPage.getInputText(), inputText);
19 | assertEquals(formPage.getSwitchText(), "Click to turn the switch OFF");
20 | assertEquals(formPage.getDropdownValue(), dropdownValue);
21 | formPage.submitForm();
22 |
23 | assertEquals(formPage.getActiveMessageTitle(), "This button is");
24 | assertEquals(formPage.getActiveMessage(), "This button is active");
25 | formPage.closeMessage();
26 |
27 | assertEquals(formPage.checkInActiveBtn(), "false");
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/pages/FormPage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import io.appium.java_client.ios.IOSDriver;
5 | import org.openqa.selenium.WebElement;
6 |
7 |
8 | public class FormPage {
9 |
10 | private final IOSDriver iosDriver;
11 |
12 | public FormPage(final IOSDriver iosDriver) {
13 | this.iosDriver = iosDriver;
14 | }
15 |
16 | private WebElement switchBtn() {
17 | return this.iosDriver.findElement(AppiumBy.accessibilityId("switch"));
18 | }
19 |
20 | public String getSwitchText() {
21 | return this.iosDriver.findElement(AppiumBy.accessibilityId("switch-text")).getText();
22 | }
23 |
24 | private WebElement dropdownField() {
25 | return this.iosDriver.findElement(AppiumBy.accessibilityId("text_input"));
26 | }
27 |
28 | private void selectDropdownValue(final String option) {
29 | this.iosDriver.findElement(AppiumBy.iOSClassChain("**/XCUIElementTypePickerWheel[`value == \"Select an item...\"`]")).sendKeys(option);
30 | }
31 |
32 | public String getDropdownValue() {
33 | return dropdownField().getAttribute("value");
34 | }
35 |
36 | private WebElement doneBtn() {
37 | return this.iosDriver.findElement(AppiumBy.accessibilityId("done_button"));
38 | }
39 |
40 | private WebElement activeBtn() {
41 | return this.iosDriver.findElement(AppiumBy.accessibilityId("button-Active"));
42 | }
43 |
44 | public String getActiveMessageTitle() {
45 | return this.iosDriver.findElement(AppiumBy.iOSClassChain("**/XCUIElementTypeStaticText[`label == \"This button is\"`]")).getText();
46 | }
47 |
48 | public String getActiveMessage() {
49 | return this.iosDriver.findElement(AppiumBy.accessibilityId("This button is active")).getText();
50 | }
51 |
52 | private WebElement okBtn() {
53 | return this.iosDriver.findElement(AppiumBy.accessibilityId("OK"));
54 | }
55 |
56 | private WebElement inActiveBtn() {
57 | return this.iosDriver.findElement(AppiumBy.accessibilityId("button-Inactive"));
58 | }
59 |
60 | public void fillForm(final String input, final String option) {
61 | final HomePage homePage = new HomePage(this.iosDriver);
62 | homePage.openMenu("Forms");
63 | inputField().sendKeys(input);
64 | switchBtn().click();
65 | dropdownField().click();
66 | selectDropdownValue(option);
67 | doneBtn().click();
68 | }
69 |
70 | public String getInputText() {
71 | return this.iosDriver.findElement(AppiumBy.accessibilityId("input-text-result")).getText();
72 | }
73 |
74 | private WebElement inputField() {
75 | return this.iosDriver.findElement(AppiumBy.accessibilityId("text-input"));
76 | }
77 |
78 | public void submitForm() {
79 | activeBtn().click();
80 | }
81 |
82 | public String checkInActiveBtn() {
83 | return inActiveBtn().getAttribute("accessible");
84 | }
85 |
86 | public void closeMessage() {
87 | okBtn().click();
88 | }
89 |
90 |
91 | }
92 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/pages/HomePage.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.pages;
2 |
3 | import io.appium.java_client.AppiumBy;
4 | import io.appium.java_client.ios.IOSDriver;
5 | import org.openqa.selenium.support.ui.ExpectedConditions;
6 | import org.openqa.selenium.support.ui.WebDriverWait;
7 |
8 | import java.time.Duration;
9 |
10 | public class HomePage {
11 |
12 | private final WebDriverWait wait;
13 | private final IOSDriver iosDriver;
14 |
15 | public HomePage(final IOSDriver iosDriver) {
16 | this.iosDriver = iosDriver;
17 | this.wait = new WebDriverWait(this.iosDriver, Duration.ofSeconds(10));
18 | }
19 |
20 | public String getTitle() {
21 | return this.wait.until(ExpectedConditions.visibilityOfElementLocated
22 | (AppiumBy.iOSClassChain("**/XCUIElementTypeStaticText[`label == \"WEBDRIVER\"`]"))).getText();
23 | }
24 |
25 | public void openMenu(final String menuName) {
26 | this.wait.until(ExpectedConditions.visibilityOfElementLocated(AppiumBy.accessibilityId(menuName))).click();
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/tests/BaseTest.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.tests;
2 |
3 | import io.appium.java_client.ios.IOSDriver;
4 | import io.github.mfaisalkhatri.ios.paralleltests.pages.FormPage;
5 |
6 | import static org.testng.Assert.assertEquals;
7 |
8 | public class BaseTest {
9 |
10 |
11 | public void testForm(final IOSDriver iosDriver) {
12 |
13 | final String inputText = "This is Appium Test";
14 | final String dropdownValue = "This app is awesome";
15 |
16 | final FormPage formPage = new FormPage(iosDriver);
17 | formPage.fillForm(inputText, dropdownValue);
18 | assertEquals(formPage.getInputText(), inputText);
19 | assertEquals(formPage.getSwitchText(), "Click to turn the switch OFF");
20 | assertEquals(formPage.getDropdownValue(), dropdownValue);
21 | formPage.submitForm();
22 |
23 | assertEquals(formPage.getActiveMessageTitle(), "This button is");
24 | assertEquals(formPage.getActiveMessage(), "This button is active");
25 | formPage.closeMessage();
26 |
27 | assertEquals(formPage.checkInActiveBtn(), "false");
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/tests/IOSTestOnIPhoneFifteen.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.tests;
2 |
3 | import io.appium.java_client.ios.IOSDriver;
4 | import io.appium.java_client.ios.options.XCUITestOptions;
5 | import io.appium.java_client.remote.AutomationName;
6 | import org.testng.annotations.Test;
7 |
8 | import java.net.MalformedURLException;
9 | import java.net.URL;
10 | import java.nio.file.Path;
11 | import java.time.Duration;
12 |
13 | public class IOSTestOnIPhoneFifteen extends BaseTest {
14 |
15 | private static final String APP_PATH = String.valueOf(Path.of(System.getProperty("user.dir"), "/src/test/resources/app", "wdioNativeDemoApp.app"));
16 | private static final ThreadLocal IOSDRIVER = new ThreadLocal<>();
17 |
18 | @Test
19 | public void testFormOnIPhone() {
20 | final XCUITestOptions xcuiTestOptions = new XCUITestOptions().setPlatformName("iOS")
21 | .setDeviceName("iPhone 15")
22 | .setPlatformVersion("17.2")
23 | .setUdid("BB7125C2-174B-43D7-9B88-A982C40C006A")
24 | .setWdaLocalPort(8100)
25 | .setApp(APP_PATH)
26 | .setAutomationName(AutomationName.IOS_XCUI_TEST)
27 | .setNewCommandTimeout(Duration.ofSeconds(60))
28 | .setPlatformVersion("16.2")
29 | .setNoReset(false);
30 |
31 | try {
32 | IOSDRIVER.set(new IOSDriver(new URL("http://localhost:4723"), xcuiTestOptions));
33 | } catch (final MalformedURLException e) {
34 | throw new Error("Remote URL is not set correctly!");
35 | }
36 |
37 | testForm(IOSDRIVER.get());
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/paralleltests/tests/IOSTestOnIPhoneFifteenPro.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.paralleltests.tests;
2 |
3 | import io.appium.java_client.ios.IOSDriver;
4 | import io.appium.java_client.ios.options.XCUITestOptions;
5 | import io.appium.java_client.remote.AutomationName;
6 | import org.testng.annotations.Test;
7 |
8 | import java.net.MalformedURLException;
9 | import java.net.URL;
10 | import java.nio.file.Path;
11 | import java.time.Duration;
12 |
13 | public class IOSTestOnIPhoneFifteenPro extends BaseTest {
14 |
15 | private static final String APP_PATH = String.valueOf(Path.of(System.getProperty("user.dir"), "/src/test/resources/app", "wdioNativeDemoApp.app"));
16 | private static final ThreadLocal IOSDRIVER = new ThreadLocal<>();
17 |
18 | @Test
19 | public void testFormOnIPhone() {
20 | final XCUITestOptions xcuiTestOptions = new XCUITestOptions().setPlatformName("iOS")
21 | .setDeviceName("iPhone 15 Pro")
22 | .setPlatformVersion("17.2")
23 | .setUdid("E16563D0-CD8D-473E-BB3F-82A27BC4AEC7")
24 | .setWdaLocalPort(8101)
25 | .setApp(APP_PATH)
26 | .setAutomationName(AutomationName.IOS_XCUI_TEST)
27 | .setNewCommandTimeout(Duration.ofSeconds(60))
28 | .setNoReset(false);
29 |
30 | try {
31 | IOSDRIVER.set(new IOSDriver(new URL("http://localhost:4723"), xcuiTestOptions));
32 | } catch (final MalformedURLException e) {
33 | throw new Error("Remote URL is not set correctly!");
34 | }
35 |
36 | IOSDRIVER.get().manage().timeouts().implicitlyWait(Duration.ofSeconds(20));
37 | testForm(IOSDRIVER.get());
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/tests/BaseTest.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.tests;
2 |
3 | import org.testng.annotations.AfterClass;
4 | import org.testng.annotations.BeforeClass;
5 |
6 | import static io.github.mfaisalkhatri.drivers.AndroidDriverManager.quitSession;
7 | import static io.github.mfaisalkhatri.drivers.IOSDriverManager.createIOSDriver;
8 |
9 | /**
10 | * @author Faisal Khatri
11 | * @since 04/14/2023
12 | **/
13 | public class BaseTest {
14 |
15 | @BeforeClass(alwaysRun = true)
16 | public void testSetup() {
17 | createIOSDriver();
18 | }
19 |
20 | @AfterClass(alwaysRun = true)
21 | public void tearDown() {
22 | quitSession();
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/io/github/mfaisalkhatri/ios/tests/IOSTests.java:
--------------------------------------------------------------------------------
1 | package io.github.mfaisalkhatri.ios.tests;
2 |
3 |
4 | import io.github.mfaisalkhatri.ios.pages.*;
5 | import org.testng.annotations.Test;
6 |
7 | import static org.testng.Assert.assertEquals;
8 |
9 |
10 | public class IOSTests extends BaseTest {
11 |
12 | @Test
13 | public void testHomePageTitle() {
14 | HomePage homePage = new HomePage();
15 | assertEquals(homePage.getTitle(), "WEBDRIVER");
16 | assertEquals(homePage.tagLine(), "Demo app for the appium-boilerplate");
17 | }
18 |
19 | @Test
20 | public void testForm() {
21 | final String inputText = "This is Appium Test";
22 | String dropdownValue = "This app is awesome";
23 | FormPage formPage = new FormPage();
24 | formPage.fillForm(inputText, dropdownValue);
25 | assertEquals(formPage.getInputText(), inputText);
26 | assertEquals(formPage.getSwitchText(), "Click to turn the switch OFF");
27 | assertEquals(formPage.getDropdownValue(), dropdownValue);
28 | formPage.submitForm();
29 |
30 | assertEquals(formPage.getActiveMessageTitle(), "This button is");
31 | assertEquals(formPage.getActiveMessage(), "This button is active");
32 | formPage.closeMessage();
33 |
34 | assertEquals(formPage.checkInActiveBtn(), "false");
35 |
36 | }
37 |
38 | @Test
39 | public void testSwipeOnElement() {
40 | SwipePage swipePage = new SwipePage();
41 | swipePage.performHorizontalSwipe();
42 | swipePage.performVerticalSwipe();
43 |
44 | }
45 |
46 | @Test
47 | public void testSwipeTillElement() {
48 | SwipePage swipePage = new SwipePage();
49 | assertEquals(swipePage.swipeTillElement(), "You found me!!!");
50 | }
51 |
52 | @Test
53 | public void testSwipeAndFindElement() {
54 | SwipePage swipePage = new SwipePage();
55 | assertEquals(swipePage.swipeAndFindElement(), "You found me!!!");
56 |
57 | }
58 |
59 | @Test
60 | public void testWebView() {
61 | WebViewPage webViewPage = new WebViewPage();
62 |
63 | assertEquals(webViewPage.getMainPageText(), "Next-gen browser and mobile automation test framework for Node.js");
64 | webViewPage.switchToNativeApp();
65 | }
66 |
67 | @Test
68 | public void testDragAndDrop() {
69 | DragPage dragPage = new DragPage();
70 | dragPage.dragAndDropPrices();
71 | assertEquals(dragPage.congratulationsText(), "Congratulations You made it, click retry if you want to try it again. Retry");
72 | }
73 |
74 |
75 | }
76 |
--------------------------------------------------------------------------------
/src/test/resources/app/iOS-Real-Device-MyRNDemoApp.1.3.0-162.ipa:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/iOS-Real-Device-MyRNDemoApp.1.3.0-162.ipa
--------------------------------------------------------------------------------
/src/test/resources/app/iOS-Simulator-NativeDemoApp-0.4.0.app.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/iOS-Simulator-NativeDemoApp-0.4.0.app.zip
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/Info.plist
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeDirectory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeDirectory
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeRequirements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeRequirements
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeRequirements-1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeRequirements-1
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | en.lproj/Localizable.strings
8 |
9 | hash
10 |
11 | X9E0vQNrSNVBkgqtimYht4o7EEg=
12 |
13 | optional
14 |
15 |
16 |
17 | files2
18 |
19 | en.lproj/Localizable.strings
20 |
21 | hash
22 |
23 | X9E0vQNrSNVBkgqtimYht4o7EEg=
24 |
25 | hash2
26 |
27 | w1hfj69Kbb8WcP7mQdPFb//Z6XisMBZJwk6rwYndD5Y=
28 |
29 | optional
30 |
31 |
32 |
33 | rules
34 |
35 | ^.*
36 |
37 | ^.*\.lproj/
38 |
39 | optional
40 |
41 | weight
42 | 1000
43 |
44 | ^.*\.lproj/locversion.plist$
45 |
46 | omit
47 |
48 | weight
49 | 1100
50 |
51 | ^Base\.lproj/
52 |
53 | weight
54 | 1010
55 |
56 | ^version.plist$
57 |
58 |
59 | rules2
60 |
61 | .*\.dSYM($|/)
62 |
63 | weight
64 | 11
65 |
66 | ^(.*/)?\.DS_Store$
67 |
68 | omit
69 |
70 | weight
71 | 2000
72 |
73 | ^.*
74 |
75 | ^.*\.lproj/
76 |
77 | optional
78 |
79 | weight
80 | 1000
81 |
82 | ^.*\.lproj/locversion.plist$
83 |
84 | omit
85 |
86 | weight
87 | 1100
88 |
89 | ^Base\.lproj/
90 |
91 | weight
92 | 1010
93 |
94 | ^Info\.plist$
95 |
96 | omit
97 |
98 | weight
99 | 20
100 |
101 | ^PkgInfo$
102 |
103 | omit
104 |
105 | weight
106 | 20
107 |
108 | ^embedded\.provisionprofile$
109 |
110 | weight
111 | 20
112 |
113 | ^version\.plist$
114 |
115 | weight
116 | 20
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeSignature:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/_CodeSignature/CodeSignature
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AccessibilityResources.bundle/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | React
4 | */
5 | "alert"="alert";
6 | "checkbox"="checkbox";
7 | "combobox"="combo box";
8 | "menu"="menu";
9 | "menubar"="menu bar";
10 | "menuitem"="menu item";
11 | "progressbar"="progress bar";
12 | "radio"="radio button";
13 | "radiogroup"="radio group";
14 | "scrollbar"="scroll bar";
15 | "spinbutton"="spin button";
16 | "switch"="switch";
17 | "tab"="tab description";
18 | "tablist"="tab list";
19 | "timer"="timer";
20 | "toolbar"="tool bar";
21 | "checked"="checked";
22 | "unchecked"="not checked";
23 | "busy"="busy";
24 | "expanded"="expanded";
25 | "collapsed"="collapsed";
26 | "mixed"="mixed";
27 |
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AntDesign.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AntDesign.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon57x57.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon57x57@2x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Assets.car:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Assets.car
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Entypo.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/EvilIcons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Feather.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Fontisto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Fontisto.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Foundation.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Frameworks/OpenSSL.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Frameworks/OpenSSL.framework/Info.plist
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Frameworks/OpenSSL.framework/OpenSSL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Frameworks/OpenSSL.framework/OpenSSL
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Frameworks/OpenSSL.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Info.plist
8 |
9 | Jw3BhKlKMWVczndBFxVgNzN/9m8=
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 | ^Base\.lproj/
33 |
34 | weight
35 | 1010
36 |
37 | ^version.plist$
38 |
39 |
40 | rules2
41 |
42 | .*\.dSYM($|/)
43 |
44 | weight
45 | 11
46 |
47 | ^(.*/)?\.DS_Store$
48 |
49 | omit
50 |
51 | weight
52 | 2000
53 |
54 | ^.*
55 |
56 | ^.*\.lproj/
57 |
58 | optional
59 |
60 | weight
61 | 1000
62 |
63 | ^.*\.lproj/locversion.plist$
64 |
65 | omit
66 |
67 | weight
68 | 1100
69 |
70 | ^Base\.lproj/
71 |
72 | weight
73 | 1010
74 |
75 | ^Info\.plist$
76 |
77 | omit
78 |
79 | weight
80 | 20
81 |
82 | ^PkgInfo$
83 |
84 | omit
85 |
86 | weight
87 | 20
88 |
89 | ^embedded\.provisionprofile$
90 |
91 | weight
92 | 20
93 |
94 | ^version\.plist$
95 |
96 | weight
97 | 20
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Info.plist
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Ionicons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/Info.plist
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/MaterialCommunityIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/MaterialCommunityIcons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/MaterialIcons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Octicons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/Zocial.ttf
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/airbnb-star-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/airbnb-star-selected.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/airbnb-star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/airbnb-star.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/bell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/bell.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/heart.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/rocket.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-ratings/src/images/star.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/AntDesign.json:
--------------------------------------------------------------------------------
1 | {
2 | "stepforward": 58880,
3 | "stepbackward": 58881,
4 | "forward": 58882,
5 | "banckward": 58883,
6 | "caretright": 58884,
7 | "caretleft": 58885,
8 | "caretdown": 58886,
9 | "caretup": 58887,
10 | "rightcircle": 58888,
11 | "leftcircle": 58889,
12 | "upcircle": 58890,
13 | "downcircle": 58891,
14 | "rightcircleo": 58892,
15 | "leftcircleo": 58893,
16 | "upcircleo": 58894,
17 | "downcircleo": 58895,
18 | "verticleleft": 58896,
19 | "verticleright": 58897,
20 | "back": 58898,
21 | "retweet": 58899,
22 | "shrink": 58900,
23 | "arrowsalt": 58901,
24 | "doubleright": 58903,
25 | "doubleleft": 58904,
26 | "arrowdown": 58905,
27 | "arrowup": 58906,
28 | "arrowright": 58907,
29 | "arrowleft": 58908,
30 | "down": 58909,
31 | "up": 58910,
32 | "right": 58911,
33 | "left": 58912,
34 | "minussquareo": 58913,
35 | "minuscircle": 58914,
36 | "minuscircleo": 58915,
37 | "minus": 58916,
38 | "pluscircleo": 58917,
39 | "pluscircle": 58918,
40 | "plus": 58919,
41 | "infocirlce": 58920,
42 | "infocirlceo": 58921,
43 | "info": 58922,
44 | "exclamation": 58923,
45 | "exclamationcircle": 58924,
46 | "exclamationcircleo": 58925,
47 | "closecircle": 58926,
48 | "closecircleo": 58927,
49 | "checkcircle": 58928,
50 | "checkcircleo": 58929,
51 | "check": 58930,
52 | "close": 58931,
53 | "customerservice": 58932,
54 | "creditcard": 58933,
55 | "codesquareo": 58934,
56 | "book": 58935,
57 | "barschart": 58936,
58 | "bars": 58937,
59 | "question": 58938,
60 | "questioncircle": 58939,
61 | "questioncircleo": 58940,
62 | "pause": 58941,
63 | "pausecircle": 58942,
64 | "pausecircleo": 58943,
65 | "clockcircle": 58944,
66 | "clockcircleo": 58945,
67 | "swap": 58946,
68 | "swapleft": 58947,
69 | "swapright": 58948,
70 | "plussquareo": 58949,
71 | "frown": 58950,
72 | "menufold": 58968,
73 | "mail": 58969,
74 | "link": 58971,
75 | "areachart": 58972,
76 | "linechart": 58973,
77 | "home": 58974,
78 | "laptop": 58975,
79 | "star": 58976,
80 | "staro": 58977,
81 | "filter": 58979,
82 | "meho": 58982,
83 | "meh": 58983,
84 | "shoppingcart": 58984,
85 | "save": 58985,
86 | "user": 58986,
87 | "videocamera": 58987,
88 | "totop": 58988,
89 | "team": 58989,
90 | "sharealt": 58993,
91 | "setting": 58994,
92 | "picture": 58996,
93 | "phone": 58997,
94 | "paperclip": 58998,
95 | "notification": 58999,
96 | "menuunfold": 59001,
97 | "inbox": 59002,
98 | "lock": 59003,
99 | "qrcode": 59004,
100 | "tags": 59005,
101 | "tagso": 59006,
102 | "cloudo": 59007,
103 | "cloud": 59008,
104 | "cloudupload": 59009,
105 | "clouddownload": 59010,
106 | "clouddownloado": 59011,
107 | "clouduploado": 59012,
108 | "enviroment": 59013,
109 | "enviromento": 59014,
110 | "eye": 59015,
111 | "eyeo": 59016,
112 | "camera": 59017,
113 | "camerao": 59018,
114 | "windows": 59019,
115 | "export2": 59024,
116 | "export": 59025,
117 | "circledowno": 59027,
118 | "circledown": 59028,
119 | "hdd": 59034,
120 | "ie": 59035,
121 | "delete": 59039,
122 | "enter": 59040,
123 | "pushpino": 59041,
124 | "pushpin": 59042,
125 | "heart": 59043,
126 | "hearto": 59044,
127 | "smile-circle": 59047,
128 | "smileo": 59048,
129 | "frowno": 59049,
130 | "calculator": 59050,
131 | "chrome": 59052,
132 | "github": 59053,
133 | "iconfontdesktop": 59060,
134 | "caretcircleoup": 59061,
135 | "upload": 59062,
136 | "download": 59063,
137 | "piechart": 59064,
138 | "lock1": 59065,
139 | "unlock": 59066,
140 | "windowso": 59068,
141 | "dotchart": 59069,
142 | "barchart": 59070,
143 | "codesquare": 59071,
144 | "plussquare": 59072,
145 | "minussquare": 59073,
146 | "closesquare": 59074,
147 | "closesquareo": 59075,
148 | "checksquare": 59076,
149 | "checksquareo": 59077,
150 | "fastbackward": 59078,
151 | "fastforward": 59079,
152 | "upsquare": 59080,
153 | "downsquare": 59081,
154 | "leftsquare": 59082,
155 | "rightsquare": 59083,
156 | "rightsquareo": 59084,
157 | "leftsquareo": 59085,
158 | "down-square-o": 59086,
159 | "up-square-o": 59087,
160 | "play": 59088,
161 | "playcircleo": 59089,
162 | "tag": 59090,
163 | "tago": 59091,
164 | "addfile": 59664,
165 | "folder1": 58978,
166 | "file1": 58980,
167 | "switcher": 59667,
168 | "addfolder": 59668,
169 | "folderopen": 59033,
170 | "search1": 58992,
171 | "ellipsis1": 58951,
172 | "calendar": 59067,
173 | "filetext1": 59032,
174 | "copy1": 58952,
175 | "jpgfile1": 59036,
176 | "pdffile1": 59059,
177 | "exclefile1": 59056,
178 | "pptfile1": 59057,
179 | "unknowfile1": 59055,
180 | "wordfile1": 59058,
181 | "dingding": 59683,
182 | "dingding-o": 59685,
183 | "mobile1": 59000,
184 | "tablet1": 58990,
185 | "bells": 58958,
186 | "disconnect": 58959,
187 | "database": 58960,
188 | "barcode": 58962,
189 | "hourglass": 58963,
190 | "key": 58964,
191 | "flag": 58965,
192 | "layout": 58966,
193 | "printer": 58995,
194 | "USB": 59095,
195 | "skin": 59096,
196 | "tool": 59097,
197 | "car": 59100,
198 | "addusergroup": 59101,
199 | "carryout": 59103,
200 | "deleteuser": 59104,
201 | "deleteusergroup": 59105,
202 | "man": 59106,
203 | "isv": 59107,
204 | "gift": 59108,
205 | "idcard": 59109,
206 | "medicinebox": 59110,
207 | "redenvelopes": 59111,
208 | "rest": 59112,
209 | "Safety": 59114,
210 | "wallet": 59115,
211 | "woman": 59116,
212 | "adduser": 59117,
213 | "bank": 59118,
214 | "Trophy": 59119,
215 | "loading1": 59054,
216 | "loading2": 58957,
217 | "like2": 59037,
218 | "dislike2": 59038,
219 | "like1": 58956,
220 | "dislike1": 58955,
221 | "bulb1": 58953,
222 | "rocket1": 59663,
223 | "select1": 58954,
224 | "apple1": 59020,
225 | "apple-o": 59092,
226 | "android1": 59704,
227 | "android": 59021,
228 | "aliwangwang-o1": 59023,
229 | "aliwangwang": 59022,
230 | "pay-circle1": 59045,
231 | "pay-circle-o1": 59046,
232 | "poweroff": 59093,
233 | "trademark": 58961,
234 | "find": 59099,
235 | "copyright": 59102,
236 | "sound": 59113,
237 | "earth": 59121,
238 | "wifi": 59094,
239 | "sync": 59098,
240 | "login": 58967,
241 | "logout": 58970,
242 | "reload1": 58902,
243 | "message1": 59051,
244 | "shake": 59727,
245 | "API": 59729,
246 | "appstore-o": 59029,
247 | "appstore1": 59030,
248 | "scan1": 59031,
249 | "exception1": 58981,
250 | "contacts": 59120,
251 | "solution1": 58991,
252 | "fork": 59122,
253 | "edit": 59026,
254 | "form": 59798,
255 | "warning": 59799,
256 | "table": 59800,
257 | "profile": 59801,
258 | "dashboard": 59802,
259 | "indent-left": 59814,
260 | "indent-right": 59815,
261 | "menu-unfold": 59820,
262 | "menu-fold": 59821,
263 | "antdesign": 59826,
264 | "alipay-square": 59827,
265 | "codepen-circle": 59828,
266 | "google": 59829,
267 | "amazon": 59830,
268 | "codepen": 59831,
269 | "facebook-square": 59832,
270 | "dropbox": 59833,
271 | "googleplus": 59834,
272 | "linkedin-square": 59835,
273 | "medium-monogram": 59836,
274 | "gitlab": 59837,
275 | "medium-wordmark": 59838,
276 | "QQ": 59839,
277 | "skype": 59840,
278 | "taobao-square": 59841,
279 | "alipay-circle": 59842,
280 | "youtube": 59843,
281 | "wechat": 59844,
282 | "twitter": 59845,
283 | "weibo": 59846,
284 | "HTML": 59847,
285 | "taobao-circle": 59123,
286 | "weibo-circle": 59124,
287 | "weibo-square": 59125,
288 | "CodeSandbox": 59860,
289 | "aliyun": 59892,
290 | "zhihu": 59139,
291 | "behance": 59143,
292 | "dribbble": 59145,
293 | "dribbble-square": 59146,
294 | "behance-square": 59144,
295 | "file-markdown": 59140,
296 | "instagram": 59147,
297 | "yuque": 59148,
298 | "slack": 59141,
299 | "slack-square": 59142
300 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Entypo.json:
--------------------------------------------------------------------------------
1 | {
2 | "500px": 61696,
3 | "500px-with-circle": 61697,
4 | "add-to-list": 61698,
5 | "add-user": 61699,
6 | "address": 61700,
7 | "adjust": 61701,
8 | "air": 61702,
9 | "aircraft": 61703,
10 | "aircraft-landing": 61704,
11 | "aircraft-take-off": 61705,
12 | "align-bottom": 61706,
13 | "align-horizontal-middle": 61707,
14 | "align-left": 61708,
15 | "align-right": 61709,
16 | "align-top": 61710,
17 | "align-vertical-middle": 61711,
18 | "app-store": 61712,
19 | "archive": 61713,
20 | "area-graph": 61714,
21 | "arrow-bold-down": 61715,
22 | "arrow-bold-left": 61716,
23 | "arrow-bold-right": 61717,
24 | "arrow-bold-up": 61718,
25 | "arrow-down": 61719,
26 | "arrow-left": 61720,
27 | "arrow-long-down": 61721,
28 | "arrow-long-left": 61722,
29 | "arrow-long-right": 61723,
30 | "arrow-long-up": 61724,
31 | "arrow-right": 61725,
32 | "arrow-up": 61726,
33 | "arrow-with-circle-down": 61727,
34 | "arrow-with-circle-left": 61728,
35 | "arrow-with-circle-right": 61729,
36 | "arrow-with-circle-up": 61730,
37 | "attachment": 61731,
38 | "awareness-ribbon": 61732,
39 | "back": 61733,
40 | "back-in-time": 61734,
41 | "baidu": 61735,
42 | "bar-graph": 61736,
43 | "basecamp": 61737,
44 | "battery": 61738,
45 | "beamed-note": 61739,
46 | "behance": 61740,
47 | "bell": 61741,
48 | "blackboard": 61742,
49 | "block": 61743,
50 | "book": 61744,
51 | "bookmark": 61745,
52 | "bookmarks": 61746,
53 | "bowl": 61747,
54 | "box": 61748,
55 | "briefcase": 61749,
56 | "browser": 61750,
57 | "brush": 61751,
58 | "bucket": 61752,
59 | "bug": 61753,
60 | "cake": 61754,
61 | "calculator": 61755,
62 | "calendar": 61756,
63 | "camera": 61757,
64 | "ccw": 61758,
65 | "chat": 61759,
66 | "check": 61760,
67 | "chevron-down": 61761,
68 | "chevron-left": 61762,
69 | "chevron-right": 61763,
70 | "chevron-small-down": 61764,
71 | "chevron-small-left": 61765,
72 | "chevron-small-right": 61766,
73 | "chevron-small-up": 61767,
74 | "chevron-thin-down": 61768,
75 | "chevron-thin-left": 61769,
76 | "chevron-thin-right": 61770,
77 | "chevron-thin-up": 61771,
78 | "chevron-up": 61772,
79 | "chevron-with-circle-down": 61773,
80 | "chevron-with-circle-left": 61774,
81 | "chevron-with-circle-right": 61775,
82 | "chevron-with-circle-up": 61776,
83 | "circle": 61777,
84 | "circle-with-cross": 61778,
85 | "circle-with-minus": 61779,
86 | "circle-with-plus": 61780,
87 | "circular-graph": 61781,
88 | "clapperboard": 61782,
89 | "classic-computer": 61783,
90 | "clipboard": 61784,
91 | "clock": 61785,
92 | "cloud": 61786,
93 | "code": 61787,
94 | "cog": 61788,
95 | "colours": 61789,
96 | "compass": 61790,
97 | "controller-fast-backward": 61791,
98 | "controller-fast-forward": 61792,
99 | "controller-jump-to-start": 61793,
100 | "controller-next": 61794,
101 | "controller-paus": 61795,
102 | "controller-play": 61796,
103 | "controller-record": 61797,
104 | "controller-stop": 61798,
105 | "controller-volume": 61799,
106 | "copy": 61800,
107 | "creative-cloud": 61801,
108 | "creative-commons": 61802,
109 | "creative-commons-attribution": 61803,
110 | "creative-commons-noderivs": 61804,
111 | "creative-commons-noncommercial-eu": 61805,
112 | "creative-commons-noncommercial-us": 61806,
113 | "creative-commons-public-domain": 61807,
114 | "creative-commons-remix": 61808,
115 | "creative-commons-share": 61809,
116 | "creative-commons-sharealike": 61810,
117 | "credit": 61811,
118 | "credit-card": 61812,
119 | "crop": 61813,
120 | "cross": 61814,
121 | "cup": 61815,
122 | "cw": 61816,
123 | "cycle": 61817,
124 | "database": 61818,
125 | "dial-pad": 61819,
126 | "direction": 61820,
127 | "document": 61821,
128 | "document-landscape": 61822,
129 | "documents": 61823,
130 | "dot-single": 61824,
131 | "dots-three-horizontal": 61825,
132 | "dots-three-vertical": 61826,
133 | "dots-two-horizontal": 61827,
134 | "dots-two-vertical": 61828,
135 | "download": 61829,
136 | "dribbble": 61830,
137 | "dribbble-with-circle": 61831,
138 | "drink": 61832,
139 | "drive": 61833,
140 | "drop": 61834,
141 | "dropbox": 61835,
142 | "edit": 61836,
143 | "email": 61837,
144 | "emoji-flirt": 61838,
145 | "emoji-happy": 61839,
146 | "emoji-neutral": 61840,
147 | "emoji-sad": 61841,
148 | "erase": 61842,
149 | "eraser": 61843,
150 | "evernote": 61844,
151 | "export": 61845,
152 | "eye": 61846,
153 | "eye-with-line": 61847,
154 | "facebook": 61848,
155 | "facebook-with-circle": 61849,
156 | "feather": 61850,
157 | "fingerprint": 61851,
158 | "flag": 61852,
159 | "flash": 61853,
160 | "flashlight": 61854,
161 | "flat-brush": 61855,
162 | "flattr": 61856,
163 | "flickr": 61857,
164 | "flickr-with-circle": 61858,
165 | "flow-branch": 61859,
166 | "flow-cascade": 61860,
167 | "flow-line": 61861,
168 | "flow-parallel": 61862,
169 | "flow-tree": 61863,
170 | "flower": 61864,
171 | "folder": 61865,
172 | "folder-images": 61866,
173 | "folder-music": 61867,
174 | "folder-video": 61868,
175 | "forward": 61869,
176 | "foursquare": 61870,
177 | "funnel": 61871,
178 | "game-controller": 61872,
179 | "gauge": 61873,
180 | "github": 61874,
181 | "github-with-circle": 61875,
182 | "globe": 61876,
183 | "google-": 61877,
184 | "google--with-circle": 61878,
185 | "google-drive": 61879,
186 | "google-hangouts": 61880,
187 | "google-play": 61881,
188 | "graduation-cap": 61882,
189 | "grid": 61883,
190 | "grooveshark": 61884,
191 | "hair-cross": 61885,
192 | "hand": 61886,
193 | "heart": 61887,
194 | "heart-outlined": 61888,
195 | "help": 61889,
196 | "help-with-circle": 61890,
197 | "home": 61891,
198 | "hour-glass": 61892,
199 | "houzz": 61893,
200 | "icloud": 61894,
201 | "image": 61895,
202 | "image-inverted": 61896,
203 | "images": 61897,
204 | "inbox": 61898,
205 | "infinity": 61899,
206 | "info": 61900,
207 | "info-with-circle": 61901,
208 | "instagram": 61902,
209 | "instagram-with-circle": 61903,
210 | "install": 61904,
211 | "key": 61905,
212 | "keyboard": 61906,
213 | "lab-flask": 61907,
214 | "landline": 61908,
215 | "language": 61909,
216 | "laptop": 61910,
217 | "lastfm": 61911,
218 | "lastfm-with-circle": 61912,
219 | "layers": 61913,
220 | "leaf": 61914,
221 | "level-down": 61915,
222 | "level-up": 61916,
223 | "lifebuoy": 61917,
224 | "light-bulb": 61918,
225 | "light-down": 61919,
226 | "light-up": 61920,
227 | "line-graph": 61921,
228 | "link": 61922,
229 | "linkedin": 61923,
230 | "linkedin-with-circle": 61924,
231 | "list": 61925,
232 | "location": 61926,
233 | "location-pin": 61927,
234 | "lock": 61928,
235 | "lock-open": 61929,
236 | "log-out": 61930,
237 | "login": 61931,
238 | "loop": 61932,
239 | "magnet": 61933,
240 | "magnifying-glass": 61934,
241 | "mail": 61935,
242 | "mail-with-circle": 61936,
243 | "man": 61937,
244 | "map": 61938,
245 | "mask": 61939,
246 | "medal": 61940,
247 | "medium": 61941,
248 | "medium-with-circle": 61942,
249 | "megaphone": 61943,
250 | "menu": 61944,
251 | "merge": 61945,
252 | "message": 61946,
253 | "mic": 61947,
254 | "minus": 61948,
255 | "mixi": 61949,
256 | "mobile": 61950,
257 | "modern-mic": 61951,
258 | "moon": 61952,
259 | "mouse": 61953,
260 | "mouse-pointer": 61954,
261 | "music": 61955,
262 | "network": 61956,
263 | "new": 61957,
264 | "new-message": 61958,
265 | "news": 61959,
266 | "newsletter": 61960,
267 | "note": 61961,
268 | "notification": 61962,
269 | "notifications-off": 61963,
270 | "old-mobile": 61964,
271 | "old-phone": 61965,
272 | "onedrive": 61966,
273 | "open-book": 61967,
274 | "palette": 61968,
275 | "paper-plane": 61969,
276 | "paypal": 61970,
277 | "pencil": 61971,
278 | "phone": 61972,
279 | "picasa": 61973,
280 | "pie-chart": 61974,
281 | "pin": 61975,
282 | "pinterest": 61976,
283 | "pinterest-with-circle": 61977,
284 | "plus": 61978,
285 | "popup": 61979,
286 | "power-plug": 61980,
287 | "price-ribbon": 61981,
288 | "price-tag": 61982,
289 | "print": 61983,
290 | "progress-empty": 61984,
291 | "progress-full": 61985,
292 | "progress-one": 61986,
293 | "progress-two": 61987,
294 | "publish": 61988,
295 | "qq": 61989,
296 | "qq-with-circle": 61990,
297 | "quote": 61991,
298 | "radio": 61992,
299 | "raft": 61993,
300 | "raft-with-circle": 61994,
301 | "rainbow": 61995,
302 | "rdio": 61996,
303 | "rdio-with-circle": 61997,
304 | "remove-user": 61998,
305 | "renren": 61999,
306 | "reply": 62000,
307 | "reply-all": 62001,
308 | "resize-100-": 62002,
309 | "resize-full-screen": 62003,
310 | "retweet": 62004,
311 | "rocket": 62005,
312 | "round-brush": 62006,
313 | "rss": 62007,
314 | "ruler": 62008,
315 | "save": 62009,
316 | "scissors": 62010,
317 | "scribd": 62011,
318 | "select-arrows": 62012,
319 | "share": 62013,
320 | "share-alternative": 62014,
321 | "shareable": 62015,
322 | "shield": 62016,
323 | "shop": 62017,
324 | "shopping-bag": 62018,
325 | "shopping-basket": 62019,
326 | "shopping-cart": 62020,
327 | "shuffle": 62021,
328 | "signal": 62022,
329 | "sina-weibo": 62023,
330 | "skype": 62024,
331 | "skype-with-circle": 62025,
332 | "slideshare": 62026,
333 | "smashing": 62027,
334 | "sound": 62028,
335 | "sound-mix": 62029,
336 | "sound-mute": 62030,
337 | "soundcloud": 62031,
338 | "sports-club": 62032,
339 | "spotify": 62033,
340 | "spotify-with-circle": 62034,
341 | "spreadsheet": 62035,
342 | "squared-cross": 62036,
343 | "squared-minus": 62037,
344 | "squared-plus": 62038,
345 | "star": 62039,
346 | "star-outlined": 62040,
347 | "stopwatch": 62041,
348 | "stumbleupon": 62042,
349 | "stumbleupon-with-circle": 62043,
350 | "suitcase": 62044,
351 | "swap": 62045,
352 | "swarm": 62046,
353 | "sweden": 62047,
354 | "switch": 62048,
355 | "tablet": 62049,
356 | "tablet-mobile-combo": 62050,
357 | "tag": 62051,
358 | "text": 62052,
359 | "text-document": 62053,
360 | "text-document-inverted": 62054,
361 | "thermometer": 62055,
362 | "thumbs-down": 62056,
363 | "thumbs-up": 62057,
364 | "thunder-cloud": 62058,
365 | "ticket": 62059,
366 | "time-slot": 62060,
367 | "tools": 62061,
368 | "traffic-cone": 62062,
369 | "trash": 62063,
370 | "tree": 62064,
371 | "triangle-down": 62065,
372 | "triangle-left": 62066,
373 | "triangle-right": 62067,
374 | "triangle-up": 62068,
375 | "tripadvisor": 62069,
376 | "trophy": 62070,
377 | "tumblr": 62071,
378 | "tumblr-with-circle": 62072,
379 | "tv": 62073,
380 | "twitter": 62074,
381 | "twitter-with-circle": 62075,
382 | "typing": 62076,
383 | "uninstall": 62077,
384 | "unread": 62078,
385 | "untag": 62079,
386 | "upload": 62080,
387 | "upload-to-cloud": 62081,
388 | "user": 62082,
389 | "users": 62083,
390 | "v-card": 62084,
391 | "video": 62085,
392 | "video-camera": 62086,
393 | "vimeo": 62087,
394 | "vimeo-with-circle": 62088,
395 | "vine": 62089,
396 | "vine-with-circle": 62090,
397 | "vinyl": 62091,
398 | "vk": 62092,
399 | "vk-alternitive": 62093,
400 | "vk-with-circle": 62094,
401 | "voicemail": 62095,
402 | "wallet": 62096,
403 | "warning": 62097,
404 | "water": 62098,
405 | "windows-store": 62099,
406 | "xing": 62100,
407 | "xing-with-circle": 62101,
408 | "yelp": 62102,
409 | "youko": 62103,
410 | "youko-with-circle": 62104,
411 | "youtube": 62105,
412 | "youtube-with-circle": 62106
413 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/EvilIcons.json:
--------------------------------------------------------------------------------
1 | {
2 | "archive": 61696,
3 | "arrow-down": 61697,
4 | "arrow-left": 61698,
5 | "arrow-right": 61699,
6 | "arrow-up": 61700,
7 | "bell": 61701,
8 | "calendar": 61702,
9 | "camera": 61703,
10 | "cart": 61704,
11 | "chart": 61705,
12 | "check": 61706,
13 | "chevron-down": 61707,
14 | "chevron-left": 61708,
15 | "chevron-right": 61709,
16 | "chevron-up": 61710,
17 | "clock": 61711,
18 | "close": 61712,
19 | "close-o": 61713,
20 | "comment": 61714,
21 | "credit-card": 61715,
22 | "envelope": 61716,
23 | "exclamation": 61717,
24 | "external-link": 61718,
25 | "eye": 61719,
26 | "gear": 61720,
27 | "heart": 61721,
28 | "image": 61722,
29 | "like": 61723,
30 | "link": 61724,
31 | "location": 61725,
32 | "lock": 61726,
33 | "minus": 61727,
34 | "navicon": 61728,
35 | "paperclip": 61729,
36 | "pencil": 61730,
37 | "play": 61731,
38 | "plus": 61732,
39 | "pointer": 61733,
40 | "question": 61734,
41 | "redo": 61735,
42 | "refresh": 61736,
43 | "retweet": 61737,
44 | "sc-facebook": 61738,
45 | "sc-github": 61739,
46 | "sc-google-plus": 61740,
47 | "sc-instagram": 61741,
48 | "sc-linkedin": 61742,
49 | "sc-odnoklassniki": 61743,
50 | "sc-pinterest": 61744,
51 | "sc-skype": 61745,
52 | "sc-soundcloud": 61746,
53 | "sc-telegram": 61747,
54 | "sc-tumblr": 61748,
55 | "sc-twitter": 61749,
56 | "sc-vimeo": 61750,
57 | "sc-vk": 61751,
58 | "sc-youtube": 61752,
59 | "search": 61753,
60 | "share-apple": 61754,
61 | "share-google": 61755,
62 | "spinner": 61756,
63 | "spinner-2": 61757,
64 | "spinner-3": 61758,
65 | "star": 61759,
66 | "tag": 61760,
67 | "trash": 61761,
68 | "trophy": 61762,
69 | "undo": 61763,
70 | "unlock": 61764,
71 | "user": 61765
72 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Feather.json:
--------------------------------------------------------------------------------
1 | {
2 | "activity": 61696,
3 | "airplay": 61697,
4 | "alert-circle": 61698,
5 | "alert-octagon": 61699,
6 | "alert-triangle": 61700,
7 | "align-center": 61701,
8 | "align-justify": 61702,
9 | "align-left": 61703,
10 | "align-right": 61704,
11 | "anchor": 61705,
12 | "aperture": 61706,
13 | "archive": 61707,
14 | "arrow-down": 61708,
15 | "arrow-down-circle": 61709,
16 | "arrow-down-left": 61710,
17 | "arrow-down-right": 61711,
18 | "arrow-left": 61712,
19 | "arrow-left-circle": 61713,
20 | "arrow-right": 61714,
21 | "arrow-right-circle": 61715,
22 | "arrow-up": 61716,
23 | "arrow-up-circle": 61717,
24 | "arrow-up-left": 61718,
25 | "arrow-up-right": 61719,
26 | "at-sign": 61720,
27 | "award": 61721,
28 | "bar-chart": 61722,
29 | "bar-chart-2": 61723,
30 | "battery": 61724,
31 | "battery-charging": 61725,
32 | "bell": 61726,
33 | "bell-off": 61727,
34 | "bluetooth": 61728,
35 | "bold": 61729,
36 | "book": 61730,
37 | "book-open": 61731,
38 | "bookmark": 61732,
39 | "box": 61733,
40 | "briefcase": 61734,
41 | "calendar": 61735,
42 | "camera": 61736,
43 | "camera-off": 61737,
44 | "cast": 61738,
45 | "check": 61739,
46 | "check-circle": 61740,
47 | "check-square": 61741,
48 | "chevron-down": 61742,
49 | "chevron-left": 61743,
50 | "chevron-right": 61744,
51 | "chevron-up": 61745,
52 | "chevrons-down": 61746,
53 | "chevrons-left": 61747,
54 | "chevrons-right": 61748,
55 | "chevrons-up": 61749,
56 | "chrome": 61750,
57 | "circle": 61751,
58 | "clipboard": 61752,
59 | "clock": 61753,
60 | "cloud": 61754,
61 | "cloud-drizzle": 61755,
62 | "cloud-lightning": 61756,
63 | "cloud-off": 61757,
64 | "cloud-rain": 61758,
65 | "cloud-snow": 61759,
66 | "code": 61760,
67 | "codepen": 61761,
68 | "codesandbox": 61762,
69 | "coffee": 61763,
70 | "columns": 61764,
71 | "command": 61765,
72 | "compass": 61766,
73 | "copy": 61767,
74 | "corner-down-left": 61768,
75 | "corner-down-right": 61769,
76 | "corner-left-down": 61770,
77 | "corner-left-up": 61771,
78 | "corner-right-down": 61772,
79 | "corner-right-up": 61773,
80 | "corner-up-left": 61774,
81 | "corner-up-right": 61775,
82 | "cpu": 61776,
83 | "credit-card": 61777,
84 | "crop": 61778,
85 | "crosshair": 61779,
86 | "database": 61780,
87 | "delete": 61781,
88 | "disc": 61782,
89 | "divide": 61783,
90 | "divide-circle": 61784,
91 | "divide-square": 61785,
92 | "dollar-sign": 61786,
93 | "download": 61787,
94 | "download-cloud": 61788,
95 | "dribbble": 61789,
96 | "droplet": 61790,
97 | "edit": 61791,
98 | "edit-2": 61792,
99 | "edit-3": 61793,
100 | "external-link": 61794,
101 | "eye": 61795,
102 | "eye-off": 61796,
103 | "facebook": 61797,
104 | "fast-forward": 61798,
105 | "feather": 61799,
106 | "figma": 61800,
107 | "file": 61801,
108 | "file-minus": 61802,
109 | "file-plus": 61803,
110 | "file-text": 61804,
111 | "film": 61805,
112 | "filter": 61806,
113 | "flag": 61807,
114 | "folder": 61808,
115 | "folder-minus": 61809,
116 | "folder-plus": 61810,
117 | "framer": 61811,
118 | "frown": 61812,
119 | "gift": 61813,
120 | "git-branch": 61814,
121 | "git-commit": 61815,
122 | "git-merge": 61816,
123 | "git-pull-request": 61817,
124 | "github": 61818,
125 | "gitlab": 61819,
126 | "globe": 61820,
127 | "grid": 61821,
128 | "hard-drive": 61822,
129 | "hash": 61823,
130 | "headphones": 61824,
131 | "heart": 61825,
132 | "help-circle": 61826,
133 | "hexagon": 61827,
134 | "home": 61828,
135 | "image": 61829,
136 | "inbox": 61830,
137 | "info": 61831,
138 | "instagram": 61832,
139 | "italic": 61833,
140 | "key": 61834,
141 | "layers": 61835,
142 | "layout": 61836,
143 | "life-buoy": 61837,
144 | "link": 61838,
145 | "link-2": 61839,
146 | "linkedin": 61840,
147 | "list": 61841,
148 | "loader": 61842,
149 | "lock": 61843,
150 | "log-in": 61844,
151 | "log-out": 61845,
152 | "mail": 61846,
153 | "map": 61847,
154 | "map-pin": 61848,
155 | "maximize": 61849,
156 | "maximize-2": 61850,
157 | "meh": 61851,
158 | "menu": 61852,
159 | "message-circle": 61853,
160 | "message-square": 61854,
161 | "mic": 61855,
162 | "mic-off": 61856,
163 | "minimize": 61857,
164 | "minimize-2": 61858,
165 | "minus": 61859,
166 | "minus-circle": 61860,
167 | "minus-square": 61861,
168 | "monitor": 61862,
169 | "moon": 61863,
170 | "more-horizontal": 61864,
171 | "more-vertical": 61865,
172 | "mouse-pointer": 61866,
173 | "move": 61867,
174 | "music": 61868,
175 | "navigation": 61869,
176 | "navigation-2": 61870,
177 | "octagon": 61871,
178 | "package": 61872,
179 | "paperclip": 61873,
180 | "pause": 61874,
181 | "pause-circle": 61875,
182 | "pen-tool": 61876,
183 | "percent": 61877,
184 | "phone": 61878,
185 | "phone-call": 61879,
186 | "phone-forwarded": 61880,
187 | "phone-incoming": 61881,
188 | "phone-missed": 61882,
189 | "phone-off": 61883,
190 | "phone-outgoing": 61884,
191 | "pie-chart": 61885,
192 | "play": 61886,
193 | "play-circle": 61887,
194 | "plus": 61888,
195 | "plus-circle": 61889,
196 | "plus-square": 61890,
197 | "pocket": 61891,
198 | "power": 61892,
199 | "printer": 61893,
200 | "radio": 61894,
201 | "refresh-ccw": 61895,
202 | "refresh-cw": 61896,
203 | "repeat": 61897,
204 | "rewind": 61898,
205 | "rotate-ccw": 61899,
206 | "rotate-cw": 61900,
207 | "rss": 61901,
208 | "save": 61902,
209 | "scissors": 61903,
210 | "search": 61904,
211 | "send": 61905,
212 | "server": 61906,
213 | "settings": 61907,
214 | "share": 61908,
215 | "share-2": 61909,
216 | "shield": 61910,
217 | "shield-off": 61911,
218 | "shopping-bag": 61912,
219 | "shopping-cart": 61913,
220 | "shuffle": 61914,
221 | "sidebar": 61915,
222 | "skip-back": 61916,
223 | "skip-forward": 61917,
224 | "slack": 61918,
225 | "slash": 61919,
226 | "sliders": 61920,
227 | "smartphone": 61921,
228 | "smile": 61922,
229 | "speaker": 61923,
230 | "square": 61924,
231 | "star": 61925,
232 | "stop-circle": 61926,
233 | "sun": 61927,
234 | "sunrise": 61928,
235 | "sunset": 61929,
236 | "tablet": 61930,
237 | "tag": 61931,
238 | "target": 61932,
239 | "terminal": 61933,
240 | "thermometer": 61934,
241 | "thumbs-down": 61935,
242 | "thumbs-up": 61936,
243 | "toggle-left": 61937,
244 | "toggle-right": 61938,
245 | "tool": 61939,
246 | "trash": 61940,
247 | "trash-2": 61941,
248 | "trello": 61942,
249 | "trending-down": 61943,
250 | "trending-up": 61944,
251 | "triangle": 61945,
252 | "truck": 61946,
253 | "tv": 61947,
254 | "twitch": 61948,
255 | "twitter": 61949,
256 | "type": 61950,
257 | "umbrella": 61951,
258 | "underline": 61952,
259 | "unlock": 61953,
260 | "upload": 61954,
261 | "upload-cloud": 61955,
262 | "user": 61956,
263 | "user-check": 61957,
264 | "user-minus": 61958,
265 | "user-plus": 61959,
266 | "user-x": 61960,
267 | "users": 61961,
268 | "video": 61962,
269 | "video-off": 61963,
270 | "voicemail": 61964,
271 | "volume": 61965,
272 | "volume-1": 61966,
273 | "volume-2": 61967,
274 | "volume-x": 61968,
275 | "watch": 61969,
276 | "wifi": 61970,
277 | "wifi-off": 61971,
278 | "wind": 61972,
279 | "x": 61973,
280 | "x-circle": 61974,
281 | "x-octagon": 61975,
282 | "x-square": 61976,
283 | "youtube": 61977,
284 | "zap": 61978,
285 | "zap-off": 61979,
286 | "zoom-in": 61980,
287 | "zoom-out": 61981
288 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/FontAwesome.json:
--------------------------------------------------------------------------------
1 | {
2 | "glass": 61440,
3 | "music": 61441,
4 | "search": 61442,
5 | "envelope-o": 61443,
6 | "heart": 61444,
7 | "star": 61445,
8 | "star-o": 61446,
9 | "user": 61447,
10 | "film": 61448,
11 | "th-large": 61449,
12 | "th": 61450,
13 | "th-list": 61451,
14 | "check": 61452,
15 | "remove": 61453,
16 | "close": 61453,
17 | "times": 61453,
18 | "search-plus": 61454,
19 | "search-minus": 61456,
20 | "power-off": 61457,
21 | "signal": 61458,
22 | "gear": 61459,
23 | "cog": 61459,
24 | "trash-o": 61460,
25 | "home": 61461,
26 | "file-o": 61462,
27 | "clock-o": 61463,
28 | "road": 61464,
29 | "download": 61465,
30 | "arrow-circle-o-down": 61466,
31 | "arrow-circle-o-up": 61467,
32 | "inbox": 61468,
33 | "play-circle-o": 61469,
34 | "rotate-right": 61470,
35 | "repeat": 61470,
36 | "refresh": 61473,
37 | "list-alt": 61474,
38 | "lock": 61475,
39 | "flag": 61476,
40 | "headphones": 61477,
41 | "volume-off": 61478,
42 | "volume-down": 61479,
43 | "volume-up": 61480,
44 | "qrcode": 61481,
45 | "barcode": 61482,
46 | "tag": 61483,
47 | "tags": 61484,
48 | "book": 61485,
49 | "bookmark": 61486,
50 | "print": 61487,
51 | "camera": 61488,
52 | "font": 61489,
53 | "bold": 61490,
54 | "italic": 61491,
55 | "text-height": 61492,
56 | "text-width": 61493,
57 | "align-left": 61494,
58 | "align-center": 61495,
59 | "align-right": 61496,
60 | "align-justify": 61497,
61 | "list": 61498,
62 | "dedent": 61499,
63 | "outdent": 61499,
64 | "indent": 61500,
65 | "video-camera": 61501,
66 | "photo": 61502,
67 | "image": 61502,
68 | "picture-o": 61502,
69 | "pencil": 61504,
70 | "map-marker": 61505,
71 | "adjust": 61506,
72 | "tint": 61507,
73 | "edit": 61508,
74 | "pencil-square-o": 61508,
75 | "share-square-o": 61509,
76 | "check-square-o": 61510,
77 | "arrows": 61511,
78 | "step-backward": 61512,
79 | "fast-backward": 61513,
80 | "backward": 61514,
81 | "play": 61515,
82 | "pause": 61516,
83 | "stop": 61517,
84 | "forward": 61518,
85 | "fast-forward": 61520,
86 | "step-forward": 61521,
87 | "eject": 61522,
88 | "chevron-left": 61523,
89 | "chevron-right": 61524,
90 | "plus-circle": 61525,
91 | "minus-circle": 61526,
92 | "times-circle": 61527,
93 | "check-circle": 61528,
94 | "question-circle": 61529,
95 | "info-circle": 61530,
96 | "crosshairs": 61531,
97 | "times-circle-o": 61532,
98 | "check-circle-o": 61533,
99 | "ban": 61534,
100 | "arrow-left": 61536,
101 | "arrow-right": 61537,
102 | "arrow-up": 61538,
103 | "arrow-down": 61539,
104 | "mail-forward": 61540,
105 | "share": 61540,
106 | "expand": 61541,
107 | "compress": 61542,
108 | "plus": 61543,
109 | "minus": 61544,
110 | "asterisk": 61545,
111 | "exclamation-circle": 61546,
112 | "gift": 61547,
113 | "leaf": 61548,
114 | "fire": 61549,
115 | "eye": 61550,
116 | "eye-slash": 61552,
117 | "warning": 61553,
118 | "exclamation-triangle": 61553,
119 | "plane": 61554,
120 | "calendar": 61555,
121 | "random": 61556,
122 | "comment": 61557,
123 | "magnet": 61558,
124 | "chevron-up": 61559,
125 | "chevron-down": 61560,
126 | "retweet": 61561,
127 | "shopping-cart": 61562,
128 | "folder": 61563,
129 | "folder-open": 61564,
130 | "arrows-v": 61565,
131 | "arrows-h": 61566,
132 | "bar-chart-o": 61568,
133 | "bar-chart": 61568,
134 | "twitter-square": 61569,
135 | "facebook-square": 61570,
136 | "camera-retro": 61571,
137 | "key": 61572,
138 | "gears": 61573,
139 | "cogs": 61573,
140 | "comments": 61574,
141 | "thumbs-o-up": 61575,
142 | "thumbs-o-down": 61576,
143 | "star-half": 61577,
144 | "heart-o": 61578,
145 | "sign-out": 61579,
146 | "linkedin-square": 61580,
147 | "thumb-tack": 61581,
148 | "external-link": 61582,
149 | "sign-in": 61584,
150 | "trophy": 61585,
151 | "github-square": 61586,
152 | "upload": 61587,
153 | "lemon-o": 61588,
154 | "phone": 61589,
155 | "square-o": 61590,
156 | "bookmark-o": 61591,
157 | "phone-square": 61592,
158 | "twitter": 61593,
159 | "facebook-f": 61594,
160 | "facebook": 61594,
161 | "github": 61595,
162 | "unlock": 61596,
163 | "credit-card": 61597,
164 | "feed": 61598,
165 | "rss": 61598,
166 | "hdd-o": 61600,
167 | "bullhorn": 61601,
168 | "bell": 61683,
169 | "certificate": 61603,
170 | "hand-o-right": 61604,
171 | "hand-o-left": 61605,
172 | "hand-o-up": 61606,
173 | "hand-o-down": 61607,
174 | "arrow-circle-left": 61608,
175 | "arrow-circle-right": 61609,
176 | "arrow-circle-up": 61610,
177 | "arrow-circle-down": 61611,
178 | "globe": 61612,
179 | "wrench": 61613,
180 | "tasks": 61614,
181 | "filter": 61616,
182 | "briefcase": 61617,
183 | "arrows-alt": 61618,
184 | "group": 61632,
185 | "users": 61632,
186 | "chain": 61633,
187 | "link": 61633,
188 | "cloud": 61634,
189 | "flask": 61635,
190 | "cut": 61636,
191 | "scissors": 61636,
192 | "copy": 61637,
193 | "files-o": 61637,
194 | "paperclip": 61638,
195 | "save": 61639,
196 | "floppy-o": 61639,
197 | "square": 61640,
198 | "navicon": 61641,
199 | "reorder": 61641,
200 | "bars": 61641,
201 | "list-ul": 61642,
202 | "list-ol": 61643,
203 | "strikethrough": 61644,
204 | "underline": 61645,
205 | "table": 61646,
206 | "magic": 61648,
207 | "truck": 61649,
208 | "pinterest": 61650,
209 | "pinterest-square": 61651,
210 | "google-plus-square": 61652,
211 | "google-plus": 61653,
212 | "money": 61654,
213 | "caret-down": 61655,
214 | "caret-up": 61656,
215 | "caret-left": 61657,
216 | "caret-right": 61658,
217 | "columns": 61659,
218 | "unsorted": 61660,
219 | "sort": 61660,
220 | "sort-down": 61661,
221 | "sort-desc": 61661,
222 | "sort-up": 61662,
223 | "sort-asc": 61662,
224 | "envelope": 61664,
225 | "linkedin": 61665,
226 | "rotate-left": 61666,
227 | "undo": 61666,
228 | "legal": 61667,
229 | "gavel": 61667,
230 | "dashboard": 61668,
231 | "tachometer": 61668,
232 | "comment-o": 61669,
233 | "comments-o": 61670,
234 | "flash": 61671,
235 | "bolt": 61671,
236 | "sitemap": 61672,
237 | "umbrella": 61673,
238 | "paste": 61674,
239 | "clipboard": 61674,
240 | "lightbulb-o": 61675,
241 | "exchange": 61676,
242 | "cloud-download": 61677,
243 | "cloud-upload": 61678,
244 | "user-md": 61680,
245 | "stethoscope": 61681,
246 | "suitcase": 61682,
247 | "bell-o": 61602,
248 | "coffee": 61684,
249 | "cutlery": 61685,
250 | "file-text-o": 61686,
251 | "building-o": 61687,
252 | "hospital-o": 61688,
253 | "ambulance": 61689,
254 | "medkit": 61690,
255 | "fighter-jet": 61691,
256 | "beer": 61692,
257 | "h-square": 61693,
258 | "plus-square": 61694,
259 | "angle-double-left": 61696,
260 | "angle-double-right": 61697,
261 | "angle-double-up": 61698,
262 | "angle-double-down": 61699,
263 | "angle-left": 61700,
264 | "angle-right": 61701,
265 | "angle-up": 61702,
266 | "angle-down": 61703,
267 | "desktop": 61704,
268 | "laptop": 61705,
269 | "tablet": 61706,
270 | "mobile-phone": 61707,
271 | "mobile": 61707,
272 | "circle-o": 61708,
273 | "quote-left": 61709,
274 | "quote-right": 61710,
275 | "spinner": 61712,
276 | "circle": 61713,
277 | "mail-reply": 61714,
278 | "reply": 61714,
279 | "github-alt": 61715,
280 | "folder-o": 61716,
281 | "folder-open-o": 61717,
282 | "smile-o": 61720,
283 | "frown-o": 61721,
284 | "meh-o": 61722,
285 | "gamepad": 61723,
286 | "keyboard-o": 61724,
287 | "flag-o": 61725,
288 | "flag-checkered": 61726,
289 | "terminal": 61728,
290 | "code": 61729,
291 | "mail-reply-all": 61730,
292 | "reply-all": 61730,
293 | "star-half-empty": 61731,
294 | "star-half-full": 61731,
295 | "star-half-o": 61731,
296 | "location-arrow": 61732,
297 | "crop": 61733,
298 | "code-fork": 61734,
299 | "unlink": 61735,
300 | "chain-broken": 61735,
301 | "question": 61736,
302 | "info": 61737,
303 | "exclamation": 61738,
304 | "superscript": 61739,
305 | "subscript": 61740,
306 | "eraser": 61741,
307 | "puzzle-piece": 61742,
308 | "microphone": 61744,
309 | "microphone-slash": 61745,
310 | "shield": 61746,
311 | "calendar-o": 61747,
312 | "fire-extinguisher": 61748,
313 | "rocket": 61749,
314 | "maxcdn": 61750,
315 | "chevron-circle-left": 61751,
316 | "chevron-circle-right": 61752,
317 | "chevron-circle-up": 61753,
318 | "chevron-circle-down": 61754,
319 | "html5": 61755,
320 | "css3": 61756,
321 | "anchor": 61757,
322 | "unlock-alt": 61758,
323 | "bullseye": 61760,
324 | "ellipsis-h": 61761,
325 | "ellipsis-v": 61762,
326 | "rss-square": 61763,
327 | "play-circle": 61764,
328 | "ticket": 61765,
329 | "minus-square": 61766,
330 | "minus-square-o": 61767,
331 | "level-up": 61768,
332 | "level-down": 61769,
333 | "check-square": 61770,
334 | "pencil-square": 61771,
335 | "external-link-square": 61772,
336 | "share-square": 61773,
337 | "compass": 61774,
338 | "toggle-down": 61776,
339 | "caret-square-o-down": 61776,
340 | "toggle-up": 61777,
341 | "caret-square-o-up": 61777,
342 | "toggle-right": 61778,
343 | "caret-square-o-right": 61778,
344 | "euro": 61779,
345 | "eur": 61779,
346 | "gbp": 61780,
347 | "dollar": 61781,
348 | "usd": 61781,
349 | "rupee": 61782,
350 | "inr": 61782,
351 | "cny": 61783,
352 | "rmb": 61783,
353 | "yen": 61783,
354 | "jpy": 61783,
355 | "ruble": 61784,
356 | "rouble": 61784,
357 | "rub": 61784,
358 | "won": 61785,
359 | "krw": 61785,
360 | "bitcoin": 61786,
361 | "btc": 61786,
362 | "file": 61787,
363 | "file-text": 61788,
364 | "sort-alpha-asc": 61789,
365 | "sort-alpha-desc": 61790,
366 | "sort-amount-asc": 61792,
367 | "sort-amount-desc": 61793,
368 | "sort-numeric-asc": 61794,
369 | "sort-numeric-desc": 61795,
370 | "thumbs-up": 61796,
371 | "thumbs-down": 61797,
372 | "youtube-square": 61798,
373 | "youtube": 61799,
374 | "xing": 61800,
375 | "xing-square": 61801,
376 | "youtube-play": 61802,
377 | "dropbox": 61803,
378 | "stack-overflow": 61804,
379 | "instagram": 61805,
380 | "flickr": 61806,
381 | "adn": 61808,
382 | "bitbucket": 61809,
383 | "bitbucket-square": 61810,
384 | "tumblr": 61811,
385 | "tumblr-square": 61812,
386 | "long-arrow-down": 61813,
387 | "long-arrow-up": 61814,
388 | "long-arrow-left": 61815,
389 | "long-arrow-right": 61816,
390 | "apple": 61817,
391 | "windows": 61818,
392 | "android": 61819,
393 | "linux": 61820,
394 | "dribbble": 61821,
395 | "skype": 61822,
396 | "foursquare": 61824,
397 | "trello": 61825,
398 | "female": 61826,
399 | "male": 61827,
400 | "gittip": 61828,
401 | "gratipay": 61828,
402 | "sun-o": 61829,
403 | "moon-o": 61830,
404 | "archive": 61831,
405 | "bug": 61832,
406 | "vk": 61833,
407 | "weibo": 61834,
408 | "renren": 61835,
409 | "pagelines": 61836,
410 | "stack-exchange": 61837,
411 | "arrow-circle-o-right": 61838,
412 | "arrow-circle-o-left": 61840,
413 | "toggle-left": 61841,
414 | "caret-square-o-left": 61841,
415 | "dot-circle-o": 61842,
416 | "wheelchair": 61843,
417 | "vimeo-square": 61844,
418 | "turkish-lira": 61845,
419 | "try": 61845,
420 | "plus-square-o": 61846,
421 | "space-shuttle": 61847,
422 | "slack": 61848,
423 | "envelope-square": 61849,
424 | "wordpress": 61850,
425 | "openid": 61851,
426 | "institution": 61852,
427 | "bank": 61852,
428 | "university": 61852,
429 | "mortar-board": 61853,
430 | "graduation-cap": 61853,
431 | "yahoo": 61854,
432 | "google": 61856,
433 | "reddit": 61857,
434 | "reddit-square": 61858,
435 | "stumbleupon-circle": 61859,
436 | "stumbleupon": 61860,
437 | "delicious": 61861,
438 | "digg": 61862,
439 | "pied-piper-pp": 61863,
440 | "pied-piper-alt": 61864,
441 | "drupal": 61865,
442 | "joomla": 61866,
443 | "language": 61867,
444 | "fax": 61868,
445 | "building": 61869,
446 | "child": 61870,
447 | "paw": 61872,
448 | "spoon": 61873,
449 | "cube": 61874,
450 | "cubes": 61875,
451 | "behance": 61876,
452 | "behance-square": 61877,
453 | "steam": 61878,
454 | "steam-square": 61879,
455 | "recycle": 61880,
456 | "automobile": 61881,
457 | "car": 61881,
458 | "cab": 61882,
459 | "taxi": 61882,
460 | "tree": 61883,
461 | "spotify": 61884,
462 | "deviantart": 61885,
463 | "soundcloud": 61886,
464 | "database": 61888,
465 | "file-pdf-o": 61889,
466 | "file-word-o": 61890,
467 | "file-excel-o": 61891,
468 | "file-powerpoint-o": 61892,
469 | "file-photo-o": 61893,
470 | "file-picture-o": 61893,
471 | "file-image-o": 61893,
472 | "file-zip-o": 61894,
473 | "file-archive-o": 61894,
474 | "file-sound-o": 61895,
475 | "file-audio-o": 61895,
476 | "file-movie-o": 61896,
477 | "file-video-o": 61896,
478 | "file-code-o": 61897,
479 | "vine": 61898,
480 | "codepen": 61899,
481 | "jsfiddle": 61900,
482 | "life-bouy": 61901,
483 | "life-buoy": 61901,
484 | "life-saver": 61901,
485 | "support": 61901,
486 | "life-ring": 61901,
487 | "circle-o-notch": 61902,
488 | "ra": 61904,
489 | "resistance": 61904,
490 | "rebel": 61904,
491 | "ge": 61905,
492 | "empire": 61905,
493 | "git-square": 61906,
494 | "git": 61907,
495 | "y-combinator-square": 61908,
496 | "yc-square": 61908,
497 | "hacker-news": 61908,
498 | "tencent-weibo": 61909,
499 | "qq": 61910,
500 | "wechat": 61911,
501 | "weixin": 61911,
502 | "send": 61912,
503 | "paper-plane": 61912,
504 | "send-o": 61913,
505 | "paper-plane-o": 61913,
506 | "history": 61914,
507 | "circle-thin": 61915,
508 | "header": 61916,
509 | "paragraph": 61917,
510 | "sliders": 61918,
511 | "share-alt": 61920,
512 | "share-alt-square": 61921,
513 | "bomb": 61922,
514 | "soccer-ball-o": 61923,
515 | "futbol-o": 61923,
516 | "tty": 61924,
517 | "binoculars": 61925,
518 | "plug": 61926,
519 | "slideshare": 61927,
520 | "twitch": 61928,
521 | "yelp": 61929,
522 | "newspaper-o": 61930,
523 | "wifi": 61931,
524 | "calculator": 61932,
525 | "paypal": 61933,
526 | "google-wallet": 61934,
527 | "cc-visa": 61936,
528 | "cc-mastercard": 61937,
529 | "cc-discover": 61938,
530 | "cc-amex": 61939,
531 | "cc-paypal": 61940,
532 | "cc-stripe": 61941,
533 | "bell-slash": 61942,
534 | "bell-slash-o": 61943,
535 | "trash": 61944,
536 | "copyright": 61945,
537 | "at": 61946,
538 | "eyedropper": 61947,
539 | "paint-brush": 61948,
540 | "birthday-cake": 61949,
541 | "area-chart": 61950,
542 | "pie-chart": 61952,
543 | "line-chart": 61953,
544 | "lastfm": 61954,
545 | "lastfm-square": 61955,
546 | "toggle-off": 61956,
547 | "toggle-on": 61957,
548 | "bicycle": 61958,
549 | "bus": 61959,
550 | "ioxhost": 61960,
551 | "angellist": 61961,
552 | "cc": 61962,
553 | "shekel": 61963,
554 | "sheqel": 61963,
555 | "ils": 61963,
556 | "meanpath": 61964,
557 | "buysellads": 61965,
558 | "connectdevelop": 61966,
559 | "dashcube": 61968,
560 | "forumbee": 61969,
561 | "leanpub": 61970,
562 | "sellsy": 61971,
563 | "shirtsinbulk": 61972,
564 | "simplybuilt": 61973,
565 | "skyatlas": 61974,
566 | "cart-plus": 61975,
567 | "cart-arrow-down": 61976,
568 | "diamond": 61977,
569 | "ship": 61978,
570 | "user-secret": 61979,
571 | "motorcycle": 61980,
572 | "street-view": 61981,
573 | "heartbeat": 61982,
574 | "venus": 61985,
575 | "mars": 61986,
576 | "mercury": 61987,
577 | "intersex": 61988,
578 | "transgender": 61988,
579 | "transgender-alt": 61989,
580 | "venus-double": 61990,
581 | "mars-double": 61991,
582 | "venus-mars": 61992,
583 | "mars-stroke": 61993,
584 | "mars-stroke-v": 61994,
585 | "mars-stroke-h": 61995,
586 | "neuter": 61996,
587 | "genderless": 61997,
588 | "facebook-official": 62000,
589 | "pinterest-p": 62001,
590 | "whatsapp": 62002,
591 | "server": 62003,
592 | "user-plus": 62004,
593 | "user-times": 62005,
594 | "hotel": 62006,
595 | "bed": 62006,
596 | "viacoin": 62007,
597 | "train": 62008,
598 | "subway": 62009,
599 | "medium": 62010,
600 | "yc": 62011,
601 | "y-combinator": 62011,
602 | "optin-monster": 62012,
603 | "opencart": 62013,
604 | "expeditedssl": 62014,
605 | "battery-4": 62016,
606 | "battery": 62016,
607 | "battery-full": 62016,
608 | "battery-3": 62017,
609 | "battery-three-quarters": 62017,
610 | "battery-2": 62018,
611 | "battery-half": 62018,
612 | "battery-1": 62019,
613 | "battery-quarter": 62019,
614 | "battery-0": 62020,
615 | "battery-empty": 62020,
616 | "mouse-pointer": 62021,
617 | "i-cursor": 62022,
618 | "object-group": 62023,
619 | "object-ungroup": 62024,
620 | "sticky-note": 62025,
621 | "sticky-note-o": 62026,
622 | "cc-jcb": 62027,
623 | "cc-diners-club": 62028,
624 | "clone": 62029,
625 | "balance-scale": 62030,
626 | "hourglass-o": 62032,
627 | "hourglass-1": 62033,
628 | "hourglass-start": 62033,
629 | "hourglass-2": 62034,
630 | "hourglass-half": 62034,
631 | "hourglass-3": 62035,
632 | "hourglass-end": 62035,
633 | "hourglass": 62036,
634 | "hand-grab-o": 62037,
635 | "hand-rock-o": 62037,
636 | "hand-stop-o": 62038,
637 | "hand-paper-o": 62038,
638 | "hand-scissors-o": 62039,
639 | "hand-lizard-o": 62040,
640 | "hand-spock-o": 62041,
641 | "hand-pointer-o": 62042,
642 | "hand-peace-o": 62043,
643 | "trademark": 62044,
644 | "registered": 62045,
645 | "creative-commons": 62046,
646 | "gg": 62048,
647 | "gg-circle": 62049,
648 | "tripadvisor": 62050,
649 | "odnoklassniki": 62051,
650 | "odnoklassniki-square": 62052,
651 | "get-pocket": 62053,
652 | "wikipedia-w": 62054,
653 | "safari": 62055,
654 | "chrome": 62056,
655 | "firefox": 62057,
656 | "opera": 62058,
657 | "internet-explorer": 62059,
658 | "tv": 62060,
659 | "television": 62060,
660 | "contao": 62061,
661 | "500px": 62062,
662 | "amazon": 62064,
663 | "calendar-plus-o": 62065,
664 | "calendar-minus-o": 62066,
665 | "calendar-times-o": 62067,
666 | "calendar-check-o": 62068,
667 | "industry": 62069,
668 | "map-pin": 62070,
669 | "map-signs": 62071,
670 | "map-o": 62072,
671 | "map": 62073,
672 | "commenting": 62074,
673 | "commenting-o": 62075,
674 | "houzz": 62076,
675 | "vimeo": 62077,
676 | "black-tie": 62078,
677 | "fonticons": 62080,
678 | "reddit-alien": 62081,
679 | "edge": 62082,
680 | "credit-card-alt": 62083,
681 | "codiepie": 62084,
682 | "modx": 62085,
683 | "fort-awesome": 62086,
684 | "usb": 62087,
685 | "product-hunt": 62088,
686 | "mixcloud": 62089,
687 | "scribd": 62090,
688 | "pause-circle": 62091,
689 | "pause-circle-o": 62092,
690 | "stop-circle": 62093,
691 | "stop-circle-o": 62094,
692 | "shopping-bag": 62096,
693 | "shopping-basket": 62097,
694 | "hashtag": 62098,
695 | "bluetooth": 62099,
696 | "bluetooth-b": 62100,
697 | "percent": 62101,
698 | "gitlab": 62102,
699 | "wpbeginner": 62103,
700 | "wpforms": 62104,
701 | "envira": 62105,
702 | "universal-access": 62106,
703 | "wheelchair-alt": 62107,
704 | "question-circle-o": 62108,
705 | "blind": 62109,
706 | "audio-description": 62110,
707 | "volume-control-phone": 62112,
708 | "braille": 62113,
709 | "assistive-listening-systems": 62114,
710 | "asl-interpreting": 62115,
711 | "american-sign-language-interpreting": 62115,
712 | "deafness": 62116,
713 | "hard-of-hearing": 62116,
714 | "deaf": 62116,
715 | "glide": 62117,
716 | "glide-g": 62118,
717 | "signing": 62119,
718 | "sign-language": 62119,
719 | "low-vision": 62120,
720 | "viadeo": 62121,
721 | "viadeo-square": 62122,
722 | "snapchat": 62123,
723 | "snapchat-ghost": 62124,
724 | "snapchat-square": 62125,
725 | "pied-piper": 62126,
726 | "first-order": 62128,
727 | "yoast": 62129,
728 | "themeisle": 62130,
729 | "google-plus-circle": 62131,
730 | "google-plus-official": 62131,
731 | "fa": 62132,
732 | "font-awesome": 62132,
733 | "handshake-o": 62133,
734 | "envelope-open": 62134,
735 | "envelope-open-o": 62135,
736 | "linode": 62136,
737 | "address-book": 62137,
738 | "address-book-o": 62138,
739 | "vcard": 62139,
740 | "address-card": 62139,
741 | "vcard-o": 62140,
742 | "address-card-o": 62140,
743 | "user-circle": 62141,
744 | "user-circle-o": 62142,
745 | "user-o": 62144,
746 | "id-badge": 62145,
747 | "drivers-license": 62146,
748 | "id-card": 62146,
749 | "drivers-license-o": 62147,
750 | "id-card-o": 62147,
751 | "quora": 62148,
752 | "free-code-camp": 62149,
753 | "telegram": 62150,
754 | "thermometer-4": 62151,
755 | "thermometer": 62151,
756 | "thermometer-full": 62151,
757 | "thermometer-3": 62152,
758 | "thermometer-three-quarters": 62152,
759 | "thermometer-2": 62153,
760 | "thermometer-half": 62153,
761 | "thermometer-1": 62154,
762 | "thermometer-quarter": 62154,
763 | "thermometer-0": 62155,
764 | "thermometer-empty": 62155,
765 | "shower": 62156,
766 | "bathtub": 62157,
767 | "s15": 62157,
768 | "bath": 62157,
769 | "podcast": 62158,
770 | "window-maximize": 62160,
771 | "window-minimize": 62161,
772 | "window-restore": 62162,
773 | "times-rectangle": 62163,
774 | "window-close": 62163,
775 | "times-rectangle-o": 62164,
776 | "window-close-o": 62164,
777 | "bandcamp": 62165,
778 | "grav": 62166,
779 | "etsy": 62167,
780 | "imdb": 62168,
781 | "ravelry": 62169,
782 | "eercast": 62170,
783 | "microchip": 62171,
784 | "snowflake-o": 62172,
785 | "superpowers": 62173,
786 | "wpexplorer": 62174,
787 | "meetup": 62176
788 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Fontisto.json:
--------------------------------------------------------------------------------
1 | {
2 | "acrobat-reader": 60095,
3 | "applemusic": 60096,
4 | "atlassian": 60097,
5 | "aws": 60098,
6 | "baidu": 60099,
7 | "bing": 60100,
8 | "bower": 60101,
9 | "dailymotion": 60102,
10 | "delicious": 60103,
11 | "deviantart": 60104,
12 | "disqus": 60105,
13 | "flipboard": 60106,
14 | "graphql": 60107,
15 | "hexo": 60108,
16 | "hipchat": 60109,
17 | "icq": 60110,
18 | "invision": 60111,
19 | "jekyll": 60112,
20 | "jira": 60113,
21 | "json": 60114,
22 | "livestream": 60115,
23 | "messenger": 60116,
24 | "meteor": 60117,
25 | "onenote": 60118,
26 | "mongodb": 60119,
27 | "netflix": 60120,
28 | "nginx": 60121,
29 | "odnoklassniki": 60122,
30 | "onedrive": 60123,
31 | "origin": 60124,
32 | "pingdom": 60125,
33 | "rails": 60126,
34 | "raspberry-pi": 60127,
35 | "redis": 60128,
36 | "redux": 60129,
37 | "saucelabs": 60130,
38 | "scorp": 60131,
39 | "sentry": 60132,
40 | "shazam": 60133,
41 | "shopify": 60134,
42 | "sinaweibo": 60135,
43 | "slides": 60136,
44 | "sublimetext": 60137,
45 | "swift": 60138,
46 | "ted": 60139,
47 | "telegram": 60140,
48 | "tesla": 60141,
49 | "tinder": 60142,
50 | "treehouse": 60143,
51 | "twoo": 60144,
52 | "udacity": 60145,
53 | "webstorm": 60146,
54 | "wix": 60147,
55 | "yandex-international": 60148,
56 | "yandex": 60149,
57 | "ember": 60087,
58 | "cpanel": 60088,
59 | "viber": 60089,
60 | "deskpro": 60090,
61 | "discord": 60091,
62 | "discourse": 60092,
63 | "adobe": 60059,
64 | "algolia": 60060,
65 | "atom": 60061,
66 | "babel": 60062,
67 | "coffeescript": 60063,
68 | "electronjs": 60064,
69 | "mysql": 60065,
70 | "oracle": 60066,
71 | "php": 60067,
72 | "sourcetree": 60068,
73 | "ubuntu": 60069,
74 | "unity": 60070,
75 | "unreal-engine": 60071,
76 | "webpack": 60072,
77 | "angelist": 60026,
78 | "app-store": 60027,
79 | "digg": 60030,
80 | "dockers": 60031,
81 | "envato": 60032,
82 | "gitlab": 60033,
83 | "google-drive": 60034,
84 | "google-play": 60035,
85 | "grunt": 60036,
86 | "gulp": 60037,
87 | "hacker-news": 60038,
88 | "imdb": 60039,
89 | "jenkins": 60040,
90 | "joomla": 60041,
91 | "kickstarter": 60042,
92 | "laravel": 60043,
93 | "less": 60044,
94 | "line": 60045,
95 | "npm": 60046,
96 | "periscope": 60047,
97 | "product-hunt": 60048,
98 | "quora": 60049,
99 | "skyatlas": 60050,
100 | "stylus": 60051,
101 | "travis": 60052,
102 | "trello": 60053,
103 | "uber": 60054,
104 | "vine": 60055,
105 | "visual-studio": 60056,
106 | "vk": 60057,
107 | "vuejs": 60058,
108 | "microsoft": 60025,
109 | "blogger": 60028,
110 | "500px": 59658,
111 | "amazon": 59659,
112 | "ampproject": 59660,
113 | "android": 59661,
114 | "angularjs": 59662,
115 | "apple": 59663,
116 | "behance": 59664,
117 | "bitbucket": 59665,
118 | "bluetooth-b": 59666,
119 | "cloudflare": 59667,
120 | "codepen": 59668,
121 | "css3": 59669,
122 | "dribbble": 59670,
123 | "dropbox": 59671,
124 | "facebook": 59672,
125 | "flickr": 59673,
126 | "foursquare": 59674,
127 | "git": 59675,
128 | "github": 59676,
129 | "google-plus": 59677,
130 | "google": 59678,
131 | "hangout": 59679,
132 | "houzz": 59680,
133 | "html5": 59681,
134 | "instagram": 59682,
135 | "java": 59683,
136 | "jquery": 59684,
137 | "jsfiddle": 59685,
138 | "linkedin": 59686,
139 | "linux": 59687,
140 | "magento": 59688,
141 | "maxcdn": 59689,
142 | "medium": 59690,
143 | "meetup": 59691,
144 | "nodejs": 59692,
145 | "opencart": 59693,
146 | "pinterest": 59694,
147 | "playstation": 59695,
148 | "python": 59696,
149 | "react": 59697,
150 | "reddit": 59698,
151 | "ruby": 59699,
152 | "sass": 59700,
153 | "skype": 59701,
154 | "slack": 59702,
155 | "snapchat": 59703,
156 | "soundcloud": 59704,
157 | "spotify": 59705,
158 | "stack-overflow": 59706,
159 | "steam": 59707,
160 | "stumbleupon": 59708,
161 | "svn": 59709,
162 | "swarm": 59710,
163 | "tripadvisor": 59711,
164 | "tumblr": 59712,
165 | "twitch": 59713,
166 | "twitter": 59714,
167 | "vimeo": 59715,
168 | "wetransfer": 59716,
169 | "whatsapp": 59717,
170 | "wifi-logo": 59718,
171 | "wikipedia": 59719,
172 | "windows": 59720,
173 | "wordpress": 59721,
174 | "xbox": 59722,
175 | "yahoo": 59723,
176 | "yelp": 59724,
177 | "youtube-play": 59725,
178 | "cocoapods": 60200,
179 | "composer": 60201,
180 | "yarn": 60202,
181 | "language": 59943,
182 | "toggle-off": 59948,
183 | "toggle-on": 60029,
184 | "anchor": 60094,
185 | "archive": 60150,
186 | "at": 60151,
187 | "ban": 60152,
188 | "battery-half": 60153,
189 | "battery-full": 60154,
190 | "battery-empty": 60155,
191 | "battery-quarter": 60156,
192 | "battery-three-quarters": 60157,
193 | "bell-alt": 60158,
194 | "bell": 60159,
195 | "bookmark-alt": 60160,
196 | "bookmark": 60161,
197 | "bug": 60162,
198 | "calculator": 60163,
199 | "calendar": 60164,
200 | "crosshairs": 60165,
201 | "desktop": 60166,
202 | "download": 60167,
203 | "film": 60168,
204 | "history": 60169,
205 | "hourglass-end": 60170,
206 | "hourglass-half": 60171,
207 | "hourglass-start": 60172,
208 | "hourglass": 60173,
209 | "info": 60174,
210 | "key": 60175,
211 | "keyboard": 60176,
212 | "laptop": 60177,
213 | "lightbulb": 60178,
214 | "magnet": 60179,
215 | "map-marker-alt": 60180,
216 | "map-marker": 60181,
217 | "map": 60182,
218 | "mobile-alt": 60183,
219 | "mobile": 60184,
220 | "paw": 60185,
221 | "phone": 60186,
222 | "power": 60187,
223 | "qrcode": 60188,
224 | "question": 60189,
225 | "search": 60190,
226 | "sitemap": 60191,
227 | "star-half": 60192,
228 | "stopwatch": 60193,
229 | "tablet-alt": 60194,
230 | "tablet": 60195,
231 | "ticket": 60196,
232 | "tv": 60197,
233 | "upload": 60198,
234 | "user-secret": 60199,
235 | "camera": 59798,
236 | "clock": 59799,
237 | "close-a": 59800,
238 | "code": 59801,
239 | "comment": 59802,
240 | "commenting": 59803,
241 | "comments": 59804,
242 | "crop": 59805,
243 | "cursor": 59806,
244 | "database": 59807,
245 | "date": 59808,
246 | "earth": 59809,
247 | "email": 59810,
248 | "eye": 59811,
249 | "female": 59812,
250 | "favorite": 59813,
251 | "filter": 59814,
252 | "fire": 59815,
253 | "flag": 59816,
254 | "flash": 59817,
255 | "home": 59818,
256 | "link": 59819,
257 | "locked": 59820,
258 | "male": 59821,
259 | "minus-a": 59822,
260 | "more-v-a": 59823,
261 | "more-v": 59824,
262 | "move-h-a": 59825,
263 | "move-h": 59826,
264 | "nav-icon-a": 59827,
265 | "nav-icon-grid-a": 59828,
266 | "nav-icon-grid": 59829,
267 | "nav-icon-list-a": 59830,
268 | "nav-icon-list": 59831,
269 | "nav-icon": 59832,
270 | "navigate": 59833,
271 | "paper-plane": 59834,
272 | "person": 59835,
273 | "persons": 59836,
274 | "picture": 59837,
275 | "plus-a": 59838,
276 | "print": 59839,
277 | "quote-a-left": 59840,
278 | "quote-a-right": 59841,
279 | "quote-left": 59842,
280 | "quote-right": 59843,
281 | "reply": 59844,
282 | "rss": 59845,
283 | "scissors": 59846,
284 | "share-a": 59847,
285 | "share": 59848,
286 | "trash": 59849,
287 | "unlocked": 59850,
288 | "usb": 59851,
289 | "wifi": 59852,
290 | "world-o": 59853,
291 | "world": 59854,
292 | "zoom": 59855,
293 | "adjust": 60015,
294 | "recycle": 60016,
295 | "pinboard": 60093,
296 | "zoom-minus": 60082,
297 | "zoom-plus": 60083,
298 | "check": 60084,
299 | "asterisk": 60085,
300 | "hashtag": 60086,
301 | "checkbox-active": 59778,
302 | "checkbox-passive": 59779,
303 | "radio-btn-active": 59780,
304 | "radio-btn-passive": 59781,
305 | "shopping-bag-1": 60011,
306 | "shopping-bag": 60012,
307 | "shopping-barcode": 60017,
308 | "shopping-basket-add": 60018,
309 | "shopping-basket-remove": 60019,
310 | "shopping-basket": 60020,
311 | "shopping-package": 60021,
312 | "shopping-pos-machine": 60022,
313 | "shopping-sale": 60023,
314 | "shopping-store": 60024,
315 | "angle-dobule-down": 59748,
316 | "angle-dobule-left": 59749,
317 | "angle-dobule-right": 59750,
318 | "angle-dobule-up": 59751,
319 | "angle-down": 59752,
320 | "angle-left": 59753,
321 | "angle-right": 59754,
322 | "angle-up": 59755,
323 | "arrow-down-l": 59756,
324 | "arrow-down": 59757,
325 | "arrow-expand": 59758,
326 | "arrow-h": 59759,
327 | "arrow-left-l": 59760,
328 | "arrow-left": 59761,
329 | "arrow-move": 59762,
330 | "arrow-resize": 59763,
331 | "arrow-return-left": 59764,
332 | "arrow-return-right": 59765,
333 | "arrow-right-l": 59766,
334 | "arrow-right": 59767,
335 | "arrow-swap": 59768,
336 | "arrow-up-l": 59769,
337 | "arrow-up": 59770,
338 | "arrow-v": 59771,
339 | "caret-down": 59772,
340 | "caret-left": 59773,
341 | "caret-right": 59774,
342 | "caret-up": 59775,
343 | "fi": 59776,
344 | "fontisto": 59777,
345 | "backward": 59866,
346 | "eject": 59867,
347 | "equalizer": 59868,
348 | "forward": 59869,
349 | "headphone": 59870,
350 | "heart": 59871,
351 | "mic": 59872,
352 | "music-note": 59873,
353 | "pause": 59874,
354 | "play-list": 59875,
355 | "play": 59876,
356 | "player-settings": 59877,
357 | "podcast": 59878,
358 | "random": 59879,
359 | "record": 59880,
360 | "star": 59881,
361 | "step-backwrad": 59882,
362 | "step-forward": 59883,
363 | "stop": 59884,
364 | "volume-down": 59885,
365 | "volume-mute": 59886,
366 | "volume-off": 59887,
367 | "volume-up": 59888,
368 | "airplay": 60008,
369 | "bold": 59918,
370 | "broken-link": 59919,
371 | "center-align": 59920,
372 | "close": 59921,
373 | "columns": 59922,
374 | "copy": 59923,
375 | "eraser": 59924,
376 | "export": 59925,
377 | "file-1": 59926,
378 | "file-2": 59927,
379 | "folder": 59928,
380 | "font": 59929,
381 | "import": 59930,
382 | "indent": 59931,
383 | "italic": 59932,
384 | "justify": 59933,
385 | "left-align": 59934,
386 | "link2": 59935,
387 | "list-1": 59936,
388 | "list-2": 59937,
389 | "outdent": 59938,
390 | "paperclip": 59939,
391 | "paragraph": 59940,
392 | "paste": 59941,
393 | "preview": 59942,
394 | "print2": 59943,
395 | "redo": 59944,
396 | "right-align": 59945,
397 | "save-1": 59946,
398 | "save": 59947,
399 | "scissors2": 59948,
400 | "strikethrough": 59949,
401 | "subscript": 59950,
402 | "superscript": 59951,
403 | "table-1": 59952,
404 | "table-2": 59953,
405 | "text-height": 59954,
406 | "text-width": 59955,
407 | "underline": 59956,
408 | "undo": 59957,
409 | "cloud-down": 59958,
410 | "cloud-refresh": 59959,
411 | "cloud-up": 59960,
412 | "cloudy-gusts": 59961,
413 | "cloudy": 59962,
414 | "compass": 59963,
415 | "day-cloudy": 59964,
416 | "day-haze": 59965,
417 | "day-lightning": 59966,
418 | "day-rain": 59967,
419 | "day-snow": 59968,
420 | "day-sunny": 59969,
421 | "fog": 59970,
422 | "horizon-alt": 59971,
423 | "horizon": 59972,
424 | "lightning": 59973,
425 | "lightnings": 59974,
426 | "night-alt-cloudy": 59975,
427 | "night-alt-lightning": 59976,
428 | "night-alt-rain": 59977,
429 | "night-alt-snow": 59978,
430 | "night-clear": 59979,
431 | "rain": 59980,
432 | "rainbow": 59981,
433 | "rains": 59982,
434 | "snow": 59983,
435 | "snows": 59984,
436 | "thermometer": 59985,
437 | "umbrella": 59986,
438 | "wind": 59987,
439 | "confused": 59988,
440 | "dizzy": 59989,
441 | "expressionless": 59990,
442 | "frowning": 59991,
443 | "heart-eyes": 59992,
444 | "laughing": 59993,
445 | "mad": 59994,
446 | "nervous": 59995,
447 | "neutral": 59996,
448 | "open-mouth": 59997,
449 | "rage": 59998,
450 | "slightly-smile": 59999,
451 | "smiley": 60000,
452 | "smiling": 60001,
453 | "stuck-out-tongue": 60002,
454 | "sunglasses": 60003,
455 | "surprised": 60004,
456 | "tongue": 60005,
457 | "wink": 60006,
458 | "zipper-mouth": 60007,
459 | "aids": 60233,
460 | "ambulance": 60234,
461 | "bandage": 60235,
462 | "bed-patient": 60236,
463 | "blood-drop": 60237,
464 | "blood-test": 60238,
465 | "blood": 60239,
466 | "dna": 60240,
467 | "doctor": 60241,
468 | "drug-pack": 60242,
469 | "first-aid-alt": 60243,
470 | "heart-alt": 60244,
471 | "heartbeat-alt": 60245,
472 | "heartbeat": 60246,
473 | "helicopter-ambulance": 60247,
474 | "hospital": 60248,
475 | "injection-syringe": 60249,
476 | "laboratory": 60250,
477 | "nurse": 60251,
478 | "nursing-home": 60252,
479 | "paralysis-disability": 60253,
480 | "pills": 60254,
481 | "prescription": 60255,
482 | "pulse": 60256,
483 | "stethoscope": 60257,
484 | "surgical-knife": 60258,
485 | "tablets": 60259,
486 | "test-bottle": 60260,
487 | "test-tube-alt": 60261,
488 | "test-tube": 60262,
489 | "thermometer-alt": 60263,
490 | "american-express": 59856,
491 | "credit-card": 59857,
492 | "google-wallet": 59858,
493 | "iyzigo": 59859,
494 | "mastercard": 59860,
495 | "paypal-p": 59861,
496 | "paypal": 59862,
497 | "payu": 59863,
498 | "troy": 59864,
499 | "visa": 59865,
500 | "dinners-club": 60010,
501 | "apple-pay": 60009,
502 | "discover": 60013,
503 | "jcb": 60014,
504 | "dislike": 59796,
505 | "like": 59797,
506 | "audio-description": 59648,
507 | "blind": 59649,
508 | "braille": 59650,
509 | "deaf": 59651,
510 | "fa-american-sign-language-interpreting": 59652,
511 | "low-vision": 59654,
512 | "tty": 59655,
513 | "universal-acces": 59656,
514 | "wheelchair": 59657,
515 | "area-chart": 59732,
516 | "bar-chart": 59733,
517 | "line-chart": 59734,
518 | "pie-chart-1": 59735,
519 | "pie-chart-2": 59736,
520 | "chrome": 59726,
521 | "edge": 59727,
522 | "firefox": 59728,
523 | "internet-explorer": 59729,
524 | "opera": 59730,
525 | "safari": 59731,
526 | "bitcoin": 59737,
527 | "dollar": 59738,
528 | "euro": 59739,
529 | "gbp": 59740,
530 | "gg": 59741,
531 | "ils": 59742,
532 | "inr": 59743,
533 | "krw": 59744,
534 | "rouble": 59745,
535 | "tl": 59746,
536 | "yen": 59747,
537 | "genderless": 59782,
538 | "intersex": 59783,
539 | "mars-double": 59784,
540 | "mars-stroke-h": 59785,
541 | "mars-stroke-v": 59786,
542 | "mars-stroke": 59787,
543 | "mars": 59788,
544 | "mercury": 59789,
545 | "neuter": 59790,
546 | "transgender-alt": 59791,
547 | "transgender": 59792,
548 | "venus-double": 59793,
549 | "venus-mars": 59794,
550 | "venus": 59795,
551 | "automobile": 59899,
552 | "bicycle": 59900,
553 | "bus": 59901,
554 | "car": 59902,
555 | "helicopter": 59903,
556 | "metro": 59904,
557 | "motorcycle": 59905,
558 | "plane": 59906,
559 | "rocket": 59907,
560 | "ship": 59908,
561 | "subway": 59909,
562 | "taxi": 59910,
563 | "train": 59911,
564 | "truck": 59912,
565 | "yacht": 59913,
566 | "beach-slipper": 60203,
567 | "bus-ticket": 60204,
568 | "cocktail": 60205,
569 | "compass-alt": 60206,
570 | "direction-sign": 60207,
571 | "do-not-disturb": 60208,
572 | "flotation-ring": 60209,
573 | "holiday-village": 60210,
574 | "hot-air-balloon": 60211,
575 | "hotel-alt": 60212,
576 | "hotel": 60213,
577 | "island": 60214,
578 | "money-symbol": 60215,
579 | "parasol": 60216,
580 | "passport-alt": 60217,
581 | "passport": 60218,
582 | "photograph": 60219,
583 | "plane-ticket": 60220,
584 | "room": 60221,
585 | "sait-boat": 60222,
586 | "snorkel": 60223,
587 | "suitcase-alt": 60224,
588 | "suitcase": 60225,
589 | "sun": 60226,
590 | "sunglasses-alt": 60227,
591 | "swimsuit": 60228,
592 | "tent": 60229,
593 | "ticket-alt": 60230,
594 | "train-ticket": 60231,
595 | "wallet": 60232,
596 | "circle-o-notch": 59889,
597 | "propeller-1": 59890,
598 | "propeller-2": 59891,
599 | "propeller-3": 59892,
600 | "propeller-4": 59893,
601 | "spinner-cog": 59894,
602 | "spinner-fidget": 59895,
603 | "spinner-refresh": 59896,
604 | "spinner-rotate-forward": 59897,
605 | "spinner": 59898,
606 | "snowflake": 60081,
607 | "snowflake-1": 60073,
608 | "snowflake-2": 60074,
609 | "snowflake-3": 60075,
610 | "snowflake-4": 60076,
611 | "snowflake-5": 60077,
612 | "snowflake-6": 60078,
613 | "snowflake-7": 60079,
614 | "snowflake-8": 60080,
615 | "curve": 59915,
616 | "ellipse": 59916,
617 | "rectangle": 59917,
618 | "shield": 59914
619 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Foundation.json:
--------------------------------------------------------------------------------
1 | {
2 | "address-book": 61696,
3 | "alert": 61697,
4 | "align-center": 61698,
5 | "align-justify": 61699,
6 | "align-left": 61700,
7 | "align-right": 61701,
8 | "anchor": 61702,
9 | "annotate": 61703,
10 | "archive": 61704,
11 | "arrow-down": 61705,
12 | "arrow-left": 61706,
13 | "arrow-right": 61707,
14 | "arrow-up": 61708,
15 | "arrows-compress": 61709,
16 | "arrows-expand": 61710,
17 | "arrows-in": 61711,
18 | "arrows-out": 61712,
19 | "asl": 61713,
20 | "asterisk": 61714,
21 | "at-sign": 61715,
22 | "background-color": 61716,
23 | "battery-empty": 61717,
24 | "battery-full": 61718,
25 | "battery-half": 61719,
26 | "bitcoin-circle": 61720,
27 | "bitcoin": 61721,
28 | "blind": 61722,
29 | "bluetooth": 61723,
30 | "bold": 61724,
31 | "book-bookmark": 61725,
32 | "book": 61726,
33 | "bookmark": 61727,
34 | "braille": 61728,
35 | "burst-new": 61729,
36 | "burst-sale": 61730,
37 | "burst": 61731,
38 | "calendar": 61732,
39 | "camera": 61733,
40 | "check": 61734,
41 | "checkbox": 61735,
42 | "clipboard-notes": 61736,
43 | "clipboard-pencil": 61737,
44 | "clipboard": 61738,
45 | "clock": 61739,
46 | "closed-caption": 61740,
47 | "cloud": 61741,
48 | "comment-minus": 61742,
49 | "comment-quotes": 61743,
50 | "comment-video": 61744,
51 | "comment": 61745,
52 | "comments": 61746,
53 | "compass": 61747,
54 | "contrast": 61748,
55 | "credit-card": 61749,
56 | "crop": 61750,
57 | "crown": 61751,
58 | "css3": 61752,
59 | "database": 61753,
60 | "die-five": 61754,
61 | "die-four": 61755,
62 | "die-one": 61756,
63 | "die-six": 61757,
64 | "die-three": 61758,
65 | "die-two": 61759,
66 | "dislike": 61760,
67 | "dollar-bill": 61761,
68 | "dollar": 61762,
69 | "download": 61763,
70 | "eject": 61764,
71 | "elevator": 61765,
72 | "euro": 61766,
73 | "eye": 61767,
74 | "fast-forward": 61768,
75 | "female-symbol": 61769,
76 | "female": 61770,
77 | "filter": 61771,
78 | "first-aid": 61772,
79 | "flag": 61773,
80 | "folder-add": 61774,
81 | "folder-lock": 61775,
82 | "folder": 61776,
83 | "foot": 61777,
84 | "foundation": 61778,
85 | "graph-bar": 61779,
86 | "graph-horizontal": 61780,
87 | "graph-pie": 61781,
88 | "graph-trend": 61782,
89 | "guide-dog": 61783,
90 | "hearing-aid": 61784,
91 | "heart": 61785,
92 | "home": 61786,
93 | "html5": 61787,
94 | "indent-less": 61788,
95 | "indent-more": 61789,
96 | "info": 61790,
97 | "italic": 61791,
98 | "key": 61792,
99 | "laptop": 61793,
100 | "layout": 61794,
101 | "lightbulb": 61795,
102 | "like": 61796,
103 | "link": 61797,
104 | "list-bullet": 61798,
105 | "list-number": 61799,
106 | "list-thumbnails": 61800,
107 | "list": 61801,
108 | "lock": 61802,
109 | "loop": 61803,
110 | "magnifying-glass": 61804,
111 | "mail": 61805,
112 | "male-female": 61806,
113 | "male-symbol": 61807,
114 | "male": 61808,
115 | "map": 61809,
116 | "marker": 61810,
117 | "megaphone": 61811,
118 | "microphone": 61812,
119 | "minus-circle": 61813,
120 | "minus": 61814,
121 | "mobile-signal": 61815,
122 | "mobile": 61816,
123 | "monitor": 61817,
124 | "mountains": 61818,
125 | "music": 61819,
126 | "next": 61820,
127 | "no-dogs": 61821,
128 | "no-smoking": 61822,
129 | "page-add": 61823,
130 | "page-copy": 61824,
131 | "page-csv": 61825,
132 | "page-delete": 61826,
133 | "page-doc": 61827,
134 | "page-edit": 61828,
135 | "page-export-csv": 61829,
136 | "page-export-doc": 61830,
137 | "page-export-pdf": 61831,
138 | "page-export": 61832,
139 | "page-filled": 61833,
140 | "page-multiple": 61834,
141 | "page-pdf": 61835,
142 | "page-remove": 61836,
143 | "page-search": 61837,
144 | "page": 61838,
145 | "paint-bucket": 61839,
146 | "paperclip": 61840,
147 | "pause": 61841,
148 | "paw": 61842,
149 | "paypal": 61843,
150 | "pencil": 61844,
151 | "photo": 61845,
152 | "play-circle": 61846,
153 | "play-video": 61847,
154 | "play": 61848,
155 | "plus": 61849,
156 | "pound": 61850,
157 | "power": 61851,
158 | "previous": 61852,
159 | "price-tag": 61853,
160 | "pricetag-multiple": 61854,
161 | "print": 61855,
162 | "prohibited": 61856,
163 | "projection-screen": 61857,
164 | "puzzle": 61858,
165 | "quote": 61859,
166 | "record": 61860,
167 | "refresh": 61861,
168 | "results-demographics": 61862,
169 | "results": 61863,
170 | "rewind-ten": 61864,
171 | "rewind": 61865,
172 | "rss": 61866,
173 | "safety-cone": 61867,
174 | "save": 61868,
175 | "share": 61869,
176 | "sheriff-badge": 61870,
177 | "shield": 61871,
178 | "shopping-bag": 61872,
179 | "shopping-cart": 61873,
180 | "shuffle": 61874,
181 | "skull": 61875,
182 | "social-500px": 61876,
183 | "social-adobe": 61877,
184 | "social-amazon": 61878,
185 | "social-android": 61879,
186 | "social-apple": 61880,
187 | "social-behance": 61881,
188 | "social-bing": 61882,
189 | "social-blogger": 61883,
190 | "social-delicious": 61884,
191 | "social-designer-news": 61885,
192 | "social-deviant-art": 61886,
193 | "social-digg": 61887,
194 | "social-dribbble": 61888,
195 | "social-drive": 61889,
196 | "social-dropbox": 61890,
197 | "social-evernote": 61891,
198 | "social-facebook": 61892,
199 | "social-flickr": 61893,
200 | "social-forrst": 61894,
201 | "social-foursquare": 61895,
202 | "social-game-center": 61896,
203 | "social-github": 61897,
204 | "social-google-plus": 61898,
205 | "social-hacker-news": 61899,
206 | "social-hi5": 61900,
207 | "social-instagram": 61901,
208 | "social-joomla": 61902,
209 | "social-lastfm": 61903,
210 | "social-linkedin": 61904,
211 | "social-medium": 61905,
212 | "social-myspace": 61906,
213 | "social-orkut": 61907,
214 | "social-path": 61908,
215 | "social-picasa": 61909,
216 | "social-pinterest": 61910,
217 | "social-rdio": 61911,
218 | "social-reddit": 61912,
219 | "social-skillshare": 61913,
220 | "social-skype": 61914,
221 | "social-smashing-mag": 61915,
222 | "social-snapchat": 61916,
223 | "social-spotify": 61917,
224 | "social-squidoo": 61918,
225 | "social-stack-overflow": 61919,
226 | "social-steam": 61920,
227 | "social-stumbleupon": 61921,
228 | "social-treehouse": 61922,
229 | "social-tumblr": 61923,
230 | "social-twitter": 61924,
231 | "social-vimeo": 61925,
232 | "social-windows": 61926,
233 | "social-xbox": 61927,
234 | "social-yahoo": 61928,
235 | "social-yelp": 61929,
236 | "social-youtube": 61930,
237 | "social-zerply": 61931,
238 | "social-zurb": 61932,
239 | "sound": 61933,
240 | "star": 61934,
241 | "stop": 61935,
242 | "strikethrough": 61936,
243 | "subscript": 61937,
244 | "superscript": 61938,
245 | "tablet-landscape": 61939,
246 | "tablet-portrait": 61940,
247 | "target-two": 61941,
248 | "target": 61942,
249 | "telephone-accessible": 61943,
250 | "telephone": 61944,
251 | "text-color": 61945,
252 | "thumbnails": 61946,
253 | "ticket": 61947,
254 | "torso-business": 61948,
255 | "torso-female": 61949,
256 | "torso": 61950,
257 | "torsos-all-female": 61951,
258 | "torsos-all": 61952,
259 | "torsos-female-male": 61953,
260 | "torsos-male-female": 61954,
261 | "torsos": 61955,
262 | "trash": 61956,
263 | "trees": 61957,
264 | "trophy": 61958,
265 | "underline": 61959,
266 | "universal-access": 61960,
267 | "unlink": 61961,
268 | "unlock": 61962,
269 | "upload-cloud": 61963,
270 | "upload": 61964,
271 | "usb": 61965,
272 | "video": 61966,
273 | "volume-none": 61967,
274 | "volume-strike": 61968,
275 | "volume": 61969,
276 | "web": 61970,
277 | "wheelchair": 61971,
278 | "widget": 61972,
279 | "wrench": 61973,
280 | "x-circle": 61974,
281 | "x": 61975,
282 | "yen": 61976,
283 | "zoom-in": 61977,
284 | "zoom-out": 61978
285 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Octicons.json:
--------------------------------------------------------------------------------
1 | {
2 | "alert": 61696,
3 | "archive": 61697,
4 | "arrow-both": 61698,
5 | "arrow-down": 61699,
6 | "arrow-left": 61700,
7 | "arrow-right": 61701,
8 | "arrow-small-down": 61702,
9 | "arrow-small-left": 61703,
10 | "arrow-small-right": 61704,
11 | "arrow-small-up": 61705,
12 | "arrow-up": 61706,
13 | "beaker": 61707,
14 | "bell": 61708,
15 | "bold": 61709,
16 | "book": 61710,
17 | "bookmark": 61711,
18 | "briefcase": 61712,
19 | "broadcast": 61713,
20 | "browser": 61714,
21 | "bug": 61715,
22 | "calendar": 61716,
23 | "check": 61717,
24 | "checklist": 61718,
25 | "chevron-down": 61719,
26 | "chevron-left": 61720,
27 | "chevron-right": 61721,
28 | "chevron-up": 61722,
29 | "circle-slash": 61723,
30 | "circuit-board": 61724,
31 | "clippy": 61725,
32 | "clock": 61726,
33 | "cloud-download": 61727,
34 | "cloud-upload": 61728,
35 | "code": 61729,
36 | "comment": 61730,
37 | "comment-discussion": 61731,
38 | "credit-card": 61732,
39 | "dash": 61733,
40 | "dashboard": 61734,
41 | "database": 61735,
42 | "desktop-download": 61736,
43 | "device-camera": 61737,
44 | "device-camera-video": 61738,
45 | "device-desktop": 61739,
46 | "device-mobile": 61740,
47 | "diff": 61741,
48 | "diff-added": 61742,
49 | "diff-ignored": 61743,
50 | "diff-modified": 61744,
51 | "diff-removed": 61745,
52 | "diff-renamed": 61746,
53 | "ellipsis": 61747,
54 | "eye": 61748,
55 | "eye-closed": 61749,
56 | "file": 61750,
57 | "file-binary": 61751,
58 | "file-code": 61752,
59 | "file-directory": 61753,
60 | "file-media": 61754,
61 | "file-pdf": 61755,
62 | "file-submodule": 61756,
63 | "file-symlink-directory": 61757,
64 | "file-symlink-file": 61758,
65 | "file-zip": 61759,
66 | "flame": 61760,
67 | "fold": 61761,
68 | "fold-down": 61762,
69 | "fold-up": 61763,
70 | "gear": 61764,
71 | "gift": 61765,
72 | "gist": 61766,
73 | "gist-secret": 61767,
74 | "git-branch": 61768,
75 | "git-commit": 61769,
76 | "git-compare": 61770,
77 | "git-merge": 61771,
78 | "git-pull-request": 61772,
79 | "github-action": 61773,
80 | "globe": 61774,
81 | "grabber": 61775,
82 | "graph": 61776,
83 | "heart": 61777,
84 | "history": 61778,
85 | "home": 61779,
86 | "horizontal-rule": 61780,
87 | "hubot": 61781,
88 | "inbox": 61782,
89 | "info": 61783,
90 | "issue-closed": 61784,
91 | "issue-opened": 61785,
92 | "issue-reopened": 61786,
93 | "italic": 61787,
94 | "jersey": 61788,
95 | "kebab-horizontal": 61789,
96 | "kebab-vertical": 61790,
97 | "key": 61791,
98 | "keyboard": 61792,
99 | "law": 61793,
100 | "light-bulb": 61794,
101 | "link": 61795,
102 | "link-external": 61796,
103 | "list-ordered": 61797,
104 | "list-unordered": 61798,
105 | "location": 61799,
106 | "lock": 61800,
107 | "logo-gist": 61801,
108 | "logo-github": 61802,
109 | "mail": 61803,
110 | "mail-read": 61804,
111 | "mark-github": 61805,
112 | "markdown": 61806,
113 | "megaphone": 61807,
114 | "mention": 61808,
115 | "milestone": 61809,
116 | "mirror": 61810,
117 | "mortar-board": 61811,
118 | "mute": 61812,
119 | "no-newline": 61813,
120 | "note": 61814,
121 | "octoface": 61815,
122 | "organization": 61816,
123 | "package": 61817,
124 | "paintcan": 61818,
125 | "pencil": 61819,
126 | "person": 61820,
127 | "pin": 61821,
128 | "play": 61822,
129 | "plug": 61823,
130 | "plus": 61824,
131 | "plus-small": 61825,
132 | "primitive-dot": 61826,
133 | "primitive-square": 61827,
134 | "project": 61828,
135 | "pulse": 61829,
136 | "question": 61830,
137 | "quote": 61831,
138 | "radio-tower": 61832,
139 | "reply": 61833,
140 | "repo": 61834,
141 | "repo-clone": 61835,
142 | "repo-force-push": 61836,
143 | "repo-forked": 61837,
144 | "repo-pull": 61838,
145 | "repo-push": 61839,
146 | "report": 61840,
147 | "request-changes": 61841,
148 | "rocket": 61842,
149 | "rss": 61843,
150 | "ruby": 61844,
151 | "screen-full": 61845,
152 | "screen-normal": 61846,
153 | "search": 61847,
154 | "server": 61848,
155 | "settings": 61849,
156 | "shield": 61850,
157 | "sign-in": 61851,
158 | "sign-out": 61852,
159 | "smiley": 61853,
160 | "squirrel": 61854,
161 | "star": 61855,
162 | "stop": 61856,
163 | "sync": 61857,
164 | "tag": 61858,
165 | "tasklist": 61859,
166 | "telescope": 61860,
167 | "terminal": 61861,
168 | "text-size": 61862,
169 | "three-bars": 61863,
170 | "thumbsdown": 61864,
171 | "thumbsup": 61865,
172 | "tools": 61866,
173 | "trashcan": 61867,
174 | "triangle-down": 61868,
175 | "triangle-left": 61869,
176 | "triangle-right": 61870,
177 | "triangle-up": 61871,
178 | "unfold": 61872,
179 | "unmute": 61873,
180 | "unverified": 61874,
181 | "verified": 61875,
182 | "versions": 61876,
183 | "watch": 61877,
184 | "x": 61878,
185 | "zap": 61879
186 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/SimpleLineIcons.json:
--------------------------------------------------------------------------------
1 | {
2 | "user": 57349,
3 | "people": 57345,
4 | "user-female": 57344,
5 | "user-follow": 57346,
6 | "user-following": 57347,
7 | "user-unfollow": 57348,
8 | "login": 57446,
9 | "logout": 57445,
10 | "emotsmile": 57377,
11 | "phone": 58880,
12 | "call-end": 57416,
13 | "call-in": 57415,
14 | "call-out": 57414,
15 | "map": 57395,
16 | "location-pin": 57494,
17 | "direction": 57410,
18 | "directions": 57409,
19 | "compass": 57413,
20 | "layers": 57396,
21 | "menu": 58881,
22 | "list": 57447,
23 | "options-vertical": 58882,
24 | "options": 58883,
25 | "arrow-down": 58884,
26 | "arrow-left": 58885,
27 | "arrow-right": 58886,
28 | "arrow-up": 58887,
29 | "arrow-up-circle": 57464,
30 | "arrow-left-circle": 57466,
31 | "arrow-right-circle": 57465,
32 | "arrow-down-circle": 57467,
33 | "check": 57472,
34 | "clock": 57473,
35 | "plus": 57493,
36 | "minus": 58901,
37 | "close": 57474,
38 | "event": 58905,
39 | "exclamation": 58903,
40 | "organization": 58902,
41 | "trophy": 57350,
42 | "screen-smartphone": 57360,
43 | "screen-desktop": 57361,
44 | "plane": 57362,
45 | "notebook": 57363,
46 | "mustache": 57364,
47 | "mouse": 57365,
48 | "magnet": 57366,
49 | "energy": 57376,
50 | "disc": 57378,
51 | "cursor": 57454,
52 | "cursor-move": 57379,
53 | "crop": 57380,
54 | "chemistry": 57382,
55 | "speedometer": 57351,
56 | "shield": 57358,
57 | "screen-tablet": 57359,
58 | "magic-wand": 57367,
59 | "hourglass": 57368,
60 | "graduation": 57369,
61 | "ghost": 57370,
62 | "game-controller": 57371,
63 | "fire": 57372,
64 | "eyeglass": 57373,
65 | "envelope-open": 57374,
66 | "envelope-letter": 57375,
67 | "bell": 57383,
68 | "badge": 57384,
69 | "anchor": 57385,
70 | "wallet": 57386,
71 | "vector": 57387,
72 | "speech": 57388,
73 | "puzzle": 57389,
74 | "printer": 57390,
75 | "present": 57391,
76 | "playlist": 57392,
77 | "pin": 57393,
78 | "picture": 57394,
79 | "handbag": 57397,
80 | "globe-alt": 57398,
81 | "globe": 57399,
82 | "folder-alt": 57401,
83 | "folder": 57481,
84 | "film": 57402,
85 | "feed": 57403,
86 | "drop": 57406,
87 | "drawer": 57407,
88 | "docs": 57408,
89 | "doc": 57477,
90 | "diamond": 57411,
91 | "cup": 57412,
92 | "calculator": 57417,
93 | "bubbles": 57418,
94 | "briefcase": 57419,
95 | "book-open": 57420,
96 | "basket-loaded": 57421,
97 | "basket": 57422,
98 | "bag": 57423,
99 | "action-undo": 57424,
100 | "action-redo": 57425,
101 | "wrench": 57426,
102 | "umbrella": 57427,
103 | "trash": 57428,
104 | "tag": 57429,
105 | "support": 57430,
106 | "frame": 57400,
107 | "size-fullscreen": 57431,
108 | "size-actual": 57432,
109 | "shuffle": 57433,
110 | "share-alt": 57434,
111 | "share": 57435,
112 | "rocket": 57436,
113 | "question": 57437,
114 | "pie-chart": 57438,
115 | "pencil": 57439,
116 | "note": 57440,
117 | "loop": 57444,
118 | "home": 57449,
119 | "grid": 57450,
120 | "graph": 57451,
121 | "microphone": 57443,
122 | "music-tone-alt": 57441,
123 | "music-tone": 57442,
124 | "earphones-alt": 57404,
125 | "earphones": 57405,
126 | "equalizer": 57452,
127 | "like": 57448,
128 | "dislike": 57453,
129 | "control-start": 57455,
130 | "control-rewind": 57456,
131 | "control-play": 57457,
132 | "control-pause": 57458,
133 | "control-forward": 57459,
134 | "control-end": 57460,
135 | "volume-1": 57503,
136 | "volume-2": 57504,
137 | "volume-off": 57505,
138 | "calendar": 57461,
139 | "bulb": 57462,
140 | "chart": 57463,
141 | "ban": 57468,
142 | "bubble": 57469,
143 | "camrecorder": 57470,
144 | "camera": 57471,
145 | "cloud-download": 57475,
146 | "cloud-upload": 57476,
147 | "envelope": 57478,
148 | "eye": 57479,
149 | "flag": 57480,
150 | "heart": 57482,
151 | "info": 57483,
152 | "key": 57484,
153 | "link": 57485,
154 | "lock": 57486,
155 | "lock-open": 57487,
156 | "magnifier": 57488,
157 | "magnifier-add": 57489,
158 | "magnifier-remove": 57490,
159 | "paper-clip": 57491,
160 | "paper-plane": 57492,
161 | "power": 57495,
162 | "refresh": 57496,
163 | "reload": 57497,
164 | "settings": 57498,
165 | "star": 57499,
166 | "symbol-female": 57500,
167 | "symbol-male": 57501,
168 | "target": 57502,
169 | "credit-card": 57381,
170 | "paypal": 58888,
171 | "social-tumblr": 57354,
172 | "social-twitter": 57353,
173 | "social-facebook": 57355,
174 | "social-instagram": 58889,
175 | "social-linkedin": 58890,
176 | "social-pinterest": 58891,
177 | "social-github": 58892,
178 | "social-google": 58893,
179 | "social-reddit": 58894,
180 | "social-skype": 58895,
181 | "social-dribbble": 57357,
182 | "social-behance": 58896,
183 | "social-foursqare": 58897,
184 | "social-soundcloud": 58898,
185 | "social-spotify": 58899,
186 | "social-stumbleupon": 58900,
187 | "social-youtube": 57352,
188 | "social-dropbox": 57356,
189 | "social-vkontakte": 58904,
190 | "social-steam": 58912
191 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/node_modules/react-native-vector-icons/glyphmaps/Zocial.json:
--------------------------------------------------------------------------------
1 | {
2 | "acrobat": 61696,
3 | "amazon": 61697,
4 | "android": 61698,
5 | "angellist": 61699,
6 | "aol": 61700,
7 | "appnet": 61701,
8 | "appstore": 61702,
9 | "bitbucket": 61703,
10 | "bitcoin": 61704,
11 | "blogger": 61705,
12 | "buffer": 61706,
13 | "cal": 61707,
14 | "call": 61708,
15 | "cart": 61709,
16 | "chrome": 61710,
17 | "cloudapp": 61711,
18 | "creativecommons": 61712,
19 | "delicious": 61713,
20 | "digg": 61714,
21 | "disqus": 61715,
22 | "dribbble": 61716,
23 | "dropbox": 61717,
24 | "drupal": 61718,
25 | "dwolla": 61720,
26 | "email": 61721,
27 | "eventasaurus": 61722,
28 | "eventbrite": 61723,
29 | "eventful": 61724,
30 | "evernote": 61725,
31 | "facebook": 61726,
32 | "fivehundredpx": 61727,
33 | "flattr": 61728,
34 | "flickr": 61729,
35 | "forrst": 61730,
36 | "foursquare": 61731,
37 | "github": 61732,
38 | "gmail": 61733,
39 | "google": 61734,
40 | "googleplay": 61735,
41 | "googleplus": 61736,
42 | "gowalla": 61737,
43 | "grooveshark": 61738,
44 | "guest": 61739,
45 | "html5": 61740,
46 | "ie": 61741,
47 | "instagram": 61742,
48 | "instapaper": 61743,
49 | "intensedebate": 61744,
50 | "itunes": 61745,
51 | "klout": 61746,
52 | "lanyrd": 61747,
53 | "lastfm": 61748,
54 | "lego": 61749,
55 | "linkedin": 61750,
56 | "lkdto": 61751,
57 | "logmein": 61752,
58 | "macstore": 61753,
59 | "meetup": 61754,
60 | "myspace": 61755,
61 | "ninetyninedesigns": 61756,
62 | "openid": 61757,
63 | "opentable": 61758,
64 | "paypal": 61759,
65 | "persona": 61796,
66 | "pinboard": 61760,
67 | "pinterest": 61761,
68 | "plancast": 61762,
69 | "plurk": 61763,
70 | "pocket": 61764,
71 | "podcast": 61765,
72 | "posterous": 61766,
73 | "print": 61767,
74 | "quora": 61768,
75 | "reddit": 61769,
76 | "rss": 61770,
77 | "scribd": 61771,
78 | "skype": 61772,
79 | "smashing": 61773,
80 | "songkick": 61774,
81 | "soundcloud": 61775,
82 | "spotify": 61776,
83 | "stackoverflow": 61777,
84 | "statusnet": 61778,
85 | "steam": 61779,
86 | "stripe": 61780,
87 | "stumbleupon": 61781,
88 | "tumblr": 61782,
89 | "twitter": 61783,
90 | "viadeo": 61784,
91 | "vimeo": 61785,
92 | "vk": 61786,
93 | "weibo": 61787,
94 | "wikipedia": 61788,
95 | "windows": 61789,
96 | "wordpress": 61790,
97 | "xing": 61791,
98 | "yahoo": 61792,
99 | "ycombinator": 61793,
100 | "yelp": 61794,
101 | "youtube": 61795
102 | }
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wdioDemoApp",
3 | "displayName": "wdioDemoApp"
4 | }
5 |
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c1.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c2.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-c3.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l1.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l2.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-l3.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r1.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r2.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/images/wdio-r3.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/io.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/io.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/webdriverio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/assets/src/assets/webdriverio.png
--------------------------------------------------------------------------------
/src/test/resources/app/wdioNativeDemoApp.app/wdioNativeDemoApp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/wdioNativeDemoApp.app/wdioNativeDemoApp
--------------------------------------------------------------------------------
/src/test/resources/app/webdriverio-app.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/app/webdriverio-app.apk
--------------------------------------------------------------------------------
/src/test/resources/firefox-driver/geckodriver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/firefox-driver/geckodriver
--------------------------------------------------------------------------------
/src/test/resources/firefox-driver/geckodriver-v0.33.0-macos-aarch64.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mfaisalkhatri/appium-java-examples/78947c6c6bf8516137aa849714307f4fa7cc1ad7/src/test/resources/firefox-driver/geckodriver-v0.33.0-macos-aarch64.tar.gz
--------------------------------------------------------------------------------
/test-suite/testng-android.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/test-suite/testng-ios-parallel.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/test-suite/testng-ios.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/test-suite/testng.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------