diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-11-16 01:59:39 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-11-16 02:00:31 +0100 |
commit | bd65bb67e25a79b019d745b7262b2008ce2adb15 (patch) | |
tree | 89e1b032103a63737f1a703e6a943832ef261704 /node_modules/selenium-webdriver/test/firefox | |
parent | f91466595b651721690133f58ab37f977539e95b (diff) |
incrementally verify denoms
The denominations are not stored in a separate object store.
Diffstat (limited to 'node_modules/selenium-webdriver/test/firefox')
-rw-r--r-- | node_modules/selenium-webdriver/test/firefox/firefox_test.js | 124 | ||||
-rw-r--r-- | node_modules/selenium-webdriver/test/firefox/profile_test.js | 1 |
2 files changed, 75 insertions, 50 deletions
diff --git a/node_modules/selenium-webdriver/test/firefox/firefox_test.js b/node_modules/selenium-webdriver/test/firefox/firefox_test.js index 6f3f4b3d9..485964f91 100644 --- a/node_modules/selenium-webdriver/test/firefox/firefox_test.js +++ b/node_modules/selenium-webdriver/test/firefox/firefox_test.js @@ -44,11 +44,30 @@ test.suite(function(env) { test.afterEach(function() { if (driver) { - driver.quit(); + return driver.quit(); } }); - test.it('can start Firefox with custom preferences', function() { + /** + * Runs a test that requires Firefox Developer Edition. The test will be + * skipped if dev cannot be found on the current system. + */ + function runWithFirefoxDev(options, testFn) { + let binary = new firefox.Binary(); + binary.useDevEdition(); + return binary.locate().then(exe => { + options.setBinary(exe); + driver = env.builder() + .setFirefoxOptions(options) + .build(); + return driver.call(testFn); + }, err => { + console.warn( + 'Skipping test: could not find Firefox Dev Edition: ' + err); + }); + } + + test.it('can start Firefox with custom preferences', function*() { var profile = new firefox.Profile(); profile.setPreference('general.useragent.override', 'foo;bar'); @@ -58,68 +77,72 @@ test.suite(function(env) { setFirefoxOptions(options). build(); - driver.get('data:text/html,<html><div>content</div></html>'); + yield driver.get('data:text/html,<html><div>content</div></html>'); - var userAgent = driver.executeScript( + var userAgent = yield driver.executeScript( 'return window.navigator.userAgent'); assert(userAgent).equalTo('foo;bar'); }); test.it('can start Firefox with a jetpack extension', function() { - var profile = new firefox.Profile(); + let profile = new firefox.Profile(); profile.addExtension(JETPACK_EXTENSION); - var options = new firefox.Options().setProfile(profile); + let options = new firefox.Options().setProfile(profile); - driver = env.builder(). - setFirefoxOptions(options). - build(); + return runWithFirefoxDev(options, function*() { + yield loadJetpackPage(driver, + 'data:text/html;charset=UTF-8,<html><div>content</div></html>'); - loadJetpackPage(driver, - 'data:text/html;charset=UTF-8,<html><div>content</div></html>'); - assert(driver.findElement({id: 'jetpack-sample-banner'}).getText()) - .equalTo('Hello, world!'); + let text = + yield driver.findElement({id: 'jetpack-sample-banner'}).getText(); + assert(text).equalTo('Hello, world!'); + }); }); test.it('can start Firefox with a normal extension', function() { - var profile = new firefox.Profile(); + let profile = new firefox.Profile(); profile.addExtension(NORMAL_EXTENSION); - var options = new firefox.Options().setProfile(profile); + let options = new firefox.Options().setProfile(profile); - driver = env.builder(). - setFirefoxOptions(options). - build(); + return runWithFirefoxDev(options, function*() { + yield driver.get('data:text/html,<html><div>content</div></html>'); - driver.get('data:text/html,<html><div>content</div></html>'); - assert(driver.findElement({id: 'sample-extension-footer'}).getText()) - .equalTo('Goodbye'); + let footer = + yield driver.findElement({id: 'sample-extension-footer'}); + let text = yield footer.getText(); + assert(text).equalTo('Goodbye'); + }); }); test.it('can start Firefox with multiple extensions', function() { - var profile = new firefox.Profile(); + let profile = new firefox.Profile(); profile.addExtension(JETPACK_EXTENSION); profile.addExtension(NORMAL_EXTENSION); - var options = new firefox.Options().setProfile(profile); + let options = new firefox.Options().setProfile(profile); - driver = env.builder(). - setFirefoxOptions(options). - build(); + return runWithFirefoxDev(options, function*() { + yield loadJetpackPage(driver, + 'data:text/html;charset=UTF-8,<html><div>content</div></html>'); + + let banner = + yield driver.findElement({id: 'jetpack-sample-banner'}).getText(); + assert(banner).equalTo('Hello, world!'); - loadJetpackPage(driver, - 'data:text/html;charset=UTF-8,<html><div>content</div></html>'); - assert(driver.findElement({id: 'jetpack-sample-banner'}).getText()) - .equalTo('Hello, world!'); - assert(driver.findElement({id: 'sample-extension-footer'}).getText()) - .equalTo('Goodbye'); + let footer = + yield driver.findElement({id: 'sample-extension-footer'}) + .getText(); + assert(footer).equalTo('Goodbye'); + }); }); function loadJetpackPage(driver, url) { // On linux the jetpack extension does not always run the first time // we load a page. If this happens, just reload the page (a simple // refresh doesn't appear to work). - driver.wait(function() { + return driver.wait(function() { driver.get(url); return driver.findElements({id: 'jetpack-sample-banner'}) .then(found => found.length > 0); @@ -131,21 +154,21 @@ test.suite(function(env) { var driver1, driver2; test.ignore(env.isRemote). - it('can start multiple sessions with single binary instance', function() { + it('can start multiple sessions with single binary instance', function*() { var options = new firefox.Options().setBinary(new firefox.Binary); env.builder().setFirefoxOptions(options); - driver1 = env.builder().build(); - driver2 = env.builder().build(); + driver1 = yield env.builder().build(); + driver2 = yield env.builder().build(); // Ok if this doesn't fail. }); - test.afterEach(function() { + test.afterEach(function*() { if (driver1) { - driver1.quit(); + yield driver1.quit(); } if (driver2) { - driver2.quit(); + yield driver2.quit(); } }); }); @@ -153,32 +176,35 @@ test.suite(function(env) { describe('context switching', function() { var driver; - test.beforeEach(function() { - driver = env.builder().build(); + test.beforeEach(function*() { + driver = yield env.builder().build(); }); test.afterEach(function() { if (driver) { - driver.quit(); + return driver.quit(); } }); test.ignore(() => !env.isMarionette). it('can get context', function() { - assert(driver.getContext()).equalTo(Context.CONTENT); + return assert(driver.getContext()).equalTo(Context.CONTENT); }); test.ignore(() => !env.isMarionette). - it('can set context', function() { - driver.setContext(Context.CHROME); - assert(driver.getContext()).equalTo(Context.CHROME); - driver.setContext(Context.CONTENT); - assert(driver.getContext()).equalTo(Context.CONTENT); + it('can set context', function*() { + yield driver.setContext(Context.CHROME); + let ctxt = yield driver.getContext(); + assert(ctxt).equalTo(Context.CHROME); + + yield driver.setContext(Context.CONTENT); + ctxt = yield driver.getContext(); + assert(ctxt).equalTo(Context.CONTENT); }); test.ignore(() => !env.isMarionette). it('throws on unknown context', function() { - driver.setContext("foo").then(assert.fail, function(e) { + return driver.setContext("foo").then(assert.fail, function(e) { assert(e).instanceOf(error.InvalidArgumentError); }); }); diff --git a/node_modules/selenium-webdriver/test/firefox/profile_test.js b/node_modules/selenium-webdriver/test/firefox/profile_test.js index 807c07b72..de61c26b5 100644 --- a/node_modules/selenium-webdriver/test/firefox/profile_test.js +++ b/node_modules/selenium-webdriver/test/firefox/profile_test.js @@ -52,7 +52,6 @@ describe('Profile', function() { it('allows overriding mutable properties', function() { var profile = new Profile(); - assert.equal('about:blank', profile.getPreference('browser.newtab.url')); profile.setPreference('browser.newtab.url', 'http://www.example.com'); assert.equal('http://www.example.com', |