refactor(eslint): use cordova-eslint /w fix (#747)

This commit is contained in:
Tim Brust
2020-07-02 15:41:21 +00:00
committed by GitHub
parent bdbb1df44c
commit 7c2810e885
7 changed files with 621 additions and 314 deletions
+523 -244
View File
@@ -17,7 +17,7 @@
* specific language governing permissions and limitations
* under the License.
*
*/
*/
/* global MSApp */
@@ -38,7 +38,6 @@ exports.defineAutoTests = function () {
platformOpts = platformOpts || '';
describe('cordova.InAppBrowser', function () {
it('inappbrowser.spec.1 should exist', function () {
expect(cordova.InAppBrowser).toBeDefined();
});
@@ -50,7 +49,6 @@ exports.defineAutoTests = function () {
});
describe('open method', function () {
if (cordova.platformId === 'osx') {
pending('Open method not fully supported on OSX.');
return;
@@ -62,7 +60,7 @@ exports.defineAutoTests = function () {
var badUrl = 'http://bad-uri/';
beforeEach(function () {
// increase timeout to ensure test url could be loaded within test time
// increase timeout to ensure test url could be loaded within test time
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
@@ -70,7 +68,7 @@ exports.defineAutoTests = function () {
});
afterEach(function (done) {
// restore original timeout
// restore original timeout
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
if (iabInstance !== null && iabInstance.close) {
@@ -122,8 +120,8 @@ exports.defineAutoTests = function () {
iabInstance.addEventListener('loadstop', function (evt) {
verifyEvent(evt, 'loadstop');
if (!isBrowser) {
// according to documentation, "loadstart" event is not supported on browser
// https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
// according to documentation, "loadstart" event is not supported on browser
// https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
expect(onLoadStart).toHaveBeenCalled();
}
done();
@@ -144,9 +142,9 @@ exports.defineAutoTests = function () {
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
pending('Browser platform doesn\'t support loaderror event');
// according to documentation, "loaderror" event is not supported on browser
// https://github.com/apache/cordova-plugin-inappbrowser#browser-quirks-1
pending("Browser platform doesn't support loaderror event");
}
iabInstance = cordova.InAppBrowser.open(badUrl, '_blank', platformOpts);
iabInstance.addEventListener('loaderror', function (evt) {
@@ -157,7 +155,7 @@ exports.defineAutoTests = function () {
it('inappbrowser.spec.7 should support message event', function (done) {
if (!isAndroid && !isIos) {
return pending(cordova.platformId + ' platform doesn\'t support message event');
return pending(cordova.platformId + " platform doesn't support message event");
}
var messageKey = 'my_message';
var messageValue = 'is_this';
@@ -172,13 +170,17 @@ exports.defineAutoTests = function () {
done();
});
iabInstance.addEventListener('loadstop', function (evt) {
var code = '(function(){\n' +
' var message = {' + messageKey + ': "' + messageValue + '"};\n' +
var code =
'(function(){\n' +
' var message = {' +
messageKey +
': "' +
messageValue +
'"};\n' +
' webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(message));\n' +
'})()';
iabInstance.executeScript({ code: code });
});
});
});
};
@@ -186,7 +188,6 @@ exports.defineAutoTests = function () {
};
exports.defineManualTests = function (contentEl, createActionButton) {
var platformOpts = '';
var platform_info = '';
@@ -200,10 +201,10 @@ exports.defineManualTests = function (contentEl, createActionButton) {
var wasReset = false;
function reset () {
counts = {
'loaderror': 0,
'loadstart': 0,
'loadstop': 0,
'exit': 0
loaderror: 0,
loadstart: 0,
loadstop: 0,
exit: 0
};
lastLoadStartURL = '';
}
@@ -243,15 +244,20 @@ exports.defineManualTests = function (contentEl, createActionButton) {
// 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'); // eslint-disable-line no-undef
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 + ')'); // 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); // 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
); // eslint-disable-line no-undef
}
wasReset = true;
numExpectedRedirects = 0;
@@ -273,7 +279,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
function doHookOpen (url, target, params, numExpectedRedirects) {
var originalFunc = window.open;
var wasClobbered = window.hasOwnProperty('open');
var wasClobbered = Object.prototype.hasOwnProperty.call(window, 'open');
window.open = cordova.InAppBrowser.open;
try {
@@ -295,7 +301,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
};
if (cssUrl) {
@@ -304,8 +310,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
});
} else {
iab.addEventListener('loadstop', function (event) {
iab.insertCSS({ code: '#style-update-literal { \ndisplay: block !important; \n}' },
useCallback && callback);
iab.insertCSS({ code: '#style-update-literal { \ndisplay: block !important; \n}' }, useCallback && callback);
});
}
}
@@ -314,37 +319,48 @@ exports.defineManualTests = function (contentEl, createActionButton) {
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'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
});
iab.executeScript(
{ file: jsUrl },
useCallback &&
function (results) {
if (results && results.length === 0) {
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
}
);
});
} else {
iab.addEventListener('loadstop', function (event) {
var code = '(function(){\n' +
' var header = document.getElementById("header");\n' +
' header.innerHTML = "Script literal successfully injected";\n' +
' return "abc";\n' +
'})()';
iab.executeScript({ code: code }, useCallback && function (results) {
if (results && results.length === 1 && results[0] === 'abc') {
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(results);
alert('Got: ' + typeof (results) + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
}
});
var code =
'(function(){\n' +
' var header = document.getElementById("header");\n' +
' header.innerHTML = "Script literal successfully injected";\n' +
' return "abc";\n' +
'})()';
iab.executeScript(
{ code: code },
useCallback &&
function (results) {
if (results && results.length === 1 && results[0] === 'abc') {
alert('Results verified'); // eslint-disable-line no-undef
} else {
console.log(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 '); }; // eslint-disable-line no-undef
var loadlistener = function (event) {
alert('background window loaded ');
}; // eslint-disable-line no-undef
function openHidden (url, startHidden) {
var shopt = (startHidden) ? 'hidden=yes' : '';
var shopt = startHidden ? 'hidden=yes' : '';
if (platformOpts) {
shopt += (shopt ? ',' : '') + platformOpts;
}
@@ -368,7 +384,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
}
}
var info_div = '<h1>InAppBrowser</h1>' +
var info_div =
'<h1>InAppBrowser</h1>' +
'<div id="info">' +
'Make sure http://cordova.apache.org and http://google.co.uk and https://www.google.co.uk are white listed. </br>' +
'Make sure http://www.apple.com is not in the white list.</br>' +
@@ -376,7 +393,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<h4>User-Agent: <span id="user-agent"> </span></hr>' +
'</div>';
var local_tests = '<h1>Local URL</h1>' +
var local_tests =
'<h1>Local URL</h1>' +
'<div id="openLocal"></div>' +
'Expected result: opens successfully in CordovaWebView.' +
'<p/> <div id="openLocalHook"></div>' +
@@ -396,7 +414,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/><div id="openLocalRandomToolBarTopNoLocation"></div>' +
'Expected result: open successfully in InAppBrowser with no locationBar. On iOS the toolbar is at the top.';
var white_listed_tests = '<h1>White Listed URL</h1>' +
var white_listed_tests =
'<h1>White Listed URL</h1>' +
'<div id="openWhiteListed"></div>' +
'Expected result: open successfully in CordovaWebView to cordova.apache.org' +
'<p/> <div id="openWhiteListedHook"></div>' +
@@ -412,7 +431,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openWhiteListedRandomNoLocation"></div>' +
'Expected result: open successfully in InAppBrowser to cordova.apache.org with no location bar.';
var non_white_listed_tests = '<h1>Non White Listed URL</h1>' +
var non_white_listed_tests =
'<h1>Non White Listed URL</h1>' +
'<div id="openNonWhiteListed"></div>' +
'Expected result: open successfully in InAppBrowser to apple.com.' +
'<p/> <div id="openNonWhiteListedHook"></div>' +
@@ -428,19 +448,22 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openNonWhiteListedRandomNoLocation"></div>' +
'Expected result: open successfully in InAppBrowser to apple.com without locationBar.';
var page_with_redirects_tests = '<h1>Page with redirect</h1>' +
var page_with_redirects_tests =
'<h1>Page with redirect</h1>' +
'<div id="openRedirect301"></div>' +
'Expected result: should 301 and open successfully in InAppBrowser to https://www.google.co.uk.' +
'<p/> <div id="openRedirect302"></div>' +
'Expected result: should 302 and open successfully in InAppBrowser to www.zhihu.com/answer/16714076.';
var pdf_url_tests = '<h1>PDF URL</h1>' +
var pdf_url_tests =
'<h1>PDF URL</h1>' +
'<div id="openPDF"></div>' +
'Expected result: InAppBrowser opens. PDF should render on iOS.' +
'<p/> <div id="openPDFBlank"></div>' +
'Expected result: InAppBrowser opens. PDF should render on iOS.';
var invalid_url_tests = '<h1>Invalid URL</h1>' +
var invalid_url_tests =
'<h1>Invalid URL</h1>' +
'<div id="openInvalidScheme"></div>' +
'Expected result: fail to load in InAppBrowser.' +
'<p/> <div id="openInvalidHost"></div>' +
@@ -448,7 +471,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openInvalidMissing"></div>' +
'Expected result: fail to load in InAppBrowser (404).';
var css_js_injection_tests = '<h1>CSS / JS Injection</h1>' +
var css_js_injection_tests =
'<h1>CSS / JS Injection</h1>' +
'<div id="openOriginalDocument"></div>' +
'Expected result: open successfully in InAppBrowser without text "Style updated from..."' +
'<p/> <div id="openCSSInjection"></div>' +
@@ -468,7 +492,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openScriptLiteralInjectionCallback"></div>' +
'Expected result: open successfully in InAppBrowser with the text "Script literal successfully injected" and alert dialog with the text "Results verified".';
var open_hidden_tests = '<h1>Open Hidden </h1>' +
var open_hidden_tests =
'<h1>Open Hidden </h1>' +
'<div id="openHidden"></div>' +
'Expected result: no additional browser window. Alert appears with the text "background window loaded".' +
'<p/> <div id="showHidden"></div>' +
@@ -480,13 +505,15 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<p/> <div id="openVisibleAndHide"></div>' +
'Expected result: open successfully in InAppBrowser to https://www.google.co.uk. Hide after 2 seconds';
var clearing_cache_tests = '<h1>Clearing Cache</h1>' +
var clearing_cache_tests =
'<h1>Clearing Cache</h1>' +
'<div id="openClearCache"></div>' +
'Expected result: ?' +
'<p/> <div id="openClearSessionCache"></div>' +
'Expected result: ?';
var video_tag_tests = '<h1>Video tag</h1>' +
var video_tag_tests =
'<h1>Video tag</h1>' +
'<div id="openRemoteVideo"></div>' +
'Expected result: open successfully in InAppBrowser with an embedded video plays automatically on iOS and Android.' +
'<div id="openRemoteNeedUserNoVideo"></div>' +
@@ -494,13 +521,15 @@ exports.defineManualTests = function (contentEl, createActionButton) {
'<div id="openRemoteNeedUserYesVideo"></div>' +
'Expected result: open successfully in InAppBrowser with an embedded video does not play automatically on iOS and Android but rather works after clicking the "play" button.';
var local_with_anchor_tag_tests = '<h1>Local with anchor tag</h1>' +
var local_with_anchor_tag_tests =
'<h1>Local with anchor tag</h1>' +
'<div id="openAnchor1"></div>' +
'Expected result: open successfully in InAppBrowser to the local page, scrolled to the top as normal.' +
'<p/> <div id="openAnchor2"></div>' +
'Expected result: open successfully in InAppBrowser to the local page, scrolled to the beginning of the tall div with border.';
var hardwareback_tests = '<h1>HardwareBack</h1>' +
var hardwareback_tests =
'<h1>HardwareBack</h1>' +
'<p/> <div id="openHardwareBackDefault"></div>' +
'Expected result: By default hardwareback is yes so pressing back button should navigate backwards in history then close InAppBrowser' +
'<p/> <div id="openHardwareBackYes"></div>' +
@@ -514,12 +543,38 @@ exports.defineManualTests = function (contentEl, createActionButton) {
// see http://msdn.microsoft.com/en-us/library/windows/apps/hh465380.aspx#differences for details
if (window.MSApp && window.MSApp.execUnsafeLocalFunction) {
MSApp.execUnsafeLocalFunction(function () {
contentEl.innerHTML = info_div + platform_info + 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;
contentEl.innerHTML =
info_div +
platform_info +
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;
});
} else {
contentEl.innerHTML = info_div + platform_info + 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;
contentEl.innerHTML =
info_div +
platform_info +
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;
}
document.getElementById('user-agent').textContent = navigator.userAgent;
@@ -534,206 +589,430 @@ exports.defineManualTests = function (contentEl, createActionButton) {
var videohtml = basePath + 'video.html';
// Local
createActionButton('target=Default', function () {
doOpen(localhtml);
}, 'openLocal');
createActionButton('target=Default (window.open)', function () {
doHookOpen(localhtml);
}, 'openLocalHook');
createActionButton('target=_self', function () {
doOpen(localhtml, '_self');
}, 'openLocalSelf');
createActionButton('target=_system', function () {
doOpen(localhtml, '_system');
}, 'openLocalSystem');
createActionButton('target=_blank', function () {
doOpen(localhtml, '_blank');
}, 'openLocalBlank');
createActionButton('target=Random, location=no, disallowoverscroll=yes', function () {
doOpen(localhtml, 'random_string', 'location=no, disallowoverscroll=yes');
}, 'openLocalRandomNoLocation');
createActionButton('target=Random, toolbarposition=bottom', function () {
doOpen(localhtml, 'random_string', 'toolbarposition=bottom');
}, 'openLocalRandomToolBarBottom');
createActionButton('target=Random, toolbarposition=top', function () {
doOpen(localhtml, 'random_string', 'toolbarposition=top');
}, 'openLocalRandomToolBarTop');
createActionButton('target=Random, toolbarposition=top, location=no', function () {
doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
}, 'openLocalRandomToolBarTopNoLocation');
createActionButton(
'target=Default',
function () {
doOpen(localhtml);
},
'openLocal'
);
createActionButton(
'target=Default (window.open)',
function () {
doHookOpen(localhtml);
},
'openLocalHook'
);
createActionButton(
'target=_self',
function () {
doOpen(localhtml, '_self');
},
'openLocalSelf'
);
createActionButton(
'target=_system',
function () {
doOpen(localhtml, '_system');
},
'openLocalSystem'
);
createActionButton(
'target=_blank',
function () {
doOpen(localhtml, '_blank');
},
'openLocalBlank'
);
createActionButton(
'target=Random, location=no, disallowoverscroll=yes',
function () {
doOpen(localhtml, 'random_string', 'location=no, disallowoverscroll=yes');
},
'openLocalRandomNoLocation'
);
createActionButton(
'target=Random, toolbarposition=bottom',
function () {
doOpen(localhtml, 'random_string', 'toolbarposition=bottom');
},
'openLocalRandomToolBarBottom'
);
createActionButton(
'target=Random, toolbarposition=top',
function () {
doOpen(localhtml, 'random_string', 'toolbarposition=top');
},
'openLocalRandomToolBarTop'
);
createActionButton(
'target=Random, toolbarposition=top, location=no',
function () {
doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
},
'openLocalRandomToolBarTopNoLocation'
);
// White Listed
createActionButton('* target=Default', function () {
doOpen('http://cordova.apache.org');
}, 'openWhiteListed');
createActionButton('* target=Default (window.open)', function () {
doHookOpen('http://cordova.apache.org');
}, 'openWhiteListedHook');
createActionButton('* target=_self', function () {
doOpen('http://cordova.apache.org', '_self');
}, 'openWhiteListedSelf');
createActionButton('target=_system', function () {
doOpen('http://cordova.apache.org', '_system');
}, 'openWhiteListedSystem');
createActionButton('target=_blank', function () {
doOpen('http://cordova.apache.org', '_blank');
}, 'openWhiteListedBlank');
createActionButton('target=Random', function () {
doOpen('http://cordova.apache.org', 'random_string');
}, 'openWhiteListedRandom');
createActionButton('* target=Random, no location bar', function () {
doOpen('http://cordova.apache.org', 'random_string', 'location=no');
}, 'openWhiteListedRandomNoLocation');
createActionButton(
'* target=Default',
function () {
doOpen('http://cordova.apache.org');
},
'openWhiteListed'
);
createActionButton(
'* target=Default (window.open)',
function () {
doHookOpen('http://cordova.apache.org');
},
'openWhiteListedHook'
);
createActionButton(
'* target=_self',
function () {
doOpen('http://cordova.apache.org', '_self');
},
'openWhiteListedSelf'
);
createActionButton(
'target=_system',
function () {
doOpen('http://cordova.apache.org', '_system');
},
'openWhiteListedSystem'
);
createActionButton(
'target=_blank',
function () {
doOpen('http://cordova.apache.org', '_blank');
},
'openWhiteListedBlank'
);
createActionButton(
'target=Random',
function () {
doOpen('http://cordova.apache.org', 'random_string');
},
'openWhiteListedRandom'
);
createActionButton(
'* target=Random, no location bar',
function () {
doOpen('http://cordova.apache.org', 'random_string', 'location=no');
},
'openWhiteListedRandomNoLocation'
);
// Non White Listed
createActionButton('target=Default', function () {
doOpen('http://www.apple.com');
}, 'openNonWhiteListed');
createActionButton('target=Default (window.open)', function () {
doHookOpen('http://www.apple.com');
}, 'openNonWhiteListedHook');
createActionButton('target=_self', function () {
doOpen('http://www.apple.com', '_self');
}, 'openNonWhiteListedSelf');
createActionButton('target=_system', function () {
doOpen('http://www.apple.com', '_system');
}, 'openNonWhiteListedSystem');
createActionButton('target=_blank', function () {
doOpen('http://www.apple.com', '_blank');
}, 'openNonWhiteListedBlank');
createActionButton('target=Random', function () {
doOpen('http://www.apple.com', 'random_string');
}, 'openNonWhiteListedRandom');
createActionButton('* target=Random, no location bar', function () {
doOpen('http://www.apple.com', 'random_string', 'location=no');
}, 'openNonWhiteListedRandomNoLocation');
createActionButton(
'target=Default',
function () {
doOpen('http://www.apple.com');
},
'openNonWhiteListed'
);
createActionButton(
'target=Default (window.open)',
function () {
doHookOpen('http://www.apple.com');
},
'openNonWhiteListedHook'
);
createActionButton(
'target=_self',
function () {
doOpen('http://www.apple.com', '_self');
},
'openNonWhiteListedSelf'
);
createActionButton(
'target=_system',
function () {
doOpen('http://www.apple.com', '_system');
},
'openNonWhiteListedSystem'
);
createActionButton(
'target=_blank',
function () {
doOpen('http://www.apple.com', '_blank');
},
'openNonWhiteListedBlank'
);
createActionButton(
'target=Random',
function () {
doOpen('http://www.apple.com', 'random_string');
},
'openNonWhiteListedRandom'
);
createActionButton(
'* target=Random, no location bar',
function () {
doOpen('http://www.apple.com', 'random_string', 'location=no');
},
'openNonWhiteListedRandomNoLocation'
);
// Page with redirect
createActionButton('http://google.co.uk', function () {
doOpen('http://google.co.uk', 'random_string', '', 1);
}, 'openRedirect301');
createActionButton('http://goo.gl/pUFqg', function () {
doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
}, 'openRedirect302');
createActionButton(
'http://google.co.uk',
function () {
doOpen('http://google.co.uk', 'random_string', '', 1);
},
'openRedirect301'
);
createActionButton(
'http://goo.gl/pUFqg',
function () {
doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
},
'openRedirect302'
);
// PDF URL
createActionButton('Remote URL', function () {
doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
}, 'openPDF');
createActionButton('Local URL', function () {
doOpen(localpdf, '_blank');
}, 'openPDFBlank');
createActionButton(
'Remote URL',
function () {
doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
},
'openPDF'
);
createActionButton(
'Local URL',
function () {
doOpen(localpdf, '_blank');
},
'openPDFBlank'
);
// Invalid URL
createActionButton('Invalid Scheme', function () {
doOpen('x-ttp://www.invalid.com/', '_blank');
}, 'openInvalidScheme');
createActionButton('Invalid Host', function () {
doOpen('http://www.inv;alid.com/', '_blank');
}, 'openInvalidHost');
createActionButton('Missing Local File', function () {
doOpen('nonexistent.html', '_blank');
}, 'openInvalidMissing');
createActionButton(
'Invalid Scheme',
function () {
doOpen('x-ttp://www.invalid.com/', '_blank');
},
'openInvalidScheme'
);
createActionButton(
'Invalid Host',
function () {
doOpen('http://www.inv;alid.com/', '_blank');
},
'openInvalidHost'
);
createActionButton(
'Missing Local File',
function () {
doOpen('nonexistent.html', '_blank');
},
'openInvalidMissing'
);
// CSS / JS injection
createActionButton('Original Document', function () {
doOpen(injecthtml, '_blank');
}, 'openOriginalDocument');
createActionButton('CSS File Injection', function () {
openWithStyle(injecthtml, injectcss);
}, 'openCSSInjection');
createActionButton('CSS File Injection (callback)', function () {
openWithStyle(injecthtml, injectcss, true);
}, 'openCSSInjectionCallback');
createActionButton('CSS Literal Injection', function () {
openWithStyle(injecthtml);
}, 'openCSSLiteralInjection');
createActionButton('CSS Literal Injection (callback)', function () {
openWithStyle(injecthtml, null, true);
}, 'openCSSLiteralInjectionCallback');
createActionButton('Script File Injection', function () {
openWithScript(injecthtml, injectjs);
}, 'openScriptInjection');
createActionButton('Script File Injection (callback)', function () {
openWithScript(injecthtml, injectjs, true);
}, 'openScriptInjectionCallback');
createActionButton('Script Literal Injection', function () {
openWithScript(injecthtml);
}, 'openScriptLiteralInjection');
createActionButton('Script Literal Injection (callback)', function () {
openWithScript(injecthtml, null, true);
}, 'openScriptLiteralInjectionCallback');
createActionButton(
'Original Document',
function () {
doOpen(injecthtml, '_blank');
},
'openOriginalDocument'
);
createActionButton(
'CSS File Injection',
function () {
openWithStyle(injecthtml, injectcss);
},
'openCSSInjection'
);
createActionButton(
'CSS File Injection (callback)',
function () {
openWithStyle(injecthtml, injectcss, true);
},
'openCSSInjectionCallback'
);
createActionButton(
'CSS Literal Injection',
function () {
openWithStyle(injecthtml);
},
'openCSSLiteralInjection'
);
createActionButton(
'CSS Literal Injection (callback)',
function () {
openWithStyle(injecthtml, null, true);
},
'openCSSLiteralInjectionCallback'
);
createActionButton(
'Script File Injection',
function () {
openWithScript(injecthtml, injectjs);
},
'openScriptInjection'
);
createActionButton(
'Script File Injection (callback)',
function () {
openWithScript(injecthtml, injectjs, true);
},
'openScriptInjectionCallback'
);
createActionButton(
'Script Literal Injection',
function () {
openWithScript(injecthtml);
},
'openScriptLiteralInjection'
);
createActionButton(
'Script Literal Injection (callback)',
function () {
openWithScript(injecthtml, null, true);
},
'openScriptLiteralInjectionCallback'
);
// Open hidden
createActionButton('Create Hidden', function () {
openHidden('https://www.google.co.uk', true);
}, 'openHidden');
createActionButton('Show Hidden', function () {
showHidden();
}, 'showHidden');
createActionButton('Close Hidden', function () {
closeHidden();
}, 'closeHidden');
createActionButton('google.co.uk Not Hidden', function () {
openHidden('https://www.google.co.uk', false);
}, 'openHiddenShow');
createActionButton('google.co.uk shown for 2 seconds than hidden', function () {
var iab = doOpen('https://www.google.co.uk/', 'random_sting');
setTimeout(function () {
iab.hide();
}, 2000);
}, 'openVisibleAndHide');
createActionButton(
'Create Hidden',
function () {
openHidden('https://www.google.co.uk', true);
},
'openHidden'
);
createActionButton(
'Show Hidden',
function () {
showHidden();
},
'showHidden'
);
createActionButton(
'Close Hidden',
function () {
closeHidden();
},
'closeHidden'
);
createActionButton(
'google.co.uk Not Hidden',
function () {
openHidden('https://www.google.co.uk', false);
},
'openHiddenShow'
);
createActionButton(
'google.co.uk shown for 2 seconds than hidden',
function () {
var iab = doOpen('https://www.google.co.uk/', 'random_sting');
setTimeout(function () {
iab.hide();
}, 2000);
},
'openVisibleAndHide'
);
// Clearing cache
createActionButton('Clear Browser Cache', function () {
doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
}, 'openClearCache');
createActionButton('Clear Session Cache', function () {
doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
}, 'openClearSessionCache');
createActionButton(
'Clear Browser Cache',
function () {
doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
},
'openClearCache'
);
createActionButton(
'Clear Session Cache',
function () {
doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
},
'openClearSessionCache'
);
// Video tag
createActionButton('Remote Video', function () {
doOpen(videohtml, '_blank');
}, 'openRemoteVideo');
createActionButton('Remote Need User No Video', function () {
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=no');
}, 'openRemoteNeedUserNoVideo');
createActionButton('Remote Need User Yes Video', function () {
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
}, 'openRemoteNeedUserYesVideo');
createActionButton(
'Remote Video',
function () {
doOpen(videohtml, '_blank');
},
'openRemoteVideo'
);
createActionButton(
'Remote Need User No Video',
function () {
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=no');
},
'openRemoteNeedUserNoVideo'
);
createActionButton(
'Remote Need User Yes Video',
function () {
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
},
'openRemoteNeedUserYesVideo'
);
// Local With Anchor Tag
createActionButton('Anchor1', function () {
doOpen(localhtml + '#bogusanchor', '_blank');
}, 'openAnchor1');
createActionButton('Anchor2', function () {
doOpen(localhtml + '#anchor2', '_blank');
}, 'openAnchor2');
createActionButton(
'Anchor1',
function () {
doOpen(localhtml + '#bogusanchor', '_blank');
},
'openAnchor1'
);
createActionButton(
'Anchor2',
function () {
doOpen(localhtml + '#anchor2', '_blank');
},
'openAnchor2'
);
// Hardwareback
createActionButton('no hardwareback (defaults to yes)', function () {
doOpen('http://cordova.apache.org', '_blank');
}, 'openHardwareBackDefault');
createActionButton('hardwareback=yes', function () {
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=yes');
}, 'openHardwareBackYes');
createActionButton('hardwareback=no', function () {
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
}, 'openHardwareBackNo');
createActionButton('no hardwareback -> hardwareback=no -> no hardwareback', function () {
var ref = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
ref.addEventListener('loadstop', function () {
ref.close();
});
ref.addEventListener('exit', function () {
var ref2 = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes,hardwareback=no' + (platformOpts ? ',' + platformOpts : ''));
ref2.addEventListener('loadstop', function () {
ref2.close();
createActionButton(
'no hardwareback (defaults to yes)',
function () {
doOpen('http://cordova.apache.org', '_blank');
},
'openHardwareBackDefault'
);
createActionButton(
'hardwareback=yes',
function () {
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=yes');
},
'openHardwareBackYes'
);
createActionButton(
'hardwareback=no',
function () {
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
},
'openHardwareBackNo'
);
createActionButton(
'no hardwareback -> hardwareback=no -> no hardwareback',
function () {
var ref = cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
ref.addEventListener('loadstop', function () {
ref.close();
});
ref2.addEventListener('exit', function () {
cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
ref.addEventListener('exit', function () {
var ref2 = cordova.InAppBrowser.open(
'https://google.com',
'_blank',
'location=yes,hardwareback=no' + (platformOpts ? ',' + platformOpts : '')
);
ref2.addEventListener('loadstop', function () {
ref2.close();
});
ref2.addEventListener('exit', function () {
cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
});
});
});
}, 'openHardwareBackDefaultAfterNo');
},
'openHardwareBackDefaultAfterNo'
);
};