🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

wd

Package Overview
Dependencies
Maintainers
4
Versions
110
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wd - npm Package Compare versions

Comparing version

to
1.11.3

.eslintrc.js

1

browser-scripts/safe-execute-async.js

@@ -1,2 +0,1 @@

/* jshint evil:true */
var args = Array.prototype.slice.call(arguments, 0);

@@ -3,0 +2,0 @@ var code = args[0], fargs = args[1], done = args[2];

@@ -1,2 +0,1 @@

/* jshint evil:true */
var args = Array.prototype.slice.call(arguments, 0);

@@ -3,0 +2,0 @@ var code = args[0], fargs = args[1];

@@ -1,2 +0,1 @@

/* jshint evil:true */
var args = Array.prototype.slice.call(arguments, 0);

@@ -3,0 +2,0 @@ var condExpr = args[0], timeout = args[1],

@@ -44,3 +44,2 @@ var username = process.env.BROWSERSTACK_USERNAME || "BROWSERSTACK_USERNAME";

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -47,0 +46,0 @@ href.should.include('guinea-pig2');

@@ -41,3 +41,2 @@ var username = process.env.BROWSERSTACK_USERNAME || "BROWSERSTACK_USERNAME";

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -44,0 +43,0 @@ href.should.include('guinea-pig2');

@@ -31,3 +31,2 @@ require('colors');

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -34,0 +33,0 @@ href.should.include('guinea-pig2');

@@ -31,3 +31,2 @@ require('colors');

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -34,0 +33,0 @@ href.should.include('guinea-pig2');

@@ -52,3 +52,2 @@ var username = process.env.KOBITON_USERNAME || "KOBITON_USERNAME";

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval('window.location.href', function(err, href) {

@@ -55,0 +54,0 @@ href.should.include('guinea-pig2');

@@ -42,3 +42,2 @@ var username = process.env.SAUCE_USERNAME || "SAUCE_USERNAME";

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -45,0 +44,0 @@ href.should.include('guinea-pig2');

@@ -40,3 +40,2 @@ var username = process.env.SAUCE_USERNAME || "SAUCE_USERNAME";

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -43,0 +42,0 @@ href.should.include('guinea-pig2');

@@ -25,3 +25,2 @@ require('colors');

/* jshint evil: true */
browser

@@ -28,0 +27,0 @@ .chain()

@@ -30,3 +30,2 @@ require('colors');

/* jshint evil: true */
browser

@@ -33,0 +32,0 @@ .init({browserName:'chrome'})

@@ -30,3 +30,2 @@ require('colors');

/* jshint evil: true */
browser

@@ -33,0 +32,0 @@ .status()

@@ -30,3 +30,2 @@ require('colors');

/* jshint evil: true */
browser

@@ -33,0 +32,0 @@ .init({browserName:'firefox'})

@@ -6,4 +6,2 @@ // requires node 0.11

/* jshint moz: true, evil: true */
require('colors');

@@ -10,0 +8,0 @@ var chai = require("chai");

@@ -5,3 +5,2 @@ // requires node 0.11

/* global describe, it, before , beforeEach, after*/
/* jshint moz: true, evil: true */

@@ -61,2 +60,1 @@ require('colors');

});

@@ -57,3 +57,2 @@ /* global describe, it, before , beforeEach, after*/

it("submit element should be clicked", function() {
/* jshint evil: true */
return browser

@@ -106,3 +105,2 @@ .elementById("submit")

it("submit element should be clicked", function(done) {
/* jshint evil: true */
browser

@@ -109,0 +107,0 @@ .elementById("submit")

@@ -37,3 +37,2 @@ require('colors');

.then(function () {
/* jshint evil: true */
return browser.eval("window.location.href");

@@ -40,0 +39,0 @@ })

@@ -41,3 +41,2 @@ var username = process.env.SAUCE_USERNAME || "SAUCE_USERNAME";

/* jshint evil: true */
browser

@@ -44,0 +43,0 @@ .init(desired)

@@ -41,3 +41,2 @@ var username = process.env.SAUCE_USERNAME || "SAUCE_USERNAME";

/* jshint evil: true */
browser

@@ -44,0 +43,0 @@ .init(desired)

@@ -38,3 +38,2 @@ var username = process.env.SAUCE_USERNAME || "SAUCE_USERNAME";

/* jshint evil: true */
browser

@@ -41,0 +40,0 @@ .init(desired)

var gulp = require('gulp'),
jshint = require('gulp-jshint'),
jshintStylish = require('jshint-stylish'),
Q = require('q'),
runSequence = Q.denodeify(require('run-sequence')),
path = require('path'),
_ = require('lodash'),
args = require('yargs').argv,
args = require('yargs').argv,
urlLib = require('url'),

@@ -13,6 +10,13 @@ mochaStream = require('spawn-mocha-parallel').mochaStream,

sauceConnectLauncher = require('sauce-connect-launcher'),
async = require('async');
async = require('async'),
log = require('fancy-log'),
eslint = require('gulp-eslint'),
gulpIf = require('gulp-if'),
debug = require('gulp-debug');
require('./test/helpers/env');
var VERBOSE = !!process.env.VERBOSE;
args.browsers = (args.browser || 'chrome').split(',');

@@ -23,3 +27,5 @@ args.sauce = args.sauce ? true : false;

if (args.sauce) { BROWSERS.push('explorer'); }
var MOBILE_BROWSERS = ['android', 'ios', 'iphone', 'ipad', 'android_phone'];
process.env.SAUCE_CONNECT_VERSION = process.env.SAUCE_CONNECT_VERSION || '4.5.1';

@@ -29,6 +35,9 @@ process.env.SAUCE_CONNECT_VERBOSE = false;

var PROXY_PORT = 5050;
var expressPort = 3000; // incremented after each test to avoid colision
var expressPort = 3000; // incremented after each test to avoid collision
var debugLog = log.bind(log);
var warnLog = log.warn.bind(log);
var errorLog = log.error.bind(log);
function buildMochaOpts(opts) {
var mochaOpts = {

@@ -38,4 +47,5 @@ flags: {

R: 'spec',
c: true
c: true,
},
exit: true,
bin: path.join(__dirname, 'node_modules/.bin/' + ((process.platform !== "win32") ? 'mocha' : 'mocha.cmd')),

@@ -76,19 +86,40 @@ concurrency: args.concurrency | process.env.CONCURRENCY || 3

function runSequence (...args) {
args = _.flattenDeep(args);
return Q.Promise(function (resolve) {
if (args.length === 0) {
return resolve();
}
// do the tasks in series
(gulp.series(...args, function finishSequence (done) {
done();
resolve();
}))();
});
}
gulp.task('lint', function() {
// return gulp.src(['lib/**/*.js','test/**/*.js','browser-scripts/**/*.js'])
return gulp.src(['lib/**/*.js'])
.pipe(jshint())
.pipe(jshint.reporter(jshintStylish))
.pipe(jshint.reporter('fail'));
var opts = {
fix: process.argv.indexOf('--fix') !== -1,
};
return gulp.src(['*.js', 'lib/**/*.js', 'test/**/*.js', '!node_modules', '!**/node_modules', '!build/**'])
.pipe(gulpIf(!!process.env.VERBOSE, debug()))
.pipe(eslint(opts))
.pipe(eslint.format())
.pipe(eslint.failAfterError())
.pipe(gulpIf(function (file) {
return file.eslint && file.eslint.fixed;
}, gulp.dest(process.cwd())));
});
gulp.task('test-unit', function () {
gulp.task('test:unit', function () {
var opts = buildMochaOpts({ unit: true });
var mocha = mochaStream(opts);
return gulp.src('test/specs/**/*-specs.js', {read: false})
.pipe(gulpIf(VERBOSE, debug()))
.pipe(mocha)
.on('error', console.warn.bind(console));
.on('error', warnLog);
});
gulp.task('test-midway-multi', function () {
gulp.task('test:midway:multi', function () {
var opts = buildMochaOpts({ midway: true, browser: 'multi' });

@@ -98,30 +129,34 @@ var mocha = mochaStream(opts);

read: false})
.pipe(gulpIf(VERBOSE, debug()))
.pipe(mocha)
.on('error', console.warn.bind(console));
.on('error', warnLog);
});
// create a test:midway: and test:e2e: task for each browser
_(BROWSERS).each(function(browser) {
gulp.task('test-midway-' + browser, function () {
gulp.task(`test:midway:${browser}`, function () {
var opts = buildMochaOpts({ midway: true, browser: browser });
var mocha = mochaStream(opts);
return gulp.src([
'test/midway/**/*-specs.js',
'!test/midway/multi/**'
], {read: false})
'test/midway/**/*-specs.js',
'!test/midway/multi/**'
], {read: false})
.pipe(gulpIf(VERBOSE, debug()))
.pipe(mocha)
.on('error', console.warn.bind(console));
.on('error', errorLog);
});
gulp.task('test-e2e-' + browser, function () {
gulp.task(`test:e2e:${browser}`, function () {
var opts = buildMochaOpts({ browser: browser });
var mocha = mochaStream(opts);
return gulp.src('test/e2e/**/*-specs.js', {read: false})
.pipe(gulpIf(VERBOSE, debug()))
.pipe(mocha)
.on('error', console.warn.bind(console));
.on('error', errorLog);
});
});
_(MOBILE_BROWSERS).each(function(browser) {
gulp.task('test-midway-' + browser, function () {
// create a test:midway: task for each mobile browser
_(MOBILE_BROWSERS).each(function (browser) {
gulp.task(`test:midway:${browser}`, function () {
var opts = buildMochaOpts({ midway: true, browser: browser });
var mocha = mochaStream(opts);
return gulp.src([

@@ -133,26 +168,24 @@ 'test/midway/api-nav-specs.js',

], {read: false})
.pipe(mocha)
.on('error', console.warn.bind(console));
.pipe(gulpIf(VERBOSE, debug()))
.pipe(mochaStream(opts))
.on('error', errorLog);
});
});
gulp.task('test-midway', function() {
var midwayTestTasks = [];
_(args.browsers).each(function(browser) {
midwayTestTasks.push('test-midway-' + browser);
});
return runSequence('pre-midway', midwayTestTasks)
.finally(function() {
return runSequence('post-midway');
gulp.task('test:midway', function() {
const midwayTestTasks = _.map(args.browsers, (browser) =>`test:midway:${browser}`);
return runSequence('pre:midway', ...midwayTestTasks)
.finally(function () {
return runSequence('post:midway');
});
});
gulp.task('test-e2e', function() {
gulp.task('test:e2e', function() {
var e2eTestTasks = [];
_(args.browsers).chain().without('multi').each(function(browser) {
e2eTestTasks.push('test-e2e-' + browser);
e2eTestTasks.push(`test:e2e:${browser}`);
});
if(e2eTestTasks.length > 0){
// if (e2eTestTasks.length > 0) {
return runSequence(e2eTestTasks);
}
// }
});

@@ -163,4 +196,3 @@

_(BROWSERS).each(function(browser) {
seq.push('test-midway-' + browser);
seq.push('test-e2e-' + browser);
seq.push(`test:midway:${browser}`, `test:e2e:${browser}`);
});

@@ -171,3 +203,3 @@ return runSequence.apply(null, seq);

var server;
gulp.task('start-proxy', function(done) {
gulp.task('proxy:start', function(done) {
var proxy = httpProxy.createProxyServer({});

@@ -206,3 +238,3 @@ var proxyQueue;

try{
console.error('Proxy error for: ', req.url + ':' , err);
log.error('Proxy error for: ', req.url + ':' , err);
res.writeHead(500, {

@@ -217,22 +249,24 @@ 'Content-Type': 'text/plain'

server.on('error', function(err) {
console.error('Proxy error: ', err);
log.error(`Proxy error: ${err}`);
});
console.log("listening on port", PROXY_PORT);
log("Listening on port", PROXY_PORT);
server.listen(PROXY_PORT, done);
});
gulp.task('stop-proxy', function(done) {
// stop proxy, exit after 5 ec if hanging
gulp.task('proxy:stop', function(done) {
// stop proxy, exit after 5 sec if hanging
done = _.once(done);
var t = setTimeout(function() {
var timeout = setTimeout(function () {
done();
}, 5000);
if(server) {
server.close(function() {
clearTimeout(t);
if (server) {
server.close(function () {
clearTimeout(timeout);
done();
});
}
else { done(); }
else {
done();
}
});

@@ -242,3 +276,3 @@

gulp.task('start-sc', function(done) {
gulp.task('sc:start', function (done) {
var opts = {

@@ -249,17 +283,17 @@ username: process.env.SAUCE_USERNAME,

directDomains: 'cdnjs.cloudflare.com,html5shiv.googlecode.com',
logger: function(mess) {console.log(mess);}
logger: debugLog,
};
if(process.env.TRAVIS_JOB_NUMBER) {
if (process.env.TRAVIS_JOB_NUMBER) {
opts.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER;
}
var startTunnel = function(done, n) {
var startTunnel = function (done, n) {
sauceConnectLauncher(opts, function (err, _sauceConnectProcess) {
if (err) {
if(n > 0) {
console.log('retrying sauce connect in 20 secs.');
setTimeout(function() {
startTunnel(done, n-1);
if (n > 0) {
log('retrying sauce connect in 20 secs.');
setTimeout(function () {
startTunnel(done, n - 1);
}, 20000);
} else {
console.error(err.message);
log.error(err.message);
done(err);

@@ -270,3 +304,3 @@ }

sauceConnectProcess = _sauceConnectProcess;
console.log("Sauce Connect ready");
log("Sauce Connect ready");
done();

@@ -279,20 +313,21 @@ });

gulp.task('stop-sc', function(done) {
if(sauceConnectProcess) { sauceConnectProcess.close(done); }
else { done(); }
gulp.task('sc:stop', function (done) {
if(sauceConnectProcess) {
sauceConnectProcess.close(done);
} else {
done();
}
});
gulp.task('pre-midway', function() {
var seq = ['start-proxy'];
if(args.sauce && !args['nosc']) {
seq.unshift('start-sc');
}
gulp.task('pre:midway', function() {
var seq = args.sauce && !args['nosc']
? ['sc:start', 'proxy:start']
: ['proxy:start'];
return runSequence(seq);
});
gulp.task('post-midway', function() {
var seq = ['stop-proxy'];
if(args.sauce && !args['nosc']) {
seq.unshift('stop-sc');
}
gulp.task('post:midway', function () {
var seq = args.sauce && !args['nosc']
? ['sc:stop', 'proxy:stop']
: ['proxy:stop'];
return runSequence(seq);

@@ -303,8 +338,8 @@ });

var seq;
switch(args.config) {
switch (args.config) {
case 'unit':
return runSequence(['test-unit']);
return runSequence(['test:unit']);
case 'multi':
args.browsers= [args.config];
return runSequence(['test-midway']);
return runSequence(['test:midway']);
case 'chrome':

@@ -314,3 +349,3 @@ case 'firefox':

args.browsers= [args.config];
return runSequence(['test-midway','test-e2e']);
return runSequence(['test:midway', 'test:e2e']);
case 'iphone':

@@ -320,8 +355,8 @@ case 'ipad':

args.browsers= [args.config];
return runSequence(['test-midway']);
return runSequence(['test:midway']);
case 'chrome_e2e':
args.browsers= ['chrome'];
return runSequence(['test-e2e']);
return runSequence(['test:e2e']);
}
return runSequence.apply(null, seq);
});

@@ -91,3 +91,2 @@ var _ = require('lodash');

function jsCondition(jsConditionExpr, safe) {
// jshint evil: true
if(safe === undefined) { safe = false; }

@@ -94,0 +93,0 @@ return new Asserter(

@@ -8,3 +8,3 @@ #!/usr/bin/env node

var connections = 0;
var connections = 0; // eslint-disable-line no-unused-vars

@@ -16,4 +16,4 @@ var startRepl = function() {

r.context.help = function() {
console.log("WD - Shell.");
console.log("Access the webdriver object via the object: 'wd'");
console.log("WD - Shell."); // eslint-disable-line no-console
console.log("Access the webdriver object via the object: 'wd'"); // eslint-disable-line no-console
};

@@ -20,0 +20,0 @@

@@ -16,3 +16,5 @@ var async = require("async");

this._chainOnErrorCallback = function(err) {
if (err) { console.error("a function in your .chain() failed:", err); }
if (err) {
console.error("a function in your .chain() failed:", err); // eslint-disable-line no-console
}
};

@@ -19,0 +21,0 @@ }

@@ -111,3 +111,3 @@ var __slice = Array.prototype.slice,

// It is easier and safer to check within the method.
if(utils.isPromise(obj) && !obj.__wd_promise_enriched) {
if (utils.isPromise(obj) && !obj.__wd_promise_enriched) {

@@ -253,3 +253,3 @@ var promise = obj;

return _this._enrich( promise.catch(function(err) {
console.log(prepend + err);
console.log(prepend + err); // eslint-disable-line no-console
throw err;

@@ -263,3 +263,3 @@ }), currentEl);

return _this._enrich( promise.then(function(val) {
console.log(prepend + val);
console.log(prepend + val); // eslint-disable-line no-console
}), currentEl);

@@ -325,3 +325,3 @@ };

}).join(', ') + ' )';
console.log(' --> ' + status + context + " " + method + args);
console.log(' --> ' + status + context + " " + method + args); // eslint-disable-line no-console
});

@@ -328,0 +328,0 @@ };

@@ -93,3 +93,3 @@ var Args = require("vargs").Constructor,

this.deprecationMessageShown[cat] = 1;
console.warn(message);
console.warn(message); // eslint-disable-line no-console
}

@@ -96,0 +96,0 @@ }

@@ -153,2 +153,3 @@ var EventEmitter = require('events').EventEmitter,

} else {
/* eslint-disable no-console */
console.error('\x1b[31mError\x1b[0m: The environment you requested was unavailable.\n');

@@ -159,2 +160,3 @@ console.error('\x1b[33mReason\x1b[0m:\n');

console.error('located at: \x1b[33mhttp://code.google.com/p/selenium/wiki/JsonWireProtocol#/session\x1b[0m');
/* eslint-enable no-console */
}

@@ -161,0 +163,0 @@ }

@@ -11,3 +11,3 @@ {

],
"version": "1.11.2",
"version": "1.11.3",
"author": "Adam Christian <adam.christian@gmail.com>",

@@ -47,36 +47,38 @@ "contributors": [

"dependencies": {
"archiver": "2.1.1",
"async": "2.0.1",
"lodash": "4.17.11",
"archiver": "^3.0.0",
"async": "^2.0.0",
"fancy-log": "^1.3.3",
"gulp-mocha": "^6.0.0",
"lodash": "^4.0.0",
"mkdirp": "^0.5.1",
"q": "1.4.1",
"q": "^1.5.1",
"request": "2.88.0",
"vargs": "0.1.0"
"vargs": "^0.1.0"
},
"devDependencies": {
"bdd-with-opts": "1.1.1",
"chai": "3.5.0",
"chai-as-promised": "6.0.0",
"colors": "1.1.2",
"dox": "0.9.0",
"bdd-with-opts": "^1.1.1",
"chai": "^3.0.0",
"chai-as-promised": "^7.1.1",
"colors": "^1.3.3",
"dox": "^0.9.0",
"express": "^4.16.3",
"gulp": "^3.9.1",
"gulp-jshint": "^2.1.0",
"hbs": "4.0.1",
"http-proxy": "1.15.1",
"imageinfo": "1.0.4",
"istanbul": "0.4.5",
"jshint": "^2.9.6",
"jshint-stylish": "2.2.1",
"gulp": "^4.0.0",
"gulp-debug": "^4.0.0",
"gulp-eslint": "^5.0.0",
"gulp-if": "^2.0.2",
"hbs": "^4.0.0",
"http-proxy": "^1.15.1",
"imageinfo": "^1.0.4",
"istanbul": "^0.4.5",
"mocha": "^5.2.0",
"mu2": "0.5.21",
"nock": "8.0.0",
"promise-simple": "0.1.0",
"run-sequence": "1.2.2",
"mu2": "^0.5.21",
"nock": "^10.0.0",
"promise-simple": "^0.1.0",
"run-sequence": "^2.0.0",
"sauce-connect-launcher": "^1.2.4",
"spawn-mocha-parallel": "1.3.1",
"sv-selenium": "0.3.1",
"spawn-mocha-parallel": "^1.3.1",
"sv-selenium": "^0.3.1",
"underscore.string": "^3.3.4",
"uuid": "3.0.1",
"yargs": "6.0.0"
"uuid": "^3.0.1",
"yargs": "^13.0.0"
},

@@ -86,4 +88,7 @@ "scripts": {

"all_tests": "gulp test",
"install": "node scripts/build-browser-scripts"
"install": "node scripts/build-browser-scripts",
"clean": "rm -rf node_modules && rm -f package-lock.json && npm install",
"lint": "gulp lint",
"lint:fix": "gulp lint --fix"
}
}

@@ -1,4 +0,4 @@

# WD.js
# WD.js
[![NPM version](http://img.shields.io/npm/v/wd.svg)](https://npmjs.org/package/wd)
[![NPM version](http://img.shields.io/npm/v/wd.svg)](https://npmjs.org/package/wd)
[![Downloads](http://img.shields.io/npm/dm/wd.svg)](https://npmjs.org/package/wd)

@@ -28,3 +28,3 @@ [![Dependency Status](https://david-dm.org/admc/wd.svg)](https://david-dm.org/admc/wd)

Note: WD.js does not start the selenium server. You may use the [selenium-standalone](https://www.npmjs.com/package/selenium-standalone) package
Note: WD.js does not start the selenium server. You may use the [selenium-standalone](https://www.npmjs.com/package/selenium-standalone) package
to install and start a selenium server.

@@ -88,3 +88,2 @@

browser.clickElement(el, function() {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -91,0 +90,0 @@ href.should.include('guinea-pig2');

@@ -1,2 +0,1 @@

/*global _:true, Q:true */
var Mocha = require('mocha'),

@@ -6,3 +5,4 @@ fs = require('fs'),

_ = require('lodash'),
Q = require('Q');
Q = require('Q'),
log = require('fancy-log');

@@ -25,3 +25,3 @@ var sauceUsername = process.env.SAUCE_USERNAME;

mocha.reporter('dot');
_(mochaConfig).each(function(opt) {
_.each(mochaConfig, function(opt) {
var optName = opt.shift();

@@ -34,3 +34,3 @@ mocha[optName].apply(mocha, opt);

// state in our test setup helpers.
// see https://github.com/visionmedia/mocha/issues/736
// see https://github.com/mochajs/mocha/issues/736
_(require.cache)

@@ -54,3 +54,3 @@ .keys()

function() {
console.log('running unit tests');
log('running unit tests');
delete process.env.SAUCE_USERNAME;

@@ -61,3 +61,3 @@ delete process.env.SAUCE_ACCESS_KEY;

function() {
console.log('running midway tests(chrome)');
log('running midway tests(chrome)');
process.env.SAUCE_USERNAME = sauceUsername;

@@ -69,3 +69,3 @@ process.env.SAUCE_ACCESS_KEY = sauceAccessKey;

function() {
console.log('running midway tests(firefox)');
log('running midway tests(firefox)');
process.env.BROWSER='firefox';

@@ -75,3 +75,3 @@ return runSpecs('test/midway', [['grep',/@skip-firefox|@multi/],['invert']]);

function() {
console.log('running midway tests(multi)');
log('running midway tests(multi)');
process.env.BROWSER='chrome';

@@ -81,3 +81,3 @@ return runSpecs('test/midway', [['grep',/@multi/]]);

function() {
console.log('running e2e tests(chrome)');
log('running e2e tests(chrome)');
process.env.BROWSER='chrome';

@@ -87,3 +87,3 @@ return runSpecs('test/e2e', [['grep',/@skip-chrome/],['invert']]);

function() {
console.log('running e2e tests(firefox)');
log('running e2e tests(firefox)');
process.env.BROWSER='firefox';

@@ -93,3 +93,3 @@ return runSpecs('test/e2e', [['grep',/@skip-firefox/],['invert']]);

function() {
console.log('running sauce e2e tests(chrome)');
log('running sauce e2e tests(chrome)');
process.env.SAUCE=1;

@@ -100,3 +100,3 @@ process.env.BROWSER='chrome';

function() {
console.log('running sauce e2e tests(firefox)');
log('running sauce e2e tests(firefox)');
process.env.BROWSER='firefox';

@@ -103,0 +103,0 @@ return runSpecs('test/e2e', [['grep',/@skip-firefox/],['invert']]);

@@ -55,3 +55,2 @@ /* global sauceJobTitle, mergeDesired */

it("eval", function(done) {
/* jshint evil: true */
browser.eval("window.location.href", function(err, href) {

@@ -63,2 +62,1 @@ href.should.include('http');

});

@@ -40,6 +40,5 @@ /* global sauceJobTitle, mergeDesired */

.title().should.eventually.include("WD");
});
});
it("submit element should be clicked", function() {
/* jshint evil: true */
return browser

@@ -52,3 +51,1 @@ .elementById("submit")

});

@@ -31,3 +31,2 @@ /* global sauceJobTitle, mergeDesired */

};
/* jshint evil: true */
browser.chain()

@@ -81,3 +80,2 @@ .init(mergeDesired(env.DESIRED, env.SAUCE? sauceExtra : null ))

it("partial chaining should work", function(done) {
/* jshint evil: true */
browser.chain()

@@ -124,2 +122,1 @@ .title(function(err, title) {

});

@@ -61,3 +61,2 @@ /* global sauceJobTitle, mergeDesired */

it("clicking submit should work", function() {
/* jshint evil: true */
return browser

@@ -64,0 +63,0 @@ .elementById("submit")

@@ -55,3 +55,2 @@ /* global sauceJobTitle, mergeDesired */

}).then(function() {
/* jshint evil: true */
return browser.eval("window.location.href");

@@ -62,2 +61,1 @@ }).should.eventually.include("http://");

});
/* global sauceJobTitle, mergeDesired */
require('../helpers/setup');
var _ = require('lodash');

@@ -55,3 +56,1 @@ // Testing sauce specific method, it doesn't work

}

@@ -42,6 +42,5 @@ /* global sauceJobTitle, mergeDesired */

.title().should.eventually.include("WD");
});
});
it("submit element should be clicked", function() {
/* jshint evil: true */
return browser

@@ -69,3 +68,1 @@ .elementByCss("#submit")

});

@@ -1,2 +0,1 @@

var _ = require('lodash');
var underscoreString = require('underscore.string');

@@ -6,3 +5,3 @@ var toNumber = underscoreString.toNumber;

/*global env:true */
var env = global.env = {};

@@ -73,6 +72,8 @@

env.TEST_TIME = Math.round(new Date().getTime() / (1000*60));
env.SAUCE_JOB_ID =
env.TRAVIS_BUILD_NUMBER ||
process.env.SAUCE_JOB_ID ||
Math.round(new Date().getTime() / (1000*60));
env.TEST_TIME;
env.SAUCE_USERNAME = process.env.SAUCE_USERNAME;

@@ -79,0 +80,0 @@ env.SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY;

var express = require('express');
var http = require('http');
var log = require('fancy-log');
function Express(rootDir, partials) {

@@ -24,3 +26,3 @@ this.rootDir = rootDir;

res.render('test-page', {
testSuite: req.query.ts? req.query.ts.replace(/\@[\w\-]+/g,'') : '',
testSuite: req.query.ts? req.query.ts.replace(/@[\w-]+/g,'') : '',
testTitle: (req.query.c? req.query.c + ' - ': '') + req.query.p,

@@ -34,3 +36,3 @@ content: content,

this.server = http.createServer(this.app);
console.log('server listening on', env.EXPRESS_PORT);
log('Server listening on', env.EXPRESS_PORT);
this.server.listen(env.EXPRESS_PORT, done);

@@ -37,0 +39,0 @@ };

@@ -6,3 +6,3 @@ require('./env');

if(args[0]='env'){
if (args[0] === 'env'){
result = env[args[1]];

@@ -9,0 +9,0 @@ if(result === undefined) { result = ''; }

@@ -5,2 +5,4 @@ require('./env');

var log = require('fancy-log');
global.wd = require('../../lib/main');

@@ -11,7 +13,7 @@ var utils = require('../../lib/utils');

if( env.TRAVIS ){
console.log("Travis environment detected.");
console.log("TRAVIS_BUILD_NUMBER --> ", env.TRAVIS_BUILD_NUMBER);
console.log("TRAVIS_JOB_NUMBER --> ", env.TRAVIS_JOB_NUMBER);
console.log("TRAVIS_JOB_ID --> ", env.TRAVIS_JOB_ID);
if (env.TRAVIS){
log("Travis environment detected.");
log("TRAVIS_BUILD_NUMBER --> ", env.TRAVIS_BUILD_NUMBER);
log("TRAVIS_JOB_NUMBER --> ", env.TRAVIS_JOB_NUMBER);
log("TRAVIS_JOB_ID --> ", env.TRAVIS_JOB_ID);
}

@@ -25,9 +27,9 @@

this.on('status', function(info) {
console.log(info.cyan);
log(info.cyan);
});
this.on('command', function(eventType, command, response) {
console.log(' > ' + eventType.cyan, command, (response || '').grey);
log(' > ' + eventType.cyan, command, (response || '').grey);
});
this.on('http', function(meth, path, data) {
console.log(' > ' + meth.magenta, path, (data || '').grey);
log(' > ' + meth.magenta, path, (data || '').grey);
});

@@ -37,3 +39,3 @@ }

this.on('connection', function(message) {
console.log('connection > ' + message );
log('connection > ' + message );
});

@@ -85,3 +87,3 @@ }

.replace(/\(.*\)/g,'')
.replace(/\@[\w\-]+/g,'')
.replace(/@[\w-]+/g,'')
.trim();

@@ -88,0 +90,0 @@ };

require('../helpers/setup');
var _ = require('lodash');
describe('api-el ' + env.ENV_DESC, skip('ios'), function() {

@@ -101,3 +101,3 @@ var partials = {};

.waitForVisible("css selector", "#wrongsel .child", 0.1 * env.BASE_TIME_UNIT)
.should.be.rejectedWith(/Element didn\'t become visible/);
.should.be.rejectedWith(/Element didn't become visible/);

@@ -104,0 +104,0 @@ });

@@ -0,1 +1,2 @@

/* eslint-disable no-unexpected-multiline */
// spliting the test cause it takes too long, list of possible suffixes below

@@ -12,3 +13,3 @@ // var suffixes =

beforeEach(function(done) {
setTimeout(function() { console.log('timeout'); done(); }, 1000);
setTimeout(done, 1000);
});

@@ -119,2 +120,1 @@

};
require('../helpers/setup');
var _ = require('lodash');

@@ -14,3 +13,2 @@

it('browser.eval', function() {
/* jshint evil: true */
return browser

@@ -26,3 +24,2 @@ .eval('1+2').should.become(3)

it('browser.safeEval', function() {
/* jshint evil: true */
return browser

@@ -40,3 +37,2 @@ .safeEval('1+2').should.become(3)

it('browser.execute', function() {
/* jshint evil: true */
var jsScript = prepareJs(

@@ -124,3 +120,2 @@ 'var a = arguments[0], b = arguments[1];\n' +

it('browser.safeExecute - noargs', function() {
/* jshint evil: true */
return browser

@@ -136,3 +131,2 @@ .safeExecute('window.wd_sync_execute_test = "It worked!"')

it('browser.safeExecute - args', skip('android'), function() {
/* jshint evil: true */
var jsScript = prepareJs(

@@ -201,3 +195,3 @@ 'var a = arguments[0], b = arguments[1];\n' +

.setAsyncScriptTimeout( env.BASE_TIME_UNIT/2 )
.executeAsync( jsScript, [env.BASE_TIME_UNIT]).should.be.rejectedWith(/status\: 28/)
.executeAsync( jsScript, [env.BASE_TIME_UNIT]).should.be.rejectedWith(/status: 28/)
.setAsyncScriptTimeout( 2* env.BASE_TIME_UNIT )

@@ -204,0 +198,0 @@ .executeAsync( jsScript, [env.BASE_TIME_UNIT])

require('../helpers/setup');
var _ = require('lodash');
describe('api-nav ' + env.ENV_DESC, function() {

@@ -64,3 +64,3 @@ var partials = {};

.elementByCss('#setWaitTimeout .child')
.should.be.rejectedWith(/status\: 7/);
.should.be.rejectedWith(/status: 7/);
}

@@ -102,3 +102,3 @@ })

it('browser.moveTo', skip('ios', 'android'), function() {
if(true || env.BROWSER === 'explorer') {
if(env.BROWSER === 'explorer') {
// cannot get hover to work in explorer

@@ -266,3 +266,3 @@ return browser

.elementByCss("#theDiv input").clear().getValue().should.become('');
});
});
}

@@ -269,0 +269,0 @@

@@ -7,2 +7,3 @@ require('../helpers/setup');

var tmp = require('../../lib/tmp');
var assert = require('assert');

@@ -9,0 +10,0 @@ describe('api-various ' + env.ENV_DESC, function() {

@@ -7,3 +7,3 @@ require('../helpers/setup');

beforeEach(function(done) {
setTimeout(function() { console.log('timeout'); done(); }, 500);
setTimeout(done, 500);
});

@@ -10,0 +10,0 @@

@@ -24,10 +24,10 @@ /* global sauceJobTitle, mergeDesired, midwayUrl, Express, uuidLib */

};
var desired = mergeDesired(env.DESIRED, env.SAUCE? sauceExtra : null );
var desired = mergeDesired(env.DESIRED, env.SAUCE ? sauceExtra : null);
return browser
.configureLogging()
.then(function() {
.then(function () {
return browser
.init(desired)
.sleep(500)
.catch(function() {
.catch(function () {
// trying one more time

@@ -44,3 +44,3 @@ return browser.init(desired).sleep(500);

title: this.currentTest.title,
uuid: uuid
uuid: uuid
});

@@ -57,3 +57,4 @@ return browser

.waitForElementById(uuid, 10000, 500);
}).sleep(100);
})
.sleep(100);
});

@@ -60,0 +61,0 @@

require('../helpers/setup');
var _ = require('lodash');

@@ -4,0 +3,0 @@

@@ -125,3 +125,3 @@ /* global sauceJobTitle, mergeDesired, midwayUrl, Express */

};
if(newConfig.retryDelay = wdCurrent.retryDelay) { newConfig.retryDelay++; }
if(newConfig.retryDelay === wdCurrent.retryDelay) { newConfig.retryDelay++; }
return browser

@@ -193,3 +193,3 @@ .configureHttp( newConfig).then(function() {

})
.configureHttp({baseUrl: baseUrl})
.configureHttp({baseUrl: baseUrl})
.get(relUrl).title().should.eventually.include('WD Tests - config-http')

@@ -196,0 +196,0 @@ .get(url).title().should.eventually.include('WD Tests - config-http');

@@ -27,3 +27,2 @@ /* global sauceJobTitle, mergeDesired */

browser = wd.promiseChainRemote(env.REMOTE_CONFIG);
setTimeout(function(){ console.log('timeout'); }, 500);
return browser.configureLogging();

@@ -30,0 +29,0 @@ });

@@ -60,4 +60,4 @@ require('../helpers/setup');

'setTimeout(function() {\n' +
' $("#theDiv").append(' +
'"<div class=\\"child\\" style=\\"display:none;\\">a waitFor child 1</div>' +
' $("#theDiv").append(' +
'"<div class=\\"child\\" style=\\"display:none;\\">a waitFor child 1</div>' +
'<div class=\\"child\\">a waitFor child 2</div>");\n' +

@@ -74,3 +74,3 @@ '}, arguments[0]);\n';

it('browser.waitForElements', function() {
var childs =
var childs =
'<div class="child">child 1</div>' +

@@ -82,3 +82,3 @@ '<div class="child">child 2</div>' +

'setTimeout(function() {\n' +
' $("#theDiv").append("' + childs.replace(/\"/g, '\\"' ) + '");\n' +
' $("#theDiv").append("' + childs.replace(/"/g, '\\"' ) + '");\n' +
'}, arguments[0]);\n';

@@ -104,3 +104,3 @@

it('browser.waitForElements - asserter', function() {
var childs =
var childs =
'<div class="child">child 1</div>' +

@@ -112,3 +112,3 @@ '<div class="child">child 2 OK</div>' +

'setTimeout(function() {\n' +
' $("#theDiv").append("' + childs.replace(/\"/g, '\\"' ) + '");\n' +
' $("#theDiv").append("' + childs.replace(/"/g, '\\"' ) + '");\n' +
'}, arguments[0]);\n';

@@ -163,3 +163,3 @@

it('browser.waitForElementsByCss', function() {
var childs =
var childs =
'<div class="child">child 1</div>' +

@@ -171,3 +171,3 @@ '<div class="child">child 2</div>' +

'setTimeout(function() {\n' +
' $("#theDiv").append("' + childs.replace(/\"/g, '\\"' ) + '");\n' +
' $("#theDiv").append("' + childs.replace(/"/g, '\\"' ) + '");\n' +
'}, arguments[0]);\n';

@@ -174,0 +174,0 @@ return browser

@@ -43,3 +43,3 @@ require('../helpers/setup');

function(browser, cb) {
browser.text(function(err, text) {
browser.text(function(err) {
if(err) { return cb(err); }

@@ -46,0 +46,0 @@ cb( new Error("Pretending to be a timeout error"), false, "Error branch" );

@@ -10,3 +10,2 @@ var nock = require('nock');

server = nock('http://127.0.0.1:5555').filteringRequestBody(/.*/, '*');
server.log(console.log);
server.post('/wd/hub/session', '*').reply(303, "OK", {

@@ -67,3 +66,2 @@ 'Location': '/wd/hub/session/1234'

server = nock('http://127.0.0.1:5555').filteringRequestBody(/.*/, '*');
server.log(console.log);
server.post('/wd/hub/session', '*').reply(303, "OK", {

@@ -70,0 +68,0 @@ 'Location': '/wd/hub/session/1234'

@@ -13,3 +13,2 @@ var nock = require('nock');

server = nock('http://localhost:9515').filteringRequestBody(/.*/, '*');
server.log(console.log);
server.post('/session', '*').reply(303, "OK", {

@@ -46,8 +45,5 @@ 'Location': '/session/1234'

server = nock('http://localhost:4444');
server.log(console.log);
server
.filteringRequestBody(function(requestBody) {
requestBody = JSON.parse(requestBody);
console.log(typeof requestBody);
console.log(requestBody);
should.not.exist(requestBody.desiredCapabilities.javascriptEnabled);

@@ -75,2 +71,1 @@ should.not.exist(requestBody.desiredCapabilities.wdNoDefaults);

});

@@ -574,3 +574,3 @@ var nock = require('nock'),

});
var el;
var el; // eslint-disable-line no-unused-vars
return browser

@@ -1677,3 +1677,3 @@ .elementById('random').then(function(_el) { el=_el; })

});
var el;
var el; // eslint-disable-line no-unused-vars
async.series([

@@ -1680,0 +1680,0 @@ function(done) {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet