Appium源码环境搭建(1)

过完年了,要干正事了,今天根据@chenhengjie123 同学的文章来配置一下appium源码环境。

下载源码

首先下载appium源码,使用git clone命令来下载,我试了好几次才真正下载成功,不知道是什么原因!

qianhuis-Mac-mini:appium qianhui$ git clone https://github.com/testerhome/appium.git
Cloning into 'appium'...
remote: Counting objects: 25759, done.
remote: Total 25759 (delta 0), reused 0 (delta 0), pack-reused 25759
Receiving objects: 100% (25759/25759), 17.18 MiB | 158.00 KiB/s, done.
Resolving deltas: 100% (15648/15648), done.
Checking connectivity... done.
qianhuis-Mac-mini:appium qianhui$ 

下载成功后,会在当前目录下出现一个appium的文件夹:

这里写图片描述

同步源码

当你发现你下载的源码是来自一个分支(fork),而原作者(master)早已经更新了多个版本,这个时候你需要将master中的源码更新到本地,然后从本地提交到fork上。
分四步完成

git fetch

将远程库中更新同步到本地库中

qianhuis-Mac-mini:appium qianhui$ git fetch https://github.com/appium/appium.git
remote: Counting objects: 6659, done.
remote: Compressing objects: 100% (1000/1000), done.
remote: Total 6659 (delta 1390), reused 647 (delta 647), pack-reused 5012
Receiving objects: 100% (6659/6659), 15.75 MiB | 132.00 KiB/s, done.
Resolving deltas: 100% (4454/4454), done.
From https://github.com/appium/appium
 * branch            HEAD       -> FETCH_HEAD
qianhuis-Mac-mini:appium qianhui$ 

git checkout

取出master版本的head。

qianhuis-Mac-mini:appium qianhui$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.

git merge

合并分支FETCH_HEAD。使用下面的命令:

qianhuis-Mac-mini:appium qianhui$ git merge FETCH_HEAD
Updating 99794ad..de5501b

会发现99794ad..de5501b这是啥意思呢?我给你们看两张图就知道了。

原作者的版本图

这里写图片描述

fork的版本图

这里写图片描述

看上面2个图的右上角的latest commit后面的标示你就会知道这是代表一个版本,说明 git merge 命令是将我们de5501b版本(也就是原作者的分支)的内容合并到分支99794ad中。看该命令后续的结果:

Fast-forward
 .gitignore                                         |   21 +-
 .gitmodules                                        |   15 +
 .jscs.json => .jscsrc                              |    8 +-
 .jshintignore                                      |    5 +
 .jshintrc                                          |    3 +-
 .travis.yml                                        |   39 -
 CHANGELOG.txt                                      |  368 ++++-
 CONTRIBUTING.md                                    |  147 +-
 Gruntfile.js                                       |   69 +-
 README.md                                          |   86 +-
 assets/ApiDemos-debug.apk                          |  Bin 0 -> 3084786 bytes
 assets/TestApp.zip                                 |  Bin 0 -> 201033 bytes
 assets/TestApp7.1.app.zip                          |  Bin 0 -> 28879 bytes
 assets/UICatalog7.1.app.zip                        |  Bin 0 -> 12718522 bytes
 assets/WebViewApp7.1.app.zip                       |  Bin 0 -> 30312 bytes
 assets/ios-sim-locale                              |  Bin 38320 -> 0 bytes
 bin/ios-webkit-debug-proxy-launcher.js             |   60 +
 bin/npmlink.sh                                     |    1 +
 bin/publish.sh                                     |   17 +-
 bin/test.sh                                        |   75 +-
 ci/android_env                                     |   11 -
 ci/archive-build.sh                                |   17 +
 ci/before_script_extra.sh                          |   32 -
 ci/installers/install-android.sh                   |   30 -
 ci/installers/install-ant.sh                       |    8 -
 ci/installers/install-maven.sh                     |    8 -
 ci/installers/install-node.sh                      |    6 -
 ci/mochas/android-mocha                            |   10 -
 ci/mochas/ios71-mocha                              |   10 -
 ci/mochas/selendroid-mocha                         |    9 -
 ci/script.sh                                       |   83 --
 ci/standalone-tools/gulpfile.js                    |   65 +
 ci/standalone-tools/package.json                   |   20 +
 ci/standalone-tools/setup                          |   21 +
 ci/test-config.js                                  |   43 -
 ci/tools/build-upload-tool.js                      |   16 -
 ci/tools/parallel-mocha.js                         |  128 --
 ci/tools/travis-yml-tool.js                        |   30 -
 ci/upload_build_to_sauce.sh                        |   26 -
 ci/utils/split-array.js                            |   53 +
 docs/README.md                                     |   11 +
 docs/en/about-appium/appium-clients.md             |   18 +
 docs/en/{ => about-appium}/intro.md                |   68 +-
 docs/en/{ => advanced-concepts}/grid.md            |   22 +-
 docs/en/advanced-concepts/hybrid.md                |  217 +++
 .../en/{ => advanced-concepts}/migrating-to-1-0.md |   80 +-
 docs/en/advanced-concepts/settings.md              |   40 +
 docs/en/android_coverage.md                        |  122 --
 docs/en/appium-bindings.md                         |  669 ---------
 docs/en/appium-clients.md                          |   10 -
 docs/en/{ => appium-setup}/android-hax-emulator.md |    8 +-
 docs/en/appium-setup/android-setup.md              |   51 +
 docs/en/{ => appium-setup}/ios-deploy.md           |   34 +-
 docs/en/appium-setup/parallel_tests.md             |   30 +
 docs/en/{ => appium-setup}/platform-support.md     |   32 +-
 docs/en/appium-setup/real-devices.md               |   74 +
 docs/en/appium-setup/running-on-linux.md           |   12 +
 docs/en/appium-setup/running-on-osx.md             |   65 +
 docs/en/appium-setup/running-on-windows.md         |   65 +
 docs/en/{ => appium-setup}/troubleshooting.md      |   72 +-
 .../contributing-to-appium/appium-from-source.md   |  208 +++
 docs/en/{ => contributing-to-appium}/credits.md    |    3 +-
 docs/en/{ => contributing-to-appium}/grunt.md      |    7 +-
 .../en/contributing-to-appium/how-to-write-docs.md |   57 +
 .../en/{ => contributing-to-appium}/style-guide.md |  123 +-
 docs/en/how-to-write-docs.md                       |   39 -
 docs/en/hybrid.md                                  |  262 ----
 docs/en/real-devices.md                            |   50 -
 docs/en/running-on-linux.md                        |   44 -
 docs/en/running-on-osx.md                          |   68 -
 docs/en/running-on-windows.md                      |   54 -
 docs/en/running-tests.md                           |  155 --
 docs/en/writing-running-appium/appium-bindings.md  | 1142 +++++++++++++++
 docs/en/{ => writing-running-appium}/caps.md       |   36 +-
 .../finding-elements.md                            |   10 +-
 .../{ => writing-running-appium}/ios_predicate.md  |   45 +-
 docs/en/{ => writing-running-appium}/mobile-web.md |  130 +-
 .../writing-running-appium/network_connection.md   |   62 +
 docs/en/writing-running-appium/running-tests.md    |  270 ++++
 .../en/{ => writing-running-appium}/server-args.md |   19 +-
 docs/en/writing-running-appium/touch-actions.md    |  143 ++
 .../uiautomator_uiselector.md                      |   41 +
 docs/en/writing-running-appium/unicode.md          |  128 ++
 docs/{ => old}/cn/README.md                        |    3 +-
 docs/{ => old}/cn/android-hax-emulator.cn.md       |    0
 docs/{ => old}/cn/android_coverage.cn.md           |    0
 docs/{ => old}/cn/appium-bindings.cn.md            |    0
 docs/{ => old}/cn/appium-clients.cn.md             |    0
 docs/{ => old}/cn/caps.cn.md                       |    0
 docs/{ => old}/cn/credits.cn.md                    |    0
 docs/{ => old}/cn/finding-elements.cn.md           |    0
 docs/{ => old}/cn/grid.cn.md                       |    0
 docs/{ => old}/cn/grunt.cn.md                      |    0
 docs/{ => old}/cn/how-to-write-docs.cn.md          |    0
 docs/{ => old}/cn/hybrid.cn.md                     |    0
 docs/{ => old}/cn/intro.cn.md                      |    0
 docs/{ => old}/cn/ios-deploy.cn.md                 |    0
 docs/{ => old}/cn/ios_predicate.cn.md              |    0
 docs/{ => old}/cn/migrating-to-1-0.cn.md           |    0
 docs/{ => old}/cn/mobile-web.cn.md                 |    0
 docs/{ => old}/cn/platform-support.cn.md           |    0
 docs/{ => old}/cn/real-devices.cn.md               |    0
 docs/{ => old}/cn/running-on-linux.cn.md           |    0
 docs/{ => old}/cn/running-on-osx.cn.md             |    0
 docs/{ => old}/cn/running-on-windows.cn.md         |    0
 docs/{ => old}/cn/running-tests.cn.md              |    0
 docs/{ => old}/cn/server-args.cn.md                |    0
 docs/{ => old}/cn/style-guide.cn.md                |    0
 docs/{ => old}/cn/troubleshooting.cn.md            |    0
 grunt-helpers.js                                   |   67 +-
 gulpfile.js                                        |  223 +++
 install-beta.md                                    |   32 +
 install-from-npm.md                                |   32 +
 lib/appium.js                                      |  256 ++--
 lib/cookies.js                                     |   97 ++
 lib/devices/android/adb.js                         | 1498 +------------------
 lib/devices/android/android-common.js              |  535 +++++--
 lib/devices/android/android-context-controller.js  |  100 ++
 lib/devices/android/android-controller.js          |  566 ++++----
 lib/devices/android/android-hybrid.js              |  252 +++-
 lib/devices/android/android.js                     |  213 ++-
 lib/devices/android/bootstrap/README.md            |    5 +-
 lib/devices/android/bootstrap/pom.xml              |    6 +-
 .../uiautomator/common/ReflectionUtils.java        |   58 -
 .../com/android/uiautomator/common/UiWatchers.java |    7 +-
 .../appium/android/bootstrap/AndroidCommand.java   |   34 +-
 .../android/bootstrap/AndroidCommandExecutor.java  |   48 +-
 .../android/bootstrap/AndroidCommandType.java      |    2 +-
 .../appium/android/bootstrap/AndroidElement.java   |  150 +-
 .../android/bootstrap/AndroidElementsHash.java     |   68 +-
 .../src/io/appium/android/bootstrap/Bootstrap.java |    3 +-
 .../appium/android/bootstrap/CommandHandler.java   |   76 +-
 .../src/io/appium/android/bootstrap/Dynamic.java   |   11 +-
 .../appium/android/bootstrap/PositionHelper.java   |   74 +
 .../io/appium/android/bootstrap/SocketServer.java  |   88 +-
 .../exceptions/AndroidCommandException.java        |   17 -
 .../bootstrap/exceptions/CommandTypeException.java |   13 +-
 .../exceptions/ElementNotInHashException.java      |   16 -
 .../exceptions/InvalidCoordinatesException.java    |   12 +-
 .../exceptions/InvalidSelectorException.java       |    8 +
 .../exceptions/InvalidStrategyException.java       |   14 +-
 .../exceptions/NoAttributeFoundException.java      |   14 +-
 .../exceptions/PairCreationException.java          |    8 +
 .../exceptions/SocketServerException.java          |   12 +-
 .../exceptions/UiSelectorSyntaxException.java      |   12 +-
 .../exceptions/UnallowedTagNameException.java      |   12 +-
 .../io/appium/android/bootstrap/handler/Clear.java |  151 +-
 .../io/appium/android/bootstrap/handler/Click.java |   39 +-
 .../handler/CompressedLayoutHierarchy.java         |   32 +
 .../io/appium/android/bootstrap/handler/Drag.java  |   47 +-
 .../bootstrap/handler/DumpWindowHierarchy.java     |   64 -
 .../io/appium/android/bootstrap/handler/Find.java  |  525 +++----
 .../io/appium/android/bootstrap/handler/Flick.java |   23 +-
 .../android/bootstrap/handler/GetAttribute.java    |   26 +-
 .../android/bootstrap/handler/GetDataDir.java      |    2 +-
 .../android/bootstrap/handler/GetDeviceSize.java   |   14 +-
 .../android/bootstrap/handler/GetLocation.java     |   10 +-
 .../appium/android/bootstrap/handler/GetName.java  |   13 +-
 .../appium/android/bootstrap/handler/GetSize.java  |   17 +-
 .../appium/android/bootstrap/handler/GetText.java  |   14 +-
 .../bootstrap/handler/LongPressKeyCode.java        |   29 +-
 .../bootstrap/handler/MultiPointerGesture.java     |   23 +-
 .../bootstrap/handler/OpenNotification.java        |   43 +
 .../android/bootstrap/handler/Orientation.java     |   17 +-
 .../io/appium/android/bootstrap/handler/Pinch.java |   22 +-
 .../android/bootstrap/handler/PressBack.java       |    3 +-
 .../android/bootstrap/handler/PressKeyCode.java    |    6 +-
 .../appium/android/bootstrap/handler/ScrollTo.java |   11 +-
 .../android/bootstrap/handler/SetAttribute.java    |   64 -
 .../appium/android/bootstrap/handler/SetText.java  |   52 +-
 .../appium/android/bootstrap/handler/Source.java   |   49 +
 .../io/appium/android/bootstrap/handler/Swipe.java |   47 +-
 .../android/bootstrap/handler/TakeScreenshot.java  |    3 +-
 .../android/bootstrap/handler/TouchDown.java       |   12 +-
 .../android/bootstrap/handler/TouchEvent.java      |   47 +-
 .../android/bootstrap/handler/TouchLongClick.java  |   22 +-
 .../android/bootstrap/handler/TouchMove.java       |   12 +-
 .../appium/android/bootstrap/handler/TouchUp.java  |   11 +-
 .../android/bootstrap/handler/UpdateStrings.java   |    8 +-
 .../android/bootstrap/handler/WaitForIdle.java     |    8 +-
 .../io/appium/android/bootstrap/handler/Wake.java  |    5 +-
 .../android/bootstrap/selector/Strategy.java       |   57 +-
 .../src/io/appium/android/bootstrap/utils/API.java |    9 +
 .../android/bootstrap/utils/ClassInstancePair.java |   32 +
 .../android/bootstrap/utils/ElementHelpers.java    |   20 +-
 .../android/bootstrap/utils/NotImportantViews.java |   12 +-
 .../android/bootstrap/utils/ReflectionUtils.java   |  108 ++
 .../android/bootstrap/utils/TheWatchers.java       |    3 +-
 .../android/bootstrap/utils/UiAutomatorParser.java |   91 ++
 .../bootstrap/utils/UiScrollableParser.java        |  358 +++++
 .../android/bootstrap/utils/UiSelectorParser.java  |    6 +-
 .../android/bootstrap/utils/UnicodeEncoder.java    |   24 +-
 .../android/bootstrap/utils/XMLHierarchy.java      |  189 +++
 .../core/AccessibilityNodeInfoDumper.java          |  234 +++
 .../core/AccessibilityNodeInfoHelper.java          |   47 +
 .../uiautomator/core/InteractionController.java    |   49 +
 .../appium/uiautomator/core/QueryController.java   |   23 +
 .../appium/uiautomator/core/UiAutomatorBridge.java |   59 +
 .../android/bootstrap/utils/XMLHierarchyTest.java  |   90 ++
 lib/devices/android/chrome.js                      |  129 +-
 lib/devices/android/chromedriver.js                |   90 +-
 lib/devices/android/helpers/move_manifest.jar      |  Bin 3547 -> 0 bytes
 lib/devices/android/helpers/sign.jar               |  Bin 26106 -> 0 bytes
 lib/devices/android/helpers/strings_from_apk.jar   |  Bin 6720125 -> 0 bytes
 lib/devices/android/helpers/unsign.jar             |  Bin 3311 -> 0 bytes
 lib/devices/android/helpers/verify.jar             |  Bin 6273 -> 0 bytes
 lib/devices/android/logcat.js                      |  120 --
 lib/devices/android/selendroid.js                  |  280 +++-
 lib/devices/android/uiautomator.js                 |   19 +-
 lib/devices/common.js                              |   80 +-
 lib/devices/device-settings.js                     |   64 +
 lib/devices/device.js                              |   50 +-
 lib/devices/firefoxos/firefoxos.js                 |   20 +-
 lib/devices/ios/ios-controller.js                  |  566 ++++++--
 lib/devices/ios/ios-hybrid.js                      |   97 +-
 lib/devices/ios/ios-log.js                         |  116 +-
 lib/devices/ios/ios-perf-log.js                    |   48 +
 lib/devices/ios/ios.js                             | 1530 ++++++++++++--------
 lib/devices/ios/remote-debugger.js                 |  166 ++-
 lib/devices/ios/remote-messages.js                 |   10 +
 lib/devices/ios/safari.js                          |  188 +--
 lib/devices/ios/settings.js                        |  174 +--
 lib/devices/ios/simulator.js                       |  586 ++++++++
 lib/devices/ios/uiauto.js                          |    9 +
 lib/devices/ios/webkit-remote-debugger.js          |   18 +-
 lib/devices/ios/xcode.js                           |   92 ++
 lib/doctor/android.js                              |    4 +-
 lib/doctor/dev.js                                  |   57 +-
 lib/doctor/ios.js                                  |    3 +
 lib/future.js                                      |   28 +
 lib/helpers.js                                     |  380 +----
 lib/server/capabilities.js                         |   73 +-
 lib/server/controller.js                           |  415 ++++--
 lib/server/grid-register.js                        |    8 +-
 lib/server/helpers.js                              |  212 ++-
 lib/server/logger.js                               |  200 ++-
 lib/server/main.js                                 |   88 +-
 lib/server/parser.js                               |  156 +-
 lib/server/proxy.js                                |   11 +-
 lib/server/responses.js                            |   60 +-
 lib/server/routing.js                              |   38 +-
 lib/tempdir.js                                     |   60 -
 package.json                                       |   80 +-
 reset.bat                                          |   39 +-
 reset.sh                                           |  186 ++-
 sample-code/apps/ContactManager/ContactManager.apk |  Bin 25931 -> 0 bytes
 .../RobotCalibration.xcodeproj/project.pbxproj     |  487 -------
 .../project.xcworkspace/contents.xcworkspacedata   |    7 -
 .../RobotCalibration/Default-568h@2x.png           |  Bin 18594 -> 0 bytes
 .../RobotCalibration/RobotCalibration/Default.png  |  Bin 6540 -> 0 bytes
 .../RobotCalibration/Default@2x.png                |  Bin 16107 -> 0 bytes
 .../RobotCalibration/RCAppDelegate.h               |   28 -
 .../RobotCalibration/RCAppDelegate.m               |   59 -
 .../RobotCalibration/RCViewController.h            |   29 -
 .../RobotCalibration/RCViewController.m            |  117 --
 .../RobotCalibration/RobotCalibration-Info.plist   |   50 -
 .../RobotCalibration/RobotCalibration-Prefix.pch   |   31 -
 .../RobotCalibration/en.lproj/InfoPlist.strings    |    2 -
 .../en.lproj/MainStoryboard_iPad.storyboard        |   50 -
 .../en.lproj/MainStoryboard_iPhone.storyboard      |   39 -
 .../apps/RobotCalibration/RobotCalibration/main.m  |   31 -
 .../RobotCalibrationTests-Info.plist               |   22 -
 .../RobotCalibrationTests/RobotCalibrationTests.h  |   26 -
 .../RobotCalibrationTests/RobotCalibrationTests.m  |   45 -
 .../en.lproj/InfoPlist.strings                     |    2 -
 sample-code/apps/TestApp/.gitignore                |    1 -
 sample-code/apps/TestApp/Default-568h@2x.png       |  Bin 18594 -> 0 bytes
 .../TestApp/Test App 2/GestureTestViewController.h |   18 -
 .../TestApp/Test App 2/GestureTestViewController.m |   48 -
 .../Test App 2/GestureTestViewController.xib       |   47 -
 .../Test App 2/MyViewControllerViewController.h    |   41 -
 .../Test App 2/MyViewControllerViewController.m    |  178 ---
 .../Test App 2/MyViewControllerViewController.xib  |  147 --
 .../apps/TestApp/Test App 2/TA2AppDelegate.h       |   28 -
 .../apps/TestApp/Test App 2/TA2AppDelegate.m       |   85 --
 .../apps/TestApp/Test App 2/TestApp-Info.plist     |   40 -
 .../apps/TestApp/Test App 2/TestApp-Prefix.pch     |   29 -
 .../TestApp/Test App 2/en.lproj/InfoPlist.strings  |   21 -
 .../Test App 2/en.lproj/Localizable.strings        |  Bin 138 -> 0 bytes
 sample-code/apps/TestApp/Test App 2/main.m         |   31 -
 .../apps/TestApp/TestApp.xcodeproj/project.pbxproj |  328 -----
 .../project.xcworkspace/contents.xcworkspacedata   |    7 -
 .../UserInterfaceState.xcuserstate                 |  Bin 15596 -> 0 bytes
 .../danc.xcuserdatad/xcschemes/TestApp.xcscheme    |   86 --
 .../xcschemes/xcschememanagement.plist             |   22 -
 sample-code/apps/ToggleTest/.classpath             |    9 -
 sample-code/apps/ToggleTest/.gitignore             |   17 -
 sample-code/apps/ToggleTest/.project               |   33 -
 sample-code/apps/ToggleTest/AndroidManifest.xml    |   30 -
 sample-code/apps/ToggleTest/ic_launcher-web.png    |  Bin 51394 -> 0 bytes
 .../apps/ToggleTest/libs/android-support-v4.jar    |  Bin 627582 -> 0 bytes
 .../ToggleTest/res/drawable-hdpi/ic_launcher.png   |  Bin 7658 -> 0 bytes
 .../ToggleTest/res/drawable-mdpi/ic_launcher.png   |  Bin 3777 -> 0 bytes
 .../ToggleTest/res/drawable-xhdpi/ic_launcher.png  |  Bin 12516 -> 0 bytes
 .../ToggleTest/res/drawable-xxhdpi/ic_launcher.png |  Bin 24777 -> 0 bytes
 .../apps/ToggleTest/res/layout/activity_main.xml   |  120 --
 sample-code/apps/ToggleTest/res/menu/main.xml      |    9 -
 .../apps/ToggleTest/res/values-sw600dp/dimens.xml  |    8 -
 .../ToggleTest/res/values-sw720dp-land/dimens.xml  |    9 -
 .../apps/ToggleTest/res/values-v11/styles.xml      |   11 -
 .../apps/ToggleTest/res/values-v14/styles.xml      |   12 -
 sample-code/apps/ToggleTest/res/values/dimens.xml  |    7 -
 sample-code/apps/ToggleTest/res/values/strings.xml |    8 -
 sample-code/apps/ToggleTest/res/values/styles.xml  |   20 -
 .../src/com/example/toggletest/MainActivity.java   |   72 -
 .../WebViewApp.xcodeproj/project.pbxproj           |  325 -----
 .../project.xcworkspace/contents.xcworkspacedata   |    7 -
 .../apps/WebViewApp/WebViewApp/AppDelegate.h       |   15 -
 .../apps/WebViewApp/WebViewApp/AppDelegate.m       |   46 -
 .../apps/WebViewApp/WebViewApp/Default-568h@2x.png |  Bin 18594 -> 0 bytes
 sample-code/apps/WebViewApp/WebViewApp/Default.png |  Bin 6540 -> 0 bytes
 .../apps/WebViewApp/WebViewApp/Default@2x.png      |  Bin 16107 -> 0 bytes
 .../apps/WebViewApp/WebViewApp/ViewController.h    |   22 -
 .../apps/WebViewApp/WebViewApp/ViewController.m    |   81 --
 .../WebViewApp/WebViewApp/WebViewApp-Info.plist    |   48 -
 .../WebViewApp/WebViewApp/WebViewApp-Prefix.pch    |   14 -
 .../apps/WebViewApp/WebViewApp/cybervillainsCA.cer |  Bin 665 -> 0 bytes
 .../WebViewApp/en.lproj/InfoPlist.strings          |    2 -
 .../en.lproj/MainStoryboard_iPad.storyboard        |   73 -
 .../en.lproj/MainStoryboard_iPhone.storyboard      |   72 -
 sample-code/apps/WebViewApp/WebViewApp/main.m      |   18 -
 .../examples/dotnet/AppiumDriverDemo/.gitignore    |    4 -
 .../AppiumDriverDemo/AppiumDriverDemo.csproj       |   58 -
 .../dotnet/AppiumDriverDemo/AppiumDriverDemo.sln   |   20 -
 .../examples/dotnet/AppiumDriverDemo/Program.cs    |   12 -
 .../dotnet/AppiumDriverDemo/ProgramTest.cs         |   85 --
 .../AppiumDriverDemo/Properties/AssemblyInfo.cs    |   22 -
 .../dotnet/AppiumDriverDemo/packages.config        |    7 -
 .../junit/.settings/org.eclipse.jdt.core.prefs     |  292 ----
 .../java/junit/.settings/org.eclipse.jdt.ui.prefs  |  109 --
 .../junit/.settings/org.eclipse.m2e.core.prefs     |    4 -
 sample-code/examples/java/junit/README.md          |   18 -
 sample-code/examples/java/junit/pom.xml            |   84 --
 .../com/saucelabs/appium/AndroidContactsTest.java  |   52 -
 .../java/com/saucelabs/appium/AndroidTest.java     |   55 -
 .../com/saucelabs/appium/AndroidWebViewTest.java   |   55 -
 .../com/saucelabs/appium/MobileFindJavaTest.java   |   44 -
 .../test/java/com/saucelabs/appium/SafariTest.java |   80 -
 .../test/java/com/saucelabs/appium/SauceTest.java  |  117 --
 .../test/java/com/saucelabs/appium/SimpleTest.java |  222 ---
 .../java/com/saucelabs/appium/UICatalogTest.java   |  220 ---
 sample-code/examples/node/ios-wd-raw.js            |   82 --
 sample-code/examples/node/ios-yiewd-catalog.js     |  131 --
 .../examples/node/local-android-wd-chrome.js       |   62 -
 .../examples/node/local-android-wd-contacts.js     |   71 -
 .../examples/node/local-android-yiewd-contacts.js  |   99 --
 sample-code/examples/node/local-ios-wd-hybrid.js   |   64 -
 sample-code/examples/node/local-ios-wd-safari.js   |   61 -
 .../examples/node/sauce-android-mocha-wd-notes.js  |   85 --
 .../node/sauce-connect-ios-mocha-wd-raw.js         |  108 --
 sample-code/examples/node/sauce-ios-mocha-raw.js   |   90 --
 sample-code/examples/perl/ios_simple.pl            |   42 -
 sample-code/examples/php/SauceTest.php             |   49 -
 sample-code/examples/php/SimpleTest.php            |   54 -
 sample-code/examples/php/composer.json             |    5 -
 sample-code/examples/python/android_complex.py     |  159 --
 sample-code/examples/python/android_contacts.py    |   53 -
 sample-code/examples/python/android_sauce.py       |   73 -
 sample-code/examples/python/android_simple.py      |   61 -
 sample-code/examples/python/android_webview.py     |   49 -
 sample-code/examples/python/ios_complex.py         |  183 ---
 sample-code/examples/python/ios_sauce.py           |   84 --
 sample-code/examples/python/ios_sauce_webview.py   |   82 --
 sample-code/examples/python/ios_simple.py          |   69 -
 sample-code/examples/python/ios_webview.py         |   53 -
 sample-code/examples/python/sauce_connect.py       |  133 --
 sample-code/examples/python/selendroid_simple.py   |   59 -
 sample-code/examples/ruby/Gemfile                  |    9 -
 sample-code/examples/ruby/README.md                |   62 -
 sample-code/examples/ruby/UICatalog.app.zip        |  Bin 364716 -> 0 bytes
 sample-code/examples/ruby/android_on_sauce.rb      |   70 -
 .../ruby/cucumber/features/calculator.feature      |   47 -
 .../ruby/cucumber/features/calculator2.feature     |   47 -
 .../cucumber/features/step_definitions/steps.rb    |   47 -
 .../ruby/cucumber/features/support/appium.txt      |    5 -
 .../examples/ruby/cucumber/features/support/env.rb |   26 -
 sample-code/examples/ruby/sauce_example.rb         |  114 --
 sample-code/examples/ruby/simple_test.rb           |  101 --
 sample-code/examples/ruby/u_i_catalog.rb           |  254 ----
 sample-code/examples/ruby/xunit_android.rb         |   34 -
 submodules/ApiDemos                                |    2 +-
 submodules/ForceQuitUnresponsiveApps               |    1 -
 submodules/appium-adb                              |    1 +
 submodules/appium-instruments                      |    2 +-
 submodules/appium-uiauto                           |    2 +-
 submodules/deviceconsole                           |    1 +
 submodules/io.appium.android.ime                   |    1 +
 submodules/io.appium.settings                      |    1 +
 submodules/sample-code                             |    1 +
 submodules/selendroid                              |    2 +-
 submodules/unlock_apk                              |    2 +-
 test/.jshintrc                                     |    2 +-
 test/README.md                                     |    7 +-
 .../StubApp.app/en.lproj/InfoPlist.strings         |  Bin 0 -> 42 bytes
 .../StubApp.app/en.lproj/Localizable.strings       |  Bin 0 -> 83 bytes
 .../StubApp.app/en.lproj/custom.strings            |   10 +
 .../android/apidemos/attributes-specs.js           |   18 +-
 test/functional/android/apidemos/basic-specs.js    |  126 +-
 test/functional/android/apidemos/clear-specs.js    |  126 ++
 .../android/apidemos/file-movement-specs.js        |   57 +
 test/functional/android/apidemos/file-specs.js     |   24 -
 .../android/apidemos/find/basics-specs.js          |   29 +-
 .../apidemos/find/by-accessibility-id-specs.js     |    5 +
 .../android/apidemos/find/by-uiautomator-specs.js  |  130 +-
 .../android/apidemos/find/by-xpath-specs.js        |   77 +-
 .../android/apidemos/find/complex-find-specs.js    |   27 -
 .../android/apidemos/find/from-el-specs.js         |    2 +-
 .../android/apidemos/gestures/click-specs.js       |    7 +-
 .../android/apidemos/gestures/swipe-specs.js       |   38 -
 test/functional/android/apidemos/ime-specs.js      |   58 +
 test/functional/android/apidemos/keyboard-specs.js |  121 +-
 .../apidemos/localization/language-specs.js        |   45 +
 .../android/apidemos/localization/locale-specs.js  |   89 ++
 test/functional/android/apidemos/location-specs.js |   31 -
 test/functional/android/apidemos/lock-specs.js     |   48 +
 .../android/apidemos/notifications-specs.js        |   36 +
 .../android/apidemos/screenshot-specs.js           |    4 +-
 test/functional/android/apidemos/source-specs.js   |   29 +-
 .../android/apidemos/touch/drag-specs.js           |   49 +-
 .../android/apidemos/touch/multi-actions-specs.js  |   51 +-
 .../touch/multi-actions-with-wait-specs.js         |   51 +-
 .../android/apidemos/touch/press-specs.js          |  113 +-
 .../android/apidemos/touch/swipe-specs.js          |  129 +-
 .../functional/android/apidemos/touch/tap-specs.js |   65 +-
 test/functional/android/app-path-base.js           |   37 +
 test/functional/android/chrome/alerts-specs.js     |    6 -
 test/functional/android/chrome/basics-specs.js     |    6 -
 test/functional/android/chrome/chrome-specs.js     |   35 +
 test/functional/android/chrome/cookies-specs.js    |    6 -
 test/functional/android/chrome/desired.js          |    3 +-
 .../android/chrome/execute-async-specs.js          |    6 -
 test/functional/android/chrome/execute-specs.js    |    6 -
 test/functional/android/chrome/frames-specs.js     |    6 -
 test/functional/android/chrome/iframes-specs.js    |    6 -
 .../android/chrome/implicit-wait-specs.js          |    6 -
 .../android/chrome/session-override-specs.js       |   37 +
 .../android/chrome/window-title-specs.js           |    6 -
 test/functional/android/gpsdemos/desired.js        |    7 +
 test/functional/android/gpsdemos/location-specs.js |   53 +
 test/functional/android/keystore-specs.js          |    5 +
 .../android/toggle/network-connection-specs.js     |   40 +
 test/functional/android/webview-auto-specs.js      |    5 +
 test/functional/android/webview-specs.js           |    4 +-
 .../functional/common/android-auto-webview-base.js |   28 +
 test/functional/common/android-keyboard-base.js    |  194 +++
 test/functional/common/android-webview-base.js     |  109 +-
 test/functional/common/jsonwp-specs.js             |    2 +-
 test/functional/common/keystore-base.js            |   47 +
 test/functional/common/prelaunch-specs.js          |   41 +-
 test/functional/common/settings-specs.js           |   57 +
 test/functional/common/setup-base.js               |    9 +-
 test/functional/common/webview/basics-base.js      |   15 +-
 test/functional/common/webview/cookies-base.js     |   11 +-
 test/functional/common/webview/https-base.js       |   20 -
 test/functional/common/webview/touch-base.js       |   56 +
 .../functional/common/webview/window-title-base.js |    2 +-
 test/functional/dynamic-app/code-injector.js       |  141 ++
 test/functional/dynamic-app/poc-specs.js           |  110 ++
 test/functional/dynamic-app/setup-base.js          |   61 +
 test/functional/gappium/basic-specs.js             |    5 +-
 test/functional/ios/crash-specs.js                 |   51 +
 test/functional/ios/file-movement-specs.js         |  137 +-
 test/functional/ios/iwebview/alerts-specs.js       |    6 -
 test/functional/ios/iwebview/basics-specs.js       |    6 -
 test/functional/ios/iwebview/cookies-specs.js      |    6 -
 test/functional/ios/iwebview/desired.js            |    4 -
 .../functional/ios/iwebview/execute-async-specs.js |    6 -
 test/functional/ios/iwebview/execute-specs.js      |    6 -
 test/functional/ios/iwebview/frames-specs.js       |    6 -
 test/functional/ios/iwebview/https-specs.js        |    6 -
 test/functional/ios/iwebview/iframes-specs.js      |    6 -
 .../functional/ios/iwebview/implicit-wait-specs.js |    6 -
 test/functional/ios/iwebview/window-title-specs.js |    6 -
 .../ios/prefs/autocomplete-settings-specs.js       |   11 +-
 test/functional/ios/prefs/bundleid-specs.js        |   22 +
 test/functional/ios/prefs/check-safari-settings.js |   65 +-
 .../ios/prefs/location-settings-specs.js           |   11 +-
 .../ios/prefs/safari-allows-popup-specs.js         |   14 +-
 .../ios/prefs/safari-ignore-fraud-warning-specs.js |   14 +-
 test/functional/ios/safari/context-specs.js        |   19 +
 test/functional/ios/safari/screenshot-specs.js     |   54 +-
 test/functional/ios/safari/webview/desired.js      |    3 +-
 .../ios/safari/webview/special-caps-specs.js       |   58 +
 test/functional/ios/safari/webview/touch-specs.js  |    6 +
 test/functional/ios/safari/windows-frame-specs.js  |   82 +-
 test/functional/ios/testapp/accents-specs.js       |   30 -
 .../autoaccept-alerts/autoaccept-empty-specs.js    |    4 +-
 .../autoaccept-alerts/autoaccept-false-specs.js    |    8 +-
 .../autoaccept-alerts/autoaccept-true-specs.js     |    8 +-
 .../autodismiss-alerts/autodismiss-empty-specs.js  |   24 +
 .../autodismiss-alerts/autodismiss-false-specs.js  |   41 +
 .../autodismiss-alerts/autodismiss-true-specs.js   |   41 +
 .../ios/testapp/basics/calc-app-2-specs.js         |    2 +-
 test/functional/ios/testapp/clear-specs.js         |   47 +-
 test/functional/ios/testapp/device-specs.js        |   66 +-
 test/functional/ios/testapp/find-element-specs.js  |   20 +-
 test/functional/ios/testapp/keyboard-specs.js      |  102 ++
 .../testapp/localization/calendar-format-specs.js  |   42 +
 .../ios/testapp/localization/language-specs.js     |   42 +
 .../ios/testapp/localization/locale-specs.js       |   54 +
 test/functional/ios/testapp/location-specs.js      |   29 +-
 .../ios/testapp/pinch-open-close-specs.js          |   23 +
 test/functional/ios/testapp/size-specs.js          |    4 +-
 test/functional/ios/testapp/source-specs.js        |   19 +-
 .../ios/testapp/timeout/implicit-wait-specs.js     |   55 +-
 test/functional/ios/testapp/touch-specs.js         |  214 ++-
 test/functional/ios/testapp/wait-for-app-specs.js  |   38 +
 test/functional/ios/uicatalog-61/alerts-specs.js   |   86 +-
 test/functional/ios/uicatalog-61/basic-specs.js    |    4 +-
 test/functional/ios/uicatalog-61/controls-specs.js |    2 +-
 test/functional/ios/uicatalog-61/device-specs.js   |    2 +-
 test/functional/ios/uicatalog-61/execute-specs.js  |    4 +-
 .../ios/uicatalog-61/find-element-specs.js         |   35 +-
 test/functional/ios/uicatalog-61/gestures-specs.js |  152 +-
 .../load-app/load-abs-path-zipped-app-specs.js     |    2 +-
 .../load-app/load-rel-path-zipped-app-specs.js     |    2 +-
 .../load-app/load-zipped-url-app-specs.js          |    2 +-
 test/functional/ios/uicatalog-61/move-specs.js     |    2 +-
 test/functional/ios/uicatalog-61/reset-specs.js    |    2 +-
 test/functional/ios/uicatalog-61/window-specs.js   |    2 +-
 test/functional/ios/uicatalog/alerts-specs.js      |   86 +-
 test/functional/ios/uicatalog/basic-specs.js       |   32 +-
 test/functional/ios/uicatalog/clear-specs.js       |   57 +
 test/functional/ios/uicatalog/controls-specs.js    |   31 +-
 test/functional/ios/uicatalog/execute-specs.js     |    2 +-
 test/functional/ios/uicatalog/find-basics-specs.js |  110 +-
 .../uicatalog/find-by-accessibility-id-specs.js    |   36 +-
 .../ios/uicatalog/find-by-ui-automation-specs.js   |   23 +-
 .../ios/uicatalog/find-by-xpath-specs.js           |  207 ++-
 .../ios/uicatalog/gestures/flick-specs.js          |   15 +-
 .../ios/uicatalog/gestures/mobile-scroll-specs.js  |   12 +-
 .../ios/uicatalog/gestures/scroll-to-el-specs.js   |   19 +-
 .../ios/uicatalog/gestures/swipe-element-specs.js  |   62 -
 .../ios/uicatalog/gestures/swipe-specs.js          |   97 --
 .../uicatalog/load-app/load-abs-path-app-specs.js  |    2 +-
 .../load-app/load-abs-path-zipped-app-specs.js     |    2 +-
 .../load-app/load-rel-path-zipped-app-specs.js     |    2 +-
 .../load-app/load-zipped-url-app-specs.js          |    4 +-
 test/functional/ios/uicatalog/lock-device-specs.js |    4 +-
 test/functional/ios/uicatalog/move-specs.js        |    6 +-
 test/functional/ios/uicatalog/reset-specs.js       |   11 +
 test/functional/ios/uicatalog/touch-specs.js       |   71 +
 test/functional/ios/webview/basics-specs.js        |   53 +-
 test/functional/ios/webview/webview-auto-spec.js   |   20 +
 test/functional/selendroid/app-act-no-dot-specs.js |   16 +-
 test/functional/selendroid/app-path-specs.js       |    7 +
 test/functional/selendroid/app-permission-spec.js  |   48 +
 test/functional/selendroid/clear-specs.js          |  134 ++
 test/functional/selendroid/keyboard-specs.js       |    5 +
 test/functional/selendroid/keystore-specs.js       |    6 +
 test/functional/selendroid/shutdown-specs.js       |   35 +
 test/functional/selendroid/webview-auto-specs.js   |    5 +
 test/functional/selendroid/webview-specs.js        |    3 +-
 test/helpers/app.js                                |    2 +-
 test/helpers/env.js                                |   85 +-
 test/helpers/repeat.js                             |    2 +-
 test/helpers/reset.js                              |    7 +-
 test/helpers/safe-clear.js                         |    5 +-
 test/helpers/session.js                            |   42 +-
 test/helpers/sim-udid.js                           |   24 +
 test/helpers/webview.js                            |    2 +-
 test/tools/prepare-tap.js                          |   26 +
 test/unit/adb-specs.js                             |   75 +
 test/unit/capabilities-specs.js                    |   12 +
 test/unit/common-device-specs.js                   |    4 +-
 test/unit/configuration-specs.js                   |   74 +-
 test/unit/helper-specs.js                          |   30 +-
 test/unit/ios-controller-specs.js                  |    2 +-
 test/unit/ios-device-specs.js                      |  112 ++
 test/unit/queue-specs.js                           |   54 +-
 trigger.txt                                        |    2 +
 571 files changed, 16869 insertions(+), 17660 deletions(-)
 rename .jscs.json => .jscsrc (71%)
 create mode 100644 .jshintignore
 delete mode 100644 .travis.yml
 create mode 100644 assets/ApiDemos-debug.apk
 create mode 100644 assets/TestApp.zip
 create mode 100644 assets/TestApp7.1.app.zip
 create mode 100644 assets/UICatalog7.1.app.zip
 create mode 100644 assets/WebViewApp7.1.app.zip
 delete mode 100755 assets/ios-sim-locale
 create mode 100755 bin/ios-webkit-debug-proxy-launcher.js
 delete mode 100644 ci/android_env
 create mode 100755 ci/archive-build.sh
 delete mode 100755 ci/before_script_extra.sh
 delete mode 100755 ci/installers/install-android.sh
 delete mode 100755 ci/installers/install-ant.sh
 delete mode 100755 ci/installers/install-maven.sh
 delete mode 100755 ci/installers/install-node.sh
 delete mode 100755 ci/mochas/android-mocha
 delete mode 100755 ci/mochas/ios71-mocha
 delete mode 100755 ci/mochas/selendroid-mocha
 delete mode 100755 ci/script.sh
 create mode 100644 ci/standalone-tools/gulpfile.js
 create mode 100644 ci/standalone-tools/package.json
 create mode 100755 ci/standalone-tools/setup
 delete mode 100644 ci/test-config.js
 delete mode 100644 ci/tools/build-upload-tool.js
 delete mode 100644 ci/tools/parallel-mocha.js
 delete mode 100644 ci/tools/travis-yml-tool.js
 delete mode 100755 ci/upload_build_to_sauce.sh
 create mode 100644 ci/utils/split-array.js
 create mode 100644 docs/README.md
 create mode 100644 docs/en/about-appium/appium-clients.md
 rename docs/en/{ => about-appium}/intro.md (73%)
 rename docs/en/{ => advanced-concepts}/grid.md (61%)
 create mode 100644 docs/en/advanced-concepts/hybrid.md
 rename docs/en/{ => advanced-concepts}/migrating-to-1-0.md (74%)
 create mode 100644 docs/en/advanced-concepts/settings.md
 delete mode 100644 docs/en/android_coverage.md
 delete mode 100644 docs/en/appium-bindings.md
 delete mode 100644 docs/en/appium-clients.md
 rename docs/en/{ => appium-setup}/android-hax-emulator.md (65%)
 create mode 100644 docs/en/appium-setup/android-setup.md
 rename docs/en/{ => appium-setup}/ios-deploy.md (88%)
 create mode 100644 docs/en/appium-setup/parallel_tests.md
 rename docs/en/{ => appium-setup}/platform-support.md (70%)
 create mode 100644 docs/en/appium-setup/real-devices.md
 create mode 100644 docs/en/appium-setup/running-on-linux.md
 create mode 100644 docs/en/appium-setup/running-on-osx.md
 create mode 100644 docs/en/appium-setup/running-on-windows.md
 rename docs/en/{ => appium-setup}/troubleshooting.md (63%)
 create mode 100644 docs/en/contributing-to-appium/appium-from-source.md
 rename docs/en/{ => contributing-to-appium}/credits.md (91%)
 rename docs/en/{ => contributing-to-appium}/grunt.md (89%)
 create mode 100644 docs/en/contributing-to-appium/how-to-write-docs.md
 rename docs/en/{ => contributing-to-appium}/style-guide.md (68%)
 delete mode 100644 docs/en/how-to-write-docs.md
 delete mode 100644 docs/en/hybrid.md
 delete mode 100644 docs/en/real-devices.md
 delete mode 100644 docs/en/running-on-linux.md
 delete mode 100644 docs/en/running-on-osx.md
 delete mode 100644 docs/en/running-on-windows.md
 delete mode 100644 docs/en/running-tests.md
 create mode 100644 docs/en/writing-running-appium/appium-bindings.md
 rename docs/en/{ => writing-running-appium}/caps.md (53%)
 rename docs/en/{ => writing-running-appium}/finding-elements.md (89%)
 rename docs/en/{ => writing-running-appium}/ios_predicate.md (90%)
 rename docs/en/{ => writing-running-appium}/mobile-web.md (61%)
 create mode 100644 docs/en/writing-running-appium/network_connection.md
 create mode 100644 docs/en/writing-running-appium/running-tests.md
 rename docs/en/{ => writing-running-appium}/server-args.md (76%)
 create mode 100644 docs/en/writing-running-appium/touch-actions.md
 create mode 100644 docs/en/writing-running-appium/uiautomator_uiselector.md
 create mode 100644 docs/en/writing-running-appium/unicode.md
 rename docs/{ => old}/cn/README.md (96%)
 rename docs/{ => old}/cn/android-hax-emulator.cn.md (100%)
 rename docs/{ => old}/cn/android_coverage.cn.md (100%)
 rename docs/{ => old}/cn/appium-bindings.cn.md (100%)
 rename docs/{ => old}/cn/appium-clients.cn.md (100%)
 rename docs/{ => old}/cn/caps.cn.md (100%)
 rename docs/{ => old}/cn/credits.cn.md (100%)
 rename docs/{ => old}/cn/finding-elements.cn.md (100%)
 rename docs/{ => old}/cn/grid.cn.md (100%)
 rename docs/{ => old}/cn/grunt.cn.md (100%)
 rename docs/{ => old}/cn/how-to-write-docs.cn.md (100%)
 rename docs/{ => old}/cn/hybrid.cn.md (100%)
 rename docs/{ => old}/cn/intro.cn.md (100%)
 rename docs/{ => old}/cn/ios-deploy.cn.md (100%)
 rename docs/{ => old}/cn/ios_predicate.cn.md (100%)
 rename docs/{ => old}/cn/migrating-to-1-0.cn.md (100%)
 rename docs/{ => old}/cn/mobile-web.cn.md (100%)
 rename docs/{ => old}/cn/platform-support.cn.md (100%)
 rename docs/{ => old}/cn/real-devices.cn.md (100%)
 rename docs/{ => old}/cn/running-on-linux.cn.md (100%)
 rename docs/{ => old}/cn/running-on-osx.cn.md (100%)
 rename docs/{ => old}/cn/running-on-windows.cn.md (100%)
 rename docs/{ => old}/cn/running-tests.cn.md (100%)
 rename docs/{ => old}/cn/server-args.cn.md (100%)
 rename docs/{ => old}/cn/style-guide.cn.md (100%)
 rename docs/{ => old}/cn/troubleshooting.cn.md (100%)
 create mode 100644 gulpfile.js
 create mode 100644 install-beta.md
 create mode 100644 install-from-npm.md
 create mode 100644 lib/cookies.js
 create mode 100644 lib/devices/android/android-context-controller.js
 delete mode 100644 lib/devices/android/bootstrap/src/com/android/uiautomator/common/ReflectionUtils.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/PositionHelper.java
 delete mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/exceptions/AndroidCommandException.java
 delete mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/exceptions/ElementNotInHashException.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/exceptions/InvalidSelectorException.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/exceptions/PairCreationException.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/handler/CompressedLayoutHierarchy.java
 delete mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/handler/DumpWindowHierarchy.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/handler/OpenNotification.java
 delete mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/handler/SetAttribute.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/handler/Source.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/API.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/ClassInstancePair.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/ReflectionUtils.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/UiAutomatorParser.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/UiScrollableParser.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/android/bootstrap/utils/XMLHierarchy.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/uiautomator/core/AccessibilityNodeInfoDumper.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/uiautomator/core/AccessibilityNodeInfoHelper.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/uiautomator/core/InteractionController.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/uiautomator/core/QueryController.java
 create mode 100644 lib/devices/android/bootstrap/src/io/appium/uiautomator/core/UiAutomatorBridge.java
 create mode 100644 lib/devices/android/bootstrap/test/io/appium/android/bootstrap/utils/XMLHierarchyTest.java
 delete mode 100644 lib/devices/android/helpers/move_manifest.jar
 delete mode 100644 lib/devices/android/helpers/sign.jar
 delete mode 100644 lib/devices/android/helpers/strings_from_apk.jar
 delete mode 100755 lib/devices/android/helpers/unsign.jar
 delete mode 100644 lib/devices/android/helpers/verify.jar
 delete mode 100644 lib/devices/android/logcat.js
 create mode 100644 lib/devices/device-settings.js
 create mode 100644 lib/devices/ios/ios-perf-log.js
 create mode 100644 lib/devices/ios/simulator.js
 create mode 100644 lib/devices/ios/uiauto.js
 create mode 100644 lib/devices/ios/xcode.js
 create mode 100644 lib/future.js
 delete mode 100644 lib/tempdir.js
 delete mode 100644 sample-code/apps/ContactManager/ContactManager.apk
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration.xcodeproj/project.pbxproj
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/Default-568h@2x.png
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/Default.png
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/Default@2x.png
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RCAppDelegate.h
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RCAppDelegate.m
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RCViewController.h
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RCViewController.m
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RobotCalibration-Info.plist
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/RobotCalibration-Prefix.pch
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/en.lproj/InfoPlist.strings
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/en.lproj/MainStoryboard_iPad.storyboard
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/en.lproj/MainStoryboard_iPhone.storyboard
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibration/main.m
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibrationTests/RobotCalibrationTests-Info.plist
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibrationTests/RobotCalibrationTests.h
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibrationTests/RobotCalibrationTests.m
 delete mode 100644 sample-code/apps/RobotCalibration/RobotCalibrationTests/en.lproj/InfoPlist.strings
 delete mode 100644 sample-code/apps/TestApp/.gitignore
 delete mode 100644 sample-code/apps/TestApp/Default-568h@2x.png
 delete mode 100644 sample-code/apps/TestApp/Test App 2/GestureTestViewController.h
 delete mode 100644 sample-code/apps/TestApp/Test App 2/GestureTestViewController.m
 delete mode 100644 sample-code/apps/TestApp/Test App 2/GestureTestViewController.xib
 delete mode 100644 sample-code/apps/TestApp/Test App 2/MyViewControllerViewController.h
 delete mode 100644 sample-code/apps/TestApp/Test App 2/MyViewControllerViewController.m
 delete mode 100644 sample-code/apps/TestApp/Test App 2/MyViewControllerViewController.xib
 delete mode 100644 sample-code/apps/TestApp/Test App 2/TA2AppDelegate.h
 delete mode 100644 sample-code/apps/TestApp/Test App 2/TA2AppDelegate.m
 delete mode 100644 sample-code/apps/TestApp/Test App 2/TestApp-Info.plist
 delete mode 100644 sample-code/apps/TestApp/Test App 2/TestApp-Prefix.pch
 delete mode 100644 sample-code/apps/TestApp/Test App 2/en.lproj/InfoPlist.strings
 delete mode 100644 sample-code/apps/TestApp/Test App 2/en.lproj/Localizable.strings
 delete mode 100644 sample-code/apps/TestApp/Test App 2/main.m
 delete mode 100644 sample-code/apps/TestApp/TestApp.xcodeproj/project.pbxproj
 delete mode 100644 sample-code/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 delete mode 100644 sample-code/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/xcuserdata/danc.xcuserdatad/UserInterfaceState.xcuserstate
 delete mode 100644 sample-code/apps/TestApp/TestApp.xcodeproj/xcuserdata/danc.xcuserdatad/xcschemes/TestApp.xcscheme
 delete mode 100644 sample-code/apps/TestApp/TestApp.xcodeproj/xcuserdata/danc.xcuserdatad/xcschemes/xcschememanagement.plist
 delete mode 100644 sample-code/apps/ToggleTest/.classpath
 delete mode 100644 sample-code/apps/ToggleTest/.gitignore
 delete mode 100644 sample-code/apps/ToggleTest/.project
 delete mode 100644 sample-code/apps/ToggleTest/AndroidManifest.xml
 delete mode 100644 sample-code/apps/ToggleTest/ic_launcher-web.png
 delete mode 100644 sample-code/apps/ToggleTest/libs/android-support-v4.jar
 delete mode 100644 sample-code/apps/ToggleTest/res/drawable-hdpi/ic_launcher.png
 delete mode 100644 sample-code/apps/ToggleTest/res/drawable-mdpi/ic_launcher.png
 delete mode 100644 sample-code/apps/ToggleTest/res/drawable-xhdpi/ic_launcher.png
 delete mode 100644 sample-code/apps/ToggleTest/res/drawable-xxhdpi/ic_launcher.png
 delete mode 100644 sample-code/apps/ToggleTest/res/layout/activity_main.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/menu/main.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values-sw600dp/dimens.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values-sw720dp-land/dimens.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values-v11/styles.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values-v14/styles.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values/dimens.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values/strings.xml
 delete mode 100644 sample-code/apps/ToggleTest/res/values/styles.xml
 delete mode 100644 sample-code/apps/ToggleTest/src/com/example/toggletest/MainActivity.java
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp.xcodeproj/project.pbxproj
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/AppDelegate.h
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/AppDelegate.m
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/Default-568h@2x.png
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/Default.png
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/Default@2x.png
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/ViewController.h
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/ViewController.m
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/WebViewApp-Info.plist
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/WebViewApp-Prefix.pch
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/cybervillainsCA.cer
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/en.lproj/InfoPlist.strings
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/en.lproj/MainStoryboard_iPad.storyboard
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/en.lproj/MainStoryboard_iPhone.storyboard
 delete mode 100644 sample-code/apps/WebViewApp/WebViewApp/main.m
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/.gitignore
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/AppiumDriverDemo.csproj
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/AppiumDriverDemo.sln
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/Program.cs
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/ProgramTest.cs
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/Properties/AssemblyInfo.cs
 delete mode 100644 sample-code/examples/dotnet/AppiumDriverDemo/packages.config
 delete mode 100644 sample-code/examples/java/junit/.settings/org.eclipse.jdt.core.prefs
 delete mode 100644 sample-code/examples/java/junit/.settings/org.eclipse.jdt.ui.prefs
 delete mode 100644 sample-code/examples/java/junit/.settings/org.eclipse.m2e.core.prefs
 delete mode 100644 sample-code/examples/java/junit/README.md
 delete mode 100644 sample-code/examples/java/junit/pom.xml
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/AndroidContactsTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/AndroidTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/AndroidWebViewTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/MobileFindJavaTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/SafariTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/SauceTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/SimpleTest.java
 delete mode 100644 sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/UICatalogTest.java
 delete mode 100644 sample-code/examples/node/ios-wd-raw.js
 delete mode 100644 sample-code/examples/node/ios-yiewd-catalog.js
 delete mode 100644 sample-code/examples/node/local-android-wd-chrome.js
 delete mode 100644 sample-code/examples/node/local-android-wd-contacts.js
 delete mode 100644 sample-code/examples/node/local-android-yiewd-contacts.js
 delete mode 100644 sample-code/examples/node/local-ios-wd-hybrid.js
 delete mode 100644 sample-code/examples/node/local-ios-wd-safari.js
 delete mode 100644 sample-code/examples/node/sauce-android-mocha-wd-notes.js
 delete mode 100644 sample-code/examples/node/sauce-connect-ios-mocha-wd-raw.js
 delete mode 100644 sample-code/examples/node/sauce-ios-mocha-raw.js
 delete mode 100644 sample-code/examples/perl/ios_simple.pl
 delete mode 100644 sample-code/examples/php/SauceTest.php
 delete mode 100644 sample-code/examples/php/SimpleTest.php
 delete mode 100644 sample-code/examples/php/composer.json
 delete mode 100644 sample-code/examples/python/android_complex.py
 delete mode 100644 sample-code/examples/python/android_contacts.py
 delete mode 100644 sample-code/examples/python/android_sauce.py
 delete mode 100644 sample-code/examples/python/android_simple.py
 delete mode 100644 sample-code/examples/python/android_webview.py
 delete mode 100644 sample-code/examples/python/ios_complex.py
 delete mode 100644 sample-code/examples/python/ios_sauce.py
 delete mode 100644 sample-code/examples/python/ios_sauce_webview.py
 delete mode 100644 sample-code/examples/python/ios_simple.py
 delete mode 100644 sample-code/examples/python/ios_webview.py
 delete mode 100644 sample-code/examples/python/sauce_connect.py
 delete mode 100644 sample-code/examples/python/selendroid_simple.py
 delete mode 100644 sample-code/examples/ruby/Gemfile
 delete mode 100644 sample-code/examples/ruby/README.md
 delete mode 100644 sample-code/examples/ruby/UICatalog.app.zip
 delete mode 100644 sample-code/examples/ruby/android_on_sauce.rb
 delete mode 100644 sample-code/examples/ruby/cucumber/features/calculator.feature
 delete mode 100644 sample-code/examples/ruby/cucumber/features/calculator2.feature
 delete mode 100644 sample-code/examples/ruby/cucumber/features/step_definitions/steps.rb
 delete mode 100644 sample-code/examples/ruby/cucumber/features/support/appium.txt
 delete mode 100644 sample-code/examples/ruby/cucumber/features/support/env.rb
 delete mode 100644 sample-code/examples/ruby/sauce_example.rb
 delete mode 100644 sample-code/examples/ruby/simple_test.rb
 delete mode 100644 sample-code/examples/ruby/u_i_catalog.rb
 delete mode 100644 sample-code/examples/ruby/xunit_android.rb
 delete mode 160000 submodules/ForceQuitUnresponsiveApps
 create mode 160000 submodules/appium-adb
 create mode 160000 submodules/deviceconsole
 create mode 160000 submodules/io.appium.android.ime
 create mode 160000 submodules/io.appium.settings
 create mode 160000 submodules/sample-code
 create mode 100644 test/fixtures/localization_tests/StubApp.app/en.lproj/InfoPlist.strings
 create mode 100644 test/fixtures/localization_tests/StubApp.app/en.lproj/Localizable.strings
 create mode 100644 test/fixtures/localization_tests/StubApp.app/en.lproj/custom.strings
 create mode 100644 test/functional/android/apidemos/clear-specs.js
 create mode 100644 test/functional/android/apidemos/file-movement-specs.js
 delete mode 100644 test/functional/android/apidemos/file-specs.js
 delete mode 100644 test/functional/android/apidemos/find/complex-find-specs.js
 delete mode 100644 test/functional/android/apidemos/gestures/swipe-specs.js
 create mode 100644 test/functional/android/apidemos/ime-specs.js
 create mode 100644 test/functional/android/apidemos/localization/language-specs.js
 create mode 100644 test/functional/android/apidemos/localization/locale-specs.js
 delete mode 100644 test/functional/android/apidemos/location-specs.js
 create mode 100644 test/functional/android/apidemos/lock-specs.js
 create mode 100644 test/functional/android/apidemos/notifications-specs.js
 create mode 100644 test/functional/android/app-path-base.js
 delete mode 100644 test/functional/android/chrome/alerts-specs.js
 delete mode 100644 test/functional/android/chrome/basics-specs.js
 create mode 100644 test/functional/android/chrome/chrome-specs.js
 delete mode 100644 test/functional/android/chrome/cookies-specs.js
 delete mode 100644 test/functional/android/chrome/execute-async-specs.js
 delete mode 100644 test/functional/android/chrome/execute-specs.js
 delete mode 100644 test/functional/android/chrome/frames-specs.js
 delete mode 100644 test/functional/android/chrome/iframes-specs.js
 delete mode 100644 test/functional/android/chrome/implicit-wait-specs.js
 create mode 100644 test/functional/android/chrome/session-override-specs.js
 delete mode 100644 test/functional/android/chrome/window-title-specs.js
 create mode 100644 test/functional/android/gpsdemos/desired.js
 create mode 100644 test/functional/android/gpsdemos/location-specs.js
 create mode 100644 test/functional/android/keystore-specs.js
 create mode 100644 test/functional/android/toggle/network-connection-specs.js
 create mode 100644 test/functional/android/webview-auto-specs.js
 create mode 100644 test/functional/common/android-auto-webview-base.js
 create mode 100644 test/functional/common/android-keyboard-base.js
 create mode 100644 test/functional/common/keystore-base.js
 create mode 100644 test/functional/common/settings-specs.js
 delete mode 100644 test/functional/common/webview/https-base.js
 create mode 100644 test/functional/common/webview/touch-base.js
 create mode 100644 test/functional/dynamic-app/code-injector.js
 create mode 100644 test/functional/dynamic-app/poc-specs.js
 create mode 100644 test/functional/dynamic-app/setup-base.js
 create mode 100644 test/functional/ios/crash-specs.js
 delete mode 100644 test/functional/ios/iwebview/alerts-specs.js
 delete mode 100644 test/functional/ios/iwebview/basics-specs.js
 delete mode 100644 test/functional/ios/iwebview/cookies-specs.js
 delete mode 100644 test/functional/ios/iwebview/desired.js
 delete mode 100644 test/functional/ios/iwebview/execute-async-specs.js
 delete mode 100644 test/functional/ios/iwebview/execute-specs.js
 delete mode 100644 test/functional/ios/iwebview/frames-specs.js
 delete mode 100644 test/functional/ios/iwebview/https-specs.js
 delete mode 100644 test/functional/ios/iwebview/iframes-specs.js
 delete mode 100644 test/functional/ios/iwebview/implicit-wait-specs.js
 delete mode 100644 test/functional/ios/iwebview/window-title-specs.js
 create mode 100644 test/functional/ios/prefs/bundleid-specs.js
 create mode 100644 test/functional/ios/safari/context-specs.js
 create mode 100644 test/functional/ios/safari/webview/special-caps-specs.js
 create mode 100644 test/functional/ios/safari/webview/touch-specs.js
 delete mode 100644 test/functional/ios/testapp/accents-specs.js
 create mode 100644 test/functional/ios/testapp/autodismiss-alerts/autodismiss-empty-specs.js
 create mode 100644 test/functional/ios/testapp/autodismiss-alerts/autodismiss-false-specs.js
 create mode 100644 test/functional/ios/testapp/autodismiss-alerts/autodismiss-true-specs.js
 create mode 100644 test/functional/ios/testapp/keyboard-specs.js
 create mode 100644 test/functional/ios/testapp/localization/calendar-format-specs.js
 create mode 100644 test/functional/ios/testapp/localization/language-specs.js
 create mode 100644 test/functional/ios/testapp/localization/locale-specs.js
 create mode 100644 test/functional/ios/testapp/pinch-open-close-specs.js
 create mode 100644 test/functional/ios/testapp/wait-for-app-specs.js
 create mode 100644 test/functional/ios/uicatalog/clear-specs.js
 delete mode 100644 test/functional/ios/uicatalog/gestures/swipe-element-specs.js
 delete mode 100644 test/functional/ios/uicatalog/gestures/swipe-specs.js
 create mode 100644 test/functional/ios/uicatalog/touch-specs.js
 create mode 100644 test/functional/ios/webview/webview-auto-spec.js
 create mode 100644 test/functional/selendroid/app-path-specs.js
 create mode 100644 test/functional/selendroid/app-permission-spec.js
 create mode 100644 test/functional/selendroid/clear-specs.js
 create mode 100644 test/functional/selendroid/keyboard-specs.js
 create mode 100644 test/functional/selendroid/keystore-specs.js
 create mode 100644 test/functional/selendroid/shutdown-specs.js
 create mode 100644 test/functional/selendroid/webview-auto-specs.js
 create mode 100644 test/helpers/sim-udid.js
 create mode 100755 test/tools/prepare-tap.js
 create mode 100644 test/unit/ios-device-specs.js
 create mode 100644 trigger.txt

git push

提交更新到fork版本库中,执行git push 命令后会要求输入github用户名 和密码,然后就开始上传更新的内容到fork版本库中:

qianhuis-Mac-mini:appium qianhui$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

In Git 2.0, Git will default to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Username for 'https://github.com': 542113578@qq.com
Password for 'https://542113578@qq.com@github.com': 
Counting objects: 6953, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1990/1990), done.
Writing objects: 100% (6659/6659), 15.55 MiB | 118.00 KiB/s, done.
Total 6659 (delta 4676), reused 6437 (delta 4454)
To https://github.com/testerhome/appium.git
   99794ad..de5501b  master -> master

更新完以后,fork的版本就变的跟原作者版本一样啦。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值