refactor(eslint): use cordova-eslint /w fix (#747)
This commit is contained in:
parent
bdbb1df44c
commit
7c2810e885
@ -1,10 +1,23 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
root: true
|
||||
extends: semistandard
|
||||
rules:
|
||||
indent:
|
||||
- error
|
||||
- 4
|
||||
camelcase: off
|
||||
padded-blocks: off
|
||||
operator-linebreak: off
|
||||
no-throw-literal: off
|
||||
extends: '@cordova/eslint-config/browser'
|
||||
|
||||
overrides:
|
||||
- files: [tests/**/*.js]
|
||||
extends: '@cordova/eslint-config/node-tests'
|
||||
|
12
package.json
12
package.json
@ -34,8 +34,8 @@
|
||||
"cordova-windows"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "npm run eslint",
|
||||
"eslint": "node node_modules/eslint/bin/eslint www && node node_modules/eslint/bin/eslint src && node node_modules/eslint/bin/eslint tests"
|
||||
"test": "npm run lint",
|
||||
"lint": "eslint ."
|
||||
},
|
||||
"engines": {
|
||||
"cordovaDependencies": {
|
||||
@ -54,12 +54,6 @@
|
||||
"author": "Apache Software Foundation",
|
||||
"license": "Apache-2.0",
|
||||
"devDependencies": {
|
||||
"eslint": "^4.0.0",
|
||||
"eslint-config-semistandard": "^11.0.0",
|
||||
"eslint-config-standard": "^10.2.1",
|
||||
"eslint-plugin-import": "^2.3.0",
|
||||
"eslint-plugin-node": "^5.0.0",
|
||||
"eslint-plugin-promise": "^3.5.0",
|
||||
"eslint-plugin-standard": "^3.0.1"
|
||||
"@cordova/eslint-config": "^3.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -17,43 +17,37 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
var modulemapper = require('cordova/modulemapper');
|
||||
|
||||
var browserWrap,
|
||||
popup,
|
||||
navigationButtonsDiv,
|
||||
navigationButtonsDivInner,
|
||||
backButton,
|
||||
forwardButton,
|
||||
closeButton;
|
||||
var browserWrap, popup, navigationButtonsDiv, navigationButtonsDivInner, backButton, forwardButton, closeButton;
|
||||
|
||||
function attachNavigationEvents (element, callback) {
|
||||
var onError = function () {
|
||||
try {
|
||||
callback({ type: 'loaderror', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loaderror', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
} catch (err) {
|
||||
// blocked by CORS :\
|
||||
callback({ type: 'loaderror', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loaderror', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
}
|
||||
};
|
||||
|
||||
element.addEventListener('pageshow', function () {
|
||||
try {
|
||||
callback({ type: 'loadstart', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loadstart', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
} catch (err) {
|
||||
// blocked by CORS :\
|
||||
callback({ type: 'loadstart', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loadstart', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
}
|
||||
});
|
||||
|
||||
element.addEventListener('load', function () {
|
||||
try {
|
||||
callback({ type: 'loadstop', url: this.contentWindow.location.href }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loadstop', url: this.contentWindow.location.href }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
} catch (err) {
|
||||
// blocked by CORS :\
|
||||
callback({ type: 'loadstop', url: null }, {keepCallback: true}); // eslint-disable-line standard/no-callback-literal
|
||||
callback({ type: 'loadstop', url: null }, { keepCallback: true }); // eslint-disable-line standard/no-callback-literal
|
||||
}
|
||||
});
|
||||
|
||||
@ -153,7 +147,9 @@ var IAB = {
|
||||
|
||||
backButton.innerHTML = '←';
|
||||
backButton.addEventListener('click', function (e) {
|
||||
if (popup.canGoBack) { popup.goBack(); }
|
||||
if (popup.canGoBack) {
|
||||
popup.goBack();
|
||||
}
|
||||
});
|
||||
|
||||
forwardButton = document.createElement('button');
|
||||
@ -164,7 +160,9 @@ var IAB = {
|
||||
|
||||
forwardButton.innerHTML = '→';
|
||||
forwardButton.addEventListener('click', function (e) {
|
||||
if (popup.canGoForward) { popup.goForward(); }
|
||||
if (popup.canGoForward) {
|
||||
popup.goForward();
|
||||
}
|
||||
});
|
||||
|
||||
closeButton = document.createElement('button');
|
||||
|
@ -17,11 +17,10 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
/* jslint sloppy:true */
|
||||
/* global Windows:true, setImmediate */
|
||||
/* eslint standard/no-callback-literal : 0 */
|
||||
/* eslint-disable standard/no-callback-literal */
|
||||
/* global Windows, setImmediate */
|
||||
|
||||
var cordova = require('cordova');
|
||||
var urlutil = require('cordova/urlutil');
|
||||
@ -44,21 +43,32 @@ var isWebViewAvailable = cordova.platformId === 'windows';
|
||||
function attachNavigationEvents (element, callback) {
|
||||
if (isWebViewAvailable) {
|
||||
element.addEventListener('MSWebViewNavigationStarting', function (e) {
|
||||
callback({ type: 'loadstart', url: e.uri }, {keepCallback: true});
|
||||
callback({ type: 'loadstart', url: e.uri }, { keepCallback: true });
|
||||
});
|
||||
|
||||
element.addEventListener('MSWebViewNavigationCompleted', function (e) {
|
||||
if (e.isSuccess) {
|
||||
callback({ type: 'loadstop', url: e.uri }, { keepCallback: true });
|
||||
} else {
|
||||
callback({ type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus }, { keepCallback: true });
|
||||
callback(
|
||||
{
|
||||
type: 'loaderror',
|
||||
url: e.uri,
|
||||
code: e.webErrorStatus,
|
||||
message: 'Navigation failed with error code ' + e.webErrorStatus
|
||||
},
|
||||
{ keepCallback: true }
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
element.addEventListener('MSWebViewUnviewableContentIdentified', function (e) {
|
||||
// WebView found the content to be not HTML.
|
||||
// http://msdn.microsoft.com/en-us/library/windows/apps/dn609716.aspx
|
||||
callback({ type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus }, { keepCallback: true });
|
||||
callback(
|
||||
{ type: 'loaderror', url: e.uri, code: e.webErrorStatus, message: 'Navigation failed with error code ' + e.webErrorStatus },
|
||||
{ keepCallback: true }
|
||||
);
|
||||
});
|
||||
|
||||
element.addEventListener('MSWebViewContentLoading', function (e) {
|
||||
@ -78,15 +88,15 @@ function attachNavigationEvents (element, callback) {
|
||||
});
|
||||
} else {
|
||||
var onError = function () {
|
||||
callback({ type: 'loaderror', url: this.contentWindow.location }, {keepCallback: true});
|
||||
callback({ type: 'loaderror', url: this.contentWindow.location }, { keepCallback: true });
|
||||
};
|
||||
|
||||
element.addEventListener('unload', function () {
|
||||
callback({ type: 'loadstart', url: this.contentWindow.location }, {keepCallback: true});
|
||||
callback({ type: 'loadstart', url: this.contentWindow.location }, { keepCallback: true });
|
||||
});
|
||||
|
||||
element.addEventListener('load', function () {
|
||||
callback({ type: 'loadstop', url: this.contentWindow.location }, {keepCallback: true});
|
||||
callback({ type: 'loadstop', url: this.contentWindow.location }, { keepCallback: true });
|
||||
});
|
||||
|
||||
element.addEventListener('error', onError);
|
||||
@ -175,7 +185,8 @@ var IAB = {
|
||||
}
|
||||
|
||||
popup = document.createElement(isWebViewAvailable ? 'x-ms-webview' : 'iframe');
|
||||
if (popup instanceof HTMLIFrameElement) { // eslint-disable-line no-undef
|
||||
if (popup instanceof HTMLIFrameElement) {
|
||||
// eslint-disable-line no-undef
|
||||
// For iframe we need to override bacground color of parent element here
|
||||
// otherwise pages without background color set will have transparent background
|
||||
popup.style.backgroundColor = 'white';
|
||||
@ -240,14 +251,18 @@ var IAB = {
|
||||
backButton.innerText = 'back';
|
||||
backButton.className = 'app-bar-action action-back';
|
||||
backButton.addEventListener('click', function (e) {
|
||||
if (popup.canGoBack) { popup.goBack(); }
|
||||
if (popup.canGoBack) {
|
||||
popup.goBack();
|
||||
}
|
||||
});
|
||||
|
||||
forwardButton = document.createElement('div');
|
||||
forwardButton.innerText = 'forward';
|
||||
forwardButton.className = 'app-bar-action action-forward';
|
||||
forwardButton.addEventListener('click', function (e) {
|
||||
if (popup.canGoForward) { popup.goForward(); }
|
||||
if (popup.canGoForward) {
|
||||
popup.goForward();
|
||||
}
|
||||
});
|
||||
|
||||
closeButton = document.createElement('div');
|
||||
@ -292,11 +307,11 @@ var IAB = {
|
||||
op.oncomplete = function (e) {
|
||||
if (hasCallback) {
|
||||
// return null if event target is unavailable by some reason
|
||||
var result = (e && e.target) ? [e.target.result] : [null];
|
||||
var result = e && e.target ? [e.target.result] : [null];
|
||||
win(result);
|
||||
}
|
||||
};
|
||||
op.onerror = function () { };
|
||||
op.onerror = function () {};
|
||||
op.start();
|
||||
}
|
||||
});
|
||||
@ -323,7 +338,7 @@ var IAB = {
|
||||
win(result);
|
||||
}
|
||||
};
|
||||
op.onerror = function () { };
|
||||
op.onerror = function () {};
|
||||
op.start();
|
||||
});
|
||||
});
|
||||
@ -352,13 +367,18 @@ var IAB = {
|
||||
if (isWebViewAvailable && browserWrap && popup) {
|
||||
// CB-12364 getFileFromApplicationUriAsync does not support ms-appx-web
|
||||
var uri = new Windows.Foundation.Uri(filePath.replace('ms-appx-web:', 'ms-appx:'));
|
||||
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri).then(function (file) {
|
||||
Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri)
|
||||
.then(function (file) {
|
||||
return Windows.Storage.FileIO.readTextAsync(file);
|
||||
}).done(function (code) {
|
||||
})
|
||||
.done(
|
||||
function (code) {
|
||||
injectCSS(popup, code, hasCallback && win);
|
||||
}, function () {
|
||||
},
|
||||
function () {
|
||||
// no-op, just catch an error
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -367,8 +387,10 @@ var IAB = {
|
||||
function injectCSS (webView, cssCode, callback) {
|
||||
// This will automatically escape all thing that we need (quotes, slashes, etc.)
|
||||
var escapedCode = JSON.stringify(cssCode);
|
||||
var evalWrapper = '(function(d){var c=d.createElement(\'style\');c.innerHTML=%s;d.head.appendChild(c);})(document)'
|
||||
.replace('%s', escapedCode);
|
||||
var evalWrapper = "(function(d){var c=d.createElement('style');c.innerHTML=%s;d.head.appendChild(c);})(document)".replace(
|
||||
'%s',
|
||||
escapedCode
|
||||
);
|
||||
|
||||
var op = webView.invokeScriptAsync('eval', evalWrapper);
|
||||
op.oncomplete = function () {
|
||||
@ -376,7 +398,7 @@ function injectCSS (webView, cssCode, callback) {
|
||||
callback([]);
|
||||
}
|
||||
};
|
||||
op.onerror = function () { };
|
||||
op.onerror = function () {};
|
||||
op.start();
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
*/
|
||||
|
||||
var d = document.getElementById('header');
|
||||
d.innerHTML = 'Script file successfully injected';
|
||||
|
593
tests/tests.js
593
tests/tests.js
@ -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;
|
||||
@ -146,7 +144,7 @@ exports.defineAutoTests = function () {
|
||||
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');
|
||||
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) {
|
||||
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
|
||||
alert('Got: ' + typeof results + '\n' + JSON.stringify(results)); // eslint-disable-line no-undef
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
} else {
|
||||
iab.addEventListener('loadstop', function (event) {
|
||||
var code = '(function(){\n' +
|
||||
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) {
|
||||
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
|
||||
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,200 +589,422 @@ exports.defineManualTests = function (contentEl, createActionButton) {
|
||||
var videohtml = basePath + 'video.html';
|
||||
|
||||
// Local
|
||||
createActionButton('target=Default', function () {
|
||||
createActionButton(
|
||||
'target=Default',
|
||||
function () {
|
||||
doOpen(localhtml);
|
||||
}, 'openLocal');
|
||||
createActionButton('target=Default (window.open)', function () {
|
||||
},
|
||||
'openLocal'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Default (window.open)',
|
||||
function () {
|
||||
doHookOpen(localhtml);
|
||||
}, 'openLocalHook');
|
||||
createActionButton('target=_self', function () {
|
||||
},
|
||||
'openLocalHook'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_self',
|
||||
function () {
|
||||
doOpen(localhtml, '_self');
|
||||
}, 'openLocalSelf');
|
||||
createActionButton('target=_system', function () {
|
||||
},
|
||||
'openLocalSelf'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_system',
|
||||
function () {
|
||||
doOpen(localhtml, '_system');
|
||||
}, 'openLocalSystem');
|
||||
createActionButton('target=_blank', function () {
|
||||
},
|
||||
'openLocalSystem'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_blank',
|
||||
function () {
|
||||
doOpen(localhtml, '_blank');
|
||||
}, 'openLocalBlank');
|
||||
createActionButton('target=Random, location=no, disallowoverscroll=yes', function () {
|
||||
},
|
||||
'openLocalBlank'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random, location=no, disallowoverscroll=yes',
|
||||
function () {
|
||||
doOpen(localhtml, 'random_string', 'location=no, disallowoverscroll=yes');
|
||||
}, 'openLocalRandomNoLocation');
|
||||
createActionButton('target=Random, toolbarposition=bottom', function () {
|
||||
},
|
||||
'openLocalRandomNoLocation'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random, toolbarposition=bottom',
|
||||
function () {
|
||||
doOpen(localhtml, 'random_string', 'toolbarposition=bottom');
|
||||
}, 'openLocalRandomToolBarBottom');
|
||||
createActionButton('target=Random, toolbarposition=top', function () {
|
||||
},
|
||||
'openLocalRandomToolBarBottom'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random, toolbarposition=top',
|
||||
function () {
|
||||
doOpen(localhtml, 'random_string', 'toolbarposition=top');
|
||||
}, 'openLocalRandomToolBarTop');
|
||||
createActionButton('target=Random, toolbarposition=top, location=no', function () {
|
||||
},
|
||||
'openLocalRandomToolBarTop'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random, toolbarposition=top, location=no',
|
||||
function () {
|
||||
doOpen(localhtml, 'random_string', 'toolbarposition=top,location=no');
|
||||
}, 'openLocalRandomToolBarTopNoLocation');
|
||||
},
|
||||
'openLocalRandomToolBarTopNoLocation'
|
||||
);
|
||||
|
||||
// White Listed
|
||||
createActionButton('* target=Default', function () {
|
||||
createActionButton(
|
||||
'* target=Default',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org');
|
||||
}, 'openWhiteListed');
|
||||
createActionButton('* target=Default (window.open)', function () {
|
||||
},
|
||||
'openWhiteListed'
|
||||
);
|
||||
createActionButton(
|
||||
'* target=Default (window.open)',
|
||||
function () {
|
||||
doHookOpen('http://cordova.apache.org');
|
||||
}, 'openWhiteListedHook');
|
||||
createActionButton('* target=_self', function () {
|
||||
},
|
||||
'openWhiteListedHook'
|
||||
);
|
||||
createActionButton(
|
||||
'* target=_self',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_self');
|
||||
}, 'openWhiteListedSelf');
|
||||
createActionButton('target=_system', function () {
|
||||
},
|
||||
'openWhiteListedSelf'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_system',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_system');
|
||||
}, 'openWhiteListedSystem');
|
||||
createActionButton('target=_blank', function () {
|
||||
},
|
||||
'openWhiteListedSystem'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_blank',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_blank');
|
||||
}, 'openWhiteListedBlank');
|
||||
createActionButton('target=Random', function () {
|
||||
},
|
||||
'openWhiteListedBlank'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', 'random_string');
|
||||
}, 'openWhiteListedRandom');
|
||||
createActionButton('* target=Random, no location bar', function () {
|
||||
},
|
||||
'openWhiteListedRandom'
|
||||
);
|
||||
createActionButton(
|
||||
'* target=Random, no location bar',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', 'random_string', 'location=no');
|
||||
}, 'openWhiteListedRandomNoLocation');
|
||||
},
|
||||
'openWhiteListedRandomNoLocation'
|
||||
);
|
||||
|
||||
// Non White Listed
|
||||
createActionButton('target=Default', function () {
|
||||
createActionButton(
|
||||
'target=Default',
|
||||
function () {
|
||||
doOpen('http://www.apple.com');
|
||||
}, 'openNonWhiteListed');
|
||||
createActionButton('target=Default (window.open)', function () {
|
||||
},
|
||||
'openNonWhiteListed'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Default (window.open)',
|
||||
function () {
|
||||
doHookOpen('http://www.apple.com');
|
||||
}, 'openNonWhiteListedHook');
|
||||
createActionButton('target=_self', function () {
|
||||
},
|
||||
'openNonWhiteListedHook'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_self',
|
||||
function () {
|
||||
doOpen('http://www.apple.com', '_self');
|
||||
}, 'openNonWhiteListedSelf');
|
||||
createActionButton('target=_system', function () {
|
||||
},
|
||||
'openNonWhiteListedSelf'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_system',
|
||||
function () {
|
||||
doOpen('http://www.apple.com', '_system');
|
||||
}, 'openNonWhiteListedSystem');
|
||||
createActionButton('target=_blank', function () {
|
||||
},
|
||||
'openNonWhiteListedSystem'
|
||||
);
|
||||
createActionButton(
|
||||
'target=_blank',
|
||||
function () {
|
||||
doOpen('http://www.apple.com', '_blank');
|
||||
}, 'openNonWhiteListedBlank');
|
||||
createActionButton('target=Random', function () {
|
||||
},
|
||||
'openNonWhiteListedBlank'
|
||||
);
|
||||
createActionButton(
|
||||
'target=Random',
|
||||
function () {
|
||||
doOpen('http://www.apple.com', 'random_string');
|
||||
}, 'openNonWhiteListedRandom');
|
||||
createActionButton('* target=Random, no location bar', function () {
|
||||
},
|
||||
'openNonWhiteListedRandom'
|
||||
);
|
||||
createActionButton(
|
||||
'* target=Random, no location bar',
|
||||
function () {
|
||||
doOpen('http://www.apple.com', 'random_string', 'location=no');
|
||||
}, 'openNonWhiteListedRandomNoLocation');
|
||||
},
|
||||
'openNonWhiteListedRandomNoLocation'
|
||||
);
|
||||
|
||||
// Page with redirect
|
||||
createActionButton('http://google.co.uk', function () {
|
||||
createActionButton(
|
||||
'http://google.co.uk',
|
||||
function () {
|
||||
doOpen('http://google.co.uk', 'random_string', '', 1);
|
||||
}, 'openRedirect301');
|
||||
createActionButton('http://goo.gl/pUFqg', function () {
|
||||
},
|
||||
'openRedirect301'
|
||||
);
|
||||
createActionButton(
|
||||
'http://goo.gl/pUFqg',
|
||||
function () {
|
||||
doOpen('http://goo.gl/pUFqg', 'random_string', '', 2);
|
||||
}, 'openRedirect302');
|
||||
},
|
||||
'openRedirect302'
|
||||
);
|
||||
|
||||
// PDF URL
|
||||
createActionButton('Remote URL', function () {
|
||||
createActionButton(
|
||||
'Remote URL',
|
||||
function () {
|
||||
doOpen('http://www.stluciadance.com/prospectus_file/sample.pdf');
|
||||
}, 'openPDF');
|
||||
createActionButton('Local URL', function () {
|
||||
},
|
||||
'openPDF'
|
||||
);
|
||||
createActionButton(
|
||||
'Local URL',
|
||||
function () {
|
||||
doOpen(localpdf, '_blank');
|
||||
}, 'openPDFBlank');
|
||||
},
|
||||
'openPDFBlank'
|
||||
);
|
||||
|
||||
// Invalid URL
|
||||
createActionButton('Invalid Scheme', function () {
|
||||
createActionButton(
|
||||
'Invalid Scheme',
|
||||
function () {
|
||||
doOpen('x-ttp://www.invalid.com/', '_blank');
|
||||
}, 'openInvalidScheme');
|
||||
createActionButton('Invalid Host', function () {
|
||||
},
|
||||
'openInvalidScheme'
|
||||
);
|
||||
createActionButton(
|
||||
'Invalid Host',
|
||||
function () {
|
||||
doOpen('http://www.inv;alid.com/', '_blank');
|
||||
}, 'openInvalidHost');
|
||||
createActionButton('Missing Local File', function () {
|
||||
},
|
||||
'openInvalidHost'
|
||||
);
|
||||
createActionButton(
|
||||
'Missing Local File',
|
||||
function () {
|
||||
doOpen('nonexistent.html', '_blank');
|
||||
}, 'openInvalidMissing');
|
||||
},
|
||||
'openInvalidMissing'
|
||||
);
|
||||
|
||||
// CSS / JS injection
|
||||
createActionButton('Original Document', function () {
|
||||
createActionButton(
|
||||
'Original Document',
|
||||
function () {
|
||||
doOpen(injecthtml, '_blank');
|
||||
}, 'openOriginalDocument');
|
||||
createActionButton('CSS File Injection', function () {
|
||||
},
|
||||
'openOriginalDocument'
|
||||
);
|
||||
createActionButton(
|
||||
'CSS File Injection',
|
||||
function () {
|
||||
openWithStyle(injecthtml, injectcss);
|
||||
}, 'openCSSInjection');
|
||||
createActionButton('CSS File Injection (callback)', function () {
|
||||
},
|
||||
'openCSSInjection'
|
||||
);
|
||||
createActionButton(
|
||||
'CSS File Injection (callback)',
|
||||
function () {
|
||||
openWithStyle(injecthtml, injectcss, true);
|
||||
}, 'openCSSInjectionCallback');
|
||||
createActionButton('CSS Literal Injection', function () {
|
||||
},
|
||||
'openCSSInjectionCallback'
|
||||
);
|
||||
createActionButton(
|
||||
'CSS Literal Injection',
|
||||
function () {
|
||||
openWithStyle(injecthtml);
|
||||
}, 'openCSSLiteralInjection');
|
||||
createActionButton('CSS Literal Injection (callback)', function () {
|
||||
},
|
||||
'openCSSLiteralInjection'
|
||||
);
|
||||
createActionButton(
|
||||
'CSS Literal Injection (callback)',
|
||||
function () {
|
||||
openWithStyle(injecthtml, null, true);
|
||||
}, 'openCSSLiteralInjectionCallback');
|
||||
createActionButton('Script File Injection', function () {
|
||||
},
|
||||
'openCSSLiteralInjectionCallback'
|
||||
);
|
||||
createActionButton(
|
||||
'Script File Injection',
|
||||
function () {
|
||||
openWithScript(injecthtml, injectjs);
|
||||
}, 'openScriptInjection');
|
||||
createActionButton('Script File Injection (callback)', function () {
|
||||
},
|
||||
'openScriptInjection'
|
||||
);
|
||||
createActionButton(
|
||||
'Script File Injection (callback)',
|
||||
function () {
|
||||
openWithScript(injecthtml, injectjs, true);
|
||||
}, 'openScriptInjectionCallback');
|
||||
createActionButton('Script Literal Injection', function () {
|
||||
},
|
||||
'openScriptInjectionCallback'
|
||||
);
|
||||
createActionButton(
|
||||
'Script Literal Injection',
|
||||
function () {
|
||||
openWithScript(injecthtml);
|
||||
}, 'openScriptLiteralInjection');
|
||||
createActionButton('Script Literal Injection (callback)', function () {
|
||||
},
|
||||
'openScriptLiteralInjection'
|
||||
);
|
||||
createActionButton(
|
||||
'Script Literal Injection (callback)',
|
||||
function () {
|
||||
openWithScript(injecthtml, null, true);
|
||||
}, 'openScriptLiteralInjectionCallback');
|
||||
},
|
||||
'openScriptLiteralInjectionCallback'
|
||||
);
|
||||
|
||||
// Open hidden
|
||||
createActionButton('Create Hidden', function () {
|
||||
createActionButton(
|
||||
'Create Hidden',
|
||||
function () {
|
||||
openHidden('https://www.google.co.uk', true);
|
||||
}, 'openHidden');
|
||||
createActionButton('Show Hidden', function () {
|
||||
},
|
||||
'openHidden'
|
||||
);
|
||||
createActionButton(
|
||||
'Show Hidden',
|
||||
function () {
|
||||
showHidden();
|
||||
}, 'showHidden');
|
||||
createActionButton('Close Hidden', function () {
|
||||
},
|
||||
'showHidden'
|
||||
);
|
||||
createActionButton(
|
||||
'Close Hidden',
|
||||
function () {
|
||||
closeHidden();
|
||||
}, 'closeHidden');
|
||||
createActionButton('google.co.uk Not Hidden', function () {
|
||||
},
|
||||
'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 () {
|
||||
},
|
||||
'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');
|
||||
},
|
||||
'openVisibleAndHide'
|
||||
);
|
||||
|
||||
// Clearing cache
|
||||
createActionButton('Clear Browser Cache', function () {
|
||||
createActionButton(
|
||||
'Clear Browser Cache',
|
||||
function () {
|
||||
doOpen('https://www.google.co.uk', '_blank', 'clearcache=yes');
|
||||
}, 'openClearCache');
|
||||
createActionButton('Clear Session Cache', function () {
|
||||
},
|
||||
'openClearCache'
|
||||
);
|
||||
createActionButton(
|
||||
'Clear Session Cache',
|
||||
function () {
|
||||
doOpen('https://www.google.co.uk', '_blank', 'clearsessioncache=yes');
|
||||
}, 'openClearSessionCache');
|
||||
},
|
||||
'openClearSessionCache'
|
||||
);
|
||||
|
||||
// Video tag
|
||||
createActionButton('Remote Video', function () {
|
||||
createActionButton(
|
||||
'Remote Video',
|
||||
function () {
|
||||
doOpen(videohtml, '_blank');
|
||||
}, 'openRemoteVideo');
|
||||
createActionButton('Remote Need User No Video', function () {
|
||||
},
|
||||
'openRemoteVideo'
|
||||
);
|
||||
createActionButton(
|
||||
'Remote Need User No Video',
|
||||
function () {
|
||||
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=no');
|
||||
}, 'openRemoteNeedUserNoVideo');
|
||||
createActionButton('Remote Need User Yes Video', function () {
|
||||
},
|
||||
'openRemoteNeedUserNoVideo'
|
||||
);
|
||||
createActionButton(
|
||||
'Remote Need User Yes Video',
|
||||
function () {
|
||||
doOpen(videohtml, '_blank', 'mediaPlaybackRequiresUserAction=yes');
|
||||
}, 'openRemoteNeedUserYesVideo');
|
||||
},
|
||||
'openRemoteNeedUserYesVideo'
|
||||
);
|
||||
|
||||
// Local With Anchor Tag
|
||||
createActionButton('Anchor1', function () {
|
||||
createActionButton(
|
||||
'Anchor1',
|
||||
function () {
|
||||
doOpen(localhtml + '#bogusanchor', '_blank');
|
||||
}, 'openAnchor1');
|
||||
createActionButton('Anchor2', function () {
|
||||
},
|
||||
'openAnchor1'
|
||||
);
|
||||
createActionButton(
|
||||
'Anchor2',
|
||||
function () {
|
||||
doOpen(localhtml + '#anchor2', '_blank');
|
||||
}, 'openAnchor2');
|
||||
},
|
||||
'openAnchor2'
|
||||
);
|
||||
|
||||
// Hardwareback
|
||||
createActionButton('no hardwareback (defaults to yes)', function () {
|
||||
createActionButton(
|
||||
'no hardwareback (defaults to yes)',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_blank');
|
||||
}, 'openHardwareBackDefault');
|
||||
createActionButton('hardwareback=yes', function () {
|
||||
},
|
||||
'openHardwareBackDefault'
|
||||
);
|
||||
createActionButton(
|
||||
'hardwareback=yes',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=yes');
|
||||
}, 'openHardwareBackYes');
|
||||
createActionButton('hardwareback=no', function () {
|
||||
},
|
||||
'openHardwareBackYes'
|
||||
);
|
||||
createActionButton(
|
||||
'hardwareback=no',
|
||||
function () {
|
||||
doOpen('http://cordova.apache.org', '_blank', 'hardwareback=no');
|
||||
}, 'openHardwareBackNo');
|
||||
createActionButton('no hardwareback -> hardwareback=no -> no hardwareback', function () {
|
||||
},
|
||||
'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 : ''));
|
||||
var ref2 = cordova.InAppBrowser.open(
|
||||
'https://google.com',
|
||||
'_blank',
|
||||
'location=yes,hardwareback=no' + (platformOpts ? ',' + platformOpts : '')
|
||||
);
|
||||
ref2.addEventListener('loadstop', function () {
|
||||
ref2.close();
|
||||
});
|
||||
@ -735,5 +1012,7 @@ exports.defineManualTests = function (contentEl, createActionButton) {
|
||||
cordova.InAppBrowser.open('https://google.com', '_blank', 'location=yes' + (platformOpts ? ',' + platformOpts : ''));
|
||||
});
|
||||
});
|
||||
}, 'openHardwareBackDefaultAfterNo');
|
||||
},
|
||||
'openHardwareBackDefaultAfterNo'
|
||||
);
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
(function () {
|
||||
var exec = require('cordova/exec');
|
||||
@ -27,19 +27,19 @@
|
||||
|
||||
function InAppBrowser () {
|
||||
this.channels = {
|
||||
'beforeload': channel.create('beforeload'),
|
||||
'loadstart': channel.create('loadstart'),
|
||||
'loadstop': channel.create('loadstop'),
|
||||
'loaderror': channel.create('loaderror'),
|
||||
'exit': channel.create('exit'),
|
||||
'customscheme': channel.create('customscheme'),
|
||||
'message': channel.create('message')
|
||||
beforeload: channel.create('beforeload'),
|
||||
loadstart: channel.create('loadstart'),
|
||||
loadstop: channel.create('loadstop'),
|
||||
loaderror: channel.create('loaderror'),
|
||||
exit: channel.create('exit'),
|
||||
customscheme: channel.create('customscheme'),
|
||||
message: channel.create('message')
|
||||
};
|
||||
}
|
||||
|
||||
InAppBrowser.prototype = {
|
||||
_eventHandler: function (event) {
|
||||
if (event && (event.type in this.channels)) {
|
||||
if (event && event.type in this.channels) {
|
||||
if (event.type === 'beforeload') {
|
||||
this.channels[event.type].fire(event, this._loadAfterBeforeload);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user