From d8b696d5ce535f0e78792bc59ddab8daaaa9e187 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Tue, 15 Oct 2013 19:42:11 -0700 Subject: [PATCH 01/21] move unit tests into the test/ directory where tests belong --- Gruntfile.js | 4 ++-- {app/test => test}/unit/queue.js | 4 ++-- {app/test => test}/unit/routing.js | 2 +- test/unit/test.js | 15 --------------- {app/test => test}/unit/xpath.js | 2 +- 5 files changed, 6 insertions(+), 21 deletions(-) rename {app/test => test}/unit/queue.js (97%) rename {app/test => test}/unit/routing.js (88%) delete mode 100644 test/unit/test.js rename {app/test => test}/unit/xpath.js (98%) diff --git a/Gruntfile.js b/Gruntfile.js index 96088cad7..d5de221a6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -24,7 +24,7 @@ var path = require('path') module.exports = function(grunt) { grunt.initConfig({ jshint: { - all: ['*.js', 'app/*.js', 'app/test/unit/*.js', 'instruments/*.js', 'test/functional/*.js', 'test/unit/*.js', 'test/functional/appium/*.js', 'test/functional/apidemos/*.js', 'test/functional/testapp/*.js', 'test/functional/uicatalog/*.js', 'test/functional/webview/*.js', 'test/helpers/*.js', 'test/functional/safari/*.js', 'test/functional/prefs/*.js', 'test/functional/selendroid/*.js', 'test/functional/firefoxos/*.js', 'app/uiauto/appium/app.js', 'app/uiauto/appium/binding.js', 'app/uiauto/appium/element.js', 'app/uiauto/appium/utility.js', 'app/uiauto/lib/instruments_client.js', 'app/uiauto/lib/status.js', 'android/*.js', 'app/hybrid/ios/*.js', 'app/hybrid/firefox/*.js'] + all: ['*.js', 'app/*.js', 'instruments/*.js', 'test/functional/*.js', 'test/unit/*.js', 'test/functional/appium/*.js', 'test/functional/apidemos/*.js', 'test/functional/testapp/*.js', 'test/functional/uicatalog/*.js', 'test/functional/webview/*.js', 'test/helpers/*.js', 'test/functional/safari/*.js', 'test/functional/prefs/*.js', 'test/functional/selendroid/*.js', 'test/functional/firefoxos/*.js', 'app/uiauto/appium/app.js', 'app/uiauto/appium/binding.js', 'app/uiauto/appium/element.js', 'app/uiauto/appium/utility.js', 'app/uiauto/lib/instruments_client.js', 'app/uiauto/lib/status.js', 'android/*.js', 'app/hybrid/ios/*.js', 'app/hybrid/firefox/*.js'] , options: { laxcomma: true , es5: true @@ -34,7 +34,7 @@ module.exports = function(grunt) { } } , mochaTest: { - unit: ['app/test/unit/*.js'] + unit: ['test/unit/*.js'] , appiumutils: ['test/functional/appium/appiumutils.js'] } , mochaTestWithServer: { diff --git a/app/test/unit/queue.js b/test/unit/queue.js similarity index 97% rename from app/test/unit/queue.js rename to test/unit/queue.js index 0e1c746fc..e29f8e91d 100644 --- a/app/test/unit/queue.js +++ b/test/unit/queue.js @@ -5,9 +5,9 @@ "use strict"; var should = require('should') - , appium = require('../../appium') + , appium = require('../../app/appium') , path = require('path') - , ios = require('../../ios'); + , ios = require('../../app/ios'); describe('IOS', function() { // we'd like to test ios.proxy; mock instruments diff --git a/app/test/unit/routing.js b/test/unit/routing.js similarity index 88% rename from app/test/unit/routing.js rename to test/unit/routing.js index 5813a0c97..ba2114dd1 100644 --- a/app/test/unit/routing.js +++ b/test/unit/routing.js @@ -2,7 +2,7 @@ "use strict"; var rest = require('express')() - , appium = require('../../appium'); + , appium = require('../../app/appium'); describe('Appium', function() { var inst = appium({}); diff --git a/test/unit/test.js b/test/unit/test.js deleted file mode 100644 index 4b3a26830..000000000 --- a/test/unit/test.js +++ /dev/null @@ -1,15 +0,0 @@ -// Run with mocha by installing dev deps: npm install --dev -// more docs on writing tests with mocha can be found here: -// http://visionmedia.github.com/mocha/ -/*global describe:true, it:true */ -"use strict"; - -var assert = require("assert"); -describe('Array', function(){ - describe('#indexOf()', function(){ - it('should return -1 when the value is not present', function(){ - assert.equal(-1, [1,2,3].indexOf(5)); - assert.equal(-1, [1,2,3].indexOf(0)); - }); - }); -}); diff --git a/app/test/unit/xpath.js b/test/unit/xpath.js similarity index 98% rename from app/test/unit/xpath.js rename to test/unit/xpath.js index f4bfb5703..8a5f1e75b 100644 --- a/app/test/unit/xpath.js +++ b/test/unit/xpath.js @@ -6,7 +6,7 @@ var should = require('should') , _ = require('underscore') - , au = require('../../uiauto/appium/xpath.js'); + , au = require('../../app/uiauto/appium/xpath.js'); describe("XPath lookups", function() { var oks = { From 5de696edaae9ed681e08eec8135e3d597b0d84d9 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 09:11:19 -0700 Subject: [PATCH 02/21] fix typo in mobile web docs --- docs/mobile-web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mobile-web.md b/docs/mobile-web.md index fdc45cf5d..0fa4bd1fe 100644 --- a/docs/mobile-web.md +++ b/docs/mobile-web.md @@ -13,7 +13,7 @@ Then, use desired capabilities like these to run your test in mobile Safari: ```js { - , app: 'safari' + app: 'safari' , device: 'iPhone Simulator' , version: '6.1' } From 0f9ecc0e4b1559029c4bcb38fd73b2ce59965b3f Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 10:25:38 -0700 Subject: [PATCH 03/21] upgrade linter and ignore un-linted files rather than specifying linted files --- Gruntfile.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index d5de221a6..c5181fa9a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -24,13 +24,13 @@ var path = require('path') module.exports = function(grunt) { grunt.initConfig({ jshint: { - all: ['*.js', 'app/*.js', 'instruments/*.js', 'test/functional/*.js', 'test/unit/*.js', 'test/functional/appium/*.js', 'test/functional/apidemos/*.js', 'test/functional/testapp/*.js', 'test/functional/uicatalog/*.js', 'test/functional/webview/*.js', 'test/helpers/*.js', 'test/functional/safari/*.js', 'test/functional/prefs/*.js', 'test/functional/selendroid/*.js', 'test/functional/firefoxos/*.js', 'app/uiauto/appium/app.js', 'app/uiauto/appium/binding.js', 'app/uiauto/appium/element.js', 'app/uiauto/appium/utility.js', 'app/uiauto/lib/instruments_client.js', 'app/uiauto/lib/status.js', 'android/*.js', 'app/hybrid/ios/*.js', 'app/hybrid/firefox/*.js'] + files: ['*.js', './**/*.js'] , options: { laxcomma: true - , es5: true , trailing: true , node: true , strict: true + , ignores: ['./submodules/**/*.js', './node_modules/**/*.js', './app/hybrid/ios/webdriver-atoms/*.js', './sample-code/**/*.js', './test/harmony/**/*.js', './test/functional/_joined/*.js', './app/static/**/*.js', './app/hybrid/firefoxos/atoms/*.js', './app/uiauto/**/*.js'] } } , mochaTest: { diff --git a/package.json b/package.json index 2309be424..468627834 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "monocle-js": "~0.1.4", "assert": "~0.4.9", "grunt-mocha-test": "~0.2.0", - "grunt-contrib-jshint": "~0.1.1", + "grunt-contrib-jshint": "~0.6.4", "saucelabs": "~0.0.7", "socket.io-client": "~0.9.11", "socks": "~0.0.1" From d0774ea4dce0a736571515e7fe2e1fda8498f859 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 10:28:31 -0700 Subject: [PATCH 04/21] make some files pass the linter --- android/device_state.js | 2 +- test/functional/android/device_state.js | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/android/device_state.js b/android/device_state.js index 1bf606598..7ff6e8155 100644 --- a/android/device_state.js +++ b/android/device_state.js @@ -11,7 +11,7 @@ module.exports = { isScreenLocked: function(adbCmd, cb) { var cmd = adbCmd + " shell dumpsys window"; log("Checking if screen is unlocked via `dumpsys window`..."); - exec(cmd, {maxBuffer: 524288}, function(err, stdout, stderr) { + exec(cmd, {maxBuffer: 524288}, function(err, stdout) { if (err) { cb(err); } else { diff --git a/test/functional/android/device_state.js b/test/functional/android/device_state.js index 877a21360..a07ce52c3 100644 --- a/test/functional/android/device_state.js +++ b/test/functional/android/device_state.js @@ -1,3 +1,6 @@ +/*global describe:true, it:true, beforeEach:true */ +"use strict"; + var deviceState = require('../../../android/device_state') , should = require('should') , childProcess = require('child_process') @@ -7,7 +10,7 @@ var deviceState = require('../../../android/device_state') describe('Android Device State module', function() { beforeEach(function(done) { // ensure a device or emu is connected - childProcess.exec("adb devices", function(err, stdout, stderr) { + childProcess.exec("adb devices", function(err, stdout) { should.not.exist(err); var device = /\n([A-Za-z0-9\-]+)\W+device\n/.exec(stdout); device = device[1]; @@ -19,14 +22,14 @@ describe('Android Device State module', function() { describe('isScreenLocked method', function() { it('should return true if screen is locked', function(done) { // Press POWER btn to lock screen first - childProcess.exec('adb shell input keyevent 26', function(err, stdout, stderr) { + childProcess.exec('adb shell input keyevent 26', function(err) { should.not.exist(err); - childProcess.exec('adb shell input keyevent 26', function(err, stdout, stderr) { + childProcess.exec('adb shell input keyevent 26', function(err) { should.not.exist(err); deviceState.isScreenLocked('adb', function(err, isLocked) { should.not.exist(err); - isLocked.should.be.true; + isLocked.should.equal(true); done(); }); }); @@ -37,12 +40,12 @@ describe('Android Device State module', function() { var adb = new ADB(); adb.pushUnlock(function(err) { should.not.exist(err); - childProcess.exec('adb shell am start -n io.appium.unlock/.Unlock', function(err, stdout, stderr) { + childProcess.exec('adb shell am start -n io.appium.unlock/.Unlock', function(err) { should.not.exist(err); setTimeout(function() { deviceState.isScreenLocked('adb', function(err, isLocked) { should.not.exist(err); - isLocked.should.be.false; + isLocked.should.equal(false); done(); }); }, 2500); From 8f4c01af2cf5cd6218ad4a99670c9c4e38973284 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 10:51:07 -0700 Subject: [PATCH 05/21] update safarilauncher steps in reset.sh cc @snevesbarros --- reset.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/reset.sh b/reset.sh index 4194031cd..353cff09e 100755 --- a/reset.sh +++ b/reset.sh @@ -132,12 +132,14 @@ reset_ios() { run_cmd rm -rf build/fruitstrap run_cmd mkdir -p build/fruitstrap run_cmd cp submodules/fruitstrap/fruitstrap build/fruitstrap + echo "* Cloning/updating SafariLauncher" + run_cmd git submodule update --init submodules/SafariLauncher echo "* Building SafariLauncher" run_cmd $grunt buildSafariLauncherApp:iphoneos echo "* Copying SafariLauncher to build" - run_cmd zip -r submodules/SafariLauncher/SafariLauncher submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app + run_cmd rm -rf build/SafariLauncher run_cmd mkdir -p build/SafariLauncher - run_cmd cp submodules/SafariLauncher/SafariLauncher.zip build/SafariLauncher/ + run_cmd zip -r build/SafariLauncher/SafariLauncher submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app } From 3eee9d8a61a132d51653952b3320121cc2f1942d Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 11:43:20 -0700 Subject: [PATCH 06/21] move code into lib/ like a normal node project --- Gruntfile.js | 4 ++-- android/adb.js | 18 +++++++++--------- docs/finding-elements.md | 4 ++-- grunt-helpers.js | 4 ++-- instruments/instruments.js | 2 +- {app => lib}/android.js | 2 +- {app => lib}/android/dump2json.jar | Bin {app => lib}/android/move_manifest.jar | Bin {app => lib}/android/sign.jar | Bin {app => lib}/android/strings_from_apk.jar | Bin {app => lib}/android/unsign.jar | Bin {app => lib}/android/verify.jar | Bin {app => lib}/appium.js | 0 {app => lib}/authorize.js | 0 {app => lib}/bin.js | 0 {app => lib}/chrome_android.js | 0 {app => lib}/controller.js | 0 {app => lib}/device.js | 0 {app => lib}/errors.js | 0 {app => lib}/firefoxos.js | 0 {app => lib}/helpers.js | 0 .../hybrid/firefoxos/atoms/gaia_apps.js | 0 .../hybrid/firefoxos/firefoxos-atoms.js | 0 {app => lib}/hybrid/ios/remote-debugger.js | 0 {app => lib}/hybrid/ios/remote-messages.js | 0 {app => lib}/hybrid/ios/remote-test.js | 0 {app => lib}/hybrid/ios/webdriver-atoms.js | 0 .../ios/webdriver-atoms/active_element.js | 0 .../hybrid/ios/webdriver-atoms/clear.js | 0 .../webdriver-atoms/clear_local_storage.js | 0 .../webdriver-atoms/clear_session_storage.js | 0 .../hybrid/ios/webdriver-atoms/click.js | 0 .../ios/webdriver-atoms/default_content.js | 0 .../hybrid/ios/webdriver-atoms/deps.js | 0 .../ios/webdriver-atoms/double_click.js | 0 .../hybrid/ios/webdriver-atoms/drag.js | 0 .../webdriver-atoms/execute_async_script.js | 0 .../ios/webdriver-atoms/execute_script.js | 0 .../hybrid/ios/webdriver-atoms/execute_sql.js | 0 .../ios/webdriver-atoms/find_element.js | 0 .../ios/webdriver-atoms/find_elements.js | 0 .../ios/webdriver-atoms/focus_on_element.js | 0 .../webdriver-atoms/frame_by_id_or_name.js | 0 .../ios/webdriver-atoms/frame_by_index.js | 0 .../webdriver-atoms/get_appcache_status.js | 0 .../ios/webdriver-atoms/get_attribute.js | 0 .../webdriver-atoms/get_attribute_value.js | 0 .../webdriver-atoms/get_current_position.js | 0 .../webdriver-atoms/get_element_from_cache.js | 0 .../ios/webdriver-atoms/get_frame_window.js | 0 .../webdriver-atoms/get_in_view_location.js | 0 .../webdriver-atoms/get_local_storage_item.js | 0 .../webdriver-atoms/get_local_storage_keys.js | 0 .../webdriver-atoms/get_local_storage_size.js | 0 .../ios/webdriver-atoms/get_location.js | 0 .../webdriver-atoms/get_location_in_view.js | 0 .../get_session_storage_item.js | 0 .../get_session_storage_keys.js | 0 .../get_session_storage_size.js | 0 .../hybrid/ios/webdriver-atoms/get_size.js | 0 .../hybrid/ios/webdriver-atoms/get_text.js | 0 .../get_top_left_coordinates.js | 0 .../get_value_of_css_property.js | 0 .../webdriver-atoms/get_window_position.js | 0 .../ios/webdriver-atoms/get_window_size.js | 0 .../ios/webdriver-atoms/is_displayed.js | 0 .../hybrid/ios/webdriver-atoms/is_enabled.js | 0 .../hybrid/ios/webdriver-atoms/is_online.js | 0 .../hybrid/ios/webdriver-atoms/is_selected.js | 0 .../hybrid/ios/webdriver-atoms/lastupdate | 0 .../hybrid/ios/webdriver-atoms/move_mouse.js | 0 .../hybrid/ios/webdriver-atoms/pinch.js | 0 .../remove_local_storage_item.js | 0 .../remove_session_storage_item.js | 0 .../hybrid/ios/webdriver-atoms/right_click.js | 0 .../hybrid/ios/webdriver-atoms/rotate.js | 0 .../ios/webdriver-atoms/scroll_into_view.js | 0 .../ios/webdriver-atoms/scroll_mouse.js | 0 .../webdriver-atoms/set_local_storage_item.js | 0 .../set_session_storage_item.js | 0 .../webdriver-atoms/set_window_position.js | 0 .../ios/webdriver-atoms/set_window_size.js | 0 .../hybrid/ios/webdriver-atoms/submit.js | 0 .../hybrid/ios/webdriver-atoms/swipe.js | 0 .../hybrid/ios/webdriver-atoms/tap.js | 0 .../hybrid/ios/webdriver-atoms/type.js | 0 .../hybrid/ios/webkit-remote-debugger.js | 0 {app => lib}/ios.js | 0 {app => lib}/parser.js | 0 {app => lib}/proxy.js | 0 {app => lib}/responses.js | 0 {app => lib}/routing.js | 0 {app => lib}/selendroid.js | 0 {app => lib}/tempdir.js | 0 {app => lib}/uiauto/Rotate.applescript | 0 {app => lib}/uiauto/appium/app.js | 0 {app => lib}/uiauto/appium/base.js | 0 {app => lib}/uiauto/appium/binding.js | 0 {app => lib}/uiauto/appium/element.js | 0 {app => lib}/uiauto/appium/utility.js | 0 {app => lib}/uiauto/appium/xpath.js | 0 {app => lib}/uiauto/bootstrap.js | 0 {app => lib}/uiauto/lib/console.js | 0 {app => lib}/uiauto/lib/instruments_client.js | 0 {app => lib}/uiauto/lib/mechanic.js | 0 {app => lib}/uiauto/lib/status.js | 0 package.json | 6 +++--- server.js | 6 +++--- test/functional/prefs/prefs.js | 2 +- test/unit/queue.js | 4 ++-- test/unit/routing.js | 2 +- test/unit/xpath.js | 2 +- 112 files changed, 28 insertions(+), 28 deletions(-) rename {app => lib}/android.js (99%) rename {app => lib}/android/dump2json.jar (100%) rename {app => lib}/android/move_manifest.jar (100%) rename {app => lib}/android/sign.jar (100%) rename {app => lib}/android/strings_from_apk.jar (100%) rename {app => lib}/android/unsign.jar (100%) rename {app => lib}/android/verify.jar (100%) rename {app => lib}/appium.js (100%) rename {app => lib}/authorize.js (100%) rename {app => lib}/bin.js (100%) rename {app => lib}/chrome_android.js (100%) rename {app => lib}/controller.js (100%) rename {app => lib}/device.js (100%) rename {app => lib}/errors.js (100%) rename {app => lib}/firefoxos.js (100%) rename {app => lib}/helpers.js (100%) rename {app => lib}/hybrid/firefoxos/atoms/gaia_apps.js (100%) rename {app => lib}/hybrid/firefoxos/firefoxos-atoms.js (100%) rename {app => lib}/hybrid/ios/remote-debugger.js (100%) rename {app => lib}/hybrid/ios/remote-messages.js (100%) rename {app => lib}/hybrid/ios/remote-test.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/active_element.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/clear.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/clear_local_storage.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/clear_session_storage.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/click.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/default_content.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/deps.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/double_click.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/drag.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/execute_async_script.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/execute_script.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/execute_sql.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/find_element.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/find_elements.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/focus_on_element.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/frame_by_index.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_appcache_status.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_attribute.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_attribute_value.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_current_position.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_element_from_cache.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_frame_window.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_in_view_location.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_local_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_local_storage_keys.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_local_storage_size.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_location.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_location_in_view.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_session_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_session_storage_keys.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_session_storage_size.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_size.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_text.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_value_of_css_property.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_window_position.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/get_window_size.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/is_displayed.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/is_enabled.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/is_online.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/is_selected.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/lastupdate (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/move_mouse.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/pinch.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/remove_local_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/remove_session_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/right_click.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/rotate.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/scroll_into_view.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/scroll_mouse.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/set_local_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/set_session_storage_item.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/set_window_position.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/set_window_size.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/submit.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/swipe.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/tap.js (100%) rename {app => lib}/hybrid/ios/webdriver-atoms/type.js (100%) rename {app => lib}/hybrid/ios/webkit-remote-debugger.js (100%) rename {app => lib}/ios.js (100%) rename {app => lib}/parser.js (100%) rename {app => lib}/proxy.js (100%) rename {app => lib}/responses.js (100%) rename {app => lib}/routing.js (100%) rename {app => lib}/selendroid.js (100%) rename {app => lib}/tempdir.js (100%) rename {app => lib}/uiauto/Rotate.applescript (100%) rename {app => lib}/uiauto/appium/app.js (100%) rename {app => lib}/uiauto/appium/base.js (100%) rename {app => lib}/uiauto/appium/binding.js (100%) rename {app => lib}/uiauto/appium/element.js (100%) rename {app => lib}/uiauto/appium/utility.js (100%) rename {app => lib}/uiauto/appium/xpath.js (100%) rename {app => lib}/uiauto/bootstrap.js (100%) rename {app => lib}/uiauto/lib/console.js (100%) rename {app => lib}/uiauto/lib/instruments_client.js (100%) rename {app => lib}/uiauto/lib/mechanic.js (100%) rename {app => lib}/uiauto/lib/status.js (100%) diff --git a/Gruntfile.js b/Gruntfile.js index c5181fa9a..834cb782c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -18,7 +18,7 @@ var path = require('path') , generateAppiumIo = gruntHelpers.generateAppiumIo , setDeviceConfigVer = gruntHelpers.setDeviceConfigVer , setGitRev = gruntHelpers.setGitRev - , getGitRev = require('./app/helpers').getGitRev + , getGitRev = require('./lib/helpers').getGitRev , runTestsWithServer = gruntHelpers.runTestsWithServer; module.exports = function(grunt) { @@ -30,7 +30,7 @@ module.exports = function(grunt) { , trailing: true , node: true , strict: true - , ignores: ['./submodules/**/*.js', './node_modules/**/*.js', './app/hybrid/ios/webdriver-atoms/*.js', './sample-code/**/*.js', './test/harmony/**/*.js', './test/functional/_joined/*.js', './app/static/**/*.js', './app/hybrid/firefoxos/atoms/*.js', './app/uiauto/**/*.js'] + , ignores: ['./submodules/**/*.js', './node_modules/**/*.js', './lib/hybrid/ios/webdriver-atoms/*.js', './sample-code/**/*.js', './test/harmony/**/*.js', './test/functional/_joined/*.js', './app/static/**/*.js', './lib/hybrid/firefoxos/atoms/*.js', './lib/uiauto/**/*.js'] } } , mochaTest: { diff --git a/android/adb.js b/android/adb.js index e3f6cadeb..76de60894 100644 --- a/android/adb.js +++ b/android/adb.js @@ -6,14 +6,14 @@ var spawn = require('win-spawn') , fs = require('fs') , net = require('net') , logger = require('../logger').get('appium') - , status = require('../app/uiauto/lib/status') - , unzipFile = require('../app/helpers').unzipFile - , testZipArchive = require('../app/helpers').testZipArchive + , status = require('../lib/uiauto/lib/status') + , unzipFile = require('../lib/helpers').unzipFile + , testZipArchive = require('../lib/helpers').testZipArchive , async = require('async') , ncp = require('ncp') , mkdirp = require('mkdirp') , _ = require('underscore') - , helpers = require('../app/helpers') + , helpers = require('../lib/helpers') , AdmZip = require('adm-zip') , getTempPath = helpers.getTempPath , rimraf = require('rimraf') @@ -233,7 +233,7 @@ ADB.prototype.insertManifest = function(manifest, srcApk, dstApk, cb) { if (isWindows) { var java = path.resolve(process.env.JAVA_HOME, 'bin', 'java'); java = isWindows ? '"' + java + '.exe"' : '"' + java + '"'; - var moveManifestCmd = '"' + path.resolve(__dirname, '..', 'app', 'android', 'move_manifest.jar') + '"'; + var moveManifestCmd = '"' + path.resolve(__dirname, '..', 'lib', 'android', 'move_manifest.jar') + '"'; moveManifestCmd = [java, '-jar', moveManifestCmd, '"' + dstApk + '"', '"' + manifest + '"'].join(' '); logger.debug("Moving manifest with: " + moveManifestCmd); @@ -272,7 +272,7 @@ ADB.prototype.insertManifest = function(manifest, srcApk, dstApk, cb) { // apks is an array of strings. ADB.prototype.signDefault = function(apks, cb) { - var signPath = path.resolve(__dirname, '..', 'app', 'android', 'sign.jar'); + var signPath = path.resolve(__dirname, '..', 'lib', 'android', 'sign.jar'); var resign = 'java -jar "' + signPath + '" "' + apks.join('" "') + '" --override'; logger.debug("Resigning apks with: " + resign); exec(resign, { maxBuffer: 524288 }, function(err, stdout, stderr) { @@ -292,7 +292,7 @@ ADB.prototype.signCustom = function(apk, cb) { jarsigner = isWindows ? '"' + jarsigner + '.exe"' : '"' + jarsigner + '"'; var java = path.resolve(process.env.JAVA_HOME, 'bin', 'java'); java = isWindows ? '"' + java + '.exe"' : '"' + java + '"'; - var unsign = '"' + path.resolve(__dirname, '..', 'app', 'android', 'unsign.jar') + '"'; + var unsign = '"' + path.resolve(__dirname, '..', 'lib', 'android', 'unsign.jar') + '"'; unsign = [java, '-jar', unsign, '"' + apk + '"'].join(' '); // "jarsigner" "blank.apk" -sigalg MD5withRSA -digestalg SHA1 // -keystore "./key.keystore" -storepass "android" @@ -418,7 +418,7 @@ ADB.prototype.checkApkCert = function(apk, cb) { return; } - var verifyPath = path.resolve(__dirname, '..', 'app', 'android', + var verifyPath = path.resolve(__dirname, '..', 'lib', 'android', 'verify.jar'); var resign = 'java -jar "' + verifyPath + '" "' + apk + '"'; logger.debug("Checking app cert for " + apk + ": " + resign); @@ -493,7 +493,7 @@ ADB.prototype.pushStrings = function(cb) { cb(null); }); } else { - var stringsFromApkJarPath = path.resolve(__dirname, '..', 'app', 'android', + var stringsFromApkJarPath = path.resolve(__dirname, '..', 'lib', 'android', 'strings_from_apk.jar'); var outputPath = path.resolve(getTempPath(), this.appPackage); var makeStrings = ['java -jar "', stringsFromApkJarPath, diff --git a/docs/finding-elements.md b/docs/finding-elements.md index 3a517160b..314b87f71 100644 --- a/docs/finding-elements.md +++ b/docs/finding-elements.md @@ -11,7 +11,7 @@ Appium supports a subset of the WebDriver locator strategies: You can use the direct UIAutomation component type name for the tag name, or use the simplified mapping (used in some examples below) found here: -https://github.com/appium/appium/blob/master/app/uiauto/lib/mechanic.js#L29 +https://github.com/appium/appium/blob/master/lib/uiauto/lib/mechanic.js#L29 Issues ------ @@ -160,4 +160,4 @@ After launching the Appium Inspector (you can do this by clicking the small "i" To find the id of this button, I click the "show alert" button in the inspector preview. The Appium inspector then highlights the element in the UI navigator, showing me both the id and element type of the button I clicked. -![Step 1](https://raw.github.com/appium/appium/master/assets/InspectorImages/Step2.png) \ No newline at end of file +![Step 1](https://raw.github.com/appium/appium/master/assets/InspectorImages/Step2.png) diff --git a/grunt-helpers.js b/grunt-helpers.js index ac9b92fce..f2bfe0a5d 100644 --- a/grunt-helpers.js +++ b/grunt-helpers.js @@ -12,12 +12,12 @@ var _ = require("underscore") , prompt = require('prompt') , exec = require('child_process').exec , spawn = require('win-spawn') - , parser = require('./app/parser') + , parser = require('./lib/parser') , namp = require('namp') , parseXmlString = require('xml2js').parseString , appiumVer = require('./package.json').version , fs = require('fs') - , helpers = require('./app/helpers') + , helpers = require('./lib/helpers') , isWindows = helpers.isWindows() , getXcodeVersion = helpers.getXcodeVersion , MAX_BUFFER_SIZE = 524288; diff --git a/instruments/instruments.js b/instruments/instruments.js index 24c221fe4..1734ea4df 100644 --- a/instruments/instruments.js +++ b/instruments/instruments.js @@ -11,7 +11,7 @@ var spawn = require('child_process').spawn , path = require('path') , rimraf = require('rimraf') , mkdirp = require('mkdirp') - , codes = require('../app/uiauto/lib/status.js').codes; + , codes = require('../lib/uiauto/lib/status.js').codes; var Instruments = function(app, udid, isSafariLauncherApp, bootstrap, template, sock, withoutDelay, xcodeVersion, webSocket, cb, exitCb) { this.app = app; diff --git a/app/android.js b/lib/android.js similarity index 99% rename from app/android.js rename to lib/android.js index f5aa56d36..0c98fca8d 100644 --- a/app/android.js +++ b/lib/android.js @@ -580,7 +580,7 @@ Android.prototype.getPageSource = function(cb) { }); }.bind(this), function(cb) { - var jar = path.resolve(__dirname, '../app/android/dump2json.jar'); + var jar = path.resolve(__dirname, '..', 'lib', 'android', 'dump2json.jar'); var cmd = 'java -jar "' + jar + '" "' + xmlFile + '"'; logger.debug('json command: ' + cmd); exec(cmd, { maxBuffer: 524288 }, function(err, stdout, stderr) { diff --git a/app/android/dump2json.jar b/lib/android/dump2json.jar similarity index 100% rename from app/android/dump2json.jar rename to lib/android/dump2json.jar diff --git a/app/android/move_manifest.jar b/lib/android/move_manifest.jar similarity index 100% rename from app/android/move_manifest.jar rename to lib/android/move_manifest.jar diff --git a/app/android/sign.jar b/lib/android/sign.jar similarity index 100% rename from app/android/sign.jar rename to lib/android/sign.jar diff --git a/app/android/strings_from_apk.jar b/lib/android/strings_from_apk.jar similarity index 100% rename from app/android/strings_from_apk.jar rename to lib/android/strings_from_apk.jar diff --git a/app/android/unsign.jar b/lib/android/unsign.jar similarity index 100% rename from app/android/unsign.jar rename to lib/android/unsign.jar diff --git a/app/android/verify.jar b/lib/android/verify.jar similarity index 100% rename from app/android/verify.jar rename to lib/android/verify.jar diff --git a/app/appium.js b/lib/appium.js similarity index 100% rename from app/appium.js rename to lib/appium.js diff --git a/app/authorize.js b/lib/authorize.js similarity index 100% rename from app/authorize.js rename to lib/authorize.js diff --git a/app/bin.js b/lib/bin.js similarity index 100% rename from app/bin.js rename to lib/bin.js diff --git a/app/chrome_android.js b/lib/chrome_android.js similarity index 100% rename from app/chrome_android.js rename to lib/chrome_android.js diff --git a/app/controller.js b/lib/controller.js similarity index 100% rename from app/controller.js rename to lib/controller.js diff --git a/app/device.js b/lib/device.js similarity index 100% rename from app/device.js rename to lib/device.js diff --git a/app/errors.js b/lib/errors.js similarity index 100% rename from app/errors.js rename to lib/errors.js diff --git a/app/firefoxos.js b/lib/firefoxos.js similarity index 100% rename from app/firefoxos.js rename to lib/firefoxos.js diff --git a/app/helpers.js b/lib/helpers.js similarity index 100% rename from app/helpers.js rename to lib/helpers.js diff --git a/app/hybrid/firefoxos/atoms/gaia_apps.js b/lib/hybrid/firefoxos/atoms/gaia_apps.js similarity index 100% rename from app/hybrid/firefoxos/atoms/gaia_apps.js rename to lib/hybrid/firefoxos/atoms/gaia_apps.js diff --git a/app/hybrid/firefoxos/firefoxos-atoms.js b/lib/hybrid/firefoxos/firefoxos-atoms.js similarity index 100% rename from app/hybrid/firefoxos/firefoxos-atoms.js rename to lib/hybrid/firefoxos/firefoxos-atoms.js diff --git a/app/hybrid/ios/remote-debugger.js b/lib/hybrid/ios/remote-debugger.js similarity index 100% rename from app/hybrid/ios/remote-debugger.js rename to lib/hybrid/ios/remote-debugger.js diff --git a/app/hybrid/ios/remote-messages.js b/lib/hybrid/ios/remote-messages.js similarity index 100% rename from app/hybrid/ios/remote-messages.js rename to lib/hybrid/ios/remote-messages.js diff --git a/app/hybrid/ios/remote-test.js b/lib/hybrid/ios/remote-test.js similarity index 100% rename from app/hybrid/ios/remote-test.js rename to lib/hybrid/ios/remote-test.js diff --git a/app/hybrid/ios/webdriver-atoms.js b/lib/hybrid/ios/webdriver-atoms.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms.js rename to lib/hybrid/ios/webdriver-atoms.js diff --git a/app/hybrid/ios/webdriver-atoms/active_element.js b/lib/hybrid/ios/webdriver-atoms/active_element.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/active_element.js rename to lib/hybrid/ios/webdriver-atoms/active_element.js diff --git a/app/hybrid/ios/webdriver-atoms/clear.js b/lib/hybrid/ios/webdriver-atoms/clear.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/clear.js rename to lib/hybrid/ios/webdriver-atoms/clear.js diff --git a/app/hybrid/ios/webdriver-atoms/clear_local_storage.js b/lib/hybrid/ios/webdriver-atoms/clear_local_storage.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/clear_local_storage.js rename to lib/hybrid/ios/webdriver-atoms/clear_local_storage.js diff --git a/app/hybrid/ios/webdriver-atoms/clear_session_storage.js b/lib/hybrid/ios/webdriver-atoms/clear_session_storage.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/clear_session_storage.js rename to lib/hybrid/ios/webdriver-atoms/clear_session_storage.js diff --git a/app/hybrid/ios/webdriver-atoms/click.js b/lib/hybrid/ios/webdriver-atoms/click.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/click.js rename to lib/hybrid/ios/webdriver-atoms/click.js diff --git a/app/hybrid/ios/webdriver-atoms/default_content.js b/lib/hybrid/ios/webdriver-atoms/default_content.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/default_content.js rename to lib/hybrid/ios/webdriver-atoms/default_content.js diff --git a/app/hybrid/ios/webdriver-atoms/deps.js b/lib/hybrid/ios/webdriver-atoms/deps.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/deps.js rename to lib/hybrid/ios/webdriver-atoms/deps.js diff --git a/app/hybrid/ios/webdriver-atoms/double_click.js b/lib/hybrid/ios/webdriver-atoms/double_click.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/double_click.js rename to lib/hybrid/ios/webdriver-atoms/double_click.js diff --git a/app/hybrid/ios/webdriver-atoms/drag.js b/lib/hybrid/ios/webdriver-atoms/drag.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/drag.js rename to lib/hybrid/ios/webdriver-atoms/drag.js diff --git a/app/hybrid/ios/webdriver-atoms/execute_async_script.js b/lib/hybrid/ios/webdriver-atoms/execute_async_script.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/execute_async_script.js rename to lib/hybrid/ios/webdriver-atoms/execute_async_script.js diff --git a/app/hybrid/ios/webdriver-atoms/execute_script.js b/lib/hybrid/ios/webdriver-atoms/execute_script.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/execute_script.js rename to lib/hybrid/ios/webdriver-atoms/execute_script.js diff --git a/app/hybrid/ios/webdriver-atoms/execute_sql.js b/lib/hybrid/ios/webdriver-atoms/execute_sql.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/execute_sql.js rename to lib/hybrid/ios/webdriver-atoms/execute_sql.js diff --git a/app/hybrid/ios/webdriver-atoms/find_element.js b/lib/hybrid/ios/webdriver-atoms/find_element.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/find_element.js rename to lib/hybrid/ios/webdriver-atoms/find_element.js diff --git a/app/hybrid/ios/webdriver-atoms/find_elements.js b/lib/hybrid/ios/webdriver-atoms/find_elements.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/find_elements.js rename to lib/hybrid/ios/webdriver-atoms/find_elements.js diff --git a/app/hybrid/ios/webdriver-atoms/focus_on_element.js b/lib/hybrid/ios/webdriver-atoms/focus_on_element.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/focus_on_element.js rename to lib/hybrid/ios/webdriver-atoms/focus_on_element.js diff --git a/app/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js b/lib/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js rename to lib/hybrid/ios/webdriver-atoms/frame_by_id_or_name.js diff --git a/app/hybrid/ios/webdriver-atoms/frame_by_index.js b/lib/hybrid/ios/webdriver-atoms/frame_by_index.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/frame_by_index.js rename to lib/hybrid/ios/webdriver-atoms/frame_by_index.js diff --git a/app/hybrid/ios/webdriver-atoms/get_appcache_status.js b/lib/hybrid/ios/webdriver-atoms/get_appcache_status.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_appcache_status.js rename to lib/hybrid/ios/webdriver-atoms/get_appcache_status.js diff --git a/app/hybrid/ios/webdriver-atoms/get_attribute.js b/lib/hybrid/ios/webdriver-atoms/get_attribute.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_attribute.js rename to lib/hybrid/ios/webdriver-atoms/get_attribute.js diff --git a/app/hybrid/ios/webdriver-atoms/get_attribute_value.js b/lib/hybrid/ios/webdriver-atoms/get_attribute_value.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_attribute_value.js rename to lib/hybrid/ios/webdriver-atoms/get_attribute_value.js diff --git a/app/hybrid/ios/webdriver-atoms/get_current_position.js b/lib/hybrid/ios/webdriver-atoms/get_current_position.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_current_position.js rename to lib/hybrid/ios/webdriver-atoms/get_current_position.js diff --git a/app/hybrid/ios/webdriver-atoms/get_element_from_cache.js b/lib/hybrid/ios/webdriver-atoms/get_element_from_cache.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_element_from_cache.js rename to lib/hybrid/ios/webdriver-atoms/get_element_from_cache.js diff --git a/app/hybrid/ios/webdriver-atoms/get_frame_window.js b/lib/hybrid/ios/webdriver-atoms/get_frame_window.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_frame_window.js rename to lib/hybrid/ios/webdriver-atoms/get_frame_window.js diff --git a/app/hybrid/ios/webdriver-atoms/get_in_view_location.js b/lib/hybrid/ios/webdriver-atoms/get_in_view_location.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_in_view_location.js rename to lib/hybrid/ios/webdriver-atoms/get_in_view_location.js diff --git a/app/hybrid/ios/webdriver-atoms/get_local_storage_item.js b/lib/hybrid/ios/webdriver-atoms/get_local_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_local_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/get_local_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/get_local_storage_keys.js b/lib/hybrid/ios/webdriver-atoms/get_local_storage_keys.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_local_storage_keys.js rename to lib/hybrid/ios/webdriver-atoms/get_local_storage_keys.js diff --git a/app/hybrid/ios/webdriver-atoms/get_local_storage_size.js b/lib/hybrid/ios/webdriver-atoms/get_local_storage_size.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_local_storage_size.js rename to lib/hybrid/ios/webdriver-atoms/get_local_storage_size.js diff --git a/app/hybrid/ios/webdriver-atoms/get_location.js b/lib/hybrid/ios/webdriver-atoms/get_location.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_location.js rename to lib/hybrid/ios/webdriver-atoms/get_location.js diff --git a/app/hybrid/ios/webdriver-atoms/get_location_in_view.js b/lib/hybrid/ios/webdriver-atoms/get_location_in_view.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_location_in_view.js rename to lib/hybrid/ios/webdriver-atoms/get_location_in_view.js diff --git a/app/hybrid/ios/webdriver-atoms/get_session_storage_item.js b/lib/hybrid/ios/webdriver-atoms/get_session_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_session_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/get_session_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/get_session_storage_keys.js b/lib/hybrid/ios/webdriver-atoms/get_session_storage_keys.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_session_storage_keys.js rename to lib/hybrid/ios/webdriver-atoms/get_session_storage_keys.js diff --git a/app/hybrid/ios/webdriver-atoms/get_session_storage_size.js b/lib/hybrid/ios/webdriver-atoms/get_session_storage_size.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_session_storage_size.js rename to lib/hybrid/ios/webdriver-atoms/get_session_storage_size.js diff --git a/app/hybrid/ios/webdriver-atoms/get_size.js b/lib/hybrid/ios/webdriver-atoms/get_size.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_size.js rename to lib/hybrid/ios/webdriver-atoms/get_size.js diff --git a/app/hybrid/ios/webdriver-atoms/get_text.js b/lib/hybrid/ios/webdriver-atoms/get_text.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_text.js rename to lib/hybrid/ios/webdriver-atoms/get_text.js diff --git a/app/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js b/lib/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js rename to lib/hybrid/ios/webdriver-atoms/get_top_left_coordinates.js diff --git a/app/hybrid/ios/webdriver-atoms/get_value_of_css_property.js b/lib/hybrid/ios/webdriver-atoms/get_value_of_css_property.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_value_of_css_property.js rename to lib/hybrid/ios/webdriver-atoms/get_value_of_css_property.js diff --git a/app/hybrid/ios/webdriver-atoms/get_window_position.js b/lib/hybrid/ios/webdriver-atoms/get_window_position.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_window_position.js rename to lib/hybrid/ios/webdriver-atoms/get_window_position.js diff --git a/app/hybrid/ios/webdriver-atoms/get_window_size.js b/lib/hybrid/ios/webdriver-atoms/get_window_size.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/get_window_size.js rename to lib/hybrid/ios/webdriver-atoms/get_window_size.js diff --git a/app/hybrid/ios/webdriver-atoms/is_displayed.js b/lib/hybrid/ios/webdriver-atoms/is_displayed.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/is_displayed.js rename to lib/hybrid/ios/webdriver-atoms/is_displayed.js diff --git a/app/hybrid/ios/webdriver-atoms/is_enabled.js b/lib/hybrid/ios/webdriver-atoms/is_enabled.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/is_enabled.js rename to lib/hybrid/ios/webdriver-atoms/is_enabled.js diff --git a/app/hybrid/ios/webdriver-atoms/is_online.js b/lib/hybrid/ios/webdriver-atoms/is_online.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/is_online.js rename to lib/hybrid/ios/webdriver-atoms/is_online.js diff --git a/app/hybrid/ios/webdriver-atoms/is_selected.js b/lib/hybrid/ios/webdriver-atoms/is_selected.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/is_selected.js rename to lib/hybrid/ios/webdriver-atoms/is_selected.js diff --git a/app/hybrid/ios/webdriver-atoms/lastupdate b/lib/hybrid/ios/webdriver-atoms/lastupdate similarity index 100% rename from app/hybrid/ios/webdriver-atoms/lastupdate rename to lib/hybrid/ios/webdriver-atoms/lastupdate diff --git a/app/hybrid/ios/webdriver-atoms/move_mouse.js b/lib/hybrid/ios/webdriver-atoms/move_mouse.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/move_mouse.js rename to lib/hybrid/ios/webdriver-atoms/move_mouse.js diff --git a/app/hybrid/ios/webdriver-atoms/pinch.js b/lib/hybrid/ios/webdriver-atoms/pinch.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/pinch.js rename to lib/hybrid/ios/webdriver-atoms/pinch.js diff --git a/app/hybrid/ios/webdriver-atoms/remove_local_storage_item.js b/lib/hybrid/ios/webdriver-atoms/remove_local_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/remove_local_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/remove_local_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/remove_session_storage_item.js b/lib/hybrid/ios/webdriver-atoms/remove_session_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/remove_session_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/remove_session_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/right_click.js b/lib/hybrid/ios/webdriver-atoms/right_click.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/right_click.js rename to lib/hybrid/ios/webdriver-atoms/right_click.js diff --git a/app/hybrid/ios/webdriver-atoms/rotate.js b/lib/hybrid/ios/webdriver-atoms/rotate.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/rotate.js rename to lib/hybrid/ios/webdriver-atoms/rotate.js diff --git a/app/hybrid/ios/webdriver-atoms/scroll_into_view.js b/lib/hybrid/ios/webdriver-atoms/scroll_into_view.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/scroll_into_view.js rename to lib/hybrid/ios/webdriver-atoms/scroll_into_view.js diff --git a/app/hybrid/ios/webdriver-atoms/scroll_mouse.js b/lib/hybrid/ios/webdriver-atoms/scroll_mouse.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/scroll_mouse.js rename to lib/hybrid/ios/webdriver-atoms/scroll_mouse.js diff --git a/app/hybrid/ios/webdriver-atoms/set_local_storage_item.js b/lib/hybrid/ios/webdriver-atoms/set_local_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/set_local_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/set_local_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/set_session_storage_item.js b/lib/hybrid/ios/webdriver-atoms/set_session_storage_item.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/set_session_storage_item.js rename to lib/hybrid/ios/webdriver-atoms/set_session_storage_item.js diff --git a/app/hybrid/ios/webdriver-atoms/set_window_position.js b/lib/hybrid/ios/webdriver-atoms/set_window_position.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/set_window_position.js rename to lib/hybrid/ios/webdriver-atoms/set_window_position.js diff --git a/app/hybrid/ios/webdriver-atoms/set_window_size.js b/lib/hybrid/ios/webdriver-atoms/set_window_size.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/set_window_size.js rename to lib/hybrid/ios/webdriver-atoms/set_window_size.js diff --git a/app/hybrid/ios/webdriver-atoms/submit.js b/lib/hybrid/ios/webdriver-atoms/submit.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/submit.js rename to lib/hybrid/ios/webdriver-atoms/submit.js diff --git a/app/hybrid/ios/webdriver-atoms/swipe.js b/lib/hybrid/ios/webdriver-atoms/swipe.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/swipe.js rename to lib/hybrid/ios/webdriver-atoms/swipe.js diff --git a/app/hybrid/ios/webdriver-atoms/tap.js b/lib/hybrid/ios/webdriver-atoms/tap.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/tap.js rename to lib/hybrid/ios/webdriver-atoms/tap.js diff --git a/app/hybrid/ios/webdriver-atoms/type.js b/lib/hybrid/ios/webdriver-atoms/type.js similarity index 100% rename from app/hybrid/ios/webdriver-atoms/type.js rename to lib/hybrid/ios/webdriver-atoms/type.js diff --git a/app/hybrid/ios/webkit-remote-debugger.js b/lib/hybrid/ios/webkit-remote-debugger.js similarity index 100% rename from app/hybrid/ios/webkit-remote-debugger.js rename to lib/hybrid/ios/webkit-remote-debugger.js diff --git a/app/ios.js b/lib/ios.js similarity index 100% rename from app/ios.js rename to lib/ios.js diff --git a/app/parser.js b/lib/parser.js similarity index 100% rename from app/parser.js rename to lib/parser.js diff --git a/app/proxy.js b/lib/proxy.js similarity index 100% rename from app/proxy.js rename to lib/proxy.js diff --git a/app/responses.js b/lib/responses.js similarity index 100% rename from app/responses.js rename to lib/responses.js diff --git a/app/routing.js b/lib/routing.js similarity index 100% rename from app/routing.js rename to lib/routing.js diff --git a/app/selendroid.js b/lib/selendroid.js similarity index 100% rename from app/selendroid.js rename to lib/selendroid.js diff --git a/app/tempdir.js b/lib/tempdir.js similarity index 100% rename from app/tempdir.js rename to lib/tempdir.js diff --git a/app/uiauto/Rotate.applescript b/lib/uiauto/Rotate.applescript similarity index 100% rename from app/uiauto/Rotate.applescript rename to lib/uiauto/Rotate.applescript diff --git a/app/uiauto/appium/app.js b/lib/uiauto/appium/app.js similarity index 100% rename from app/uiauto/appium/app.js rename to lib/uiauto/appium/app.js diff --git a/app/uiauto/appium/base.js b/lib/uiauto/appium/base.js similarity index 100% rename from app/uiauto/appium/base.js rename to lib/uiauto/appium/base.js diff --git a/app/uiauto/appium/binding.js b/lib/uiauto/appium/binding.js similarity index 100% rename from app/uiauto/appium/binding.js rename to lib/uiauto/appium/binding.js diff --git a/app/uiauto/appium/element.js b/lib/uiauto/appium/element.js similarity index 100% rename from app/uiauto/appium/element.js rename to lib/uiauto/appium/element.js diff --git a/app/uiauto/appium/utility.js b/lib/uiauto/appium/utility.js similarity index 100% rename from app/uiauto/appium/utility.js rename to lib/uiauto/appium/utility.js diff --git a/app/uiauto/appium/xpath.js b/lib/uiauto/appium/xpath.js similarity index 100% rename from app/uiauto/appium/xpath.js rename to lib/uiauto/appium/xpath.js diff --git a/app/uiauto/bootstrap.js b/lib/uiauto/bootstrap.js similarity index 100% rename from app/uiauto/bootstrap.js rename to lib/uiauto/bootstrap.js diff --git a/app/uiauto/lib/console.js b/lib/uiauto/lib/console.js similarity index 100% rename from app/uiauto/lib/console.js rename to lib/uiauto/lib/console.js diff --git a/app/uiauto/lib/instruments_client.js b/lib/uiauto/lib/instruments_client.js similarity index 100% rename from app/uiauto/lib/instruments_client.js rename to lib/uiauto/lib/instruments_client.js diff --git a/app/uiauto/lib/mechanic.js b/lib/uiauto/lib/mechanic.js similarity index 100% rename from app/uiauto/lib/mechanic.js rename to lib/uiauto/lib/mechanic.js diff --git a/app/uiauto/lib/status.js b/lib/uiauto/lib/status.js similarity index 100% rename from app/uiauto/lib/status.js rename to lib/uiauto/lib/status.js diff --git a/package.json b/package.json index 468627834..5eb9c1bd6 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,12 @@ ], "main": "./server.js", "bin": { - "appium": "./app/bin.js", + "appium": "./lib/bin.js", "instruments_client": "./instruments/client_bin.js", - "authorize_ios": "./app/authorize.js" + "authorize_ios": "./lib/authorize.js" }, "directories": { - "lib": "./app", + "lib": "./lib", "doc": "./docs" }, "dependencies": { diff --git a/server.js b/server.js index 39e4cdee1..46e63aab5 100644 --- a/server.js +++ b/server.js @@ -4,14 +4,14 @@ var http = require('http') , path = require('path') , fs = require('fs') , logger = require('./logger').get('appium') - , appium = require('./app/appium') + , appium = require('./lib/appium') , bodyParser = require('./middleware').parserWrap - , status = require('./app/uiauto/lib/status') + , status = require('./lib/uiauto/lib/status') , appiumVer = require('./package.json').version , appiumRev = null , async = require('async') , _ = require("underscore") - , parser = require('./app/parser') + , parser = require('./lib/parser') , io = require('socket.io') , gridRegister = require('./grid_register'); diff --git a/test/functional/prefs/prefs.js b/test/functional/prefs/prefs.js index d599ff8d1..c8eb0ab8b 100644 --- a/test/functional/prefs/prefs.js +++ b/test/functional/prefs/prefs.js @@ -1,7 +1,7 @@ /*global describe:true */ "use strict"; -var checkPreferencesApp = require("../../../app/helpers").checkPreferencesApp +var checkPreferencesApp = require("../../../lib/helpers").checkPreferencesApp , should = require('should') , appPath = '/tmp/Appium-Preferences.app' , describeWd = require("../../helpers/driverblock.js").describeForApp(appPath) diff --git a/test/unit/queue.js b/test/unit/queue.js index e29f8e91d..302a2e663 100644 --- a/test/unit/queue.js +++ b/test/unit/queue.js @@ -5,9 +5,9 @@ "use strict"; var should = require('should') - , appium = require('../../app/appium') + , appium = require('../../lib/appium') , path = require('path') - , ios = require('../../app/ios'); + , ios = require('../../lib/ios'); describe('IOS', function() { // we'd like to test ios.proxy; mock instruments diff --git a/test/unit/routing.js b/test/unit/routing.js index ba2114dd1..d46e0fa63 100644 --- a/test/unit/routing.js +++ b/test/unit/routing.js @@ -2,7 +2,7 @@ "use strict"; var rest = require('express')() - , appium = require('../../app/appium'); + , appium = require('../../lib/appium'); describe('Appium', function() { var inst = appium({}); diff --git a/test/unit/xpath.js b/test/unit/xpath.js index 8a5f1e75b..305a4f618 100644 --- a/test/unit/xpath.js +++ b/test/unit/xpath.js @@ -6,7 +6,7 @@ var should = require('should') , _ = require('underscore') - , au = require('../../app/uiauto/appium/xpath.js'); + , au = require('../../lib/uiauto/appium/xpath.js'); describe("XPath lookups", function() { var oks = { From d9604cacdf74b1ff4d55786127d14a877e16dbba Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 11:43:40 -0700 Subject: [PATCH 07/21] get rid of unused and confusing instruments example --- instruments/example.js | 56 ------------------------------------------ 1 file changed, 56 deletions(-) delete mode 100644 instruments/example.js diff --git a/instruments/example.js b/instruments/example.js deleted file mode 100644 index 88dbff779..000000000 --- a/instruments/example.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -var http = require('http') - , path = require('path') - , spawn = require('child_process').spawn - , build = require('../build') - , fs = require('fs') - , instruments = require('./instruments') - , rimraf = require('rimraf'); - -var appRoot = path.resolve(__dirname, '../sample-code/apps/TestApp/'); -var simApp = path.resolve(appRoot, 'build/Release-iphonesimulator/TestApp.app'); - -build(appRoot, function(err) { - if (err) { - console.log(err); - process.exit(1); - } - - console.log("Launching instruments..."); - var onLaunch = function(inst) { - inst.setDebug(true); - inst.sendCommand("mainWindow.textFields()[0].setValue('3');", function() { - inst.sendCommand("mainWindow.textFields()[1].setValue('5');", function() { - inst.sendCommand("mainWindow.buttons()[0].tap();", function() { - inst.sendCommand("mainWindow.staticTexts()[0].value()", function(sum) { - console.log("Sum should be 8 and is " + sum); - inst.shutdown(); - }); - }); - }); - }); - }; - - var onExit = function(code, traceDir) { - console.log("Instruments exited " + (code === 0 ? "cleanly" : "with code " + code)); - if (traceDir) { - rimraf(traceDir, function() { - console.log("Deleted tracedir"); - process.kill(code); - }); - } else { - console.log("Could not delete tracedir"); - process.kill(code); - } - }; - - var inst = instruments( - simApp - , null - , path.resolve(__dirname, '../app/uiauto/bootstrap.js') - , path.resolve(__dirname, '../app/uiauto/Automation.tracetemplate') - , '/tmp/instruments_sock' - , onLaunch - , onExit - ); -}); From 02529b974cf1896359450a52ee7d8ede19a0b2d3 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 11:57:53 -0700 Subject: [PATCH 08/21] move helper jars to a more reasonable place --- android/adb.js | 21 ++++++++++-------- .../android => android/helpers}/dump2json.jar | Bin .../helpers}/move_manifest.jar | Bin {lib/android => android/helpers}/sign.jar | Bin .../helpers}/strings_from_apk.jar | Bin {lib/android => android/helpers}/unsign.jar | Bin {lib/android => android/helpers}/verify.jar | Bin lib/android.js | 3 ++- 8 files changed, 14 insertions(+), 10 deletions(-) rename {lib/android => android/helpers}/dump2json.jar (100%) rename {lib/android => android/helpers}/move_manifest.jar (100%) rename {lib/android => android/helpers}/sign.jar (100%) rename {lib/android => android/helpers}/strings_from_apk.jar (100%) rename {lib/android => android/helpers}/unsign.jar (100%) rename {lib/android => android/helpers}/verify.jar (100%) diff --git a/android/adb.js b/android/adb.js index 76de60894..1b3409a7a 100644 --- a/android/adb.js +++ b/android/adb.js @@ -20,6 +20,7 @@ var spawn = require('win-spawn') , Logcat = require('./logcat') , isWindows = helpers.isWindows() , md5 = require('MD5') + , helperJarPath = path.resolve(__dirname, 'helpers') , deviceState = require('./device_state'); var noop = function() {}; @@ -189,9 +190,11 @@ ADB.prototype.compileManifest = function(manifest, manifestPackage, targetPackag // Compile manifest into manifest.xml.apk var compileManifest = [this.binaries.aapt + ' package -M "', manifest + '"', - ' --rename-manifest-package "', manifestPackage + '"', - ' --rename-instrumentation-target-package "', targetPackage + '"', - ' -I "', path.resolve(platform[1], 'android.jar') +'" -F "', + ' --rename-manifest-package "', + manifestPackage + '"', + ' --rename-instrumentation-target-package "', + targetPackage + '"', ' -I "', + path.resolve(platform[1], 'android.jar') +'" -F "', manifest, '.apk" -f'].join(''); logger.debug(compileManifest); exec(compileManifest, { maxBuffer: 524288 }, function(err, stdout, stderr) { @@ -233,7 +236,8 @@ ADB.prototype.insertManifest = function(manifest, srcApk, dstApk, cb) { if (isWindows) { var java = path.resolve(process.env.JAVA_HOME, 'bin', 'java'); java = isWindows ? '"' + java + '.exe"' : '"' + java + '"'; - var moveManifestCmd = '"' + path.resolve(__dirname, '..', 'lib', 'android', 'move_manifest.jar') + '"'; + var moveManifestCmd = '"' + path.resolve(helperJarPath, + 'move_manifest.jar') + '"'; moveManifestCmd = [java, '-jar', moveManifestCmd, '"' + dstApk + '"', '"' + manifest + '"'].join(' '); logger.debug("Moving manifest with: " + moveManifestCmd); @@ -272,7 +276,7 @@ ADB.prototype.insertManifest = function(manifest, srcApk, dstApk, cb) { // apks is an array of strings. ADB.prototype.signDefault = function(apks, cb) { - var signPath = path.resolve(__dirname, '..', 'lib', 'android', 'sign.jar'); + var signPath = path.resolve(helperJarPath, 'sign.jar'); var resign = 'java -jar "' + signPath + '" "' + apks.join('" "') + '" --override'; logger.debug("Resigning apks with: " + resign); exec(resign, { maxBuffer: 524288 }, function(err, stdout, stderr) { @@ -292,7 +296,7 @@ ADB.prototype.signCustom = function(apk, cb) { jarsigner = isWindows ? '"' + jarsigner + '.exe"' : '"' + jarsigner + '"'; var java = path.resolve(process.env.JAVA_HOME, 'bin', 'java'); java = isWindows ? '"' + java + '.exe"' : '"' + java + '"'; - var unsign = '"' + path.resolve(__dirname, '..', 'lib', 'android', 'unsign.jar') + '"'; + var unsign = '"' + path.resolve(helperJarPath, 'unsign.jar') + '"'; unsign = [java, '-jar', unsign, '"' + apk + '"'].join(' '); // "jarsigner" "blank.apk" -sigalg MD5withRSA -digestalg SHA1 // -keystore "./key.keystore" -storepass "android" @@ -418,8 +422,7 @@ ADB.prototype.checkApkCert = function(apk, cb) { return; } - var verifyPath = path.resolve(__dirname, '..', 'lib', 'android', - 'verify.jar'); + var verifyPath = path.resolve(helperJarPath, 'verify.jar'); var resign = 'java -jar "' + verifyPath + '" "' + apk + '"'; logger.debug("Checking app cert for " + apk + ": " + resign); exec(resign, { maxBuffer: 524288 }, function(err) { @@ -493,7 +496,7 @@ ADB.prototype.pushStrings = function(cb) { cb(null); }); } else { - var stringsFromApkJarPath = path.resolve(__dirname, '..', 'lib', 'android', + var stringsFromApkJarPath = path.resolve(helperJarPath, 'strings_from_apk.jar'); var outputPath = path.resolve(getTempPath(), this.appPackage); var makeStrings = ['java -jar "', stringsFromApkJarPath, diff --git a/lib/android/dump2json.jar b/android/helpers/dump2json.jar similarity index 100% rename from lib/android/dump2json.jar rename to android/helpers/dump2json.jar diff --git a/lib/android/move_manifest.jar b/android/helpers/move_manifest.jar similarity index 100% rename from lib/android/move_manifest.jar rename to android/helpers/move_manifest.jar diff --git a/lib/android/sign.jar b/android/helpers/sign.jar similarity index 100% rename from lib/android/sign.jar rename to android/helpers/sign.jar diff --git a/lib/android/strings_from_apk.jar b/android/helpers/strings_from_apk.jar similarity index 100% rename from lib/android/strings_from_apk.jar rename to android/helpers/strings_from_apk.jar diff --git a/lib/android/unsign.jar b/android/helpers/unsign.jar similarity index 100% rename from lib/android/unsign.jar rename to android/helpers/unsign.jar diff --git a/lib/android/verify.jar b/android/helpers/verify.jar similarity index 100% rename from lib/android/verify.jar rename to android/helpers/verify.jar diff --git a/lib/android.js b/lib/android.js index 0c98fca8d..7c1aafd75 100644 --- a/lib/android.js +++ b/lib/android.js @@ -580,7 +580,8 @@ Android.prototype.getPageSource = function(cb) { }); }.bind(this), function(cb) { - var jar = path.resolve(__dirname, '..', 'lib', 'android', 'dump2json.jar'); + var jar = path.resolve(__dirname, '..', 'android', 'helpers', + 'dump2json.jar'); var cmd = 'java -jar "' + jar + '" "' + xmlFile + '"'; logger.debug('json command: ' + cmd); exec(cmd, { maxBuffer: 524288 }, function(err, stdout, stderr) { From f6a4940fc061fc55b8ea74c187dfbdb058e09090 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 12:03:53 -0700 Subject: [PATCH 09/21] update gitignore and npmignore with new directory structure --- .gitignore | 4 ++-- .npmignore | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5c9175e26..5a00aea24 100644 --- a/.gitignore +++ b/.gitignore @@ -27,8 +27,8 @@ android/bootstrap/local.properties android/bootstrap/project.properties android/bootstrap/.classpath sample-code/apps/ApiDemos -app/android/AndroidManifest.xml.apk -app/android/AndroidManifest.xml +lib/android/AndroidManifest.xml.apk +lib/android/AndroidManifest.xml .*~ *~ android/bootstrap/target/ diff --git a/.npmignore b/.npmignore index 07954b470..d5fcc93d5 100644 --- a/.npmignore +++ b/.npmignore @@ -8,7 +8,7 @@ sample-code/ test/ android/bootstrap/bin/ android/bootstrap/target/ -app/android/AndroidManifest.xml.apk +lib/android/AndroidManifest.xml.apk _vimrc_local.vim *.swp *.swo From 31c49f590dda57287c25de349a04cac37bfc6289 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 12:30:49 -0700 Subject: [PATCH 10/21] move server-related stuff into lib/server --- CONTRIBUTING.md | 18 +++++++++--------- Gruntfile.js | 2 +- android/adb.js | 2 +- android/device_state.js | 2 +- android/logcat.js | 2 +- docs/grid.md | 2 +- docs/real-devices.md | 6 +++--- docs/running-on-windows.md | 2 +- docs/running-tests.md | 4 ++-- grid_register.js | 2 +- grunt-helpers.js | 5 ++--- instruments/instruments.js | 2 +- lib/android.js | 2 +- lib/appium.js | 7 ++++--- lib/chrome_android.js | 2 +- lib/controller.js | 5 +++-- lib/device.js | 2 +- lib/firefoxos.js | 2 +- lib/helpers.js | 2 +- lib/hybrid/ios/remote-debugger.js | 2 +- lib/hybrid/ios/webkit-remote-debugger.js | 4 ++-- lib/ios.js | 2 +- lib/proxy.js | 2 +- lib/responses.js | 2 +- lib/selendroid.js | 2 +- logger.js => lib/server/logger.js | 0 server.js => lib/server/main.js | 14 +++++++------- middleware.js => lib/server/middleware.js | 0 {app => lib/server}/static/favicon.ico | Bin {app => lib/server}/static/js/jquery.min.js | 0 {app => lib/server}/static/test.jpeg | Bin {app => lib/server}/static/test/frameset.html | 0 .../server}/static/test/guinea-pig2.html | 0 {app => lib/server}/static/test/iframes.html | 0 .../server}/static/test/subframe1.html | 0 .../server}/static/test/subframe2.html | 0 .../server}/static/test/subframe3.html | 0 {app => lib/server}/templates/guinea-pig.html | 0 package.json | 2 +- test/functional/appium/appiumutils.js | 2 +- 40 files changed, 52 insertions(+), 51 deletions(-) rename logger.js => lib/server/logger.js (100%) rename server.js => lib/server/main.js (94%) rename middleware.js => lib/server/middleware.js (100%) rename {app => lib/server}/static/favicon.ico (100%) rename {app => lib/server}/static/js/jquery.min.js (100%) rename {app => lib/server}/static/test.jpeg (100%) rename {app => lib/server}/static/test/frameset.html (100%) rename {app => lib/server}/static/test/guinea-pig2.html (100%) rename {app => lib/server}/static/test/iframes.html (100%) rename {app => lib/server}/static/test/subframe1.html (100%) rename {app => lib/server}/static/test/subframe2.html (100%) rename {app => lib/server}/static/test/subframe3.html (100%) rename {app => lib/server}/templates/guinea-pig.html (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d3d8fbbf..1bb2d4464 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ The quick way to get started: $ cd appium $ ./reset.sh $ sudo grunt authorize # for ios only - $ node server.js + $ node . ## Hacking with Appium @@ -38,14 +38,14 @@ dependencies and builds supporting binaries and test apps. `reset.sh` is also th recommended command to run after pulling changes from master. At this point, you're able to start the Appium server: - node server.js + node . There are some arguments you can pass into the Appium server from the command-line: - node server.js --app /absolute/path/to/app // launch Appium server with app - node server.js --launch // pre-launch the app when appium loads - node server.js --log /my/appium.log // log to file instead of stdout - node server.js --quiet // don't log verbose output + node . --app /absolute/path/to/app // launch Appium server with app + node . --launch // pre-launch the app when appium loads + node . --log /my/appium.log // log to file instead of stdout + node . --quiet // don't log verbose output See [the server documentation](https://github.com/appium/appium/blob/master/docs/server-args.md) for a full list of arguments. @@ -70,7 +70,7 @@ At this point, run: ./reset.sh --ios --dev -Now your Appium instance is ready to go. Run `node server.js` to kick up the Appium server. +Now your Appium instance is ready to go. Run `node .` to kick up the Appium server. ### Hacking with Appium for Android @@ -89,7 +89,7 @@ on your path): emulator -avd -Now you are ready to run the Appium server via `node server.js`. +Now you are ready to run the Appium server via `node .`. ### Making sure you're up to date @@ -145,7 +145,7 @@ Or individual tests (e.g., a test with the word "alert" in the name): mocha -t 60000 -R spec --grep "alert" test/functional/apidemos You can also run all of appium's tests this way. In one window, `node -server.js`, in another window, sequentially (waiting for each to pass, making +.`, in another window, sequentially (waiting for each to pass, making sure emulator is up, etc...): alias mm="mocha -t 60000 -R spec" diff --git a/Gruntfile.js b/Gruntfile.js index 834cb782c..cf321f100 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -30,7 +30,7 @@ module.exports = function(grunt) { , trailing: true , node: true , strict: true - , ignores: ['./submodules/**/*.js', './node_modules/**/*.js', './lib/hybrid/ios/webdriver-atoms/*.js', './sample-code/**/*.js', './test/harmony/**/*.js', './test/functional/_joined/*.js', './app/static/**/*.js', './lib/hybrid/firefoxos/atoms/*.js', './lib/uiauto/**/*.js'] + , ignores: ['./submodules/**/*.js', './node_modules/**/*.js', './lib/hybrid/ios/webdriver-atoms/*.js', './sample-code/**/*.js', './test/harmony/**/*.js', './test/functional/_joined/*.js', './lib/server/static/**/*.js', './lib/hybrid/firefoxos/atoms/*.js', './lib/uiauto/**/*.js'] } } , mochaTest: { diff --git a/android/adb.js b/android/adb.js index 1b3409a7a..debbf2f0a 100644 --- a/android/adb.js +++ b/android/adb.js @@ -5,7 +5,7 @@ var spawn = require('win-spawn') , path = require('path') , fs = require('fs') , net = require('net') - , logger = require('../logger').get('appium') + , logger = require('../lib/server/logger.js').get('appium') , status = require('../lib/uiauto/lib/status') , unzipFile = require('../lib/helpers').unzipFile , testZipArchive = require('../lib/helpers').testZipArchive diff --git a/android/device_state.js b/android/device_state.js index 7ff6e8155..26148ded3 100644 --- a/android/device_state.js +++ b/android/device_state.js @@ -1,7 +1,7 @@ "use strict"; var exec = require('child_process').exec - , logger = require('../logger').get('appium'); + , logger = require('../lib/server/logger.js').get('appium'); function log(msg) { logger.info("[ADB] " + msg); diff --git a/android/logcat.js b/android/logcat.js index 6c08742f0..cbe250c11 100644 --- a/android/logcat.js +++ b/android/logcat.js @@ -3,7 +3,7 @@ var spawn = require('win-spawn') , through = require('through') , _ = require('underscore') - , logger = require('../logger').get('appium'); + , logger = require('../lib/server/logger.js').get('appium'); var Logcat = function(opts) { this.adbCmd = opts.adbCmd; diff --git a/docs/grid.md b/docs/grid.md index 28fd1c80b..3b0c956f8 100644 --- a/docs/grid.md +++ b/docs/grid.md @@ -4,7 +4,7 @@ Selenium Grid You are able to register you appium server with a local grid by using the "--nodeconfig" server parameter. ```bash -> node server.js -V --nodeconfig /path/to/nodeconfig.json +> node . -V --nodeconfig /path/to/nodeconfig.json ``` In the node config file you have to define the "browserName", "version" and "platform" and based on these parameters the grid will re-direct your test to the right device. You will also need to configure you host details and the selenium grid details. For a full list of all parameters and descriptions look here. diff --git a/docs/real-devices.md b/docs/real-devices.md index ed9cf1361..5c9221134 100644 --- a/docs/real-devices.md +++ b/docs/real-devices.md @@ -21,10 +21,10 @@ You must install your iOS app using Xcode's Run button. Running your tests with Appium --- -Once your device and app are configured, you can run tests on that device by passing the -U flag to server.js: +Once your device and app are configured, you can run tests on that device by passing the -U flag to the server: ``` -node server.js -U --app +node . -U --app ``` This will start Appium and have Appium use the device to test the app. @@ -35,4 +35,4 @@ Troubleshooting ideas 0. Make sure UDID is correct by checking it in xcode organizer or itunes. It is a long string (20+ chars) 0. Make sure that you can run your tests against simulator 0. Double check that you can invoke your automation from instruments. -0. Make sure instruments in closed already \ No newline at end of file +0. Make sure instruments in closed already diff --git a/docs/running-on-windows.md b/docs/running-on-windows.md index c2287ca84..4fb442cec 100644 --- a/docs/running-on-windows.md +++ b/docs/running-on-windows.md @@ -24,7 +24,7 @@ Now that you've downloaded everything, run: To run tests on Windows, you will need to have the Android Emulator booted or an Android Device connected that is running an AVD with API Level 17 or greater. Then run Appium on the command line using node.js: - node server.js + node . See the [server documentation](https://github.com/appium/appium/blob/master/docs/server-args.md) for all the command line arguments. diff --git a/docs/running-tests.md b/docs/running-tests.md index 9aa7c3b58..992cea5a6 100644 --- a/docs/running-tests.md +++ b/docs/running-tests.md @@ -28,7 +28,7 @@ The best way to see what to do currently is to look at the example tests: Basically, first make sure Appium is running: - node server.js -V + node . -V Then script your WebDriver test, sending in the following desired capabilities: @@ -73,7 +73,7 @@ otherwise failing, you can restart it by running: Now, make sure Appium is running: - node server.js + node . Then script your WebDriver test, sending in the following desired capabilities: diff --git a/grid_register.js b/grid_register.js index 320aae580..ccede3472 100644 --- a/grid_register.js +++ b/grid_register.js @@ -1,7 +1,7 @@ "use strict"; var request = require('request') , fs = require('fs') - , logger = require('./logger').get('appium'); + , logger = require('./lib/server/logger').get('appium'); exports.registerNode = function (configFile) { fs.readFile(configFile, 'utf-8', function (err, data) { diff --git a/grunt-helpers.js b/grunt-helpers.js index f2bfe0a5d..76ea04fd4 100644 --- a/grunt-helpers.js +++ b/grunt-helpers.js @@ -1,9 +1,8 @@ "use strict"; var _ = require("underscore") - , server = require('./server.js') + , server = require('./lib/server/main.js') , rimraf = require('rimraf') - , http = require('http') , path = require('path') , temp = require('temp') , mkdirp = require('mkdirp') @@ -560,7 +559,7 @@ module.exports.generateServerDocs = function(grunt, cb) { var p = parser(); var docFile = path.resolve(__dirname, "docs/server-args.md"); var md = "Appium server arguments\n==========\n\n"; - md += "Usage: `node server.js [flags]`\n\n"; + md += "Usage: `node . [flags]`\n\n"; md += "### Server flags\n"; md += "All flags are optional, but some are required in conjunction with " + "certain others.\n\n"; diff --git a/instruments/instruments.js b/instruments/instruments.js index 1734ea4df..3bed6bb8a 100644 --- a/instruments/instruments.js +++ b/instruments/instruments.js @@ -3,7 +3,7 @@ var spawn = require('child_process').spawn , exec = require('child_process').exec - , logger = require('../logger').get('appium') + , logger = require('../lib/server/logger').get('appium') , fs = require('fs') , _ = require('underscore') , net = require('net') diff --git a/lib/android.js b/lib/android.js index 7c1aafd75..6044b85a4 100644 --- a/lib/android.js +++ b/lib/android.js @@ -3,7 +3,7 @@ var errors = require('./errors') , adb = require('../android/adb') , _ = require('underscore') - , logger = require('../logger').get('appium') + , logger = require('./server/logger.js').get('appium') , deviceCommon = require('./device') , status = require("./uiauto/lib/status") //, NotImplementedError = errors.NotImplementedError diff --git a/lib/appium.js b/lib/appium.js index aca678bac..39632bb16 100644 --- a/lib/appium.js +++ b/lib/appium.js @@ -2,9 +2,10 @@ // https://github.com/hugs/appium/blob/master/appium/appium.py "use strict"; var routing = require('./routing') - , logger = require('../logger').get('appium') - , setLogFile = require('../logger').setLogFile - , setWebhook = require('../logger').setWebhook + , loggerjs = require('./server/logger.js') + , logger = loggerjs.get('appium') + , setLogFile = loggerjs.setLogFile + , setWebhook = loggerjs.setWebhook , helpers = require('./helpers') , downloadFile = helpers.downloadFile , unzipApp = helpers.unzipApp diff --git a/lib/chrome_android.js b/lib/chrome_android.js index 63739eb88..8a66b33f1 100644 --- a/lib/chrome_android.js +++ b/lib/chrome_android.js @@ -3,7 +3,7 @@ var Android = require('./android').Android , _ = require('underscore') , proxyTo = require('./device').proxyTo - , logger = require('../logger').get('appium') + , logger = require('./server/logger.js').get('appium') , exec = require('child_process').exec , spawn = require('child_process').spawn , async = require('async') diff --git a/lib/controller.js b/lib/controller.js index 8996a5411..f6b092d27 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -2,7 +2,7 @@ // https://github.com/hugs/appium/blob/master/appium/server.py "use strict"; var status = require('./uiauto/lib/status') - , logger = require('../logger.js').get('appium') + , logger = require('./server/logger.js').get('appium') , _s = require("underscore.string") , swig = require('swig') , path = require('path') @@ -983,5 +983,6 @@ exports.guineaPig = function(req, res) { }; exports.getTemplate = function(templateName) { - return swig.compileFile(path.resolve(__dirname, "templates/" + templateName + ".html")); + return swig.compileFile(path.resolve(__dirname, "server", "templates", + templateName + ".html")); }; diff --git a/lib/device.js b/lib/device.js index 77589c3a3..c9a31e25c 100644 --- a/lib/device.js +++ b/lib/device.js @@ -5,7 +5,7 @@ var errors = require('./errors') , _ = require('underscore') , exec = require('child_process').exec , status = require("./uiauto/lib/status") - , logger = require('../logger').get('appium'); + , logger = require('./server/logger.js').get('appium'); var UnknownError = errors.UnknownError , ProtocolError = errors.ProtocolError; diff --git a/lib/firefoxos.js b/lib/firefoxos.js index 81cd8b5c3..4c0dd2d23 100644 --- a/lib/firefoxos.js +++ b/lib/firefoxos.js @@ -2,7 +2,7 @@ var errors = require('./errors') , _ = require('underscore') - , logger = require('../logger').get('appium') + , logger = require('./server/logger.js').get('appium') , net = require('net') , deviceCommon = require('./device') , status = require("./uiauto/lib/status") diff --git a/lib/helpers.js b/lib/helpers.js index 70695be1a..b4bfc66bc 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -1,6 +1,6 @@ "use strict"; -var logger = require('../logger').get('appium') +var logger = require('./server/logger.js').get('appium') , fs = require('fs') , ncp = require('ncp').ncp , request = require('request') diff --git a/lib/hybrid/ios/remote-debugger.js b/lib/hybrid/ios/remote-debugger.js index efb0c9fb5..ebdea31cc 100644 --- a/lib/hybrid/ios/remote-debugger.js +++ b/lib/hybrid/ios/remote-debugger.js @@ -2,7 +2,7 @@ /* DEPENDENCIES */ var net = require('net') - , appLogger = require('../../../logger.js').get('appium') + , appLogger = require('../../server/logger.js').get('appium') , _ = require('underscore') , messages = require('./remote-messages.js') , atoms = require('./webdriver-atoms') diff --git a/lib/hybrid/ios/webkit-remote-debugger.js b/lib/hybrid/ios/webkit-remote-debugger.js index 6c1f0cba7..bf1f23f81 100644 --- a/lib/hybrid/ios/webkit-remote-debugger.js +++ b/lib/hybrid/ios/webkit-remote-debugger.js @@ -2,7 +2,7 @@ /* DEPENDENCIES */ var net = require('net') - , appLogger = require('../../../logger.js').get('appium') + , appLogger = require('../../server/logger.js').get('appium') , _ = require('underscore') , atoms = require('./webdriver-atoms') , status = require("../../uiauto/lib/status") @@ -192,4 +192,4 @@ WebKitRemoteDebugger.prototype.receive = function(data){ exports.init = function(onDisconnect) { return new WebKitRemoteDebugger(onDisconnect); -}; \ No newline at end of file +}; diff --git a/lib/ios.js b/lib/ios.js index 4821b1b33..1c4c28212 100644 --- a/lib/ios.js +++ b/lib/ios.js @@ -3,7 +3,7 @@ var path = require('path') , rimraf = require('rimraf') , fs = require('fs') , _ = require('underscore') - , logger = require('../logger').get('appium') + , logger = require('./server/logger.js').get('appium') , sock = '/tmp/instruments_sock' , glob = require('glob') , exec = require('child_process').exec diff --git a/lib/proxy.js b/lib/proxy.js index 0a2613ae9..6cb12cfae 100644 --- a/lib/proxy.js +++ b/lib/proxy.js @@ -1,7 +1,7 @@ "use strict"; var _s = require('underscore.string') - , logger = require('../logger.js').get('appium') + , logger = require('./server/logger.js').get('appium') , doRequest = require('./device').doRequest , respondError = require('./responses').respondError , _ = require('underscore'); diff --git a/lib/responses.js b/lib/responses.js index 322acc2c8..d5ba95899 100644 --- a/lib/responses.js +++ b/lib/responses.js @@ -1,6 +1,6 @@ "use strict"; -var logger = require('../logger').get('appium') +var logger = require('./server/logger.js').get('appium') , status = require('./uiauto/lib/status') , _ = require('underscore'); diff --git a/lib/selendroid.js b/lib/selendroid.js index 104f42ec2..367f8dbb2 100644 --- a/lib/selendroid.js +++ b/lib/selendroid.js @@ -8,7 +8,7 @@ var errors = require('./errors') , proxyTo = deviceCommon.proxyTo , getLog = deviceCommon.getLog , getLogTypes = deviceCommon.getLogTypes - , logger = require('../logger').get('appium') + , logger = require('./server/logger.js').get('appium') , status = require("./uiauto/lib/status") , fs = require('fs') , async = require('async') diff --git a/logger.js b/lib/server/logger.js similarity index 100% rename from logger.js rename to lib/server/logger.js diff --git a/server.js b/lib/server/main.js similarity index 94% rename from server.js rename to lib/server/main.js index 46e63aab5..f49fcf8dd 100644 --- a/server.js +++ b/lib/server/main.js @@ -4,16 +4,16 @@ var http = require('http') , path = require('path') , fs = require('fs') , logger = require('./logger').get('appium') - , appium = require('./lib/appium') + , appium = require('../appium') , bodyParser = require('./middleware').parserWrap - , status = require('./lib/uiauto/lib/status') - , appiumVer = require('./package.json').version + , status = require('../uiauto/lib/status') + , appiumVer = require('../../package.json').version , appiumRev = null , async = require('async') , _ = require("underscore") - , parser = require('./lib/parser') + , parser = require('../parser') , io = require('socket.io') - , gridRegister = require('./grid_register'); + , gridRegister = require('../../grid_register'); var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); @@ -79,7 +79,7 @@ var main = function(args, readyCb, doneCb) { rest.configure(function() { rest.use(express.favicon()); - rest.use(express.static(path.join(__dirname, '/app/static'))); + rest.use(express.static(path.join(__dirname, 'static'))); rest.use(allowCrossDomain); if (!args.quiet) { rest.use(express.logger('dev')); @@ -100,7 +100,7 @@ var main = function(args, readyCb, doneCb) { appiumServer.attachTo(rest); var checkSetup = function(cb) { - var configFile = path.resolve(__dirname, ".appiumconfig"); + var configFile = path.resolve(__dirname, "..", "..", ".appiumconfig"); fs.readFile(configFile, function(err, data) { if (err) { logger.error("Could not find config file; looks like config hasn't " + diff --git a/middleware.js b/lib/server/middleware.js similarity index 100% rename from middleware.js rename to lib/server/middleware.js diff --git a/app/static/favicon.ico b/lib/server/static/favicon.ico similarity index 100% rename from app/static/favicon.ico rename to lib/server/static/favicon.ico diff --git a/app/static/js/jquery.min.js b/lib/server/static/js/jquery.min.js similarity index 100% rename from app/static/js/jquery.min.js rename to lib/server/static/js/jquery.min.js diff --git a/app/static/test.jpeg b/lib/server/static/test.jpeg similarity index 100% rename from app/static/test.jpeg rename to lib/server/static/test.jpeg diff --git a/app/static/test/frameset.html b/lib/server/static/test/frameset.html similarity index 100% rename from app/static/test/frameset.html rename to lib/server/static/test/frameset.html diff --git a/app/static/test/guinea-pig2.html b/lib/server/static/test/guinea-pig2.html similarity index 100% rename from app/static/test/guinea-pig2.html rename to lib/server/static/test/guinea-pig2.html diff --git a/app/static/test/iframes.html b/lib/server/static/test/iframes.html similarity index 100% rename from app/static/test/iframes.html rename to lib/server/static/test/iframes.html diff --git a/app/static/test/subframe1.html b/lib/server/static/test/subframe1.html similarity index 100% rename from app/static/test/subframe1.html rename to lib/server/static/test/subframe1.html diff --git a/app/static/test/subframe2.html b/lib/server/static/test/subframe2.html similarity index 100% rename from app/static/test/subframe2.html rename to lib/server/static/test/subframe2.html diff --git a/app/static/test/subframe3.html b/lib/server/static/test/subframe3.html similarity index 100% rename from app/static/test/subframe3.html rename to lib/server/static/test/subframe3.html diff --git a/app/templates/guinea-pig.html b/lib/server/templates/guinea-pig.html similarity index 100% rename from app/templates/guinea-pig.html rename to lib/server/templates/guinea-pig.html diff --git a/package.json b/package.json index 5eb9c1bd6..32c674930 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "engines": [ "node" ], - "main": "./server.js", + "main": "./lib/server/main.js", "bin": { "appium": "./lib/bin.js", "instruments_client": "./instruments/client_bin.js", diff --git a/test/functional/appium/appiumutils.js b/test/functional/appium/appiumutils.js index 9445180ca..52555bcc4 100644 --- a/test/functional/appium/appiumutils.js +++ b/test/functional/appium/appiumutils.js @@ -2,7 +2,7 @@ /*global afterEach:true */ "use strict"; -var runServer = require("../../../server.js").run +var runServer = require("../../../lib/server/main.js").run , should = require("should") , path = require("path"); From 2878e62aa539a76d5e9910f1d941da87b067056d Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 13:25:28 -0700 Subject: [PATCH 11/21] move more functionality into server/ --- grunt-helpers.js | 2 +- lib/android.js | 2 +- lib/appium.js | 2 +- lib/bin.js | 2 +- lib/device.js | 2 +- lib/firefoxos.js | 2 +- lib/ios.js | 2 +- lib/selendroid.js | 2 +- lib/{ => server}/controller.js | 12 ++++++------ lib/{ => server}/errors.js | 0 lib/server/main.js | 2 +- lib/{ => server}/parser.js | 2 +- lib/{ => server}/proxy.js | 6 +++--- lib/{ => server}/responses.js | 4 ++-- lib/{ => server}/routing.js | 2 +- 15 files changed, 22 insertions(+), 22 deletions(-) rename lib/{ => server}/controller.js (98%) rename lib/{ => server}/errors.js (100%) rename lib/{ => server}/parser.js (99%) rename lib/{ => server}/proxy.js (92%) rename lib/{ => server}/responses.js (97%) rename lib/{ => server}/routing.js (99%) diff --git a/grunt-helpers.js b/grunt-helpers.js index 76ea04fd4..549bf64d7 100644 --- a/grunt-helpers.js +++ b/grunt-helpers.js @@ -11,7 +11,7 @@ var _ = require("underscore") , prompt = require('prompt') , exec = require('child_process').exec , spawn = require('win-spawn') - , parser = require('./lib/parser') + , parser = require('./lib/server/parser.js') , namp = require('namp') , parseXmlString = require('xml2js').parseString , appiumVer = require('./package.json').version diff --git a/lib/android.js b/lib/android.js index 6044b85a4..d0e6cdaea 100644 --- a/lib/android.js +++ b/lib/android.js @@ -1,6 +1,6 @@ "use strict"; -var errors = require('./errors') +var errors = require('./server/errors.js') , adb = require('../android/adb') , _ = require('underscore') , logger = require('./server/logger.js').get('appium') diff --git a/lib/appium.js b/lib/appium.js index 39632bb16..18251e752 100644 --- a/lib/appium.js +++ b/lib/appium.js @@ -1,7 +1,7 @@ // Appium webserver controller methods // https://github.com/hugs/appium/blob/master/appium/appium.py "use strict"; -var routing = require('./routing') +var routing = require('./server/routing.js') , loggerjs = require('./server/logger.js') , logger = loggerjs.get('appium') , setLogFile = loggerjs.setLogFile diff --git a/lib/bin.js b/lib/bin.js index ac50796d8..d26c85d00 100644 --- a/lib/bin.js +++ b/lib/bin.js @@ -5,7 +5,7 @@ var net = require('net') , repl = require('repl') , colors = require('colors') , appium = require('../server') - , parser = require('./parser'); + , parser = require('./server/parser.js'); var startRepl = function() { var help = function() { diff --git a/lib/device.js b/lib/device.js index c9a31e25c..2228c1246 100644 --- a/lib/device.js +++ b/lib/device.js @@ -1,6 +1,6 @@ "use strict"; -var errors = require('./errors') +var errors = require('./server/errors.js') , request = require('request') , _ = require('underscore') , exec = require('child_process').exec diff --git a/lib/firefoxos.js b/lib/firefoxos.js index 4c0dd2d23..60293f3f8 100644 --- a/lib/firefoxos.js +++ b/lib/firefoxos.js @@ -1,6 +1,6 @@ "use strict"; -var errors = require('./errors') +var errors = require('./server/errors.js') , _ = require('underscore') , logger = require('./server/logger.js').get('appium') , net = require('net') diff --git a/lib/ios.js b/lib/ios.js index 1c4c28212..503abf65b 100644 --- a/lib/ios.js +++ b/lib/ios.js @@ -18,7 +18,7 @@ var path = require('path') , rotateImage = helpers.rotateImage , rd = require('./hybrid/ios/remote-debugger') , wkrd = require('./hybrid/ios/webkit-remote-debugger') - , errors = require('./errors') + , errors = require('./server/errors.js') , deviceCommon = require('./device') , status = require("./uiauto/lib/status") , IDevice = require('node-idevice') diff --git a/lib/selendroid.js b/lib/selendroid.js index 367f8dbb2..109c92409 100644 --- a/lib/selendroid.js +++ b/lib/selendroid.js @@ -1,6 +1,6 @@ "use strict"; -var errors = require('./errors') +var errors = require('./server/errors.js') , adb = require('../android/adb') , _ = require('underscore') , deviceCommon = require('./device') diff --git a/lib/controller.js b/lib/server/controller.js similarity index 98% rename from lib/controller.js rename to lib/server/controller.js index f6b092d27..519f04394 100644 --- a/lib/controller.js +++ b/lib/server/controller.js @@ -1,14 +1,14 @@ // Appium webserver controller methods // https://github.com/hugs/appium/blob/master/appium/server.py "use strict"; -var status = require('./uiauto/lib/status') - , logger = require('./server/logger.js').get('appium') +var status = require('../uiauto/lib/status.js') + , logger = require('./logger.js').get('appium') , _s = require("underscore.string") , swig = require('swig') , path = require('path') - , version = require('../package.json').version - , proxy = require('./proxy') - , responses = require('./responses') + , version = require('../../package.json').version + , proxy = require('./proxy.js') + , responses = require('./responses.js') , getResponseHandler = responses.getResponseHandler , respondError = responses.respondError , respondSuccess = responses.respondSuccess @@ -983,6 +983,6 @@ exports.guineaPig = function(req, res) { }; exports.getTemplate = function(templateName) { - return swig.compileFile(path.resolve(__dirname, "server", "templates", + return swig.compileFile(path.resolve(__dirname, "templates", templateName + ".html")); }; diff --git a/lib/errors.js b/lib/server/errors.js similarity index 100% rename from lib/errors.js rename to lib/server/errors.js diff --git a/lib/server/main.js b/lib/server/main.js index f49fcf8dd..4f8dd4878 100644 --- a/lib/server/main.js +++ b/lib/server/main.js @@ -11,7 +11,7 @@ var http = require('http') , appiumRev = null , async = require('async') , _ = require("underscore") - , parser = require('../parser') + , parser = require('./parser.js') , io = require('socket.io') , gridRegister = require('../../grid_register'); diff --git a/lib/parser.js b/lib/server/parser.js similarity index 99% rename from lib/parser.js rename to lib/server/parser.js index 0683ea063..068703518 100644 --- a/lib/parser.js +++ b/lib/server/parser.js @@ -1,6 +1,6 @@ "use strict"; var ap = require('argparse').ArgumentParser - , pkgObj = require('../package') + , pkgObj = require('../../package.json') , path = require('path') , _ = require('underscore'); diff --git a/lib/proxy.js b/lib/server/proxy.js similarity index 92% rename from lib/proxy.js rename to lib/server/proxy.js index 6cb12cfae..54f2fe675 100644 --- a/lib/proxy.js +++ b/lib/server/proxy.js @@ -1,9 +1,9 @@ "use strict"; var _s = require('underscore.string') - , logger = require('./server/logger.js').get('appium') - , doRequest = require('./device').doRequest - , respondError = require('./responses').respondError + , logger = require('./logger.js').get('appium') + , doRequest = require('../device.js').doRequest + , respondError = require('./responses.js').respondError , _ = require('underscore'); diff --git a/lib/responses.js b/lib/server/responses.js similarity index 97% rename from lib/responses.js rename to lib/server/responses.js index d5ba95899..5269e1e5d 100644 --- a/lib/responses.js +++ b/lib/server/responses.js @@ -1,7 +1,7 @@ "use strict"; -var logger = require('./server/logger.js').get('appium') - , status = require('./uiauto/lib/status') +var logger = require('./logger.js').get('appium') + , status = require('../uiauto/lib/status.js') , _ = require('underscore'); var getSessionId = function(req, response) { diff --git a/lib/routing.js b/lib/server/routing.js similarity index 99% rename from lib/routing.js rename to lib/server/routing.js index 717842d4e..7fd3be9ad 100644 --- a/lib/routing.js +++ b/lib/server/routing.js @@ -1,6 +1,6 @@ "use strict"; -var controller = require('./controller'); +var controller = require('./controller.js'); module.exports = function(appium) { var rest = appium.rest; From ff5bf6b4cc7a1aac539fad2072ce9b719dfba9c8 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 14:06:20 -0700 Subject: [PATCH 12/21] put devices in their own place --- lib/appium.js | 16 ++++++++-------- lib/{ => devices}/android.js | 18 +++++++----------- lib/{ => devices}/chrome_android.js | 10 +++++----- lib/{ => devices}/firefoxos.js | 10 +++++----- lib/{ => devices}/ios.js | 16 ++++++++-------- lib/{ => devices}/selendroid.js | 10 +++++----- test/unit/queue.js | 4 ++-- 7 files changed, 40 insertions(+), 44 deletions(-) rename lib/{ => devices}/android.js (98%) rename lib/{ => devices}/chrome_android.js (95%) rename lib/{ => devices}/firefoxos.js (97%) rename lib/{ => devices}/ios.js (99%) rename lib/{ => devices}/selendroid.js (95%) diff --git a/lib/appium.js b/lib/appium.js index 18251e752..c7b900957 100644 --- a/lib/appium.js +++ b/lib/appium.js @@ -6,7 +6,7 @@ var routing = require('./server/routing.js') , logger = loggerjs.get('appium') , setLogFile = loggerjs.setLogFile , setWebhook = loggerjs.setWebhook - , helpers = require('./helpers') + , helpers = require('./helpers.js') , downloadFile = helpers.downloadFile , unzipApp = helpers.unzipApp , checkSafari = helpers.checkSafari @@ -15,13 +15,13 @@ var routing = require('./server/routing.js') , UUID = require('uuid-js') , _ = require('underscore') , fs = require('fs') - , ios = require('./ios') - , android = require('./android') - , selendroid = require('./selendroid') - , chrome = require('./chrome_android') - , firefoxOs = require('./firefoxos') - , status = require("./uiauto/lib/status") - , helpers = require('./helpers') + , ios = require('./devices/ios.js') + , android = require('./devices/android.js') + , selendroid = require('./devices/selendroid.js') + , chrome = require('./devices/chrome_android.js') + , firefoxOs = require('./devices/firefoxos.js') + , status = require("./uiauto/lib/status.js") + , helpers = require('./helpers.js') , isWindows = helpers.isWindows(); var Appium = function(args) { diff --git a/lib/android.js b/lib/devices/android.js similarity index 98% rename from lib/android.js rename to lib/devices/android.js index d0e6cdaea..762cba790 100644 --- a/lib/android.js +++ b/lib/devices/android.js @@ -1,23 +1,19 @@ "use strict"; -var errors = require('./server/errors.js') - , adb = require('../android/adb') +var errors = require('../server/errors.js') + , adb = require('../../android/adb.js') , _ = require('underscore') - , logger = require('./server/logger.js').get('appium') - , deviceCommon = require('./device') - , status = require("./uiauto/lib/status") - //, NotImplementedError = errors.NotImplementedError + , logger = require('../server/logger.js').get('appium') + , deviceCommon = require('../device.js') + , status = require("../uiauto/lib/status.js") , NotYetImplementedError = errors.NotYetImplementedError - , parseXpath = require('./uiauto/appium/xpath').parseXpath + , parseXpath = require('../uiauto/appium/xpath.js').parseXpath , exec = require('child_process').exec , fs = require('fs') - , os = require('os') , temp = require('temp') , async = require('async') , path = require('path') - , UnknownError = errors.UnknownError - , helpers = require('./helpers') - , isWindows = helpers.isWindows(); + , UnknownError = errors.UnknownError; var Android = function(opts) { this.initialize(opts); diff --git a/lib/chrome_android.js b/lib/devices/chrome_android.js similarity index 95% rename from lib/chrome_android.js rename to lib/devices/chrome_android.js index 8a66b33f1..d006424b6 100644 --- a/lib/chrome_android.js +++ b/lib/devices/chrome_android.js @@ -1,15 +1,15 @@ "use strict"; -var Android = require('./android').Android +var Android = require('./android.js').Android , _ = require('underscore') - , proxyTo = require('./device').proxyTo - , logger = require('./server/logger.js').get('appium') + , proxyTo = require('../device.js').proxyTo + , logger = require('../server/logger.js').get('appium') , exec = require('child_process').exec , spawn = require('child_process').spawn , async = require('async') , through = require('through') - , isWindows = require('./helpers').isWindows() - , adb = require('../android/adb'); + , isWindows = require('../helpers.js').isWindows() + , adb = require('../../android/adb.js'); var ChromeAndroid = function(opts) { this.initialize(opts); diff --git a/lib/firefoxos.js b/lib/devices/firefoxos.js similarity index 97% rename from lib/firefoxos.js rename to lib/devices/firefoxos.js index 60293f3f8..a6475615c 100644 --- a/lib/firefoxos.js +++ b/lib/devices/firefoxos.js @@ -1,12 +1,12 @@ "use strict"; -var errors = require('./server/errors.js') +var errors = require('../server/errors.js') , _ = require('underscore') - , logger = require('./server/logger.js').get('appium') + , logger = require('../server/logger.js').get('appium') , net = require('net') - , deviceCommon = require('./device') - , status = require("./uiauto/lib/status") - , getAtomSrc = require('./hybrid/firefoxos/firefoxos-atoms').get + , deviceCommon = require('../device.js') + , status = require("../uiauto/lib/status.js") + , getAtomSrc = require('../hybrid/firefoxos/firefoxos-atoms').get , async = require('async') , NotYetImplementedError = errors.NotYetImplementedError; diff --git a/lib/ios.js b/lib/devices/ios.js similarity index 99% rename from lib/ios.js rename to lib/devices/ios.js index 503abf65b..efa6f9552 100644 --- a/lib/ios.js +++ b/lib/devices/ios.js @@ -3,24 +3,24 @@ var path = require('path') , rimraf = require('rimraf') , fs = require('fs') , _ = require('underscore') - , logger = require('./server/logger.js').get('appium') + , logger = require('../server/logger.js').get('appium') , sock = '/tmp/instruments_sock' , glob = require('glob') , exec = require('child_process').exec , bplistCreate = require('bplist-creator') , bplistParse = require('bplist-parser') , xmlplist = require('plist') - , instruments = require('../instruments/instruments') + , instruments = require('../../instruments/instruments.js') , uuid = require('uuid-js') - , helpers = require('./helpers.js') + , helpers = require('../helpers.js') , escapeSpecialChars = helpers.escapeSpecialChars , parseWebCookies = helpers.parseWebCookies , rotateImage = helpers.rotateImage - , rd = require('./hybrid/ios/remote-debugger') - , wkrd = require('./hybrid/ios/webkit-remote-debugger') - , errors = require('./server/errors.js') - , deviceCommon = require('./device') - , status = require("./uiauto/lib/status") + , rd = require('../hybrid/ios/remote-debugger.js') + , wkrd = require('../hybrid/ios/webkit-remote-debugger.js') + , errors = require('../server/errors.js') + , deviceCommon = require('../device.js') + , status = require("../uiauto/lib/status.js") , IDevice = require('node-idevice') , async = require('async') , request = require('request') diff --git a/lib/selendroid.js b/lib/devices/selendroid.js similarity index 95% rename from lib/selendroid.js rename to lib/devices/selendroid.js index 109c92409..106fd0e9d 100644 --- a/lib/selendroid.js +++ b/lib/devices/selendroid.js @@ -1,15 +1,15 @@ "use strict"; -var errors = require('./server/errors.js') - , adb = require('../android/adb') +var errors = require('../server/errors.js') + , adb = require('../../android/adb.js') , _ = require('underscore') - , deviceCommon = require('./device') + , deviceCommon = require('../device.js') , request = deviceCommon.request , proxyTo = deviceCommon.proxyTo , getLog = deviceCommon.getLog , getLogTypes = deviceCommon.getLogTypes - , logger = require('./server/logger.js').get('appium') - , status = require("./uiauto/lib/status") + , logger = require('../server/logger.js').get('appium') + , status = require("../uiauto/lib/status.js") , fs = require('fs') , async = require('async') , path = require('path') diff --git a/test/unit/queue.js b/test/unit/queue.js index 302a2e663..8f428c878 100644 --- a/test/unit/queue.js +++ b/test/unit/queue.js @@ -5,9 +5,9 @@ "use strict"; var should = require('should') - , appium = require('../../lib/appium') + , appium = require('../../lib/appium.js') , path = require('path') - , ios = require('../../lib/ios'); + , ios = require('../../lib/devices/ios.js'); describe('IOS', function() { // we'd like to test ios.proxy; mock instruments From 9d323a3a35eae02e7bcd90d6baa4ad2bc7ef7e9c Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 14:50:51 -0700 Subject: [PATCH 13/21] move logic common to devices into devices dir --- lib/devices/android.js | 2 +- lib/devices/chrome_android.js | 2 +- lib/{device.js => devices/common.js} | 6 +++--- lib/devices/firefoxos.js | 2 +- lib/devices/ios.js | 4 ++-- lib/devices/selendroid.js | 4 ++-- lib/server/proxy.js | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) rename lib/{device.js => devices/common.js} (98%) diff --git a/lib/devices/android.js b/lib/devices/android.js index 762cba790..d3b4e08ce 100644 --- a/lib/devices/android.js +++ b/lib/devices/android.js @@ -4,7 +4,7 @@ var errors = require('../server/errors.js') , adb = require('../../android/adb.js') , _ = require('underscore') , logger = require('../server/logger.js').get('appium') - , deviceCommon = require('../device.js') + , deviceCommon = require('./common.js') , status = require("../uiauto/lib/status.js") , NotYetImplementedError = errors.NotYetImplementedError , parseXpath = require('../uiauto/appium/xpath.js').parseXpath diff --git a/lib/devices/chrome_android.js b/lib/devices/chrome_android.js index d006424b6..bdacc5358 100644 --- a/lib/devices/chrome_android.js +++ b/lib/devices/chrome_android.js @@ -2,7 +2,7 @@ var Android = require('./android.js').Android , _ = require('underscore') - , proxyTo = require('../device.js').proxyTo + , proxyTo = require('./common.js').proxyTo , logger = require('../server/logger.js').get('appium') , exec = require('child_process').exec , spawn = require('child_process').spawn diff --git a/lib/device.js b/lib/devices/common.js similarity index 98% rename from lib/device.js rename to lib/devices/common.js index 2228c1246..8f6a458dd 100644 --- a/lib/device.js +++ b/lib/devices/common.js @@ -1,11 +1,11 @@ "use strict"; -var errors = require('./server/errors.js') +var errors = require('../server/errors.js') , request = require('request') , _ = require('underscore') , exec = require('child_process').exec - , status = require("./uiauto/lib/status") - , logger = require('./server/logger.js').get('appium'); + , status = require("../uiauto/lib/status.js") + , logger = require('../server/logger.js').get('appium'); var UnknownError = errors.UnknownError , ProtocolError = errors.ProtocolError; diff --git a/lib/devices/firefoxos.js b/lib/devices/firefoxos.js index a6475615c..039d956c0 100644 --- a/lib/devices/firefoxos.js +++ b/lib/devices/firefoxos.js @@ -4,7 +4,7 @@ var errors = require('../server/errors.js') , _ = require('underscore') , logger = require('../server/logger.js').get('appium') , net = require('net') - , deviceCommon = require('../device.js') + , deviceCommon = require('./common.js') , status = require("../uiauto/lib/status.js") , getAtomSrc = require('../hybrid/firefoxos/firefoxos-atoms').get , async = require('async') diff --git a/lib/devices/ios.js b/lib/devices/ios.js index efa6f9552..dbfdb4a9c 100644 --- a/lib/devices/ios.js +++ b/lib/devices/ios.js @@ -19,7 +19,7 @@ var path = require('path') , rd = require('../hybrid/ios/remote-debugger.js') , wkrd = require('../hybrid/ios/webkit-remote-debugger.js') , errors = require('../server/errors.js') - , deviceCommon = require('../device.js') + , deviceCommon = require('./common.js') , status = require("../uiauto/lib/status.js") , IDevice = require('node-idevice') , async = require('async') @@ -180,7 +180,7 @@ IOS.prototype.start = function(cb, onDie) { this.app || this.bundleId , this.udid , this.isSafariLauncherApp - , path.resolve(__dirname, 'uiauto/bootstrap.js') + , path.resolve(__dirname, '..', 'uiauto', 'bootstrap.js') , this.automationTraceTemplatePath , sock , this.withoutDelay diff --git a/lib/devices/selendroid.js b/lib/devices/selendroid.js index 106fd0e9d..5303c836e 100644 --- a/lib/devices/selendroid.js +++ b/lib/devices/selendroid.js @@ -3,7 +3,7 @@ var errors = require('../server/errors.js') , adb = require('../../android/adb.js') , _ = require('underscore') - , deviceCommon = require('../device.js') + , deviceCommon = require('./common.js') , request = deviceCommon.request , proxyTo = deviceCommon.proxyTo , getLog = deviceCommon.getLog @@ -66,7 +66,7 @@ Selendroid.prototype.keyevent = function(body, cb) { Selendroid.prototype.ensureServerExists = function(cb) { logger.info("Checking whether selendroid is built yet"); - var selBin = path.resolve(__dirname, "..", "build", "selendroid", + var selBin = path.resolve(__dirname, "..", "..", "build", "selendroid", "selendroid.apk"); fs.stat(selBin, function(err) { if (err) { diff --git a/lib/server/proxy.js b/lib/server/proxy.js index 54f2fe675..6e4fdf469 100644 --- a/lib/server/proxy.js +++ b/lib/server/proxy.js @@ -2,7 +2,7 @@ var _s = require('underscore.string') , logger = require('./logger.js').get('appium') - , doRequest = require('../device.js').doRequest + , doRequest = require('../devices/common.js').doRequest , respondError = require('./responses.js').respondError , _ = require('underscore'); From 8a4641bb8393a153790ef182e2fe449d3b845e3c Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 16:23:34 -0700 Subject: [PATCH 14/21] grid register belongs with server --- grid_register.js => lib/server/grid-register.js | 2 +- lib/server/main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename grid_register.js => lib/server/grid-register.js (98%) diff --git a/grid_register.js b/lib/server/grid-register.js similarity index 98% rename from grid_register.js rename to lib/server/grid-register.js index ccede3472..b20c985da 100644 --- a/grid_register.js +++ b/lib/server/grid-register.js @@ -1,7 +1,7 @@ "use strict"; var request = require('request') , fs = require('fs') - , logger = require('./lib/server/logger').get('appium'); + , logger = require('./logger.js').get('appium'); exports.registerNode = function (configFile) { fs.readFile(configFile, 'utf-8', function (err, data) { diff --git a/lib/server/main.js b/lib/server/main.js index 4f8dd4878..91c2e3dbc 100644 --- a/lib/server/main.js +++ b/lib/server/main.js @@ -13,7 +13,7 @@ var http = require('http') , _ = require("underscore") , parser = require('./parser.js') , io = require('socket.io') - , gridRegister = require('../../grid_register'); + , gridRegister = require('./grid-register.js'); var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); From 158c4887bd544d586178684f3c0b3c3cba4d5578 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 16:27:42 -0700 Subject: [PATCH 15/21] device-state not device_state --- android/adb.js | 2 +- android/{device_state.js => device-state.js} | 0 test/functional/android/{device_state.js => device-state.js} | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename android/{device_state.js => device-state.js} (100%) rename test/functional/android/{device_state.js => device-state.js} (96%) diff --git a/android/adb.js b/android/adb.js index debbf2f0a..78b56137b 100644 --- a/android/adb.js +++ b/android/adb.js @@ -21,7 +21,7 @@ var spawn = require('win-spawn') , isWindows = helpers.isWindows() , md5 = require('MD5') , helperJarPath = path.resolve(__dirname, 'helpers') - , deviceState = require('./device_state'); + , deviceState = require('./device-state'); var noop = function() {}; diff --git a/android/device_state.js b/android/device-state.js similarity index 100% rename from android/device_state.js rename to android/device-state.js diff --git a/test/functional/android/device_state.js b/test/functional/android/device-state.js similarity index 96% rename from test/functional/android/device_state.js rename to test/functional/android/device-state.js index a07ce52c3..02edd1b77 100644 --- a/test/functional/android/device_state.js +++ b/test/functional/android/device-state.js @@ -1,7 +1,7 @@ /*global describe:true, it:true, beforeEach:true */ "use strict"; -var deviceState = require('../../../android/device_state') +var deviceState = require('../../../android/device-state.js') , should = require('should') , childProcess = require('child_process') , it = require("../../helpers/driverblock.js").it From ae94df62af45ab53bf480312fc7ba2f73b91dcf7 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 20:49:59 -0700 Subject: [PATCH 16/21] move some helper scripts into bin/ --- .npmignore | 4 ++-- CONTRIBUTING.md | 8 ++++---- publish.sh => bin/publish.sh | 0 test.sh => bin/test.sh | 0 4 files changed, 6 insertions(+), 6 deletions(-) rename publish.sh => bin/publish.sh (100%) rename test.sh => bin/test.sh (100%) diff --git a/.npmignore b/.npmignore index d5fcc93d5..bbe844150 100644 --- a/.npmignore +++ b/.npmignore @@ -1,9 +1,9 @@ assets/ submodules/ -publish.sh +bin/publish.sh reset.sh reset.bat -test.sh +bin/test.sh sample-code/ test/ android/bootstrap/bin/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1bb2d4464..73f408b8e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -117,13 +117,13 @@ Once your system is set up and your code is up to date, you can run unit tests w You can run functional tests for all supported platforms with: - ./test.sh + bin/test.sh Or you can run particular platform tests with `test.sh`: - ./test.sh --android - ./test.sh --ios - ./test.sh --ios7 + bin/test.sh --android + bin/test.sh --ios + bin/test.sh --ios7 Before committing code, please run `grunt` to execute some basic tests and check your changes against code quality standards: diff --git a/publish.sh b/bin/publish.sh similarity index 100% rename from publish.sh rename to bin/publish.sh diff --git a/test.sh b/bin/test.sh similarity index 100% rename from test.sh rename to bin/test.sh From 30b9ee4047f5473edd3b789e11e4af6e9b8ae3ff Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 20:53:08 -0700 Subject: [PATCH 17/21] move authorize-ios into bin --- lib/authorize.js => bin/authorize-ios.js | 0 package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename lib/authorize.js => bin/authorize-ios.js (100%) diff --git a/lib/authorize.js b/bin/authorize-ios.js similarity index 100% rename from lib/authorize.js rename to bin/authorize-ios.js diff --git a/package.json b/package.json index 32c674930..bf2ae0bba 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "bin": { "appium": "./lib/bin.js", "instruments_client": "./instruments/client_bin.js", - "authorize_ios": "./lib/authorize.js" + "authorize_ios": "./bin/authorize-ios.js" }, "directories": { "lib": "./lib", From af930d11a98b96e1f785d14c404b99519c05a3b8 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 20:57:39 -0700 Subject: [PATCH 18/21] move appium bin into bin/ --- lib/bin.js => bin/appium.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename lib/bin.js => bin/appium.js (93%) diff --git a/lib/bin.js b/bin/appium.js similarity index 93% rename from lib/bin.js rename to bin/appium.js index d26c85d00..d72d7c6a3 100644 --- a/lib/bin.js +++ b/bin/appium.js @@ -4,8 +4,8 @@ var net = require('net') , repl = require('repl') , colors = require('colors') - , appium = require('../server') - , parser = require('./server/parser.js'); + , appium = require('../lib/server/main.js') + , parser = require('../lib/server/parser.js'); var startRepl = function() { var help = function() { diff --git a/package.json b/package.json index bf2ae0bba..b85fc4a05 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ ], "main": "./lib/server/main.js", "bin": { - "appium": "./lib/bin.js", + "appium": "./bin/appium.js", "instruments_client": "./instruments/client_bin.js", "authorize_ios": "./bin/authorize-ios.js" }, From 651f4ff13a48e2ed2e1fe84d8378204ff6b47f7c Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 21:07:08 -0700 Subject: [PATCH 19/21] move instruments-client into bin/ and rename helpfully --- instruments/client.js => bin/instruments-client.js | 1 + instruments/client_bin.js | 7 ------- lib/uiauto/bootstrap.js | 2 +- ...nstruments_client.js => instruments_client_launcher.js} | 4 ++-- package.json | 2 +- 5 files changed, 5 insertions(+), 11 deletions(-) rename instruments/client.js => bin/instruments-client.js (97%) mode change 100644 => 100755 delete mode 100755 instruments/client_bin.js rename lib/uiauto/lib/{instruments_client.js => instruments_client_launcher.js} (98%) diff --git a/instruments/client.js b/bin/instruments-client.js old mode 100644 new mode 100755 similarity index 97% rename from instruments/client.js rename to bin/instruments-client.js index 148916ced..cf50900ba --- a/instruments/client.js +++ b/bin/instruments-client.js @@ -1,3 +1,4 @@ +#!/usr/bin/env node "use strict"; var net = require('net') diff --git a/instruments/client_bin.js b/instruments/client_bin.js deleted file mode 100755 index 780515d76..000000000 --- a/instruments/client_bin.js +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env node -"use strict"; - -var client = require('./client.js'); - -var args = client.parser.parseArgs(); -client.connect(args.result, args.socket); diff --git a/lib/uiauto/bootstrap.js b/lib/uiauto/bootstrap.js index 24f835e69..46d892440 100644 --- a/lib/uiauto/bootstrap.js +++ b/lib/uiauto/bootstrap.js @@ -1,5 +1,5 @@ #import "lib/console.js" -#import "lib/instruments_client.js" +#import "lib/instruments_client_launcher.js" #import "appium/base.js" // automation globals diff --git a/lib/uiauto/lib/instruments_client.js b/lib/uiauto/lib/instruments_client_launcher.js similarity index 98% rename from lib/uiauto/lib/instruments_client.js rename to lib/uiauto/lib/instruments_client_launcher.js index 905973455..df710b452 100644 --- a/lib/uiauto/lib/instruments_client.js +++ b/lib/uiauto/lib/instruments_client_launcher.js @@ -100,7 +100,7 @@ var globalPath = (function() { // figure out where instruments client is (relative to where appium is run) var clientPath = (function() { - var client = 'instruments/client.js'; + var client = 'bin/instruments-client.js'; var module = 'node_modules/appium/'; try { @@ -112,7 +112,7 @@ var clientPath = (function() { return module + client; } catch(e) { if (globalPath === null) { - console.log("WARNING: could not find instruments/client.js in its " + + console.log("WARNING: could not find bin/instruments-client.js in its " + "usual place, and global instruments_client not around " + "either. This could cause problems"); } diff --git a/package.json b/package.json index b85fc4a05..a85a717eb 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "main": "./lib/server/main.js", "bin": { "appium": "./bin/appium.js", - "instruments_client": "./instruments/client_bin.js", + "instruments_client": "./bin/instruments-client.js", "authorize_ios": "./bin/authorize-ios.js" }, "directories": { From 69edde4a42c05a0cb800e0998e6b0d92bdc620cf Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Wed, 16 Oct 2013 21:09:23 -0700 Subject: [PATCH 20/21] instruments no longer needs its own directory --- lib/devices/ios.js | 2 +- {instruments => lib}/instruments.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {instruments => lib}/instruments.js (100%) diff --git a/lib/devices/ios.js b/lib/devices/ios.js index dbfdb4a9c..3035e4ee8 100644 --- a/lib/devices/ios.js +++ b/lib/devices/ios.js @@ -10,7 +10,7 @@ var path = require('path') , bplistCreate = require('bplist-creator') , bplistParse = require('bplist-parser') , xmlplist = require('plist') - , instruments = require('../../instruments/instruments.js') + , instruments = require('../instruments.js') , uuid = require('uuid-js') , helpers = require('../helpers.js') , escapeSpecialChars = helpers.escapeSpecialChars diff --git a/instruments/instruments.js b/lib/instruments.js similarity index 100% rename from instruments/instruments.js rename to lib/instruments.js From 3373f2ec46bdad58ea9bdbad00cfb3651ddaa483 Mon Sep 17 00:00:00 2001 From: Jonathan Lipps Date: Thu, 17 Oct 2013 10:25:38 -0700 Subject: [PATCH 21/21] upgrade npm packages --- lib/devices/android.js | 2 +- lib/server/controller.js | 2 +- package.json | 54 ++++++++++++++++++++-------------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lib/devices/android.js b/lib/devices/android.js index d3b4e08ce..9ce53c932 100644 --- a/lib/devices/android.js +++ b/lib/devices/android.js @@ -576,7 +576,7 @@ Android.prototype.getPageSource = function(cb) { }); }.bind(this), function(cb) { - var jar = path.resolve(__dirname, '..', 'android', 'helpers', + var jar = path.resolve(__dirname, '..', '..', 'android', 'helpers', 'dump2json.jar'); var cmd = 'java -jar "' + jar + '" "' + xmlFile + '"'; logger.debug('json command: ' + cmd); diff --git a/lib/server/controller.js b/lib/server/controller.js index 519f04394..f031a3a32 100644 --- a/lib/server/controller.js +++ b/lib/server/controller.js @@ -979,7 +979,7 @@ exports.guineaPig = function(req, res) { res.cookie('guineacookie2', 'cookiƩ2', {path: '/'}); res.cookie('guineacookie3', 'cant access this', { domain: '.blargimarg.com', path: '/'}); - res.send(exports.getTemplate('guinea-pig').render(params)); + res.send(exports.getTemplate('guinea-pig')(params)); }; exports.getTemplate = function(templateName) { diff --git a/package.json b/package.json index a85a717eb..a323f1f89 100644 --- a/package.json +++ b/package.json @@ -34,40 +34,40 @@ "doc": "./docs" }, "dependencies": { - "underscore": "~1.4.3", - "colors": "~0.6.0-1", - "express": "~3.0.6", - "grunt": "~0.4.0", - "grunt-cli": "~0.1.6", - "argparse": "~0.1.10", + "underscore": "~1.5.2", + "colors": "~0.6.2", + "express": "~3.4.1", + "grunt": "~0.4.1", + "grunt-cli": "~0.1.9", + "argparse": "~0.1.15", "path": "~0.4.9", - "rimraf": "~2.1.1", + "rimraf": "~2.2.2", "uuid-js": "~0.7.4", - "temp": "~0.5.0", - "winston": "~0.6.2", - "request": "~2.12.0", + "temp": "~0.6.0", + "winston": "~0.7.2", + "request": "~2.27.0", "bplist-parser": "~0.0.4", - "plist": "~0.4.1", + "plist": "~0.4.3", "bufferpack": "0.0.6", "bplist-creator": "~0.0.2", - "node-uuid": "~1.4.0", - "underscore.string": "~2.3.1", - "glob": "~3.1.20", - "unzip": "~0.1.1", + "node-uuid": "~1.4.1", + "underscore.string": "~2.3.3", + "glob": "~3.2.6", + "unzip": "~0.1.9", "ncp": "~0.4.2", - "swig": "~0.13.5", - "async": "~0.2.6", + "swig": "~1.1.0", + "async": "~0.2.9", "mkdirp": "~0.3.5", - "xml2js": "~0.2.6", + "xml2js": "~0.2.8", "difflib": "~0.2.4", - "prompt": "~0.2.9", + "prompt": "~0.2.11", "binary-cookies": "~0.1.1", - "namp": "~0.2.25", + "namp": "0.2.24", "node-idevice": "~0.1.2", - "win-spawn" : "~1.1.1", + "win-spawn" : "~2.0.0", "adm-zip" : "~0.4.3", - "ws": "0.4.25", - "socket.io" : "~0.9.14", + "ws": "0.4.31", + "socket.io" : "~0.9.16", "MD5" : "~1.1.0", "through": "~2.3.4" }, @@ -75,17 +75,17 @@ "test": "grunt travis" }, "devDependencies": { - "mocha": "~1.8.1", - "should": "~1.2.1", + "mocha": "~1.13.0", + "should": "~2.0.1", "underscore-cli": "~0.2.17", - "wd": "~0.1.4", + "wd": "~0.1.5", "yiewd": "~0.0.15", "monocle-js": "~0.1.4", "assert": "~0.4.9", "grunt-mocha-test": "~0.2.0", "grunt-contrib-jshint": "~0.6.4", "saucelabs": "~0.0.7", - "socket.io-client": "~0.9.11", + "socket.io-client": "~0.9.16", "socks": "~0.0.1" } }