CB-12895 : added eslint and removed jshint

This commit is contained in:
Audrey So
2017-06-12 10:34:08 -07:00
parent 7611645469
commit 902427525f
12 changed files with 350 additions and 362 deletions
+72 -76
View File
@@ -19,7 +19,6 @@
*
*/
/* jshint jasmine: true */
/* global MSApp */
var cordova = require('cordova');
@@ -36,11 +35,11 @@ exports.defineAutoTests = function () {
describe('cordova.InAppBrowser', function () {
it("inappbrowser.spec.1 should exist", function () {
it('inappbrowser.spec.1 should exist', function () {
expect(cordova.InAppBrowser).toBeDefined();
});
it("inappbrowser.spec.2 should contain open function", function () {
it('inappbrowser.spec.2 should contain open function', function () {
expect(cordova.InAppBrowser.open).toBeDefined();
expect(cordova.InAppBrowser.open).toEqual(jasmine.any(Function));
});
@@ -48,7 +47,7 @@ exports.defineAutoTests = function () {
describe('open method', function () {
if (cordova.platformId == 'osx') {
if (cordova.platformId === 'osx') {
pending('Open method not fully supported on OSX.');
return;
}
@@ -78,7 +77,7 @@ exports.defineAutoTests = function () {
setTimeout(done, 2000);
});
function verifyEvent(evt, type) {
function verifyEvent (evt, type) {
expect(evt).toBeDefined();
expect(evt.type).toEqual(type);
// `exit` event does not have url field, browser returns null url for CORS requests
@@ -87,7 +86,7 @@ exports.defineAutoTests = function () {
}
}
function verifyLoadErrorEvent(evt) {
function verifyLoadErrorEvent (evt) {
expect(evt).toBeDefined();
expect(evt.type).toEqual('loaderror');
expect(evt.url).toEqual(badUrl);
@@ -95,7 +94,7 @@ exports.defineAutoTests = function () {
expect(evt.message).toEqual(jasmine.any(String));
}
it("inappbrowser.spec.3 should return InAppBrowser instance with required methods", function () {
it('inappbrowser.spec.3 should return InAppBrowser instance with required methods', function () {
iabInstance = cordova.InAppBrowser.open(url, '_blank');
expect(iabInstance).toBeDefined();
@@ -109,7 +108,7 @@ exports.defineAutoTests = function () {
expect(iabInstance.insertCSS).toEqual(jasmine.any(Function));
});
it("inappbrowser.spec.4 should support loadstart and loadstop events", function (done) {
it('inappbrowser.spec.4 should support loadstart and loadstop events', function (done) {
var onLoadStart = jasmine.createSpy('loadstart event callback').and.callFake(function (evt) {
verifyEvent(evt, 'loadstart');
});
@@ -127,7 +126,7 @@ exports.defineAutoTests = function () {
});
});
it("inappbrowser.spec.5 should support exit event", function (done) {
it('inappbrowser.spec.5 should support exit event', function (done) {
iabInstance = cordova.InAppBrowser.open(url, '_blank');
iabInstance.addEventListener('exit', function (evt) {
verifyEvent(evt, 'exit');
@@ -137,7 +136,7 @@ exports.defineAutoTests = function () {
iabInstance = null;
});
it("inappbrowser.spec.6 should support loaderror event", function (done) {
it('inappbrowser.spec.6 should support loaderror event', function (done) {
if (isBrowser) {
// according to documentation, "loaderror" event is not supported on browser
// https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
@@ -154,15 +153,15 @@ exports.defineAutoTests = function () {
exports.defineManualTests = function (contentEl, createActionButton) {
function doOpen(url, target, params, numExpectedRedirects, useWindowOpen) {
function doOpen (url, target, params, numExpectedRedirects, useWindowOpen) {
numExpectedRedirects = numExpectedRedirects || 0;
useWindowOpen = useWindowOpen || false;
console.log("Opening " + url);
console.log('Opening ' + url);
var counts;
var lastLoadStartURL;
var wasReset = false;
function reset() {
function reset () {
counts = {
'loaderror': 0,
'loadstart': 0,
@@ -183,49 +182,48 @@ exports.defineManualTests = function (contentEl, createActionButton) {
if (useWindowOpen) {
console.log('Use window.open() for url');
iab = window.open(url, target, params, callbacks);
}
else {
} else {
iab = cordova.InAppBrowser.open(url, target, params, callbacks);
}
if (!iab) {
alert('open returned ' + iab);
alert('open returned ' + iab); // eslint-disable-line no-undef
return;
}
function logEvent(e) {
function logEvent (e) {
console.log('IAB event=' + JSON.stringify(e));
counts[e.type]++;
// Verify that event.url gets updated on redirects.
if (e.type == 'loadstart') {
if (e.url == lastLoadStartURL) {
alert('Unexpected: loadstart fired multiple times for the same URL.');
if (e.type === 'loadstart') {
if (e.url === lastLoadStartURL) {
alert('Unexpected: loadstart fired multiple times for the same URL.'); // eslint-disable-line no-undef
}
lastLoadStartURL = e.url;
}
// Verify the right number of loadstart events were fired.
if (e.type == 'loadstop' || e.type == 'loaderror') {
if (e.url != lastLoadStartURL) {
alert('Unexpected: ' + e.type + ' event.url != loadstart\'s event.url');
if (e.type === 'loadstop' || e.type === 'loaderror') {
if (e.url !== lastLoadStartURL) {
alert('Unexpected: ' + e.type + ' event.url != loadstart\'s event.url'); // eslint-disable-line no-undef
}
if (numExpectedRedirects === 0 && counts.loadstart !== 1) {
// Do allow a loaderror without a loadstart (e.g. in the case of an invalid URL).
if (!(e.type == 'loaderror' && counts.loadstart === 0)) {
alert('Unexpected: got multiple loadstart events. (' + counts.loadstart + ')');
if (!(e.type === 'loaderror' && counts.loadstart === 0)) {
alert('Unexpected: got multiple loadstart events. (' + counts.loadstart + ')'); // eslint-disable-line no-undef
}
} else if (numExpectedRedirects > 0 && counts.loadstart < (numExpectedRedirects + 1)) {
alert('Unexpected: should have got at least ' + (numExpectedRedirects + 1) + ' loadstart events, but got ' + counts.loadstart);
alert('Unexpected: should have got at least ' + (numExpectedRedirects + 1) + ' loadstart events, but got ' + counts.loadstart); // eslint-disable-line no-undef
}
wasReset = true;
numExpectedRedirects = 0;
reset();
}
// Verify that loadend / loaderror was called.
if (e.type == 'exit') {
if (e.type === 'exit') {
var numStopEvents = counts.loadstop + counts.loaderror;
if (numStopEvents === 0 && !wasReset) {
alert('Unexpected: browser closed without a loadstop or loaderror.');
alert('Unexpected: browser closed without a loadstop or loaderror.'); // eslint-disable-line no-undef
} else if (numStopEvents > 1) {
alert('Unexpected: got multiple loadstop/loaderror events.');
alert('Unexpected: got multiple loadstop/loaderror events.'); // eslint-disable-line no-undef
}
}
}
@@ -233,33 +231,31 @@ exports.defineManualTests = function (contentEl, createActionButton) {
return iab;
}
function doHookOpen(url, target, params, numExpectedRedirects) {
function doHookOpen (url, target, params, numExpectedRedirects) {
var originalFunc = window.open;
var wasClobbered = window.hasOwnProperty('open');
window.open = cordova.InAppBrowser.open;
try {
doOpen(url, target, params, numExpectedRedirects, true);
}
finally {
} finally {
if (wasClobbered) {
window.open = originalFunc;
}
else {
console.log('just delete, to restore open from prototype');
} else {
console.log('just delete, to restore open from prototype');
delete window.open;
}
}
}
function openWithStyle(url, cssUrl, useCallback) {
function openWithStyle (url, cssUrl, useCallback) {
var iab = doOpen(url, '_blank', 'location=yes');
var callback = function (results) {
if (results && results.length === 0) {
alert('Results verified');
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results));
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
};
if (cssUrl) {
@@ -269,21 +265,21 @@ exports.defineManualTests = function (contentEl, createActionButton) {
} else {
iab.addEventListener('loadstop', function (event) {
iab.insertCSS({ code: '#style-update-literal { \ndisplay: block !important; \n}' },
useCallback && callback);
useCallback && callback);
});
}
}
function openWithScript(url, jsUrl, useCallback) {
function openWithScript (url, jsUrl, useCallback) {
var iab = doOpen(url, '_blank', 'location=yes');
if (jsUrl) {
iab.addEventListener('loadstop', function (event) {
iab.executeScript({ file: jsUrl }, useCallback && function (results) {
if (results && results.length === 0) {
alert('Results verified');
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results));
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
});
});
@@ -296,33 +292,33 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'})()';
iab.executeScript({ code: code }, useCallback && function (results) {
if (results && results.length === 1 && results[0] === 'abc') {
alert('Results verified');
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results));
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
});
});
}
}
var hiddenwnd = null;
var loadlistener = function (event) { alert('background window loaded '); };
function openHidden(url, startHidden) {
var loadlistener = function (event) { alert('background window loaded '); }; // eslint-disable-line no-undef
function openHidden (url, startHidden) {
var shopt = (startHidden) ? 'hidden=yes' : '';
hiddenwnd = cordova.InAppBrowser.open(url, 'random_string', shopt);
if (!hiddenwnd) {
alert('cordova.InAppBrowser.open returned ' + hiddenwnd);
alert('cordova.InAppBrowser.open returned ' + hiddenwnd); // eslint-disable-line no-undef
return;
}
if (startHidden) hiddenwnd.addEventListener('loadstop', loadlistener);
}
function showHidden() {
if (!!hiddenwnd) {
function showHidden () {
if (hiddenwnd) {
hiddenwnd.show();
}
}
function closeHidden() {
if (!!hiddenwnd) {
function closeHidden () {
if (hiddenwnd) {
hiddenwnd.removeEventListener('loadstop', loadlistener);
hiddenwnd.close();
hiddenwnd = null;
@@ -467,14 +463,14 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openHardwareBackYes"></div>' +
'Expected result: hardwareback=yes pressing back button should navigate backwards in history then close InAppBrowser' +
'<p/> <div id="openHardwareBackNo"></div>' +
'Expected result: hardwareback=no pressing back button should close InAppBrowser regardless history' +
'Expected result: hardwareback=no pressing back button should close InAppBrowser regardless history' +
'<p/> <div id="openHardwareBackDefaultAfterNo"></div>' +
'Expected result: consistently open browsers with with the appropriate option: hardwareback=defaults to yes then hardwareback=no then hardwareback=defaults to yes. By default hardwareback is yes so pressing back button should navigate backwards in history then close InAppBrowser';
// CB-7490 We need to wrap this code due to Windows security restrictions
// see http://msdn.microsoft.com/en-us/library/windows/apps/hh465380.aspx#differences for details
if (window.MSApp && window.MSApp.execUnsafeLocalFunction) {
MSApp.execUnsafeLocalFunction(function() {
MSApp.execUnsafeLocalFunction(function () {
contentEl.innerHTML = info_div + local_tests + white_listed_tests + non_white_listed_tests + page_with_redirects_tests + pdf_url_tests + invalid_url_tests +
css_js_injection_tests + open_hidden_tests + clearing_cache_tests + video_tag_tests + local_with_anchor_tag_tests + hardwareback_tests;
});
@@ -483,18 +479,18 @@ exports.defineManualTests = function (contentEl, createActionButton) {
css_js_injection_tests + open_hidden_tests + clearing_cache_tests + video_tag_tests + local_with_anchor_tag_tests + hardwareback_tests;
}
document.getElementById("user-agent").textContent = navigator.userAgent;
document.getElementById('user-agent').textContent = navigator.userAgent;
// we are already in cdvtests directory
var basePath = 'iab-resources/';
var localhtml = basePath + 'local.html',
localpdf = basePath + 'local.pdf',
injecthtml = basePath + 'inject.html',
injectjs = isWindows ? basePath + 'inject.js' : 'inject.js',
injectcss = isWindows ? basePath + 'inject.css' : 'inject.css',
videohtml = basePath + 'video.html';
var localhtml = basePath + 'local.html';
var localpdf = basePath + 'local.pdf';
var injecthtml = basePath + 'inject.html';
var injectjs = isWindows ? basePath + 'inject.js' : 'inject.js';
var injectcss = isWindows ? basePath + 'inject.css' : 'inject.css';
var videohtml = basePath + 'video.html';
//Local
// Local
createActionButton('target=Default', function () {
doOpen(localhtml);
}, 'openLocal');
@@ -523,7 +519,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
}, 'openLocalRandomToolBarTopNoLocation');
//White Listed
// White Listed
createActionButton('* target=Default', function () {
doOpen('http://cordova.apache.org');
}, 'openWhiteListed');
@@ -546,7 +542,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen('http://cordova.apache.org', 'random_string', 'location=no');
}, 'openWhiteListedRandomNoLocation');
//Non White Listed
// Non White Listed
createActionButton('target=Default', function () {
doOpen('http://www.apple.com');
}, 'openNonWhiteListed');
@@ -569,7 +565,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen('http://www.apple.com', 'random_string', 'location=no');
}, 'openNonWhiteListedRandomNoLocation');
//Page with redirect
// Page with redirect
createActionButton('http://google.co.uk', function () {
doOpen('http://google.co.uk', 'random_string', '', 1);
}, 'openRedirect301');
@@ -577,7 +573,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
}, 'openRedirect302');
//PDF URL
// PDF URL
createActionButton('Remote URL', function () {
doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
}, 'openPDF');
@@ -585,7 +581,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen(localpdf, '_blank');
}, 'openPDFBlank');
//Invalid URL
// Invalid URL
createActionButton('Invalid Scheme', function () {
doOpen('x-ttp://www.invalid.com/', '_blank');
}, 'openInvalidScheme');
@@ -596,7 +592,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen('nonexistent.html', '_blank');
}, 'openInvalidMissing');
//CSS / JS injection
// CSS / JS injection
createActionButton('Original Document', function () {
doOpen(injecthtml, '_blank');
}, 'openOriginalDocument');
@@ -625,7 +621,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
openWithScript(injecthtml, null, true);
}, 'openScriptLiteralInjectionCallback');
//Open hidden
// Open hidden
createActionButton('Create Hidden', function () {
openHidden('https://www.google.co.uk', true);
}, 'openHidden');
@@ -645,7 +641,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
}, 2000);
}, 'openVisibleAndHide');
//Clearing cache
// Clearing cache
createActionButton('Clear Browser Cache', function () {
doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
}, 'openClearCache');
@@ -653,7 +649,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
}, 'openClearSessionCache');
//Video tag
// Video tag
createActionButton('Remote Video', function () {
doOpen(videohtml, '_blank');
}, 'openRemoteVideo');
@@ -664,7 +660,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
}, 'openRemoteNeedUserYesVideo');
//Local With Anchor Tag
// Local With Anchor Tag
createActionButton('Anchor1', function () {
doOpen(localhtml + '#bogusanchor', '_blank');
}, 'openAnchor1');
@@ -682,17 +678,17 @@ exports.defineManualTests = function (contentEl, createActionButton) {
createActionButton('hardwareback=no', function () {
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
}, 'openHardwareBackNo');
createActionButton('no hardwareback -> hardwareback=no -> no hardwareback', function() {
createActionButton('no hardwareback -> hardwareback=no -> no hardwareback', function () {
var ref = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.addEventListener('loadstop', function () {
ref.close();
});
ref.addEventListener('exit', function() {
ref.addEventListener('exit', function () {
var ref2 = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes,hardwareback=no');
ref2.addEventListener('loadstop', function() {
ref2.addEventListener('loadstop', function () {
ref2.close();
});
ref2.addEventListener('exit', function() {
ref2.addEventListener('exit', function () {
cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes');
});
});