CB-12895 : added eslint to repo
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..5711f17
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+pkg/**
\ No newline at end of file
diff --git a/.eslintrc.yml b/.eslintrc.yml
new file mode 100644
index 0000000..0cccb8c
--- /dev/null
+++ b/.eslintrc.yml
@@ -0,0 +1,10 @@
+root: true
+extends: semistandard
+rules:
+ indent:
+ - error
+ - 4
+ camelcase: off
+ padded-blocks: off
+ operator-linebreak: off
+ no-throw-literal: off
\ No newline at end of file
diff --git a/package.json b/package.json
index 0bcf5c2..1f90bc3 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,8 @@
"url": "https://issues.apache.org/jira/browse/CB"
},
"scripts": {
- "test": "grunt test",
+ "eslint": "eslint src test pkg",
+ "test": "grunt test && npm run eslint",
"build": "grunt compile",
"build-browserify": "grunt compile-browserify"
},
@@ -68,6 +69,13 @@
],
"devDependencies": {
"connect": "^3.5.0",
+ "eslint": "^4.7.2",
+ "eslint-config-semistandard": "^11.0.0",
+ "eslint-config-standard": "^10.2.1",
+ "eslint-plugin-import": "^2.7.0",
+ "eslint-plugin-node": "^5.1.1",
+ "eslint-plugin-promise": "^3.5.0",
+ "eslint-plugin-standard": "^3.0.1",
"grunt": "^1.0.1",
"grunt-contrib-clean": "^1.0.0",
"grunt-contrib-jshint": "^1.0.0",
diff --git a/src/common/argscheck.js b/src/common/argscheck.js
index f987270..07a2297 100644
--- a/src/common/argscheck.js
+++ b/src/common/argscheck.js
@@ -32,29 +32,29 @@
'O': 'Object'
};
-function extractParamName(callee, argIndex) {
+function extractParamName (callee, argIndex) {
return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex];
}
-function checkArgs(spec, functionName, args, opt_callee) {
+function checkArgs (spec, functionName, args, opt_callee) {
if (!moduleExports.enableChecks) {
return;
}
var errMsg = null;
var typeName;
for (var i = 0; i < spec.length; ++i) {
- var c = spec.charAt(i),
- cUpper = c.toUpperCase(),
- arg = args[i];
+ var c = spec.charAt(i);
+ var cUpper = c.toUpperCase();
+ var arg = args[i];
// Asterix means allow anything.
- if (c == '*') {
+ if (c === '*') {
continue;
}
typeName = utils.typeName(arg);
- if ((arg === null || arg === undefined) && c == cUpper) {
+ if ((arg === null || arg === undefined) && c === cUpper) {
continue;
}
- if (typeName != typeMap[cUpper]) {
+ if (typeName !== typeMap[cUpper]) {
errMsg = 'Expected ' + typeMap[cUpper];
break;
}
@@ -63,18 +63,17 @@
errMsg += ', but got ' + typeName + '.';
errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg;
// Don't log when running unit tests.
- if (typeof jasmine == 'undefined') {
+ if (typeof jasmine === 'undefined') {
console.error(errMsg);
}
throw TypeError(errMsg);
}
}
-function getValue(value, defaultValue) {
+function getValue (value, defaultValue) {
return value === undefined ? defaultValue : value;
}
moduleExports.checkArgs = checkArgs;
moduleExports.getValue = getValue;
moduleExports.enableChecks = true;
-
diff --git a/src/common/base64.js b/src/common/base64.js
index 5181390..e15dc4c 100644
--- a/src/common/base64.js
+++ b/src/common/base64.js
@@ -21,58 +21,58 @@
var base64 = exports;
-base64.fromArrayBuffer = function(arrayBuffer) {
+base64.fromArrayBuffer = function (arrayBuffer) {
var array = new Uint8Array(arrayBuffer);
return uint8ToBase64(array);
};
-base64.toArrayBuffer = function(str) {
- var decodedStr = typeof atob != 'undefined' ? atob(str) : new Buffer(str,'base64').toString('binary');
+base64.toArrayBuffer = function (str) {
+ var decodedStr = typeof atob !== 'undefined' ? atob(str) : Buffer.from(str, 'base64').toString('binary'); // eslint-disable-line no-undef
var arrayBuffer = new ArrayBuffer(decodedStr.length);
var array = new Uint8Array(arrayBuffer);
- for (var i=0, len=decodedStr.length; i < len; i++) {
+ for (var i = 0, len = decodedStr.length; i < len; i++) {
array[i] = decodedStr.charCodeAt(i);
}
return arrayBuffer;
};
-//------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------
/* This code is based on the performance tests at http://jsperf.com/b64tests
* This 12-bit-at-a-time algorithm was the best performing version on all
* platforms tested.
*/
-var b64_6bit = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var b64_12bit;
-var b64_12bitTable = function() {
+var b64_12bitTable = function () {
b64_12bit = [];
- for (var i=0; i<64; i++) {
- for (var j=0; j<64; j++) {
- b64_12bit[i*64+j] = b64_6bit[i] + b64_6bit[j];
+ for (var i = 0; i < 64; i++) {
+ for (var j = 0; j < 64; j++) {
+ b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j];
}
}
- b64_12bitTable = function() { return b64_12bit; };
+ b64_12bitTable = function () { return b64_12bit; };
return b64_12bit;
};
-function uint8ToBase64(rawData) {
+function uint8ToBase64 (rawData) {
var numBytes = rawData.byteLength;
- var output="";
+ var output = '';
var segment;
var table = b64_12bitTable();
- for (var i=0;i<numBytes-2;i+=3) {
- segment = (rawData[i] << 16) + (rawData[i+1] << 8) + rawData[i+2];
+ for (var i = 0; i < numBytes - 2; i += 3) {
+ segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2];
output += table[segment >> 12];
output += table[segment & 0xfff];
}
- if (numBytes - i == 2) {
- segment = (rawData[i] << 16) + (rawData[i+1] << 8);
+ if (numBytes - i === 2) {
+ segment = (rawData[i] << 16) + (rawData[i + 1] << 8);
output += table[segment >> 12];
output += b64_6bit[(segment & 0xfff) >> 6];
output += '=';
- } else if (numBytes - i == 1) {
+ } else if (numBytes - i === 1) {
segment = (rawData[i] << 16);
output += table[segment >> 12];
output += '==';
diff --git a/src/common/builder.js b/src/common/builder.js
index 75d3ea7..29b7307 100644
--- a/src/common/builder.js
+++ b/src/common/builder.js
@@ -21,7 +21,7 @@
var utils = require('cordova/utils');
-function each(objects, func, context) {
+function each (objects, func, context) {
for (var prop in objects) {
if (objects.hasOwnProperty(prop)) {
func.apply(context, [objects[prop], prop]);
@@ -29,7 +29,7 @@
}
}
-function clobber(obj, key, value) {
+function clobber (obj, key, value) {
exports.replaceHookForTesting(obj, key);
var needsProperty = false;
try {
@@ -39,15 +39,15 @@
}
// Getters can only be overridden by getters.
if (needsProperty || obj[key] !== value) {
- utils.defineGetter(obj, key, function() {
+ utils.defineGetter(obj, key, function () {
return value;
});
}
}
-function assignOrWrapInDeprecateGetter(obj, key, value, message) {
+function assignOrWrapInDeprecateGetter (obj, key, value, message) {
if (message) {
- utils.defineGetter(obj, key, function() {
+ utils.defineGetter(obj, key, function () {
console.log(message);
delete obj[key];
clobber(obj, key, value);
@@ -58,7 +58,7 @@
}
}
-function include(parent, objects, clobber, merge) {
+function include (parent, objects, clobber, merge) {
each(objects, function (obj, key) {
try {
var result = obj.path ? require(obj.path) : {};
@@ -78,7 +78,7 @@
result = parent[key];
} else {
// Overwrite if not currently defined.
- if (typeof parent[key] == 'undefined') {
+ if (typeof parent[key] === 'undefined') {
assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated);
} else {
// Set result to what already exists, so we can build children into it if they exist.
@@ -89,7 +89,7 @@
if (obj.children) {
include(result, obj.children, clobber, merge);
}
- } catch(e) {
+ } catch (e) {
utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"');
}
});
@@ -102,7 +102,7 @@
* @param target Object to merge properties into.
* @param src Object to merge properties from.
*/
-function recursiveMerge(target, src) {
+function recursiveMerge (target, src) {
for (var prop in src) {
if (src.hasOwnProperty(prop)) {
if (target.prototype && target.prototype.constructor === target) {
@@ -119,15 +119,15 @@
}
}
-exports.buildIntoButDoNotClobber = function(objects, target) {
+exports.buildIntoButDoNotClobber = function (objects, target) {
include(target, objects, false, false);
};
-exports.buildIntoAndClobber = function(objects, target) {
+exports.buildIntoAndClobber = function (objects, target) {
include(target, objects, true, false);
};
-exports.buildIntoAndMerge = function(objects, target) {
+exports.buildIntoAndMerge = function (objects, target) {
include(target, objects, true, true);
};
exports.recursiveMerge = recursiveMerge;
exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter;
-exports.replaceHookForTesting = function() {};
+exports.replaceHookForTesting = function () {};
diff --git a/src/common/channel.js b/src/common/channel.js
index 1e8674e..9182968 100644
--- a/src/common/channel.js
+++ b/src/common/channel.js
@@ -19,8 +19,8 @@
*
*/
-var utils = require('cordova/utils'),
- nextGuid = 1;
+var utils = require('cordova/utils');
+var nextGuid = 1;
/**
* Custom pub-sub "channel" that can have functions subscribed to it
@@ -60,7 +60,7 @@
* @constructor
* @param type String the channel name
*/
-var Channel = function(type, sticky) {
+var Channel = function (type, sticky) {
this.type = type;
// Map of guid -> function.
this.handlers = {};
@@ -73,72 +73,73 @@
// Function that is called when the first listener is subscribed, or when
// the last listener is unsubscribed.
this.onHasSubscribersChange = null;
-},
- channel = {
- /**
- * Calls the provided function only after all of the channels specified
- * have been fired. All channels must be sticky channels.
- */
- join: function(h, c) {
- var len = c.length,
- i = len,
- f = function() {
- if (!(--i)) h();
- };
- for (var j=0; j<len; j++) {
- if (c[j].state === 0) {
- throw Error('Can only use join with sticky channels.');
- }
- c[j].subscribe(f);
+};
+var channel = {
+ /**
+ * Calls the provided function only after all of the channels specified
+ * have been fired. All channels must be sticky channels.
+ */
+ join: function (h, c) {
+ var len = c.length;
+ var i = len;
+ var f = function () {
+ if (!(--i)) h();
+ };
+ for (var j = 0; j < len; j++) {
+ if (c[j].state === 0) {
+ throw Error('Can only use join with sticky channels.');
}
- if (!len) h();
- },
- create: function(type) {
- return channel[type] = new Channel(type, false);
- },
- createSticky: function(type) {
- return channel[type] = new Channel(type, true);
- },
-
- /**
- * cordova Channels that must fire before "deviceready" is fired.
- */
- deviceReadyChannelsArray: [],
- deviceReadyChannelsMap: {},
-
- /**
- * Indicate that a feature needs to be initialized before it is ready to be used.
- * This holds up Cordova's "deviceready" event until the feature has been initialized
- * and Cordova.initComplete(feature) is called.
- *
- * @param feature {String} The unique feature name
- */
- waitForInitialization: function(feature) {
- if (feature) {
- var c = channel[feature] || this.createSticky(feature);
- this.deviceReadyChannelsMap[feature] = c;
- this.deviceReadyChannelsArray.push(c);
- }
- },
-
- /**
- * Indicate that initialization code has completed and the feature is ready to be used.
- *
- * @param feature {String} The unique feature name
- */
- initializationComplete: function(feature) {
- var c = this.deviceReadyChannelsMap[feature];
- if (c) {
- c.fire();
- }
+ c[j].subscribe(f);
}
- };
+ if (!len) h();
+ },
+ /* eslint-disable no-return-assign */
+ create: function (type) {
+ return channel[type] = new Channel(type, false);
+ },
+ createSticky: function (type) {
+ return channel[type] = new Channel(type, true);
+ },
+ /* eslint-enable no-return-assign */
+ /**
+ * cordova Channels that must fire before "deviceready" is fired.
+ */
+ deviceReadyChannelsArray: [],
+ deviceReadyChannelsMap: {},
-function checkSubscriptionArgument(argument) {
- if (typeof argument !== "function" && typeof argument.handleEvent !== "function") {
+ /**
+ * Indicate that a feature needs to be initialized before it is ready to be used.
+ * This holds up Cordova's "deviceready" event until the feature has been initialized
+ * and Cordova.initComplete(feature) is called.
+ *
+ * @param feature {String} The unique feature name
+ */
+ waitForInitialization: function (feature) {
+ if (feature) {
+ var c = channel[feature] || this.createSticky(feature);
+ this.deviceReadyChannelsMap[feature] = c;
+ this.deviceReadyChannelsArray.push(c);
+ }
+ },
+
+ /**
+ * Indicate that initialization code has completed and the feature is ready to be used.
+ *
+ * @param feature {String} The unique feature name
+ */
+ initializationComplete: function (feature) {
+ var c = this.deviceReadyChannelsMap[feature];
+ if (c) {
+ c.fire();
+ }
+ }
+};
+
+function checkSubscriptionArgument (argument) {
+ if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') {
throw new Error(
- "Must provide a function or an EventListener object " +
- "implementing the handleEvent interface."
+ 'Must provide a function or an EventListener object ' +
+ 'implementing the handleEvent interface.'
);
}
}
@@ -150,11 +151,11 @@
* and a guid that can be used to stop subscribing to the channel.
* Returns the guid.
*/
-Channel.prototype.subscribe = function(eventListenerOrFunction, eventListener) {
+Channel.prototype.subscribe = function (eventListenerOrFunction, eventListener) {
checkSubscriptionArgument(eventListenerOrFunction);
var handleEvent, guid;
- if (eventListenerOrFunction && typeof eventListenerOrFunction === "object") {
+ if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') {
// Received an EventListener object implementing the handleEvent interface
handleEvent = eventListenerOrFunction.handleEvent;
eventListener = eventListenerOrFunction;
@@ -163,13 +164,13 @@
handleEvent = eventListenerOrFunction;
}
- if (this.state == 2) {
+ if (this.state === 2) {
handleEvent.apply(eventListener || this, this.fireArgs);
return;
}
guid = eventListenerOrFunction.observer_guid;
- if (typeof eventListener === "object") {
+ if (typeof eventListener === 'object') {
handleEvent = utils.close(eventListener, handleEvent);
}
@@ -184,7 +185,7 @@
if (!this.handlers[guid]) {
this.handlers[guid] = handleEvent;
this.numHandlers++;
- if (this.numHandlers == 1) {
+ if (this.numHandlers === 1) {
this.onHasSubscribersChange && this.onHasSubscribersChange();
}
}
@@ -193,11 +194,11 @@
/**
* Unsubscribes the function with the given guid from the channel.
*/
-Channel.prototype.unsubscribe = function(eventListenerOrFunction) {
+Channel.prototype.unsubscribe = function (eventListenerOrFunction) {
checkSubscriptionArgument(eventListenerOrFunction);
var handleEvent, guid, handler;
- if (eventListenerOrFunction && typeof eventListenerOrFunction === "object") {
+ if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') {
// Received an EventListener object implementing the handleEvent interface
handleEvent = eventListenerOrFunction.handleEvent;
} else {
@@ -219,11 +220,11 @@
/**
* Calls all functions subscribed to this channel.
*/
-Channel.prototype.fire = function(e) {
- var fail = false,
- fireArgs = Array.prototype.slice.call(arguments);
+Channel.prototype.fire = function (e) {
+ var fail = false; // eslint-disable-line no-unused-vars
+ var fireArgs = Array.prototype.slice.call(arguments);
// Apply stickiness.
- if (this.state == 1) {
+ if (this.state === 1) {
this.state = 2;
this.fireArgs = fireArgs;
}
@@ -237,7 +238,7 @@
for (var i = 0; i < toCall.length; ++i) {
toCall[i].apply(this, fireArgs);
}
- if (this.state == 2 && this.numHandlers) {
+ if (this.state === 2 && this.numHandlers) {
this.numHandlers = 0;
this.handlers = {};
this.onHasSubscribersChange && this.onHasSubscribersChange();
@@ -245,7 +246,6 @@
}
};
-
// defining them here so they are ready super fast!
// DOM event that is received when the web page is loaded and parsed.
channel.createSticky('onDOMContentLoaded');
diff --git a/src/common/exec/proxy.js b/src/common/exec/proxy.js
index e640003..ffbb0c4 100644
--- a/src/common/exec/proxy.js
+++ b/src/common/exec/proxy.js
@@ -19,28 +19,27 @@
*
*/
-
// internal map of proxy function
var CommandProxyMap = {};
module.exports = {
// example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...);
- add:function(id,proxyObj) {
- console.log("adding proxy for " + id);
+ add: function (id, proxyObj) {
+ console.log('adding proxy for ' + id);
CommandProxyMap[id] = proxyObj;
return proxyObj;
},
// cordova.commandProxy.remove("Accelerometer");
- remove:function(id) {
+ remove: function (id) {
var proxy = CommandProxyMap[id];
delete CommandProxyMap[id];
CommandProxyMap[id] = null;
return proxy;
},
- get:function(service,action) {
- return ( CommandProxyMap[service] ? CommandProxyMap[service][action] : null );
+ get: function (service, action) {
+ return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null);
}
-};
\ No newline at end of file
+};
diff --git a/src/common/init.js b/src/common/init.js
index 8d86288..34b253c 100644
--- a/src/common/init.js
+++ b/src/common/init.js
@@ -28,16 +28,16 @@
var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];
-function logUnfiredChannels(arr) {
+function logUnfiredChannels (arr) {
for (var i = 0; i < arr.length; ++i) {
- if (arr[i].state != 2) {
+ if (arr[i].state !== 2) {
console.log('Channel not fired: ' + arr[i].type);
}
}
}
-window.setTimeout(function() {
- if (channel.onDeviceReady.state != 2) {
+window.setTimeout(function () {
+ if (channel.onDeviceReady.state !== 2) {
console.log('deviceready has not fired after 5 seconds.');
logUnfiredChannels(platformInitChannelsArray);
logUnfiredChannels(channel.deviceReadyChannelsArray);
@@ -46,20 +46,19 @@
// Replace navigator before any modules are required(), to ensure it happens as soon as possible.
// We replace it so that properties that can't be clobbered can instead be overridden.
-function replaceNavigator(origNavigator) {
- var CordovaNavigator = function() {};
+function replaceNavigator (origNavigator) {
+ var CordovaNavigator = function () {};
CordovaNavigator.prototype = origNavigator;
var newNavigator = new CordovaNavigator();
// This work-around really only applies to new APIs that are newer than Function.bind.
// Without it, APIs such as getGamepads() break.
if (CordovaNavigator.bind) {
for (var key in origNavigator) {
- if (typeof origNavigator[key] == 'function') {
+ if (typeof origNavigator[key] === 'function') {
newNavigator[key] = origNavigator[key].bind(origNavigator);
- }
- else {
- (function(k) {
- utils.defineGetterSetter(newNavigator,key,function() {
+ } else {
+ (function (k) {
+ utils.defineGetterSetter(newNavigator, key, function () {
return origNavigator[k];
});
})(key);
@@ -75,12 +74,12 @@
if (!window.console) {
window.console = {
- log: function(){}
+ log: function () {}
};
}
if (!window.console.warn) {
- window.console.warn = function(msg) {
- this.log("warn: " + msg);
+ window.console.warn = function (msg) {
+ this.log('warn: ' + msg);
};
}
@@ -91,10 +90,10 @@
channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready');
// Listen for DOMContentLoaded and notify our channel subscribers.
-if (document.readyState == 'complete' || document.readyState == 'interactive') {
+if (document.readyState === 'complete' || document.readyState === 'interactive') {
channel.onDOMContentLoaded.fire();
} else {
- document.addEventListener('DOMContentLoaded', function() {
+ document.addEventListener('DOMContentLoaded', function () {
channel.onDOMContentLoaded.fire();
}, false);
}
@@ -115,8 +114,8 @@
// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js.
// The delay allows the attached modules to be defined before the plugin loader looks for them.
-setTimeout(function() {
- pluginloader.load(function() {
+setTimeout(function () {
+ pluginloader.load(function () {
channel.onPluginsReady.fire();
});
}, 0);
@@ -124,7 +123,7 @@
/**
* Create all cordova objects once native side is ready.
*/
-channel.join(function() {
+channel.join(function () {
modulemapper.mapModules(window);
platform.initialize && platform.initialize();
@@ -135,9 +134,8 @@
// Fire onDeviceReady event once page has fully loaded, all
// constructors have run and cordova info has been received from native
// side.
- channel.join(function() {
+ channel.join(function () {
require('cordova').fireDocumentEvent('deviceready');
}, channel.deviceReadyChannelsArray);
}, platformInitChannelsArray);
-
diff --git a/src/common/init_b.js b/src/common/init_b.js
index 8a805d1..336f098 100644
--- a/src/common/init_b.js
+++ b/src/common/init_b.js
@@ -31,16 +31,16 @@
// setting exec
cordova.exec = require('cordova/exec');
-function logUnfiredChannels(arr) {
+function logUnfiredChannels (arr) {
for (var i = 0; i < arr.length; ++i) {
- if (arr[i].state != 2) {
+ if (arr[i].state !== 2) {
console.log('Channel not fired: ' + arr[i].type);
}
}
}
-window.setTimeout(function() {
- if (channel.onDeviceReady.state != 2) {
+window.setTimeout(function () {
+ if (channel.onDeviceReady.state !== 2) {
console.log('deviceready has not fired after 5 seconds.');
logUnfiredChannels(platformInitChannelsArray);
logUnfiredChannels(channel.deviceReadyChannelsArray);
@@ -49,20 +49,19 @@
// Replace navigator before any modules are required(), to ensure it happens as soon as possible.
// We replace it so that properties that can't be clobbered can instead be overridden.
-function replaceNavigator(origNavigator) {
- var CordovaNavigator = function() {};
+function replaceNavigator (origNavigator) {
+ var CordovaNavigator = function () {};
CordovaNavigator.prototype = origNavigator;
var newNavigator = new CordovaNavigator();
// This work-around really only applies to new APIs that are newer than Function.bind.
// Without it, APIs such as getGamepads() break.
if (CordovaNavigator.bind) {
for (var key in origNavigator) {
- if (typeof origNavigator[key] == 'function') {
+ if (typeof origNavigator[key] === 'function') {
newNavigator[key] = origNavigator[key].bind(origNavigator);
- }
- else {
- (function(k) {
- utils.defineGetterSetter(newNavigator,key,function() {
+ } else {
+ (function (k) {
+ utils.defineGetterSetter(newNavigator, key, function () {
return origNavigator[k];
});
})(key);
@@ -77,12 +76,12 @@
if (!window.console) {
window.console = {
- log: function(){}
+ log: function () {}
};
}
if (!window.console.warn) {
- window.console.warn = function(msg) {
- this.log("warn: " + msg);
+ window.console.warn = function (msg) {
+ this.log('warn: ' + msg);
};
}
@@ -93,10 +92,10 @@
channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready');
// Listen for DOMContentLoaded and notify our channel subscribers.
-if (document.readyState == 'complete' || document.readyState == 'interactive') {
+if (document.readyState === 'complete' || document.readyState === 'interactive') {
channel.onDOMContentLoaded.fire();
} else {
- document.addEventListener('DOMContentLoaded', function() {
+ document.addEventListener('DOMContentLoaded', function () {
channel.onDOMContentLoaded.fire();
}, false);
}
@@ -113,8 +112,8 @@
// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js.
// The delay allows the attached modules to be defined before the plugin loader looks for them.
-setTimeout(function() {
- pluginloader.load(function() {
+setTimeout(function () {
+ pluginloader.load(function () {
channel.onPluginsReady.fire();
});
}, 0);
@@ -122,7 +121,7 @@
/**
* Create all cordova objects once native side is ready.
*/
-channel.join(function() {
+channel.join(function () {
modulemapper.mapModules(window);
platform.initialize && platform.initialize();
@@ -133,7 +132,7 @@
// Fire onDeviceReady event once page has fully loaded, all
// constructors have run and cordova info has been received from native
// side.
- channel.join(function() {
+ channel.join(function () {
require('cordova').fireDocumentEvent('deviceready');
}, channel.deviceReadyChannelsArray);
diff --git a/src/common/modulemapper.js b/src/common/modulemapper.js
index ea14c2a..a280d16 100644
--- a/src/common/modulemapper.js
+++ b/src/common/modulemapper.js
@@ -18,17 +18,17 @@
*
*/
-var builder = require('cordova/builder'),
- moduleMap = define.moduleMap,
- symbolList,
- deprecationMap;
+var builder = require('cordova/builder');
+var moduleMap = define.moduleMap; // eslint-disable-line no-undef
+var symbolList;
+var deprecationMap;
-exports.reset = function() {
+exports.reset = function () {
symbolList = [];
deprecationMap = {};
};
-function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) {
+function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) {
if (!(moduleName in moduleMap)) {
throw new Error('Module ' + moduleName + ' does not exist.');
}
@@ -39,35 +39,35 @@
}
// Note: Android 2.3 does have Function.bind().
-exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('c', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('m', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('d', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.runs = function(moduleName) {
+exports.runs = function (moduleName) {
addEntry('r', moduleName, null);
};
-function prepareNamespace(symbolPath, context) {
+function prepareNamespace (symbolPath, context) {
if (!symbolPath) {
return context;
}
var parts = symbolPath.split('.');
var cur = context;
- for (var i = 0, part; part = parts[i]; ++i) {
+ for (var i = 0, part; part = parts[i]; ++i) { // eslint-disable-line no-cond-assign
cur = cur[part] = cur[part] || {};
}
return cur;
}
-exports.mapModules = function(context) {
+exports.mapModules = function (context) {
var origSymbols = {};
context.CDV_origSymbols = origSymbols;
for (var i = 0, len = symbolList.length; i < len; i += 3) {
@@ -75,7 +75,7 @@
var moduleName = symbolList[i + 1];
var module = require(moduleName);
// <runs/>
- if (strategy == 'r') {
+ if (strategy === 'r') {
continue;
}
var symbolPath = symbolList[i + 2];
@@ -87,9 +87,9 @@
var parentObj = prepareNamespace(namespace, context);
var target = parentObj[lastName];
- if (strategy == 'm' && target) {
+ if (strategy === 'm' && target) {
builder.recursiveMerge(target, module);
- } else if ((strategy == 'd' && !target) || (strategy != 'd')) {
+ } else if ((strategy === 'd' && !target) || (strategy !== 'd')) {
if (!(symbolPath in origSymbols)) {
origSymbols[symbolPath] = target;
}
@@ -98,7 +98,7 @@
}
};
-exports.getOriginalSymbol = function(context, symbolPath) {
+exports.getOriginalSymbol = function (context, symbolPath) {
var origSymbols = context.CDV_origSymbols;
if (origSymbols && (symbolPath in origSymbols)) {
return origSymbols[symbolPath];
@@ -112,4 +112,3 @@
};
exports.reset();
-
diff --git a/src/common/modulemapper_b.js b/src/common/modulemapper_b.js
index 98d82d3..46dd1d3 100644
--- a/src/common/modulemapper_b.js
+++ b/src/common/modulemapper_b.js
@@ -18,16 +18,16 @@
*
*/
-var builder = require('cordova/builder'),
- symbolList = [],
- deprecationMap;
+var builder = require('cordova/builder');
+var symbolList = [];
+var deprecationMap;
-exports.reset = function() {
+exports.reset = function () {
symbolList = [];
deprecationMap = {};
};
-function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) {
+function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) {
symbolList.push(strategy, moduleName, symbolPath);
if (opt_deprecationMessage) {
deprecationMap[symbolPath] = opt_deprecationMessage;
@@ -35,35 +35,35 @@
}
// Note: Android 2.3 does have Function.bind().
-exports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('c', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.merges = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('m', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) {
+exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) {
addEntry('d', moduleName, symbolPath, opt_deprecationMessage);
};
-exports.runs = function(moduleName) {
+exports.runs = function (moduleName) {
addEntry('r', moduleName, null);
};
-function prepareNamespace(symbolPath, context) {
+function prepareNamespace (symbolPath, context) {
if (!symbolPath) {
return context;
}
var parts = symbolPath.split('.');
var cur = context;
- for (var i = 0, part; part = parts[i]; ++i) {
+ for (var i = 0, part; part = parts[i]; ++i) { // eslint-disable-line no-cond-assign
cur = cur[part] = cur[part] || {};
}
return cur;
}
-exports.mapModules = function(context) {
+exports.mapModules = function (context) {
var origSymbols = {};
context.CDV_origSymbols = origSymbols;
for (var i = 0, len = symbolList.length; i < len; i += 3) {
@@ -71,7 +71,7 @@
var moduleName = symbolList[i + 1];
var module = require(moduleName);
// <runs/>
- if (strategy == 'r') {
+ if (strategy === 'r') {
continue;
}
var symbolPath = symbolList[i + 2];
@@ -83,9 +83,9 @@
var parentObj = prepareNamespace(namespace, context);
var target = parentObj[lastName];
- if (strategy == 'm' && target) {
+ if (strategy === 'm' && target) {
builder.recursiveMerge(target, module);
- } else if ((strategy == 'd' && !target) || (strategy != 'd')) {
+ } else if ((strategy === 'd' && !target) || (strategy !== 'd')) {
if (!(symbolPath in origSymbols)) {
origSymbols[symbolPath] = target;
}
@@ -94,7 +94,7 @@
}
};
-exports.getOriginalSymbol = function(context, symbolPath) {
+exports.getOriginalSymbol = function (context, symbolPath) {
var origSymbols = context.CDV_origSymbols;
if (origSymbols && (symbolPath in origSymbols)) {
return origSymbols[symbolPath];
@@ -108,4 +108,3 @@
};
exports.reset();
-
diff --git a/src/common/pluginloader.js b/src/common/pluginloader.js
index f2d34e0..c8c4fa3 100644
--- a/src/common/pluginloader.js
+++ b/src/common/pluginloader.js
@@ -20,12 +20,11 @@
*/
var modulemapper = require('cordova/modulemapper');
-var urlutil = require('cordova/urlutil');
// Helper function to inject a <script> tag.
// Exported for testing.
-exports.injectScript = function(url, onload, onerror) {
- var script = document.createElement("script");
+exports.injectScript = function (url, onload, onerror) {
+ var script = document.createElement('script');
// onload fires even when script fails loads with an error.
script.onload = onload;
// onerror fires for malformed URLs.
@@ -34,13 +33,13 @@
document.head.appendChild(script);
};
-function injectIfNecessary(id, url, onload, onerror) {
+function injectIfNecessary (id, url, onload, onerror) {
onerror = onerror || onload;
- if (id in define.moduleMap) {
+ if (id in define.moduleMap) { // eslint-disable-line no-undef
onload();
} else {
- exports.injectScript(url, function() {
- if (id in define.moduleMap) {
+ exports.injectScript(url, function () {
+ if (id in define.moduleMap) { // eslint-disable-line no-undef
onload();
} else {
onerror();
@@ -49,9 +48,9 @@
}
}
-function onScriptLoadingComplete(moduleList, finishPluginLoading) {
+function onScriptLoadingComplete (moduleList, finishPluginLoading) {
// Loop through all the plugins and then through their clobbers and merges.
- for (var i = 0, module; module = moduleList[i]; i++) {
+ for (var i = 0, module; module = moduleList[i]; i++) { // eslint-disable-line no-cond-assign
if (module.clobbers && module.clobbers.length) {
for (var j = 0; j < module.clobbers.length; j++) {
modulemapper.clobbers(module.id, module.clobbers[j]);
@@ -77,7 +76,7 @@
// See plugman's plugin_loader.js for the details of this object.
// This function is only called if the really is a plugins array that isn't empty.
// Otherwise the onerror response handler will just call finishPluginLoading().
-function handlePluginsObject(path, moduleList, finishPluginLoading) {
+function handlePluginsObject (path, moduleList, finishPluginLoading) {
// Now inject the scripts.
var scriptCounter = moduleList.length;
@@ -85,7 +84,7 @@
finishPluginLoading();
return;
}
- function scriptLoadedCallback() {
+ function scriptLoadedCallback () {
if (!--scriptCounter) {
onScriptLoadingComplete(moduleList, finishPluginLoading);
}
@@ -96,13 +95,13 @@
}
}
-function findCordovaPath() {
+function findCordovaPath () {
var path = null;
var scripts = document.getElementsByTagName('script');
var term = '/cordova.js';
- for (var n = scripts.length-1; n>-1; n--) {
+ for (var n = scripts.length - 1; n > -1; n--) {
var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007).
- if (src.indexOf(term) == (src.length - term.length)) {
+ if (src.indexOf(term) === (src.length - term.length)) {
path = src.substring(0, src.length - term.length) + '/';
break;
}
@@ -113,15 +112,14 @@
// Tries to load all plugins' js-modules.
// This is an async process, but onDeviceReady is blocked on onPluginsReady.
// onPluginsReady is fired when there are no plugins to load, or they are all done.
-exports.load = function(callback) {
+exports.load = function (callback) {
var pathPrefix = findCordovaPath();
if (pathPrefix === null) {
console.log('Could not find cordova.js script tag. Plugin loading may fail.');
pathPrefix = '';
}
- injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function() {
- var moduleList = require("cordova/plugin_list");
+ injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () {
+ var moduleList = require('cordova/plugin_list');
handlePluginsObject(pathPrefix, moduleList, callback);
}, callback);
};
-
diff --git a/src/common/pluginloader_b.js b/src/common/pluginloader_b.js
index 46e4446..418dc54 100644
--- a/src/common/pluginloader_b.js
+++ b/src/common/pluginloader_b.js
@@ -23,14 +23,14 @@
// Handler for the cordova_plugins.js content.
// See plugman's plugin_loader.js for the details of this object.
-function handlePluginsObject(moduleList) {
+function handlePluginsObject (moduleList) {
// if moduleList is not defined or empty, we've nothing to do
if (!moduleList || !moduleList.length) {
return;
}
// Loop through all the modules and then through their clobbers and merges.
- for (var i = 0, module; module = moduleList[i]; i++) {
+ for (var i = 0, module; module = moduleList[i]; i++) { // eslint-disable-line no-cond-assign
if (module.clobbers && module.clobbers.length) {
for (var j = 0; j < module.clobbers.length; j++) {
modulemapper.clobbers(module.id, module.clobbers[j]);
@@ -54,10 +54,9 @@
// but the method accepts callback to be compatible with non-browserify flow.
// onDeviceReady is blocked on onPluginsReady. onPluginsReady is fired when there are
// no plugins to load, or they are all done.
-exports.load = function(callback) {
- var moduleList = require("cordova/plugin_list");
+exports.load = function (callback) {
+ var moduleList = require('cordova/plugin_list');
handlePluginsObject(moduleList);
callback();
};
-
diff --git a/src/common/urlutil.js b/src/common/urlutil.js
index 09ebc62..2cadbea 100644
--- a/src/common/urlutil.js
+++ b/src/common/urlutil.js
@@ -19,14 +19,12 @@
*
*/
-
/**
* For already absolute URLs, returns what is passed in.
* For relative URLs, converts them to absolute ones.
*/
-exports.makeAbsolute = function makeAbsolute(url) {
+exports.makeAbsolute = function makeAbsolute (url) {
var anchorEl = document.createElement('a');
anchorEl.href = url;
return anchorEl.href;
};
-
diff --git a/src/common/utils.js b/src/common/utils.js
index 6bb38b1..febfd91 100644
--- a/src/common/utils.js
+++ b/src/common/utils.js
@@ -24,7 +24,7 @@
/**
* Defines a property getter / setter for obj[key].
*/
-utils.defineGetterSetter = function(obj, key, getFunc, opt_setFunc) {
+utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) {
if (Object.defineProperty) {
var desc = {
get: getFunc,
@@ -47,13 +47,13 @@
*/
utils.defineGetter = utils.defineGetterSetter;
-utils.arrayIndexOf = function(a, item) {
+utils.arrayIndexOf = function (a, item) {
if (a.indexOf) {
return a.indexOf(item);
}
var len = a.length;
for (var i = 0; i < len; ++i) {
- if (a[i] == item) {
+ if (a[i] === item) {
return i;
}
}
@@ -63,15 +63,15 @@
/**
* Returns whether the item was found in the array.
*/
-utils.arrayRemove = function(a, item) {
+utils.arrayRemove = function (a, item) {
var index = utils.arrayIndexOf(a, item);
- if (index != -1) {
+ if (index !== -1) {
a.splice(index, 1);
}
- return index != -1;
+ return index !== -1;
};
-utils.typeName = function(val) {
+utils.typeName = function (val) {
return Object.prototype.toString.call(val).slice(8, -1);
};
@@ -79,39 +79,39 @@
* Returns an indication of whether the argument is an array or not
*/
utils.isArray = Array.isArray ||
- function(a) {return utils.typeName(a) == 'Array';};
+ function (a) { return utils.typeName(a) === 'Array'; };
/**
* Returns an indication of whether the argument is a Date or not
*/
-utils.isDate = function(d) {
+utils.isDate = function (d) {
return (d instanceof Date);
};
/**
* Does a deep clone of the object.
*/
-utils.clone = function(obj) {
- if(!obj || typeof obj == 'function' || utils.isDate(obj) || typeof obj != 'object') {
+utils.clone = function (obj) {
+ if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') {
return obj;
}
var retVal, i;
- if(utils.isArray(obj)){
+ if (utils.isArray(obj)) {
retVal = [];
- for(i = 0; i < obj.length; ++i){
+ for (i = 0; i < obj.length; ++i) {
retVal.push(utils.clone(obj[i]));
}
return retVal;
}
retVal = {};
- for(i in obj){
+ for (i in obj) {
// https://issues.apache.org/jira/browse/CB-11522 'unknown' type may be returned in
// custom protocol activation case on Windows Phone 8.1 causing "No such interface supported" exception
// on cloning.
- if((!(i in retVal) || retVal[i] != obj[i]) && typeof obj[i] != 'undefined' && typeof obj[i] != 'unknown') {
+ if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { // eslint-disable-line valid-typeof
retVal[i] = utils.clone(obj[i]);
}
}
@@ -121,20 +121,20 @@
/**
* Returns a wrapped version of the function
*/
-utils.close = function(context, func, params) {
- return function() {
+utils.close = function (context, func, params) {
+ return function () {
var args = params || arguments;
return func.apply(context, args);
};
};
-//------------------------------------------------------------------------------
-function UUIDcreatePart(length) {
- var uuidpart = "";
- for (var i=0; i<length; i++) {
+// ------------------------------------------------------------------------------
+function UUIDcreatePart (length) {
+ var uuidpart = '';
+ for (var i = 0; i < length; i++) {
var uuidchar = parseInt((Math.random() * 256), 10).toString(16);
- if (uuidchar.length == 1) {
- uuidchar = "0" + uuidchar;
+ if (uuidchar.length === 1) {
+ uuidchar = '0' + uuidchar;
}
uuidpart += uuidchar;
}
@@ -144,7 +144,7 @@
/**
* Create a UUID
*/
-utils.createUUID = function() {
+utils.createUUID = function () {
return UUIDcreatePart(4) + '-' +
UUIDcreatePart(2) + '-' +
UUIDcreatePart(2) + '-' +
@@ -152,16 +152,15 @@
UUIDcreatePart(6);
};
-
/**
* Extends a child object from a parent object using classical inheritance
* pattern.
*/
-utils.extend = (function() {
+utils.extend = (function () {
// proxy used to establish prototype chain
- var F = function() {};
+ var F = function () {};
// extend Child from Parent
- return function(Child, Parent) {
+ return function (Child, Parent) {
F.prototype = Parent.prototype;
Child.prototype = new F();
@@ -173,14 +172,10 @@
/**
* Alerts a message in any available way: alert or console.log.
*/
-utils.alert = function(msg) {
+utils.alert = function (msg) {
if (window.alert) {
window.alert(msg);
} else if (console && console.log) {
console.log(msg);
}
};
-
-
-
-
diff --git a/src/cordova.js b/src/cordova.js
index b2d2a55..6297c4e 100644
--- a/src/cordova.js
+++ b/src/cordova.js
@@ -21,15 +21,13 @@
// Workaround for Windows 10 in hosted environment case
// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object
-if (window.cordova && !(window.cordova instanceof HTMLElement)) {
- throw new Error("cordova already defined");
+if (window.cordova && !(window.cordova instanceof HTMLElement)) { // eslint-disable-line no-undef
+ throw new Error('cordova already defined');
}
-
var channel = require('cordova/channel');
var platform = require('cordova/platform');
-
/**
* Intercept calls to addEventListener + removeEventListener and handle deviceready,
* resume, and pause events.
@@ -42,48 +40,48 @@
/**
* Houses custom event handlers to intercept on document + window event listeners.
*/
-var documentEventHandlers = {},
- windowEventHandlers = {};
+var documentEventHandlers = {};
+var windowEventHandlers = {};
-document.addEventListener = function(evt, handler, capture) {
+document.addEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
- if (typeof documentEventHandlers[e] != 'undefined') {
+ if (typeof documentEventHandlers[e] !== 'undefined') {
documentEventHandlers[e].subscribe(handler);
} else {
m_document_addEventListener.call(document, evt, handler, capture);
}
};
-window.addEventListener = function(evt, handler, capture) {
+window.addEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
- if (typeof windowEventHandlers[e] != 'undefined') {
+ if (typeof windowEventHandlers[e] !== 'undefined') {
windowEventHandlers[e].subscribe(handler);
} else {
m_window_addEventListener.call(window, evt, handler, capture);
}
};
-document.removeEventListener = function(evt, handler, capture) {
+document.removeEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
// If unsubscribing from an event that is handled by a plugin
- if (typeof documentEventHandlers[e] != "undefined") {
+ if (typeof documentEventHandlers[e] !== 'undefined') {
documentEventHandlers[e].unsubscribe(handler);
} else {
m_document_removeEventListener.call(document, evt, handler, capture);
}
};
-window.removeEventListener = function(evt, handler, capture) {
+window.removeEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
// If unsubscribing from an event that is handled by a plugin
- if (typeof windowEventHandlers[e] != "undefined") {
+ if (typeof windowEventHandlers[e] !== 'undefined') {
windowEventHandlers[e].unsubscribe(handler);
} else {
m_window_removeEventListener.call(window, evt, handler, capture);
}
};
-function createEvent(type, data) {
+function createEvent (type, data) {
var event = document.createEvent('Events');
event.initEvent(type, false, false);
if (data) {
@@ -96,29 +94,32 @@
return event;
}
-
+/* eslint-disable no-undef */
var cordova = {
- define:define,
- require:require,
- version:PLATFORM_VERSION_BUILD_LABEL,
- platformVersion:PLATFORM_VERSION_BUILD_LABEL,
- platformId:platform.id,
+ define: define,
+ require: require,
+ version: PLATFORM_VERSION_BUILD_LABEL,
+ platformVersion: PLATFORM_VERSION_BUILD_LABEL,
+ platformId: platform.id,
+
+ /* eslint-enable no-undef */
+
/**
* Methods to add/remove your own addEventListener hijacking on document + window.
*/
- addWindowEventHandler:function(event) {
+ addWindowEventHandler: function (event) {
return (windowEventHandlers[event] = channel.create(event));
},
- addStickyDocumentEventHandler:function(event) {
+ addStickyDocumentEventHandler: function (event) {
return (documentEventHandlers[event] = channel.createSticky(event));
},
- addDocumentEventHandler:function(event) {
+ addDocumentEventHandler: function (event) {
return (documentEventHandlers[event] = channel.create(event));
},
- removeWindowEventHandler:function(event) {
+ removeWindowEventHandler: function (event) {
delete windowEventHandlers[event];
},
- removeDocumentEventHandler:function(event) {
+ removeDocumentEventHandler: function (event) {
delete documentEventHandlers[event];
},
/**
@@ -126,24 +127,23 @@
*
* @return object
*/
- getOriginalHandlers: function() {
+ getOriginalHandlers: function () {
return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener},
- 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}};
+ 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}};
},
/**
* Method to fire event from native code
* bNoDetach is required for events which cause an exception which needs to be caught in native code
*/
- fireDocumentEvent: function(type, data, bNoDetach) {
+ fireDocumentEvent: function (type, data, bNoDetach) {
var evt = createEvent(type, data);
- if (typeof documentEventHandlers[type] != 'undefined') {
- if( bNoDetach ) {
+ if (typeof documentEventHandlers[type] !== 'undefined') {
+ if (bNoDetach) {
documentEventHandlers[type].fire(evt);
- }
- else {
- setTimeout(function() {
+ } else {
+ setTimeout(function () {
// Fire deviceready on listeners that were registered before cordova.js was loaded.
- if (type == 'deviceready') {
+ if (type === 'deviceready') {
document.dispatchEvent(evt);
}
documentEventHandlers[type].fire(evt);
@@ -153,10 +153,10 @@
document.dispatchEvent(evt);
}
},
- fireWindowEvent: function(type, data) {
- var evt = createEvent(type,data);
- if (typeof windowEventHandlers[type] != 'undefined') {
- setTimeout(function() {
+ fireWindowEvent: function (type, data) {
+ var evt = createEvent(type, data);
+ if (typeof windowEventHandlers[type] !== 'undefined') {
+ setTimeout(function () {
windowEventHandlers[type].fire(evt);
}, 0);
} else {
@@ -170,7 +170,7 @@
// Randomize the starting callbackId to avoid collisions after refreshing or navigating.
// This way, it's very unlikely that any new callback would get the same callbackId as an old callback.
callbackId: Math.floor(Math.random() * 2000000000),
- callbacks: {},
+ callbacks: {},
callbackStatus: {
NO_RESULT: 0,
OK: 1,
@@ -187,14 +187,14 @@
/**
* Called by native code when returning successful result from an action.
*/
- callbackSuccess: function(callbackId, args) {
+ callbackSuccess: function (callbackId, args) {
cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback);
},
/**
* Called by native code when returning error result from an action.
*/
- callbackError: function(callbackId, args) {
+ callbackError: function (callbackId, args) {
// TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative.
// Derive success from status.
cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback);
@@ -203,11 +203,11 @@
/**
* Called by native code when returning the result from an action.
*/
- callbackFromNative: function(callbackId, isSuccess, status, args, keepCallback) {
+ callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) {
try {
var callback = cordova.callbacks[callbackId];
if (callback) {
- if (isSuccess && status == cordova.callbackStatus.OK) {
+ if (isSuccess && status === cordova.callbackStatus.OK) {
callback.success && callback.success.apply(null, args);
} else if (!isSuccess) {
callback.fail && callback.fail.apply(null, args);
@@ -224,24 +224,22 @@
delete cordova.callbacks[callbackId];
}
}
- }
- catch (err) {
- var msg = "Error in " + (isSuccess ? "Success" : "Error") + " callbackId: " + callbackId + " : " + err;
+ } catch (err) {
+ var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err;
console && console.log && console.log(msg);
- cordova.fireWindowEvent("cordovacallbackerror", { 'message': msg });
+ cordova.fireWindowEvent('cordovacallbackerror', { 'message': msg });
throw err;
}
},
- addConstructor: function(func) {
- channel.onCordovaReady.subscribe(function() {
+ addConstructor: function (func) {
+ channel.onCordovaReady.subscribe(function () {
try {
func();
- } catch(e) {
- console.log("Failed to run constructor: " + e);
+ } catch (e) {
+ console.log('Failed to run constructor: ' + e);
}
});
}
};
-
module.exports = cordova;
diff --git a/src/cordova_b.js b/src/cordova_b.js
index a66a106..4e918f5 100644
--- a/src/cordova_b.js
+++ b/src/cordova_b.js
@@ -21,12 +21,10 @@
// Workaround for Windows 10 in hosted environment case
// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object
-if (window.cordova && !(window.cordova instanceof HTMLElement)) {
- throw new Error("cordova already defined");
+if (window.cordova && !(window.cordova instanceof HTMLElement)) { // eslint-disable-line no-undef
+ throw new Error('cordova already defined');
}
-/*global symbolList*/
-
var channel = require('cordova/channel');
var platform = require('cordova/platform');
@@ -42,48 +40,48 @@
/**
* Houses custom event handlers to intercept on document + window event listeners.
*/
-var documentEventHandlers = {},
- windowEventHandlers = {};
+var documentEventHandlers = {};
+var windowEventHandlers = {};
-document.addEventListener = function(evt, handler, capture) {
+document.addEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
- if (typeof documentEventHandlers[e] != 'undefined') {
+ if (typeof documentEventHandlers[e] !== 'undefined') {
documentEventHandlers[e].subscribe(handler);
} else {
m_document_addEventListener.call(document, evt, handler, capture);
}
};
-window.addEventListener = function(evt, handler, capture) {
+window.addEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
- if (typeof windowEventHandlers[e] != 'undefined') {
+ if (typeof windowEventHandlers[e] !== 'undefined') {
windowEventHandlers[e].subscribe(handler);
} else {
m_window_addEventListener.call(window, evt, handler, capture);
}
};
-document.removeEventListener = function(evt, handler, capture) {
+document.removeEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
// If unsubscribing from an event that is handled by a plugin
- if (typeof documentEventHandlers[e] != "undefined") {
+ if (typeof documentEventHandlers[e] !== 'undefined') {
documentEventHandlers[e].unsubscribe(handler);
} else {
m_document_removeEventListener.call(document, evt, handler, capture);
}
};
-window.removeEventListener = function(evt, handler, capture) {
+window.removeEventListener = function (evt, handler, capture) {
var e = evt.toLowerCase();
// If unsubscribing from an event that is handled by a plugin
- if (typeof windowEventHandlers[e] != "undefined") {
+ if (typeof windowEventHandlers[e] !== 'undefined') {
windowEventHandlers[e].unsubscribe(handler);
} else {
m_window_removeEventListener.call(window, evt, handler, capture);
}
};
-function createEvent(type, data) {
+function createEvent (type, data) {
var event = document.createEvent('Events');
event.initEvent(type, false, false);
if (data) {
@@ -96,28 +94,31 @@
return event;
}
-
+/* eslint-disable no-undef */
var cordova = {
- platformVersion:PLATFORM_VERSION_BUILD_LABEL,
- version:PLATFORM_VERSION_BUILD_LABEL,
+ platformVersion: PLATFORM_VERSION_BUILD_LABEL,
+ version: PLATFORM_VERSION_BUILD_LABEL,
require: require,
- platformId:platform.id,
+ platformId: platform.id,
+
+ /* eslint-enable no-undef */
+
/**
* Methods to add/remove your own addEventListener hijacking on document + window.
*/
- addWindowEventHandler:function(event) {
+ addWindowEventHandler: function (event) {
return (windowEventHandlers[event] = channel.create(event));
},
- addStickyDocumentEventHandler:function(event) {
+ addStickyDocumentEventHandler: function (event) {
return (documentEventHandlers[event] = channel.createSticky(event));
},
- addDocumentEventHandler:function(event) {
+ addDocumentEventHandler: function (event) {
return (documentEventHandlers[event] = channel.create(event));
},
- removeWindowEventHandler:function(event) {
+ removeWindowEventHandler: function (event) {
delete windowEventHandlers[event];
},
- removeDocumentEventHandler:function(event) {
+ removeDocumentEventHandler: function (event) {
delete documentEventHandlers[event];
},
/**
@@ -125,24 +126,23 @@
*
* @return object
*/
- getOriginalHandlers: function() {
+ getOriginalHandlers: function () {
return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener},
- 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}};
+ 'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}};
},
/**
* Method to fire event from native code
* bNoDetach is required for events which cause an exception which needs to be caught in native code
*/
- fireDocumentEvent: function(type, data, bNoDetach) {
+ fireDocumentEvent: function (type, data, bNoDetach) {
var evt = createEvent(type, data);
- if (typeof documentEventHandlers[type] != 'undefined') {
- if( bNoDetach ) {
+ if (typeof documentEventHandlers[type] !== 'undefined') {
+ if (bNoDetach) {
documentEventHandlers[type].fire(evt);
- }
- else {
- setTimeout(function() {
+ } else {
+ setTimeout(function () {
// Fire deviceready on listeners that were registered before cordova.js was loaded.
- if (type == 'deviceready') {
+ if (type === 'deviceready') {
document.dispatchEvent(evt);
}
documentEventHandlers[type].fire(evt);
@@ -152,10 +152,10 @@
document.dispatchEvent(evt);
}
},
- fireWindowEvent: function(type, data) {
- var evt = createEvent(type,data);
- if (typeof windowEventHandlers[type] != 'undefined') {
- setTimeout(function() {
+ fireWindowEvent: function (type, data) {
+ var evt = createEvent(type, data);
+ if (typeof windowEventHandlers[type] !== 'undefined') {
+ setTimeout(function () {
windowEventHandlers[type].fire(evt);
}, 0);
} else {
@@ -169,7 +169,7 @@
// Randomize the starting callbackId to avoid collisions after refreshing or navigating.
// This way, it's very unlikely that any new callback would get the same callbackId as an old callback.
callbackId: Math.floor(Math.random() * 2000000000),
- callbacks: {},
+ callbacks: {},
callbackStatus: {
NO_RESULT: 0,
OK: 1,
@@ -185,13 +185,13 @@
/**
* Called by native code when returning successful result from an action.
*/
- callbackSuccess: function(callbackId, args) {
+ callbackSuccess: function (callbackId, args) {
this.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback);
},
/**
* Called by native code when returning error result from an action.
*/
- callbackError: function(callbackId, args) {
+ callbackError: function (callbackId, args) {
// TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative.
// Derive success from status.
this.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback);
@@ -199,11 +199,11 @@
/**
* Called by native code when returning the result from an action.
*/
- callbackFromNative: function(callbackId, isSuccess, status, args, keepCallback) {
+ callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) {
try {
var callback = cordova.callbacks[callbackId];
if (callback) {
- if (isSuccess && status == cordova.callbackStatus.OK) {
+ if (isSuccess && status === cordova.callbackStatus.OK) {
callback.success && callback.success.apply(null, args);
} else if (!isSuccess) {
callback.fail && callback.fail.apply(null, args);
@@ -221,20 +221,19 @@
delete cordova.callbacks[callbackId];
}
}
- }
- catch(err) {
- var msg = "Error in " + (isSuccess ? "Success" : "Error") + " callbackId: " + callbackId + " : " + err;
+ } catch (err) {
+ var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err;
console && console.log && console.log(msg);
- this.fireWindowEvent("cordovacallbackerror", { 'message': msg });
+ this.fireWindowEvent('cordovacallbackerror', { 'message': msg });
throw err;
}
},
- addConstructor: function(func) {
- channel.onCordovaReady.subscribe(function() {
+ addConstructor: function (func) {
+ channel.onCordovaReady.subscribe(function () {
try {
func();
- } catch(e) {
- console.log("Failed to run constructor: " + e);
+ } catch (e) {
+ console.log('Failed to run constructor: ' + e);
}
});
}
diff --git a/src/legacy-exec/test/exec.js b/src/legacy-exec/test/exec.js
index a5ea8e8..566d681 100644
--- a/src/legacy-exec/test/exec.js
+++ b/src/legacy-exec/test/exec.js
@@ -19,4 +19,4 @@
*
*/
-module.exports = jasmine.createSpy();
+module.exports = jasmine.createSpy(); // eslint-disable-line no-undef
diff --git a/src/legacy-exec/test/platform.js b/src/legacy-exec/test/platform.js
index b0ff2d7..08bb635 100644
--- a/src/legacy-exec/test/platform.js
+++ b/src/legacy-exec/test/platform.js
@@ -21,10 +21,10 @@
module.exports = {
id: 'test platform',
- bootstrap: function() {
+ bootstrap: function () {
var propertyreplacer = require('cordova/test/propertyreplacer');
- require('cordova/builder').replaceHookForTesting = function(obj, key) {
+ require('cordova/builder').replaceHookForTesting = function (obj, key) {
// This doesn't clean up non-clobbering assignments, nor does it work for
// getters. It does work to un-clobber clobbered / merged symbols, which
// is generally good enough for tests.
diff --git a/src/legacy-exec/test/test/mockxhr.js b/src/legacy-exec/test/test/mockxhr.js
index 871811d..c016523 100644
--- a/src/legacy-exec/test/test/mockxhr.js
+++ b/src/legacy-exec/test/test/mockxhr.js
@@ -19,14 +19,14 @@
*
*/
-/*jshint -W020 */
+/* jshint -W020 */
var utils = require('cordova/utils');
var activeXhrs = [];
var isInstalled = false;
var origXhr = this.XMLHttpRequest;
-function MockXhr() {
+function MockXhr () {
this.requestHeaders = {};
this.readyState = 0;
@@ -36,7 +36,7 @@
this.clearResponse_();
}
-MockXhr.prototype.clearResponse_ = function() {
+MockXhr.prototype.clearResponse_ = function () {
this.url = null;
this.method = null;
this.async = null;
@@ -47,12 +47,12 @@
this.responseHeaders = {};
};
-MockXhr.prototype.setReadyState_ = function(value) {
+MockXhr.prototype.setReadyState_ = function (value) {
this.readyState = value;
this.onreadystatechange && this.onreadystatechange();
};
-MockXhr.prototype.open = function(method, url, async) {
+MockXhr.prototype.open = function (method, url, async) {
if (this.readyState !== 0 && this.readyState !== 4) {
throw Error('Tried to open MockXhr while request in progress.');
}
@@ -63,15 +63,15 @@
this.setReadyState_(1);
};
-MockXhr.prototype.setRequestHeader = function(key, val) {
- if (this.readyState != 1) {
+MockXhr.prototype.setRequestHeader = function (key, val) {
+ if (this.readyState !== 1) {
throw Error('Tried to setRequestHeader() without call to open()');
}
this.requestHeaders[key] = String(val);
};
-MockXhr.prototype.send = function(payload) {
- if (this.readyState != 1) {
+MockXhr.prototype.send = function (payload) {
+ if (this.readyState !== 1) {
throw Error('Tried to send MockXhr without call to open().');
}
this.requestPayload = payload;
@@ -80,21 +80,21 @@
activeXhrs.push(this);
};
-MockXhr.prototype.simulateResponse = function(statusCode, responseText, responseHeaders) {
- if (this.readyState != 2) {
+MockXhr.prototype.simulateResponse = function (statusCode, responseText, responseHeaders) {
+ if (this.readyState !== 2) {
throw Error('Call to simulateResponse() when MockXhr is in state ' + this.readyState);
}
for (var i = this.readyState; i <= 4; i++) {
- if (i == 2) {
+ if (i === 2) {
this.statusCode = statusCode;
this.responseHeaders = responseHeaders || this.responseHeaders;
}
- if (i == 4) {
+ if (i === 4) {
this.responseText = responseText;
}
this.setReadyState_(i);
}
- if (statusCode == 200) {
+ if (statusCode === 200) {
this.onload && this.onload();
} else {
this.onerror && this.onerror();
@@ -102,17 +102,17 @@
utils.arrayRemove(activeXhrs, this);
};
-function install() {
+function install () {
if (isInstalled) {
throw Error('mockxhr.install called without uninstall.');
}
isInstalled = true;
activeXhrs.length = 0;
- XMLHttpRequest = MockXhr;
+ XMLHttpRequest = MockXhr; // eslint-disable-line no-undef
}
-function uninstall() {
- XMLHttpRequest = origXhr;
+function uninstall () {
+ XMLHttpRequest = origXhr; // eslint-disable-line no-undef
isInstalled = false;
}
diff --git a/src/legacy-exec/test/test/modulereplacer.js b/src/legacy-exec/test/test/modulereplacer.js
index f9f1c0c..cc3abd7 100644
--- a/src/legacy-exec/test/test/modulereplacer.js
+++ b/src/legacy-exec/test/test/modulereplacer.js
@@ -19,15 +19,14 @@
*
*/
-/*global spyOn:false */
-
+/* eslint-disable no-undef */
var propertyreplacer = require('cordova/test/propertyreplacer');
-exports.replace = function(moduleName, newValue) {
+exports.replace = function (moduleName, newValue) {
propertyreplacer.stub(define.moduleMap, moduleName, null);
define.remove(moduleName);
- define(moduleName, function(require, exports, module) {
+ define(moduleName, function (require, exports, module) {
module.exports = newValue;
});
};
-
+/* eslint-enable no-undef */
diff --git a/src/legacy-exec/test/test/propertyreplacer.js b/src/legacy-exec/test/test/propertyreplacer.js
index 18c5d3b..57f7c34 100644
--- a/src/legacy-exec/test/test/propertyreplacer.js
+++ b/src/legacy-exec/test/test/propertyreplacer.js
@@ -19,23 +19,22 @@
*
*/
-
// Use this helper module to stub out properties within Jasmine tests.
// Original values will be restored after each test.
var curStubs = null;
-function removeAllStubs() {
- for (var i = curStubs.length - 1, stub; stub = curStubs[i]; --i) {
+function removeAllStubs () {
+ for (var i = curStubs.length - 1, stub; stub = curStubs[i]; --i) { // eslint-disable-line no-cond-assign
stub.obj[stub.key] = stub.value;
}
curStubs = null;
}
-exports.stub = function(obj, key, value) {
+exports.stub = function (obj, key, value) {
if (!curStubs) {
curStubs = [];
- jasmine.getEnv().currentSpec.after(removeAllStubs);
+ jasmine.getEnv().currentSpec.after(removeAllStubs); // eslint-disable-line no-undef
}
curStubs.push({
@@ -45,4 +44,3 @@
});
obj[key] = value;
};
-
diff --git a/src/legacy-exec/test/test/testmodule.js b/src/legacy-exec/test/test/testmodule.js
index 80eaf94..4a238d4 100644
--- a/src/legacy-exec/test/test/testmodule.js
+++ b/src/legacy-exec/test/test/testmodule.js
@@ -20,7 +20,7 @@
*/
module.exports = {
- func: function() {},
+ func: function () {},
num: 2,
obj: { str: 'hello' },
subObj: { str: 'testSubObj' }
diff --git a/src/scripts/require.js b/src/scripts/require.js
index 93d01c4..5c9bcd2 100644
--- a/src/scripts/require.js
+++ b/src/scripts/require.js
@@ -19,32 +19,30 @@
*
*/
-/*jshint -W079 */
-/*jshint -W020 */
+/* jshint -W079 */
+/* jshint -W020 */
-var require,
- define;
+var require;
+var define;
(function () {
- var modules = {},
+ var modules = {};
// Stack of moduleIds currently being built.
- requireStack = [],
+ var requireStack = [];
// Map of module ID -> index into requireStack of modules currently being built.
- inProgressModules = {},
- SEPARATOR = ".";
+ var inProgressModules = {};
+ var SEPARATOR = '.';
-
-
- function build(module) {
- var factory = module.factory,
- localRequire = function (id) {
- var resultantId = id;
- //Its a relative path, so lop off the last portion and add the id (minus "./")
- if (id.charAt(0) === ".") {
- resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2);
- }
- return require(resultantId);
- };
+ function build (module) {
+ var factory = module.factory;
+ var localRequire = function (id) {
+ var resultantId = id;
+ // Its a relative path, so lop off the last portion and add the id (minus "./")
+ if (id.charAt(0) === '.') {
+ resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2);
+ }
+ return require(resultantId);
+ };
module.exports = {};
delete module.factory;
factory(localRequire, module.exports, module);
@@ -53,10 +51,10 @@
require = function (id) {
if (!modules[id]) {
- throw "module " + id + " not found";
+ throw 'module ' + id + ' not found';
} else if (id in inProgressModules) {
var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id;
- throw "Cycle in require graph: " + cycle;
+ throw 'Cycle in require graph: ' + cycle;
}
if (modules[id].factory) {
try {
@@ -73,7 +71,7 @@
define = function (id, factory) {
if (modules[id]) {
- throw "module " + id + " already defined";
+ throw 'module ' + id + ' already defined';
}
modules[id] = {
@@ -89,8 +87,8 @@
define.moduleMap = modules;
})();
-//Export for use in node
-if (typeof module === "object" && typeof require === "function") {
+// Export for use in node
+if (typeof module === 'object' && typeof require === 'function') {
module.exports.require = require;
module.exports.define = define;
}
diff --git a/test/.eslintrc.yml b/test/.eslintrc.yml
new file mode 100644
index 0000000..6afba65
--- /dev/null
+++ b/test/.eslintrc.yml
@@ -0,0 +1,2 @@
+env:
+ jasmine: true
\ No newline at end of file
diff --git a/test/android/test.exec.js b/test/android/test.exec.js
index a8e0b24..0f0cd9e 100644
--- a/test/android/test.exec.js
+++ b/test/android/test.exec.js
@@ -20,35 +20,36 @@
*/
describe('android exec.processMessages', function () {
- var cordova = require('cordova'),
- exec = require('cordova/android/exec'),
- nativeApiProvider = require('cordova/android/nativeapiprovider'),
- origNativeApi = nativeApiProvider.get();
+ var cordova = require('cordova');
+ var exec = require('cordova/android/exec');
+ var nativeApiProvider = require('cordova/android/nativeapiprovider');
+ var origNativeApi = nativeApiProvider.get();
var nativeApi = {
exec: jasmine.createSpy('nativeApi.exec'),
- retrieveJsMessages: jasmine.createSpy('nativeApi.retrieveJsMessages'),
+ retrieveJsMessages: jasmine.createSpy('nativeApi.retrieveJsMessages')
};
-
- beforeEach(function() {
+ beforeEach(function () {
nativeApi.exec.reset();
nativeApi.retrieveJsMessages.reset();
// Avoid a log message warning about the lack of _nativeApi.
exec.setJsToNativeBridgeMode(exec.jsToNativeModes.PROMPT);
nativeApiProvider.set(nativeApi);
- var origPrompt = typeof prompt == 'undefined' ? undefined : prompt;
- prompt = function() { return 1234; };
+ /* eslint-disable no-undef */
+ var origPrompt = typeof prompt === 'undefined' ? undefined : prompt;
+ prompt = function () { return 1234; };
exec.init();
prompt = origPrompt;
+ /* eslint-enable no-undef */
});
- afterEach(function() {
+ afterEach(function () {
nativeApiProvider.set(origNativeApi);
cordova.callbacks = {};
});
- function createCallbackMessage(success, keepCallback, status, callbackId, encodedPayload) {
+ function createCallbackMessage (success, keepCallback, status, callbackId, encodedPayload) {
var ret = '';
ret += success ? 'S' : 'F';
ret += keepCallback ? '1' : '0';
@@ -59,18 +60,18 @@
return ret;
}
- describe('exec', function() {
- it('should process messages in order even when called recursively', function() {
+ describe('exec', function () {
+ it('should process messages in order even when called recursively', function () {
var firstCallbackId = null;
var callCount = 0;
- nativeApi.exec.andCallFake(function(secret, service, action, callbackId, argsJson) {
+ nativeApi.exec.andCallFake(function (secret, service, action, callbackId, argsJson) {
expect(secret).toBe(1234);
++callCount;
- if (callCount == 1) {
+ if (callCount === 1) {
firstCallbackId = callbackId;
return '';
}
- if (callCount == 2) {
+ if (callCount === 2) {
return createCallbackMessage(true, false, 1, firstCallbackId, 't') +
createCallbackMessage(true, false, 1, callbackId, 'stwo');
}
@@ -80,13 +81,13 @@
var win2Called = false;
var winSpy3 = jasmine.createSpy('win3');
- function win1(value) {
+ function win1 (value) {
expect(value).toBe(true);
exec(winSpy3, null, 'Service', 'action', []);
expect(win2Called).toBe(false, 'win1 should finish before win2 starts');
}
- function win2(value) {
+ function win2 (value) {
win2Called = true;
expect(value).toBe('two');
expect(winSpy3).not.toHaveBeenCalled();
@@ -94,13 +95,13 @@
exec(win1, null, 'Service', 'action', []);
exec(win2, null, 'Service', 'action', []);
- waitsFor(function() { return winSpy3.wasCalled }, 200);
- runs(function() {
+ waitsFor(function () { return winSpy3.wasCalled; }, 200);
+ runs(function () {
expect(winSpy3).toHaveBeenCalledWith('three');
});
});
- it('should process messages asynchronously', function() {
- nativeApi.exec.andCallFake(function(secret, service, action, callbackId, argsJson) {
+ it('should process messages asynchronously', function () {
+ nativeApi.exec.andCallFake(function (secret, service, action, callbackId, argsJson) {
expect(secret).toBe(1234);
return createCallbackMessage(true, false, 1, callbackId, 'stwo');
});
@@ -109,138 +110,138 @@
exec(winSpy, null, 'Service', 'action', []);
expect(winSpy).not.toHaveBeenCalled();
- waitsFor(function() { return winSpy.wasCalled }, 200);
+ waitsFor(function () { return winSpy.wasCalled; }, 200);
});
});
- describe('processMessages', function() {
- var origCallbackFromNative = cordova.callbackFromNative,
- callbackSpy = jasmine.createSpy('callbackFromNative');
+ describe('processMessages', function () {
+ var origCallbackFromNative = cordova.callbackFromNative;
+ var callbackSpy = jasmine.createSpy('callbackFromNative');
- beforeEach(function() {
+ beforeEach(function () {
callbackSpy.reset();
cordova.callbackFromNative = callbackSpy;
});
- afterEach(function() {
+ afterEach(function () {
cordova.callbackFromNative = origCallbackFromNative;
});
- function performExecAndReturn(messages) {
+ function performExecAndReturn (messages) {
- nativeApi.exec.andCallFake(function(secret, service, action, callbackId, argsJson) {
+ nativeApi.exec.andCallFake(function (secret, service, action, callbackId, argsJson) {
return messages;
});
exec(null, null, 'Service', 'action', []);
// note: sometimes we need to wait for multiple callbacks, this returns after one
// see 'should handle multiple messages' below
- waitsFor(function() { return callbackSpy.wasCalled }, 200);
+ waitsFor(function () { return callbackSpy.wasCalled; }, 200);
}
- it('should handle payloads of false', function() {
+ it('should handle payloads of false', function () {
var messages = createCallbackMessage(true, true, 1, 'id', 'f');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [false], true);
});
});
- it('should handle payloads of true', function() {
+ it('should handle payloads of true', function () {
var messages = createCallbackMessage(true, true, 1, 'id', 't');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [true], true);
});
});
- it('should handle payloads of null', function() {
+ it('should handle payloads of null', function () {
var messages = createCallbackMessage(true, true, 1, 'id', 'N');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [null], true);
});
});
- it('should handle payloads of numbers', function() {
+ it('should handle payloads of numbers', function () {
var messages = createCallbackMessage(true, true, 1, 'id', 'n-3.3');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [-3.3], true);
});
});
- it('should handle payloads of strings', function() {
+ it('should handle payloads of strings', function () {
var messages = createCallbackMessage(true, true, 1, 'id', 'sHello world');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, ['Hello world'], true);
});
});
- it('should handle payloads of JSON objects', function() {
+ it('should handle payloads of JSON objects', function () {
var messages = createCallbackMessage(true, true, 1, 'id', '{"a":1}');
performExecAndReturn(messages);
- runs(function() {
- expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [{a:1}], true);
+ runs(function () {
+ expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [{a: 1}], true);
});
});
- it('should handle payloads of JSON arrays', function() {
+ it('should handle payloads of JSON arrays', function () {
var messages = createCallbackMessage(true, true, 1, 'id', '[1]');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [[1]], true);
});
});
- it('should handle other callback opts', function() {
+ it('should handle other callback opts', function () {
var messages = createCallbackMessage(false, false, 3, 'id', 'sfoo');
performExecAndReturn(messages);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', false, 3, ['foo'], false);
});
});
- it('should handle multiple messages', function() {
+ it('should handle multiple messages', function () {
var message1 = createCallbackMessage(false, false, 3, 'id', 'sfoo');
var message2 = createCallbackMessage(true, true, 1, 'id', 'f');
var messages = message1 + message2;
performExecAndReturn(messages);
// need to wait for ALL the callbacks before we check our expects
- waitsFor(function(){
+ waitsFor(function () {
return callbackSpy.calls.length > 1;
- },200);
+ }, 200);
- runs(function() {
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', false, 3, ['foo'], false);
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [false], true);
});
});
- it('should poll for more messages when hitting an *', function() {
+ it('should poll for more messages when hitting an *', function () {
var message1 = createCallbackMessage(false, false, 3, 'id', 'sfoo');
var message2 = createCallbackMessage(true, true, 1, 'id', 'f');
- nativeApi.retrieveJsMessages.andCallFake(function() {
+ nativeApi.retrieveJsMessages.andCallFake(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', false, 3, ['foo'], false);
callbackSpy.reset();
return message2;
});
performExecAndReturn(message1 + '*');
- waitsFor(function() { return nativeApi.retrieveJsMessages.wasCalled }, 500);
- runs(function() {
+ waitsFor(function () { return nativeApi.retrieveJsMessages.wasCalled; }, 500);
+ runs(function () {
expect(callbackSpy).toHaveBeenCalledWith('id', true, 1, [false], true);
});
});
- it('should call callbacks in order when one callback enqueues another.', function() {
+ it('should call callbacks in order when one callback enqueues another.', function () {
var message1 = createCallbackMessage(false, false, 3, 'id', 'scall1');
var message2 = createCallbackMessage(false, false, 3, 'id', 'scall2');
var message3 = createCallbackMessage(false, false, 3, 'id', 'scall3');
- callbackSpy.andCallFake(function() {
- if (callbackSpy.calls.length == 1) {
+ callbackSpy.andCallFake(function () {
+ if (callbackSpy.calls.length === 1) {
performExecAndReturn(message3);
}
});
performExecAndReturn(message1 + message2);
// need to wait for ALL the callbacks before we check our expects
- waitsFor(function(){
+ waitsFor(function () {
return callbackSpy.calls.length > 2;
- },200);
+ }, 200);
- runs(function() {
+ runs(function () {
expect(callbackSpy.argsForCall.length).toEqual(3);
expect(callbackSpy.argsForCall[0]).toEqual(['id', false, 3, ['call1'], false]);
expect(callbackSpy.argsForCall[1]).toEqual(['id', false, 3, ['call2'], false]);
diff --git a/test/ios/test.exec.js b/test/ios/test.exec.js
index 8006277..ac18d86 100644
--- a/test/ios/test.exec.js
+++ b/test/ios/test.exec.js
@@ -19,31 +19,26 @@
*
*/
-/*jshint jasmine:true*/
+/* jshint jasmine:true */
describe('iOS exec', function () {
- var SERVICE = 'TestService';
- var ACTION = 'TestAction';
- var VC_ADDR = '1234';
-
- var cordova = require('cordova');
var exec = require('cordova/ios/exec');
var winSpy = jasmine.createSpy('win');
var failSpy = jasmine.createSpy('fail');
var origUserAgent = navigator.userAgent;
- beforeEach(function() {
+ beforeEach(function () {
winSpy.reset();
failSpy.reset();
});
- afterEach(function() {
- navigator.__defineGetter__('userAgent', function(){
+ afterEach(function () {
+ navigator.__defineGetter__('userAgent', function () {
return origUserAgent;
});
});
- function simulateNativeBehaviour(codes) {
+ function simulateNativeBehaviour (codes) { // eslint-disable-line no-unused-vars
var execPayload = JSON.parse(exec.nativeFetchMessages());
while (execPayload.length && codes.length) {
var curPayload = execPayload.shift();
@@ -56,8 +51,8 @@
expect(codes.length).toBe(0, 'Wrong number of results.');
}
- describe('exec', function() {
- it('should return "" from nativeFetchMessages work when nothing is pending.', function() {
+ describe('exec', function () {
+ it('should return "" from nativeFetchMessages work when nothing is pending.', function () {
var execPayload = exec.nativeFetchMessages();
expect(execPayload).toBe('');
});
diff --git a/test/test.argscheck.js b/test/test.argscheck.js
index 10a4175..441bd38 100644
--- a/test/test.argscheck.js
+++ b/test/test.argscheck.js
@@ -19,61 +19,61 @@
*
*/
-describe('argscheck', function() {
+describe('argscheck', function () {
var argscheck = require('cordova/argscheck');
- function createTestFunc(allowNull) {
- return function testFunc(num, obj, arr, str, date, func) {
+ function createTestFunc (allowNull) {
+ return function testFunc (num, obj, arr, str, date, func) {
var spec = allowNull ? 'NOASDF*' : 'noasdf*';
argscheck.checkArgs(spec, 'testFunc', arguments);
};
}
- afterEach(function() {
- argscheck.enableChecks = true;
+ afterEach(function () {
+ argscheck.enableChecks = true;
});
- it('should not throw when given valid args', function() {
+ it('should not throw when given valid args', function () {
var testFunc = createTestFunc(false);
testFunc(0, {}, [], '', new Date(), testFunc, 1);
});
- it('should not throw when given valid optional args', function() {
+ it('should not throw when given valid optional args', function () {
var testFunc = createTestFunc(true);
testFunc(0, {}, [], '', new Date(), testFunc, '');
});
- it('should not throw when given missing optional args', function() {
+ it('should not throw when given missing optional args', function () {
var testFunc = createTestFunc(true);
testFunc();
});
- it('should not throw when given null optional args', function() {
+ it('should not throw when given null optional args', function () {
var testFunc = createTestFunc(true);
testFunc(null, null, null, null, null, null, null);
});
- it('should throw when given invalid number', function() {
+ it('should throw when given invalid number', function () {
var testFunc = createTestFunc(true);
- expect(function() { testFunc('foo', null, null, null, null, null) }).toThrow('Wrong type for parameter "num" of testFunc: Expected Number, but got String.');
+ expect(function () { testFunc('foo', null, null, null, null, null); }).toThrow('Wrong type for parameter "num" of testFunc: Expected Number, but got String.');
});
- it('should throw when given invalid object', function() {
+ it('should throw when given invalid object', function () {
var testFunc = createTestFunc(true);
// Do not allow arrays for objects since we're usually dealing with JSON when expecting objects.
- expect(function() { testFunc(null, [], null, null, null, null) }).toThrow('Wrong type for parameter "obj" of testFunc: Expected Object, but got Array.');
+ expect(function () { testFunc(null, [], null, null, null, null); }).toThrow('Wrong type for parameter "obj" of testFunc: Expected Object, but got Array.');
});
- it('should throw when given invalid array', function() {
+ it('should throw when given invalid array', function () {
var testFunc = createTestFunc(true);
- expect(function() { testFunc(null, null, {}, null, null, null) }).toThrow('Wrong type for parameter "arr" of testFunc: Expected Array, but got Object.');
+ expect(function () { testFunc(null, null, {}, null, null, null); }).toThrow('Wrong type for parameter "arr" of testFunc: Expected Array, but got Object.');
});
- it('should throw when given invalid string', function() {
+ it('should throw when given invalid string', function () {
var testFunc = createTestFunc(true);
- expect(function() { testFunc(null, null, null, 5, null, null) }).toThrow('Wrong type for parameter "str" of testFunc: Expected String, but got Number.');
+ expect(function () { testFunc(null, null, null, 5, null, null); }).toThrow('Wrong type for parameter "str" of testFunc: Expected String, but got Number.');
});
- it('should throw when given invalid date', function() {
+ it('should throw when given invalid date', function () {
var testFunc = createTestFunc(true);
- expect(function() { testFunc(null, null, null, null, 233, null) }).toThrow('Wrong type for parameter "date" of testFunc: Expected Date, but got Number.');
+ expect(function () { testFunc(null, null, null, null, 233, null); }).toThrow('Wrong type for parameter "date" of testFunc: Expected Date, but got Number.');
});
- it('should throw when given invalid function', function() {
+ it('should throw when given invalid function', function () {
var testFunc = createTestFunc(true);
- expect(function() { testFunc(null, null, null, null, null, new Date) }).toThrow('Wrong type for parameter "func" of testFunc: Expected Function, but got Date.');
+ expect(function () { testFunc(null, null, null, null, null, new Date()); }).toThrow('Wrong type for parameter "func" of testFunc: Expected Function, but got Date.');
});
- it('should not throw when checking is disabled', function() {
+ it('should not throw when checking is disabled', function () {
var testFunc = createTestFunc(false);
argscheck.enableChecks = false;
testFunc();
diff --git a/test/test.base64.js b/test/test.base64.js
index 6248a36..317fe26 100644
--- a/test/test.base64.js
+++ b/test/test.base64.js
@@ -19,40 +19,41 @@
*
*/
-describe("base64", function () {
+describe('base64', function () {
var base64 = require('cordova/base64');
- it("can base64 encode strings correctly", function () {
- var arrayBuffer = new ArrayBuffer(6),
- view = new Uint8Array(arrayBuffer);
+ it('can base64 encode strings correctly', function () {
+ var arrayBuffer = new ArrayBuffer(6);
+ var view = new Uint8Array(arrayBuffer);
for (var i = 0; i < view.length; i++) {
view[i] = i;
}
- expect(base64.fromArrayBuffer(arrayBuffer.slice(0,1))).toBe('AA==');
- expect(base64.fromArrayBuffer(arrayBuffer.slice(0,2))).toBe('AAE=');
- expect(base64.fromArrayBuffer(arrayBuffer.slice(0,3))).toBe('AAEC');
- expect(base64.fromArrayBuffer(arrayBuffer.slice(0,4))).toBe('AAECAw==');
- expect(base64.fromArrayBuffer(arrayBuffer.slice(0,5))).toBe('AAECAwQ=');
+ expect(base64.fromArrayBuffer(arrayBuffer.slice(0, 1))).toBe('AA==');
+ expect(base64.fromArrayBuffer(arrayBuffer.slice(0, 2))).toBe('AAE=');
+ expect(base64.fromArrayBuffer(arrayBuffer.slice(0, 3))).toBe('AAEC');
+ expect(base64.fromArrayBuffer(arrayBuffer.slice(0, 4))).toBe('AAECAw==');
+ expect(base64.fromArrayBuffer(arrayBuffer.slice(0, 5))).toBe('AAECAwQ=');
expect(base64.fromArrayBuffer(arrayBuffer)).toBe('AAECAwQF');
});
- it("can base64 encode a binary string in an ArrayBuffer", function () {
- var arrayBuffer = new ArrayBuffer(256),
- view = new Uint8Array(arrayBuffer);
- base64string = 'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w=='
+ it('can base64 encode a binary string in an ArrayBuffer', function () {
+ var arrayBuffer = new ArrayBuffer(256);
+ var view = new Uint8Array(arrayBuffer);
+ /* eslint-disable no-undef */
+ base64string = 'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==';
- for (var i = 0; i < view.length; i++) {
- view[i] = i;
- }
+ for (var i = 0; i < view.length; i++) {
+ view[i] = i;
+ }
- expect(base64.fromArrayBuffer(arrayBuffer)).toBe(base64string);
+ expect(base64.fromArrayBuffer(arrayBuffer)).toBe(base64string);
});
- it("can base64 encode an text string in an ArrayBuffer", function () {
- var orig = 'Some Awesome Test This Is!'
- , base64string = typeof btoa != 'undefined' ? btoa(orig) : new Buffer('Some Awesome Test This Is!', 'binary').toString('base64')
- , arrayBuffer = new ArrayBuffer(orig.length)
- , view = new Uint8Array(arrayBuffer);
+ it('can base64 encode an text string in an ArrayBuffer', function () {
+ var orig = 'Some Awesome Test This Is!';
+ var base64string = typeof btoa !== 'undefined' ? btoa(orig) : Buffer.from('Some Awesome Test This Is!', 'binary').toString('base64');
+ var arrayBuffer = new ArrayBuffer(orig.length);
+ var view = new Uint8Array(arrayBuffer);
for (var i = 0; i < orig.length; i++) {
view[i] = orig.charCodeAt(i);
@@ -61,13 +62,13 @@
expect(base64.fromArrayBuffer(arrayBuffer)).toBe(base64string);
});
- it("can decode a base64-encoded text string into an ArrayBuffer", function () {
- var orig = 'Some Awesome Test This Is!',
- base64string = typeof btoa != 'undefined' ? btoa(orig) : new Buffer(orig, 'binary').toString('base64');
-
+ it('can decode a base64-encoded text string into an ArrayBuffer', function () {
+ var orig = 'Some Awesome Test This Is!';
+ var base64string = typeof btoa !== 'undefined' ? btoa(orig) : Buffer.from(orig, 'binary').toString('base64');
+ /* eslint-enable no-undef */
var arrayBuffer = base64.toArrayBuffer(base64string);
- var testString = "";
+ var testString = '';
var view = new Uint8Array(arrayBuffer);
for (var i = 0; i < view.byteLength; i++) {
testString += String.fromCharCode(view[i]);
diff --git a/test/test.builder.js b/test/test.builder.js
index 19f4769..324e00d 100644
--- a/test/test.builder.js
+++ b/test/test.builder.js
@@ -19,48 +19,47 @@
*
*/
-describe("builder", function () {
+describe('builder', function () {
var builder = require('cordova/builder');
- it("includes the module into the target", function () {
+ it('includes the module into the target', function () {
- var target = {},
- objects = {
- foo: {
- path: "cordova/builder"
- }
- };
-
+ var target = {};
+ var objects = {
+ foo: {
+ path: 'cordova/builder'
+ }
+ };
builder.buildIntoAndClobber(objects, target);
expect(target.foo).toBeDefined();
- expect(target.foo).toBe(require("cordova/builder"));
+ expect(target.foo).toBe(require('cordova/builder'));
});
- it("returns an empty object literal if no path", function () {
- var target = {},
- objects = {cat: {}};
+ it('returns an empty object literal if no path', function () {
+ var target = {};
+ var objects = {cat: {}};
builder.buildIntoButDoNotClobber(objects, target);
expect(target.cat).toBeDefined();
});
- it("builds out the children", function () {
+ it('builds out the children', function () {
- var target = {},
- objects = {
- homer: {
- children: {
- bart: {},
- lisa: {},
- maggie: {
- path: "cordova/builder"
- }
- }
- }
- };
+ var target = {};
+ var objects = {
+ homer: {
+ children: {
+ bart: {},
+ lisa: {},
+ maggie: {
+ path: 'cordova/builder'
+ }
+ }
+ }
+ };
builder.buildIntoButDoNotClobber(objects, target);
diff --git a/test/test.channel.js b/test/test.channel.js
index dcd6700..c50fcf1 100644
--- a/test/test.channel.js
+++ b/test/test.channel.js
@@ -19,66 +19,66 @@
*
*/
-describe("channel", function () {
- var channel = require('cordova/channel'),
- multiChannel,
- stickyChannel;
+describe('channel', function () {
+ var channel = require('cordova/channel');
+ var multiChannel;
+ var stickyChannel;
- function callCount(spy) {
+ function callCount (spy) {
return spy.argsForCall.length;
}
- function expectCallCount(spy, count) {
+ function expectCallCount (spy, count) {
expect(callCount(spy)).toEqual(count);
}
- beforeEach(function() {
+ beforeEach(function () {
multiChannel = channel.create('multiChannel');
stickyChannel = channel.createSticky('stickyChannel');
});
- describe("subscribe method", function() {
- it("should throw an exception if no arguments are provided", function() {
- expect(function() {
+ describe('subscribe method', function () {
+ it('should throw an exception if no arguments are provided', function () {
+ expect(function () {
multiChannel.subscribe();
}).toThrow();
- expect(function() {
+ expect(function () {
multiChannel.subscribe(null);
}).toThrow();
- expect(function() {
+ expect(function () {
multiChannel.subscribe(undefined);
}).toThrow();
});
- it("should accept a function or an EventListener object implementing the handleEvent interface", function() {
- expect(function() {
+ it('should accept a function or an EventListener object implementing the handleEvent interface', function () {
+ expect(function () {
multiChannel.subscribe(function () {});
}).not.toThrow();
- expect(function() {
+ expect(function () {
multiChannel.subscribe({handleEvent: function () {}});
}).not.toThrow();
- expect(function() {
- multiChannel.subscribe({apply:function(){},call:function(){}});
+ expect(function () {
+ multiChannel.subscribe({apply: function () {}, call: function () {}});
}).toThrow();
});
- it("should not change number of handlers if no function is provided", function() {
+ it('should not change number of handlers if no function is provided', function () {
var initialLength = multiChannel.numHandlers;
try {
multiChannel.subscribe();
- } catch(e) {}
+ } catch (e) {}
expect(multiChannel.numHandlers).toEqual(initialLength);
try {
multiChannel.subscribe(null);
- } catch(e) {}
+ } catch (e) {}
expect(multiChannel.numHandlers).toEqual(initialLength);
});
- it("should not change number of handlers when subscribing same function multiple times", function() {
- var handler = function(){};
+ it('should not change number of handlers when subscribing same function multiple times', function () {
+ var handler = function () {};
multiChannel.subscribe(handler);
multiChannel.subscribe(handler);
@@ -90,38 +90,38 @@
});
});
- describe("unsubscribe method", function() {
- it("should throw an exception if no arguments are provided", function() {
- expect(function() {
+ describe('unsubscribe method', function () {
+ it('should throw an exception if no arguments are provided', function () {
+ expect(function () {
multiChannel.unsubscribe();
}).toThrow();
- expect(function() {
+ expect(function () {
multiChannel.unsubscribe(null);
}).toThrow();
});
- it("should accept a function or an EventListener object implementing the handleEvent interface", function() {
- expect(function() {
+ it('should accept a function or an EventListener object implementing the handleEvent interface', function () {
+ expect(function () {
multiChannel.unsubscribe(function () {});
}).not.toThrow();
- expect(function() {
+ expect(function () {
multiChannel.unsubscribe({handleEvent: function () {}});
}).not.toThrow();
- expect(function() {
- multiChannel.unsubscribe({apply:function(){},call:function(){}});
+ expect(function () {
+ multiChannel.unsubscribe({apply: function () {}, call: function () {}});
}).toThrow();
});
- it("should not decrement numHandlers if unsubscribing something that does not exist", function() {
- multiChannel.subscribe(function() {});
- multiChannel.unsubscribe(function() {});
+ it('should not decrement numHandlers if unsubscribing something that does not exist', function () {
+ multiChannel.subscribe(function () {});
+ multiChannel.unsubscribe(function () {});
expect(multiChannel.numHandlers).toEqual(1);
});
- it("should change the handlers length appropriately", function() {
- var firstHandler = function() {};
- var secondHandler = function() {};
- var thirdHandler = function() {};
+ it('should change the handlers length appropriately', function () {
+ var firstHandler = function () {};
+ var secondHandler = function () {};
+ var thirdHandler = function () {};
multiChannel.subscribe(firstHandler);
multiChannel.subscribe(secondHandler);
@@ -136,8 +136,8 @@
expect(multiChannel.numHandlers).toEqual(0);
});
- it("should not decrement handlers length more than once if unsubscribing a single handler", function() {
- var firstHandler = function(){};
+ it('should not decrement handlers length more than once if unsubscribing a single handler', function () {
+ var firstHandler = function () {};
multiChannel.subscribe(firstHandler);
expect(multiChannel.numHandlers).toEqual(1);
@@ -149,9 +149,9 @@
expect(multiChannel.numHandlers).toEqual(0);
});
- it("should not unregister a function registered with a different handler", function() {
- var cHandler = function(){};
- var c2Handler = function(){};
+ it('should not unregister a function registered with a different handler', function () {
+ var cHandler = function () {};
+ var c2Handler = function () {};
var c2 = channel.create('jables');
multiChannel.subscribe(cHandler);
c2.subscribe(c2Handler);
@@ -167,8 +167,8 @@
});
});
- function commonFireTests(multi) {
- it("should fire all subscribed handlers", function() {
+ function commonFireTests (multi) {
+ it('should fire all subscribed handlers', function () {
var testChannel = multi ? multiChannel : stickyChannel;
var handler = jasmine.createSpy();
var anotherOne = jasmine.createSpy();
@@ -181,16 +181,16 @@
expectCallCount(handler, 1);
expectCallCount(anotherOne, 1);
});
- it("should pass params to handlers", function() {
+ it('should pass params to handlers', function () {
var testChannel = multi ? multiChannel : stickyChannel;
var handler = jasmine.createSpy();
testChannel.subscribe(handler);
testChannel.fire(1, 2, 3);
- expect(handler.argsForCall[0]).toEqual({0:1, 1:2, 2:3});
+ expect(handler.argsForCall[0]).toEqual({0: 1, 1: 2, 2: 3});
});
- it("should not fire a handler that was unsubscribed", function() {
+ it('should not fire a handler that was unsubscribed', function () {
var testChannel = multi ? multiChannel : stickyChannel;
var handler = jasmine.createSpy();
var anotherOne = jasmine.createSpy();
@@ -204,7 +204,7 @@
expectCallCount(handler, 0);
expectCallCount(anotherOne, 1);
});
- it("should not fire a handler more than once if it was subscribed more than once", function() {
+ it('should not fire a handler more than once if it was subscribed more than once', function () {
var testChannel = multi ? multiChannel : stickyChannel;
var handler = jasmine.createSpy();
@@ -216,7 +216,7 @@
expectCallCount(handler, 1);
});
- it("handler should be called when subscribed, removed, and subscribed again", function() {
+ it('handler should be called when subscribed, removed, and subscribed again', function () {
var testChannel = multi ? multiChannel : stickyChannel;
var handler = jasmine.createSpy();
@@ -228,9 +228,9 @@
expectCallCount(handler, 1);
});
- it("should not prevent a callback from firing when it is removed during firing.", function() {
+ it('should not prevent a callback from firing when it is removed during firing.', function () {
var testChannel = multi ? multiChannel : stickyChannel;
- var handler = jasmine.createSpy().andCallFake(function() { testChannel.unsubscribe(handler2); });
+ var handler = jasmine.createSpy().andCallFake(function () { testChannel.unsubscribe(handler2); });
var handler2 = jasmine.createSpy();
testChannel.subscribe(handler);
testChannel.subscribe(handler2);
@@ -239,11 +239,11 @@
expectCallCount(handler2, 1);
});
}
- describe("fire method for sticky channels", function() {
+ describe('fire method for sticky channels', function () {
commonFireTests(false);
- it("should instantly trigger the callback if the event has already been fired", function () {
- var before = jasmine.createSpy('before'),
- after = jasmine.createSpy('after');
+ it('should instantly trigger the callback if the event has already been fired', function () {
+ var before = jasmine.createSpy('before');
+ var after = jasmine.createSpy('after');
stickyChannel.subscribe(before);
stickyChannel.fire(1, 2, 3);
@@ -251,18 +251,18 @@
expectCallCount(before, 1);
expectCallCount(after, 1);
- expect(after.argsForCall[0]).toEqual({0:1, 1:2, 2:3});
+ expect(after.argsForCall[0]).toEqual({0: 1, 1: 2, 2: 3});
});
- it("should instantly trigger the callback if the event is currently being fired.", function () {
- var handler1 = jasmine.createSpy().andCallFake(function() { stickyChannel.subscribe(handler2); }),
- handler2 = jasmine.createSpy().andCallFake(function(arg1) { expect(arg1).toEqual('foo');});
+ it('should instantly trigger the callback if the event is currently being fired.', function () {
+ var handler1 = jasmine.createSpy().andCallFake(function () { stickyChannel.subscribe(handler2); });
+ var handler2 = jasmine.createSpy().andCallFake(function (arg1) { expect(arg1).toEqual('foo'); });
stickyChannel.subscribe(handler1);
stickyChannel.fire('foo');
expectCallCount(handler2, 1);
});
- it("should unregister all handlers after being fired.", function() {
+ it('should unregister all handlers after being fired.', function () {
var handler = jasmine.createSpy();
stickyChannel.subscribe(handler);
stickyChannel.fire();
@@ -270,11 +270,11 @@
expectCallCount(handler, 1);
});
});
- describe("fire method for multi channels", function() {
+ describe('fire method for multi channels', function () {
commonFireTests(true);
- it("should not trigger the callback if the event has already been fired", function () {
- var before = jasmine.createSpy('before'),
- after = jasmine.createSpy('after');
+ it('should not trigger the callback if the event has already been fired', function () {
+ var before = jasmine.createSpy('before');
+ var after = jasmine.createSpy('after');
multiChannel.subscribe(before);
multiChannel.fire();
@@ -283,9 +283,9 @@
expectCallCount(before, 1);
expectCallCount(after, 0);
});
- it("should not trigger the callback if the event is currently being fired.", function () {
- var handler1 = jasmine.createSpy().andCallFake(function() { multiChannel.subscribe(handler2); }),
- handler2 = jasmine.createSpy();
+ it('should not trigger the callback if the event is currently being fired.', function () {
+ var handler1 = jasmine.createSpy().andCallFake(function () { multiChannel.subscribe(handler2); });
+ var handler2 = jasmine.createSpy();
multiChannel.subscribe(handler1);
multiChannel.fire();
@@ -294,7 +294,7 @@
expectCallCount(handler1, 2);
expectCallCount(handler2, 1);
});
- it("should not unregister handlers after being fired.", function() {
+ it('should not unregister handlers after being fired.', function () {
var handler = jasmine.createSpy();
multiChannel.subscribe(handler);
multiChannel.fire();
@@ -302,10 +302,10 @@
expectCallCount(handler, 2);
});
});
- describe("channel.join()", function() {
- it("should be called when all functions start unfired", function() {
- var handler = jasmine.createSpy(),
- stickyChannel2 = channel.createSticky('stickyChannel');
+ describe('channel.join()', function () {
+ it('should be called when all functions start unfired', function () {
+ var handler = jasmine.createSpy();
+ var stickyChannel2 = channel.createSticky('stickyChannel');
channel.join(handler, [stickyChannel, stickyChannel2]);
expectCallCount(handler, 0);
stickyChannel.fire();
@@ -313,41 +313,41 @@
stickyChannel2.fire();
expectCallCount(handler, 1);
});
- it("should be called when one functions start fired", function() {
- var handler = jasmine.createSpy(),
- stickyChannel2 = channel.createSticky('stickyChannel');
+ it('should be called when one functions start fired', function () {
+ var handler = jasmine.createSpy();
+ var stickyChannel2 = channel.createSticky('stickyChannel');
stickyChannel.fire();
channel.join(handler, [stickyChannel, stickyChannel2]);
expectCallCount(handler, 0);
stickyChannel2.fire();
expectCallCount(handler, 1);
});
- it("should be called when all functions start fired", function() {
- var handler = jasmine.createSpy(),
- stickyChannel2 = channel.createSticky('stickyChannel');
+ it('should be called when all functions start fired', function () {
+ var handler = jasmine.createSpy();
+ var stickyChannel2 = channel.createSticky('stickyChannel');
stickyChannel.fire();
stickyChannel2.fire();
channel.join(handler, [stickyChannel, stickyChannel2]);
expectCallCount(handler, 1);
});
- it("should throw if a channel is not sticky", function() {
- expect(function() {
- channel.join(function(){}, [stickyChannel, multiChannel]);
+ it('should throw if a channel is not sticky', function () {
+ expect(function () {
+ channel.join(function () {}, [stickyChannel, multiChannel]);
}).toThrow();
});
});
- describe("onHasSubscribersChange", function() {
- it("should be called only when the first subscriber is added and last subscriber is removed.", function() {
- var handler = jasmine.createSpy().andCallFake(function() {
- if (callCount(handler) == 1) {
+ describe('onHasSubscribersChange', function () {
+ it('should be called only when the first subscriber is added and last subscriber is removed.', function () {
+ var handler = jasmine.createSpy().andCallFake(function () {
+ if (callCount(handler) === 1) {
expect(this.numHandlers).toEqual(1);
} else {
expect(this.numHandlers).toEqual(0);
}
});
multiChannel.onHasSubscribersChange = handler;
- function foo1() {}
- function foo2() {}
+ function foo1 () {}
+ function foo2 () {}
multiChannel.subscribe(foo1);
multiChannel.subscribe(foo2);
multiChannel.unsubscribe(foo1);
diff --git a/test/test.modulemapper.js b/test/test.modulemapper.js
index 2891099..8e6eb4c 100644
--- a/test/test.modulemapper.js
+++ b/test/test.modulemapper.js
@@ -18,33 +18,33 @@
*
*/
-describe('modulemapper', function() {
- var modulemapper = require('cordova/modulemapper'),
- testmodule = require('cordova/test/testmodule'),
- utils = require('cordova/utils');
+describe('modulemapper', function () {
+ var modulemapper = require('cordova/modulemapper');
+ var testmodule = require('cordova/test/testmodule');
+ var utils = require('cordova/utils');
var context;
- beforeEach(function() {
- function TestClass() {}
- TestClass.prototype.method1 = function() { return 'orig'; };
+ beforeEach(function () {
+ function TestClass () {}
+ TestClass.prototype.method1 = function () { return 'orig'; };
context = {
- func: function() {},
+ func: function () {},
num: 1,
obj: { str: 'hello', num: 8, subObj: {num: 9} },
TestClass: TestClass
};
- utils.defineGetter(context, 'getme', function() { return 'getter' });
+ utils.defineGetter(context, 'getme', function () { return 'getter'; });
});
- afterEach(function() {
+ afterEach(function () {
modulemapper.reset();
});
- it('should throw in module does not exist', function() {
- expect(function() { modulemapper.clobbers('cordova/invalid', 'newProp'); }).toThrow();
+ it('should throw in module does not exist', function () {
+ expect(function () { modulemapper.clobbers('cordova/invalid', 'newProp'); }).toThrow();
});
- it('should properly set a new top-level property', function() {
+ it('should properly set a new top-level property', function () {
modulemapper.clobbers('cordova/test/testmodule', 'newProp1');
modulemapper.defaults('cordova/test/testmodule', 'newProp2');
modulemapper.merges('cordova/test/testmodule', 'newProp3');
@@ -53,7 +53,7 @@
expect(context.newProp2).toBe(testmodule);
expect(context.newProp3).toBe(testmodule);
});
- it('should properly set a new non-top-level property', function() {
+ it('should properly set a new non-top-level property', function () {
modulemapper.clobbers('cordova/test/testmodule', 'foo1.newProp');
modulemapper.defaults('cordova/test/testmodule', 'foo2.newProp');
modulemapper.merges('cordova/test/testmodule', 'foo3.newProp');
@@ -62,7 +62,7 @@
expect(context.foo2.newProp).toBe(testmodule);
expect(context.foo3.newProp).toBe(testmodule);
});
- it('should properly set a new non-top-level property #2', function() {
+ it('should properly set a new non-top-level property #2', function () {
modulemapper.clobbers('cordova/test/testmodule', 'foo1.bar.newProp');
modulemapper.defaults('cordova/test/testmodule', 'foo2.bar.newProp');
modulemapper.merges('cordova/test/testmodule', 'foo3.bar.newProp');
@@ -71,7 +71,7 @@
expect(context.foo2.bar.newProp).toBe(testmodule);
expect(context.foo3.bar.newProp).toBe(testmodule);
});
- it('should properly set a non-new non-top-level property', function() {
+ it('should properly set a non-new non-top-level property', function () {
modulemapper.clobbers('cordova/test/testmodule', 'obj.newProp1');
modulemapper.defaults('cordova/test/testmodule', 'obj.newProp2');
modulemapper.merges('cordova/test/testmodule', 'obj.newProp3');
@@ -80,7 +80,7 @@
expect(context.obj.newProp2).toBe(testmodule);
expect(context.obj.newProp3).toBe(testmodule);
});
- it('should clobber existing properties', function() {
+ it('should clobber existing properties', function () {
modulemapper.clobbers('cordova/test/testmodule', 'num');
modulemapper.clobbers('cordova/test/testmodule', 'obj.str');
modulemapper.clobbers('cordova/test/testmodule', 'getme');
@@ -91,7 +91,7 @@
expect(context.getme).toBe(testmodule);
expect(context.TestClass).toBe(testmodule);
});
- it('should not clobber existing properties when using defaults', function() {
+ it('should not clobber existing properties when using defaults', function () {
modulemapper.defaults('cordova/test/testmodule', 'num');
modulemapper.defaults('cordova/test/testmodule', 'obj.str');
modulemapper.defaults('cordova/test/testmodule', 'obj.getme');
@@ -102,17 +102,17 @@
expect(context.getme).not.toBe(testmodule);
expect(context.TestClass).not.toBe(testmodule);
});
- it('should throw when namespace is a non-object', function() {
- expect(function() {
+ it('should throw when namespace is a non-object', function () {
+ expect(function () {
modulemapper.merges('cordova/test/testmodule', 'num');
modulemapper.mapModules(context);
}).toThrow();
});
- it('should merge into objects', function() {
+ it('should merge into objects', function () {
modulemapper.merges('cordova/test/testmodule', 'obj');
modulemapper.mapModules(context);
for (var k in testmodule) {
- if (k != 'subObj') {
+ if (k !== 'subObj') {
expect(context.obj[k]).toBe(testmodule[k]);
}
}
@@ -120,20 +120,20 @@
expect(context.obj.subObj.num).toBe(9);
expect(context.obj.subObj.str).toBe(testmodule.subObj.str);
});
- it('should merge into constructor prototypes', function() {
+ it('should merge into constructor prototypes', function () {
modulemapper.merges('cordova/test/testmodule', 'TestClass');
modulemapper.mapModules(context);
for (var k in testmodule) {
expect(context.TestClass.prototype[k]).toBe(testmodule[k]);
}
});
- it('should maintain order of calls', function() {
+ it('should maintain order of calls', function () {
modulemapper.merges('cordova/test/testmodule', 'obj');
modulemapper.clobbers('cordova/test/testmodule', 'obj');
modulemapper.mapModules(context);
expect(context.obj).toBe(testmodule);
});
- it('should maintain order of calls2', function() {
+ it('should maintain order of calls2', function () {
modulemapper.merges('cordova/test/testmodule', 'obj.foo');
modulemapper.clobbers('cordova/test/testmodule', 'obj');
modulemapper.merges('cordova/test/testmodule', 'obj.obj');
@@ -143,33 +143,33 @@
expect(context.obj).not.toBe(testmodule.obj);
expect(context.obj.obj).toBe(testmodule.obj);
});
- it('should return undefined for getOriginalSymbol("unknown")', function() {
+ it('should return undefined for getOriginalSymbol("unknown")', function () {
expect(modulemapper.getOriginalSymbol(context, 'blah')).toBeUndefined();
modulemapper.mapModules(context);
expect(modulemapper.getOriginalSymbol(context, 'obj.foo.bar')).toBeUndefined('obj.foo.bar');
});
- it('should remember original symbols when clobbering', function() {
+ it('should remember original symbols when clobbering', function () {
var orig = context.obj;
modulemapper.clobbers('cordova/test/testmodule', 'obj');
modulemapper.mapModules(context);
expect(modulemapper.getOriginalSymbol(context, 'obj')).toBe(orig);
});
- it('should remember original symbols when double clobbering', function() {
+ it('should remember original symbols when double clobbering', function () {
var orig = context.obj;
modulemapper.clobbers('cordova/test/testmodule', 'obj');
modulemapper.clobbers('cordova/test/testmodule', 'obj');
modulemapper.mapModules(context);
expect(modulemapper.getOriginalSymbol(context, 'obj')).toBe(orig);
});
- it('should return original symbols when symbol was not clobbered', function() {
+ it('should return original symbols when symbol was not clobbered', function () {
modulemapper.mapModules(context);
expect(modulemapper.getOriginalSymbol(context, 'obj')).toBe(context.obj);
expect(modulemapper.getOriginalSymbol(context, 'obj.str')).toBe(context.obj.str);
});
- it('should log about deprecated property access', function() {
+ it('should log about deprecated property access', function () {
var origConsoleLog = console.log;
console.log = jasmine.createSpy('console.log');
- this.after(function() {
+ this.after(function () {
console.log = origConsoleLog;
});
modulemapper.clobbers('cordova/test/testmodule', 'obj', 'Use foo instead');
@@ -183,4 +183,3 @@
expect(console.log.callCount).toBe(2);
});
});
-
diff --git a/test/test.pluginloader.js b/test/test.pluginloader.js
index bb36f13..283f3b2 100644
--- a/test/test.pluginloader.js
+++ b/test/test.pluginloader.js
@@ -19,13 +19,13 @@
*
*/
-describe('pluginloader', function() {
+describe('pluginloader', function () {
var pluginloader = require('cordova/pluginloader');
var injectScript;
var cdvScript;
var done;
var success;
- beforeEach(function() {
+ beforeEach(function () {
injectScript = spyOn(pluginloader, 'injectScript');
var el = document.createElement('script');
el.setAttribute('type', 'foo');
@@ -35,28 +35,31 @@
done = false;
success = false;
});
- afterEach(function() {
+ afterEach(function () {
if (cdvScript) {
cdvScript.parentNode.removeChild(cdvScript);
cdvScript = null;
}
+ /* eslint-disable no-undef */
define.remove('cordova/plugin_list');
define.remove('some.id');
+ /* eslint-enable no-undef */
});
- function setDone() {
+ function setDone () {
done = true;
}
- it('should inject cordova_plugins.js when it is not already there', function() {
- injectScript.andCallFake(function(url, onload, onerror) {
+ it('should inject cordova_plugins.js when it is not already there', function () {
+ injectScript.andCallFake(function (url, onload, onerror) {
// jsdom deficiencies:
- if (typeof location != 'undefined') {
- expect(url).toBe(window.location.href.replace(/\/[^\/]*?$/, '/foo/cordova_plugins.js'));
+ if (typeof location !== 'undefined') {
+ expect(url).toBe(window.location.href.replace(/\/[^\/]*?$/, '/foo/cordova_plugins.js')); // eslint-disable-line no-useless-escape
} else {
expect(url).toBe('foo/cordova_plugins.js');
}
- define('cordova/plugin_list', function(require, exports, module) {
+ /* eslint-disable no-undef */
+ define('cordova/plugin_list', function (require, exports, module) {
module.exports = [];
});
success = true;
@@ -64,59 +67,59 @@
});
pluginloader.load(setDone);
- waitsFor(function() { return done });
- runs(function() {
+ waitsFor(function () { return done; });
+ runs(function () {
expect(success).toBe(true);
});
});
- it('should not inject cordova_plugins.js when it is already there', function() {
- define('cordova/plugin_list', function(require, exports, module) {
+ it('should not inject cordova_plugins.js when it is already there', function () {
+ define('cordova/plugin_list', function (require, exports, module) {
module.exports = [];
});
pluginloader.load(setDone);
- waitsFor(function() { return done });
- runs(function() {
+ waitsFor(function () { return done; });
+ runs(function () {
expect(injectScript).not.toHaveBeenCalled();
});
});
-
- it('should inject plugin scripts when they are not already there', function() {
- define('cordova/plugin_list', function(require, exports, module) {
+ it('should inject plugin scripts when they are not already there', function () {
+ define('cordova/plugin_list', function (require, exports, module) {
module.exports = [
- { "file": "some/path.js", "id": "some.id" }
+ { 'file': 'some/path.js', 'id': 'some.id' }
];
});
- injectScript.andCallFake(function(url, onload, onerror) {
+ injectScript.andCallFake(function (url, onload, onerror) {
// jsdom deficiencies:
- if (typeof location != 'undefined') {
- expect(url).toBe(window.location.href.replace(/\/[^\/]*?$/, '/foo/some/path.js'));
+ if (typeof location !== 'undefined') {
+ expect(url).toBe(window.location.href.replace(/\/[^\/]*?$/, '/foo/some/path.js')); // eslint-disable-line no-useless-escape
} else {
expect(url).toBe('foo/some/path.js');
}
- define('some.id', function(require, exports, module) {
+ define('some.id', function (require, exports, module) {
});
success = true;
onload();
});
pluginloader.load(setDone);
- waitsFor(function() { return done });
- runs(function() {
+ waitsFor(function () { return done; });
+ runs(function () {
expect(success).toBe(true);
});
});
- it('should not inject plugin scripts when they are already there', function() {
- define('cordova/plugin_list', function(require, exports, module) {
+ it('should not inject plugin scripts when they are already there', function () {
+ define('cordova/plugin_list', function (require, exports, module) {
module.exports = [
- { "file": "some/path.js", "id": "some.id" }
+ { 'file': 'some/path.js', 'id': 'some.id' }
];
});
- define('some.id', function(require, exports, module) {
+ define('some.id', function (require, exports, module) {
});
+ /* eslint-enable no-undef */
pluginloader.load(setDone);
- waitsFor(function() { return done });
- runs(function() {
+ waitsFor(function () { return done; });
+ runs(function () {
expect(injectScript).not.toHaveBeenCalled();
});
});
diff --git a/test/test.require.js b/test/test.require.js
index ec40a24..7bde4a4 100644
--- a/test/test.require.js
+++ b/test/test.require.js
@@ -18,142 +18,142 @@
* under the License.
*
*/
-
-describe("require + define", function () {
- it("exists off of cordova", function () {
+/* eslint-disable no-undef */
+describe('require + define', function () {
+ it('exists off of cordova', function () {
var cordova = require('cordova');
expect(cordova.require).toBeDefined();
expect(cordova.define).toBeDefined();
});
- describe("when defining", function () {
- it("can define and remove module", function () {
- define("a", jasmine.createSpy());
- define.remove("a");
+ describe('when defining', function () {
+ it('can define and remove module', function () {
+ define('a', jasmine.createSpy());
+ define.remove('a');
});
it("can remove a module that doesn't exist", function () {
define.remove("can't touch this");
});
- it("throws an error the module already exists", function () {
+ it('throws an error the module already exists', function () {
expect(function () {
- define("cordova", function () {});
- }).toThrow("module cordova already defined");
+ define('cordova', function () {});
+ }).toThrow('module cordova already defined');
});
it("doesn't call the factory method when defining", function () {
var factory = jasmine.createSpy();
- define("ff", factory);
+ define('ff', factory);
expect(factory).not.toHaveBeenCalled();
});
});
- describe("when requiring", function () {
+ describe('when requiring', function () {
it("throws an exception when module doesn't exist", function () {
expect(function () {
- require("your mom");
- }).toThrow("module your mom not found");
+ require('your mom');
+ }).toThrow('module your mom not found');
});
- it("throws an exception when modules depend on each other", function () {
- define("ModuleA", function(require, exports, module) {
- require("ModuleB");
+ it('throws an exception when modules depend on each other', function () {
+ define('ModuleA', function (require, exports, module) {
+ require('ModuleB');
});
- define("ModuleB", function(require, exports, module) {
- require("ModuleA");
+ define('ModuleB', function (require, exports, module) {
+ require('ModuleA');
});
expect(function () {
- require("ModuleA");
- }).toThrow("Cycle in require graph: ModuleA->ModuleB->ModuleA");
- define.remove("ModuleA");
- define.remove("ModuleB");
+ require('ModuleA');
+ }).toThrow('Cycle in require graph: ModuleA->ModuleB->ModuleA');
+ define.remove('ModuleA');
+ define.remove('ModuleB');
});
- it("throws an exception when a cycle of requires occurs", function () {
- define("ModuleA", function(require, exports, module) {
- require("ModuleB");
+ it('throws an exception when a cycle of requires occurs', function () {
+ define('ModuleA', function (require, exports, module) {
+ require('ModuleB');
});
- define("ModuleB", function(require, exports, module) {
- require("ModuleC");
+ define('ModuleB', function (require, exports, module) {
+ require('ModuleC');
});
- define("ModuleC", function(require, exports, module) {
- require("ModuleA");
+ define('ModuleC', function (require, exports, module) {
+ require('ModuleA');
});
expect(function () {
- require("ModuleA");
- }).toThrow("Cycle in require graph: ModuleA->ModuleB->ModuleC->ModuleA");
- define.remove("ModuleA");
- define.remove("ModuleB");
- define.remove("ModuleC");
+ require('ModuleA');
+ }).toThrow('Cycle in require graph: ModuleA->ModuleB->ModuleC->ModuleA');
+ define.remove('ModuleA');
+ define.remove('ModuleB');
+ define.remove('ModuleC');
});
- it("calls the factory method when requiring", function () {
+ it('calls the factory method when requiring', function () {
var factory = jasmine.createSpy();
- define("dino", factory);
- require("dino");
+ define('dino', factory);
+ require('dino');
expect(factory).toHaveBeenCalledWith(jasmine.any(Function),
{}, {
- id: "dino",
+ id: 'dino',
exports: {}
});
- define.remove("dino");
+ define.remove('dino');
});
- it("returns the exports object", function () {
- define("a", function (require, exports, module) {
- exports.stuff = "asdf";
+ it('returns the exports object', function () {
+ define('a', function (require, exports, module) {
+ exports.stuff = 'asdf';
});
- var v = require("a");
- expect(v.stuff).toBe("asdf");
- define.remove("a");
+ var v = require('a');
+ expect(v.stuff).toBe('asdf');
+ define.remove('a');
});
- it("can use both the exports and module.exports object", function () {
- define("a", function (require, exports, module) {
- exports.a = "a";
- module.exports.b = "b";
+ it('can use both the exports and module.exports object', function () {
+ define('a', function (require, exports, module) {
+ exports.a = 'a';
+ module.exports.b = 'b';
});
- var v = require("a");
- expect(v.a).toBe("a");
- expect(v.b).toBe("b");
- define.remove("a");
+ var v = require('a');
+ expect(v.a).toBe('a');
+ expect(v.b).toBe('b');
+ define.remove('a');
});
- it("returns was is assigned to module.exports", function () {
+ it('returns was is assigned to module.exports', function () {
var Foo = function () { };
- define("a", function (require, exports, module) {
+ define('a', function (require, exports, module) {
module.exports = new Foo();
});
- var v = require("a");
+ var v = require('a');
expect(v instanceof Foo).toBe(true);
- define.remove("a");
+ define.remove('a');
});
- it("has the id and exports values but not the factory on the module object", function () {
+ it('has the id and exports values but not the factory on the module object', function () {
var factory = function (require, exports, module) {
- expect(module.id).toBe("a");
+ expect(module.id).toBe('a');
expect(module.exports).toBeDefined();
expect(module.factory).not.toBeDefined();
};
- define("a", factory);
- require("a");
+ define('a', factory);
+ require('a');
});
it("can handle multiple defined modules that use cordova's unique handling of relative require paths", function () {
- define("plugin.ios.foo", function (require, exports, module) {
- module.exports = require("./bar") * 2;
+ define('plugin.ios.foo', function (require, exports, module) {
+ module.exports = require('./bar') * 2;
});
- define("plugin.ios.bar", function (require, exports, module) {
+ define('plugin.ios.bar', function (require, exports, module) {
module.exports = 2;
});
- expect(require("plugin.ios.foo")).toEqual(4);
+ expect(require('plugin.ios.foo')).toEqual(4);
});
});
});
diff --git a/test/test.urlutil.js b/test/test.urlutil.js
index a3142d0..4d18aab 100644
--- a/test/test.urlutil.js
+++ b/test/test.urlutil.js
@@ -21,7 +21,7 @@
describe('urlutil', function () {
var urlutil = require('cordova/urlutil');
- if (typeof process != 'undefined') {
+ if (typeof process !== 'undefined') {
// Tests don't work under jsdom.
return;
}
@@ -32,7 +32,7 @@
expect(urlutil.makeAbsolute('http://www.foo.com/%20hi')).toBe('http://www.foo.com/%20hi');
});
- function testRootRelative(url) {
+ function testRootRelative (url) {
var rootUrl = url.slice(0, 10) + url.slice(10).replace(/[?#].*/, '').replace(/\/.*/, '') + '/';
expect(urlutil.makeAbsolute('/')).toBe(rootUrl);
expect(urlutil.makeAbsolute('/foo?a#b')).toBe(rootUrl + 'foo?a#b');
@@ -43,7 +43,7 @@
});
it('can handle relative URLs', function () {
- var rootUrl = window.location.href.replace(/[?#].*/, '').replace(/[^\/]*$/, '');
+ var rootUrl = window.location.href.replace(/[?#].*/, '').replace(/[^\/]*$/, ''); // eslint-disable-line no-useless-escape
expect(urlutil.makeAbsolute('foo?a#b')).toBe(rootUrl + 'foo?a#b');
expect(urlutil.makeAbsolute('foo/b%20ar')).toBe(rootUrl + 'foo/b%20ar');
});
@@ -53,7 +53,7 @@
var baseTag = document.createElement('base');
baseTag.href = rootUrl;
document.head.appendChild(baseTag);
- this.after(function() {
+ this.after(function () {
document.head.removeChild(baseTag);
});
expect(urlutil.makeAbsolute('foo?a#b')).toBe(rootUrl + 'foo?a#b');
diff --git a/test/test.utils.js b/test/test.utils.js
index 00f4da9..abf2a9b 100644
--- a/test/test.utils.js
+++ b/test/test.utils.js
@@ -19,158 +19,158 @@
*
*/
-describe("utils", function () {
+describe('utils', function () {
var utils = require('cordova/utils');
- describe("utils.arrayIndexOf", function() {
- it("should return -1 when not found", function() {
- expect(utils.arrayIndexOf([1,2,3], 4)).toBe(-1);
+ describe('utils.arrayIndexOf', function () {
+ it('should return -1 when not found', function () {
+ expect(utils.arrayIndexOf([1, 2, 3], 4)).toBe(-1);
});
- it("should return 0 for first item", function() {
- expect(utils.arrayIndexOf([1,2,3], 1)).toBe(0);
+ it('should return 0 for first item', function () {
+ expect(utils.arrayIndexOf([1, 2, 3], 1)).toBe(0);
});
- it("should return 2 for last item", function() {
- expect(utils.arrayIndexOf([1,2,3], 3)).toBe(2);
+ it('should return 2 for last item', function () {
+ expect(utils.arrayIndexOf([1, 2, 3], 3)).toBe(2);
});
- it("should return index of first occurance", function() {
- expect(utils.arrayIndexOf([1,2,1], 1)).toBe(0);
+ it('should return index of first occurance', function () {
+ expect(utils.arrayIndexOf([1, 2, 1], 1)).toBe(0);
});
});
- describe("utils.arrayRemove", function() {
- it("should return true when removed.", function() {
+ describe('utils.arrayRemove', function () {
+ it('should return true when removed.', function () {
var a = [1, 2, 3];
expect(utils.arrayRemove(a, 2)).toBe(true);
expect(a).toEqual([1, 3]);
});
- it("should return false when item was not there.", function() {
+ it('should return false when item was not there.', function () {
var a = [1, 2, 3];
expect(utils.arrayRemove(a, 4)).toBe(false);
expect(a).toEqual([1, 2, 3]);
});
- it("should remove only first occurance", function() {
+ it('should remove only first occurance', function () {
var a = [1, 2, 1];
expect(utils.arrayRemove(a, 1)).toBe(true);
expect(a).toEqual([2, 1]);
});
});
- describe("isArray",function() {
- it("should return true for [].", function() {
+ describe('isArray', function () {
+ it('should return true for [].', function () {
var isArray = utils.isArray([]);
expect(isArray).toBe(true);
});
- it("should return true for new Array().", function() {
- var isArray = utils.isArray(new Array());
+ it('should return true for new Array().', function () {
+ var isArray = utils.isArray(new Array()); // eslint-disable-line no-array-constructor
expect(isArray).toBe(true);
});
- it("should return false for {}.", function() {
+ it('should return false for {}.', function () {
var isArray = utils.isArray({});
expect(isArray).toBe(false);
});
});
- describe("isDate",function() {
- it("should return true for new Date().", function() {
+ describe('isDate', function () {
+ it('should return true for new Date().', function () {
var isDate = utils.isDate(new Date());
expect(isDate).toBe(true);
});
- it("should return false for {}.", function() {
+ it('should return false for {}.', function () {
var isDate = utils.isDate({});
expect(isDate).toBe(false);
});
});
- describe("when cloning", function () {
- it("can clone an array", function () {
- var orig = [1, 2, 3, {four: 4}, "5"];
+ describe('when cloning', function () {
+ it('can clone an array', function () {
+ var orig = [1, 2, 3, {four: 4}, '5'];
expect(utils.clone(orig)).toEqual(orig);
expect(utils.clone(orig)).not.toBe(orig);
});
- it("can clone null", function () {
+ it('can clone null', function () {
expect(utils.clone(null)).toBeNull();
});
- it("can clone undefined", function () {
+ it('can clone undefined', function () {
expect(utils.clone(undefined)).not.toBeDefined();
});
- it("can clone a function", function () {
+ it('can clone a function', function () {
var f = function () { return 4; };
expect(utils.clone(f)).toBe(f);
});
- it("can clone a number", function () {
+ it('can clone a number', function () {
expect(utils.clone(4)).toBe(4);
});
- it("can clone a string", function () {
- expect(utils.clone("why")).toBe("why");
+ it('can clone a string', function () {
+ expect(utils.clone('why')).toBe('why');
});
- it("can clone a date", function () {
+ it('can clone a date', function () {
var d = Date.now();
expect(utils.clone(d)).toBe(d);
});
- it("can clone an object", function () {
+ it('can clone an object', function () {
var orig = {
a: {
b: {
- c: "d"
- },
+ c: 'd'
+ }
},
- e: "f",
- g: "unit"
- },
- expected = {
+ e: 'f',
+ g: 'unit'
+ };
+ var expected = {
a: {
b: {
- c: "d"
- },
+ c: 'd'
+ }
},
- e: "f",
- g: "unit"
+ e: 'f',
+ g: 'unit'
};
expect(utils.clone(orig)).toEqual(expected);
});
});
- describe("when closing around a function", function () {
- it("calls the original function when calling the closed function", function () {
+ describe('when closing around a function', function () {
+ it('calls the original function when calling the closed function', function () {
var f = jasmine.createSpy();
utils.close(null, f)();
expect(f).toHaveBeenCalled();
});
- it("uses the correct context for the closed function", function () {
+ it('uses the correct context for the closed function', function () {
var context = {};
utils.close(context, function () {
expect(this).toBe(context);
})();
});
- it("passes the arguments to the closed function", function () {
+ it('passes the arguments to the closed function', function () {
utils.close(null, function (arg) {
expect(arg).toBe(1);
})(1);
});
- it("overrides the arguments when provided", function () {
+ it('overrides the arguments when provided', function () {
utils.close(null, function (arg) {
expect(arg).toBe(42);
}, [42])(16);
});
});
- it("can create a uuid", function () {
+ it('can create a uuid', function () {
var uuid = utils.createUUID();
expect(uuid).toMatch(/^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$/);
expect(uuid).not.toEqual(utils.createUUID());
});
-
+
});