Merge pull request #1319 from jlipps/master

Major code reorganization
This commit is contained in:
Jonathan Lipps
2013-10-17 10:44:17 -07:00
144 changed files with 195 additions and 266 deletions

4
.gitignore vendored
View File

@@ -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/

View File

@@ -1,14 +1,14 @@
assets/
submodules/
publish.sh
bin/publish.sh
reset.sh
reset.bat
test.sh
bin/test.sh
sample-code/
test/
android/bootstrap/bin/
android/bootstrap/target/
app/android/AndroidManifest.xml.apk
lib/android/AndroidManifest.xml.apk
_vimrc_local.vim
*.swp
*.swo

View File

@@ -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 <MyAvdName>
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
@@ -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:
@@ -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"

View File

@@ -18,23 +18,23 @@ 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) {
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']
files: ['*.js', './**/*.js']
, options: {
laxcomma: true
, es5: true
, 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', './lib/server/static/**/*.js', './lib/hybrid/firefoxos/atoms/*.js', './lib/uiauto/**/*.js']
}
}
, mochaTest: {
unit: ['app/test/unit/*.js']
unit: ['test/unit/*.js']
, appiumutils: ['test/functional/appium/appiumutils.js']
}
, mochaTestWithServer: {

View File

@@ -5,22 +5,23 @@ var spawn = require('win-spawn')
, path = require('path')
, 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
, logger = require('../lib/server/logger.js').get('appium')
, 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')
, Logcat = require('./logcat')
, isWindows = helpers.isWindows()
, md5 = require('MD5')
, deviceState = require('./device_state');
, 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, '..', 'app', '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, '..', 'app', '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, '..', 'app', '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, '..', 'app', '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, '..', 'app', 'android',
var stringsFromApkJarPath = path.resolve(helperJarPath,
'strings_from_apk.jar');
var outputPath = path.resolve(getTempPath(), this.appPackage);
var makeStrings = ['java -jar "', stringsFromApkJarPath,

View File

@@ -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);
@@ -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 {

View File

@@ -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;

View File

@@ -4,8 +4,8 @@
var net = require('net')
, repl = require('repl')
, colors = require('colors')
, appium = require('../server')
, parser = require('./parser');
, appium = require('../lib/server/main.js')
, parser = require('../lib/server/parser.js');
var startRepl = function() {
var help = function() {

1
instruments/client.js → bin/instruments-client.js Normal file → Executable file
View File

@@ -1,3 +1,4 @@
#!/usr/bin/env node
"use strict";
var net = require('net')

View File

@@ -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)
![Step 1](https://raw.github.com/appium/appium/master/assets/InspectorImages/Step2.png)

View File

@@ -4,7 +4,7 @@ Selenium Grid
You are able to register you appium server with a local grid by using the <b>"--nodeconfig"</b> 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 <b>"browserName"</b>, <b>"version"</b> and <b>"platform"</b> and based on these parameters the grid will re-direct your test to the right device. You will also need to configure you <b>host</b> details and the <b>selenium grid</b> details. For a full list of all parameters and descriptions look <a href="http://code.google.com/p/selenium/source/browse/java/server/src/org/openqa/grid/common/defaults/GridParameters.properties">here</a>.

View File

@@ -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'
}

View File

@@ -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 <UDID> --app <bundle_id>
node . -U <UDID> --app <bundle_id>
```
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
0. Make sure instruments in closed already

View File

@@ -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.

View File

@@ -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:

View File

@@ -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')
@@ -12,12 +11,12 @@ var _ = require("underscore")
, prompt = require('prompt')
, exec = require('child_process').exec
, spawn = require('win-spawn')
, parser = require('./app/parser')
, parser = require('./lib/server/parser.js')
, 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;
@@ -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";

View File

@@ -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);

View File

@@ -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
);
});

View File

@@ -1,11 +1,12 @@
// Appium webserver controller methods
// 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
, helpers = require('./helpers')
var routing = require('./server/routing.js')
, loggerjs = require('./server/logger.js')
, logger = loggerjs.get('appium')
, setLogFile = loggerjs.setLogFile
, setWebhook = loggerjs.setWebhook
, helpers = require('./helpers.js')
, downloadFile = helpers.downloadFile
, unzipApp = helpers.unzipApp
, checkSafari = helpers.checkSafari
@@ -14,13 +15,13 @@ var routing = require('./routing')
, 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) {

View File

@@ -1,23 +1,19 @@
"use strict";
var errors = require('./errors')
, adb = require('../android/adb')
var errors = require('../server/errors.js')
, adb = require('../../android/adb.js')
, _ = require('underscore')
, logger = require('../logger').get('appium')
, deviceCommon = require('./device')
, status = require("./uiauto/lib/status")
//, NotImplementedError = errors.NotImplementedError
, logger = require('../server/logger.js').get('appium')
, deviceCommon = require('./common.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);
@@ -580,7 +576,8 @@ Android.prototype.getPageSource = function(cb) {
});
}.bind(this),
function(cb) {
var jar = path.resolve(__dirname, '../app/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) {

View File

@@ -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('../logger').get('appium')
, proxyTo = require('./common.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);

View File

@@ -1,11 +1,11 @@
"use strict";
var errors = require('./errors')
var errors = require('../server/errors.js')
, request = require('request')
, _ = require('underscore')
, exec = require('child_process').exec
, status = require("./uiauto/lib/status")
, logger = require('../logger').get('appium');
, status = require("../uiauto/lib/status.js")
, logger = require('../server/logger.js').get('appium');
var UnknownError = errors.UnknownError
, ProtocolError = errors.ProtocolError;

View File

@@ -1,12 +1,12 @@
"use strict";
var errors = require('./errors')
var errors = require('../server/errors.js')
, _ = 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")
, getAtomSrc = require('./hybrid/firefoxos/firefoxos-atoms').get
, deviceCommon = require('./common.js')
, status = require("../uiauto/lib/status.js")
, getAtomSrc = require('../hybrid/firefoxos/firefoxos-atoms').get
, async = require('async')
, NotYetImplementedError = errors.NotYetImplementedError;

View File

@@ -3,24 +3,24 @@ 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
, bplistCreate = require('bplist-creator')
, bplistParse = require('bplist-parser')
, xmlplist = require('plist')
, instruments = require('../instruments/instruments')
, instruments = require('../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('./errors')
, 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('./common.js')
, status = require("../uiauto/lib/status.js")
, IDevice = require('node-idevice')
, async = require('async')
, request = require('request')
@@ -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

View File

@@ -1,15 +1,15 @@
"use strict";
var errors = require('./errors')
, adb = require('../android/adb')
var errors = require('../server/errors.js')
, adb = require('../../android/adb.js')
, _ = require('underscore')
, deviceCommon = require('./device')
, deviceCommon = require('./common.js')
, request = deviceCommon.request
, proxyTo = deviceCommon.proxyTo
, getLog = deviceCommon.getLog
, getLogTypes = deviceCommon.getLogTypes
, logger = require('../logger').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')
@@ -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) {

View File

@@ -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')

View File

@@ -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')

Some files were not shown because too many files have changed in this diff Show More