CB-10441 Add auto tests for InAppBrowser plugin
diff --git a/tests/tests.js b/tests/tests.js
index a827986..855403d 100644
--- a/tests/tests.js
+++ b/tests/tests.js
@@ -24,6 +24,78 @@
window.alert = window.alert || navigator.notification.alert;
+exports.defineAutoTests = function () {
+
+ describe('cordova.InAppBrowser', function () {
+
+ it("inappbrowser.spec.1 should exist", function () {
+ expect(cordova.InAppBrowser).toBeDefined();
+ });
+
+ it("inappbrowser.spec.2 should contain open function", function () {
+ expect(cordova.InAppBrowser.open).toBeDefined();
+ expect(typeof cordova.InAppBrowser.open === 'function').toBe(true);
+ });
+ });
+
+ describe('open method', function () {
+
+ var iabInsance;
+ var originalTimeout;
+ var url = 'http://apache.org/';
+
+ beforeEach(function () {
+ // increase timeout to ensure test url could be loaded within test time
+ originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
+ jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
+
+ iabInsance = null;
+ });
+
+ afterEach(function () {
+ // restore original timeout
+ jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
+
+ if (iabInsance && iabInsance.close) {
+ iabInsance.close();
+ }
+ iabInsance = null;
+ });
+
+ function verifyEvent(evt, type) {
+ expect(evt).toBeDefined();
+ expect(evt.type).toEqual(type);
+ expect(evt.url).toEqual(url);
+ }
+
+ it("inappbrowser.spec.3 should retun InAppBrowser class instance", function () {
+ iabInsance = cordova.InAppBrowser.open(url, '_blank');
+
+ expect(iabInsance).toBeDefined();
+
+ expect(iabInsance.addEventListener).toBeDefined();
+ expect(typeof iabInsance.addEventListener === 'function').toBe(true);
+ expect(iabInsance.close).toBeDefined();
+ expect(typeof iabInsance.close === 'function').toBe(true);
+
+ });
+
+ 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');
+ });
+
+ iabInsance = cordova.InAppBrowser.open(url, '_blank');
+ iabInsance.addEventListener('loadstart', onLoadStart);
+ iabInsance.addEventListener('loadstop', function (evt) {
+ verifyEvent(evt, 'loadstop');
+ expect(onLoadStart).toHaveBeenCalled();
+ done();
+ });
+ });
+ });
+};
+
exports.defineManualTests = function (contentEl, createActionButton) {
function doOpen(url, target, params, numExpectedRedirects, useWindowOpen) {