From 8fbb75d6445a53fd27aa65c8e61a6e933b51e77f Mon Sep 17 00:00:00 2001 From: jonahss Date: Tue, 29 Apr 2014 15:12:41 -0700 Subject: [PATCH] fixed #2400 - autoAcceptAlerts. Added tests --- lib/devices/ios/ios.js | 4 +- .../ios/testapp/autoAcceptAlerts-specs.js | 95 +++++++++++++++++++ 2 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 test/functional/ios/testapp/autoAcceptAlerts-specs.js diff --git a/lib/devices/ios/ios.js b/lib/devices/ios/ios.js index e42298cb6..303814354 100644 --- a/lib/devices/ios/ios.js +++ b/lib/devices/ios/ios.js @@ -377,8 +377,8 @@ IOS.prototype.setInitialOrientation = function (cb) { IOS.prototype.setBootstrapConfig = function (cb) { logger.info("Setting bootstrap config keys/values"); - var pre = "setBootstrapConfig: "; - var cmd = pre + "autoAcceptAlerts=" + JSON.stringify(!!this.args.autoAcceptAlerts); + var autoAcceptAlerts = !(!this.args.autoAcceptAlerts || this.args.autoAcceptAlerts === 'false'); + var cmd = "setBootstrapConfig: autoAcceptAlerts=" + autoAcceptAlerts; this.proxy(cmd, function (err) { cb(err); // discard res }); diff --git a/test/functional/ios/testapp/autoAcceptAlerts-specs.js b/test/functional/ios/testapp/autoAcceptAlerts-specs.js new file mode 100644 index 000000000..e0895df17 --- /dev/null +++ b/test/functional/ios/testapp/autoAcceptAlerts-specs.js @@ -0,0 +1,95 @@ +"use strict"; + +var setup = require("../../common/setup-base"), + desired = require('./desired'), + _ = require('underscore'); + +describe('autoAcceptAlerts cap = true', function () { + var self = this; + var driver; + + var caps = _.clone(desired); + caps.autoAcceptAlerts = true; + setup(self, caps).then(function(d) { driver = d; }); + + it('auto-accepts alerts', function(done){ + driver.elementsByClassName('UIAButton') + .then(function (buttons) { return buttons[3].click(); }) + .sleep(2000) + .alertText() + .should.be.rejectedWith(/status: 27/) + .nodeify(done); + }); +}); + +describe('autoAcceptAlerts cap = false', function () { + var self = this; + var driver; + + var caps = _.clone(desired); + caps.autoAcceptAlerts = false; + setup(self, caps).then(function(d) { driver = d; }); + + it('does not auto-accept alerts', function(done){ + driver.elementsByClassName('UIAButton') + .then(function (buttons) { return buttons[3].click(); }) + .sleep(2000) + .alertText() + .should.eventually.exist + .nodeify(done); + }); +}); + +describe('autoAcceptAlerts cap = "true"', function () { + var self = this; + var driver; + + var caps = _.clone(desired); + caps.autoAcceptAlerts = 'true'; + setup(self, caps).then(function(d) { driver = d; }); + + it('auto-accepts alerts', function(done){ + driver.elementsByClassName('UIAButton') + .then(function (buttons) { return buttons[3].click(); }) + .sleep(2000) + .alertText() + .should.be.rejectedWith(/status: 27/) + .nodeify(done); + }); +}); + +describe('autoAcceptAlerts cap = "false"', function () { + var self = this; + var driver; + + var caps = _.clone(desired); + caps.autoAcceptAlerts = 'false'; + setup(self, caps).then(function(d) { driver = d; }); + + it('does not auto-accept alerts', function(done){ + driver.elementsByClassName('UIAButton') + .then(function (buttons) { return buttons[3].click(); }) + .sleep(2000) + .alertText() + .should.eventually.exist + .nodeify(done); + }); +}); + +describe('autoAcceptAlerts cap = ""', function () { + var self = this; + var driver; + + var caps = _.clone(desired); + caps.autoAcceptAlerts = ""; + setup(self, caps).then(function(d) { driver = d; }); + + it('does not auto-accept alerts', function(done){ + driver.elementsByClassName('UIAButton') + .then(function (buttons) { return buttons[3].click(); }) + .sleep(2000) + .alertText() + .should.eventually.exist + .nodeify(done); + }); +});