Skip to content

Commit ef3b8e2

Browse files
committed
[js] Test cleanup
Fixes #2390
1 parent c344464 commit ef3b8e2

File tree

11 files changed

+58
-23
lines changed

11 files changed

+58
-23
lines changed

javascript/node/selenium-webdriver/builder.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,14 @@ class Builder {
337337
return this;
338338
}
339339

340+
/**
341+
* @return {firefox.Options} the Firefox specific options currently configured
342+
* for this instance.
343+
*/
344+
getFirefoxOptions() {
345+
return this.firefoxOptions_;
346+
}
347+
340348
/**
341349
* Sets Opera specific {@linkplain opera.Options options} for drivers created
342350
* by this builder. Any logging or proxy settings defined on the given options

javascript/node/selenium-webdriver/lib/http.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,9 @@ class Executor {
320320
return new Session(parsed['sessionId'], parsed['value']);
321321
}
322322

323-
if (parsed) {
323+
if (parsed
324+
&& typeof parsed === 'object'
325+
&& 'value' in parsed) {
324326
let value = parsed['value'];
325327
return typeof value === 'undefined' ? null : value;
326328
}
@@ -349,7 +351,7 @@ function tryParse(str) {
349351
* @param {!Response} httpResponse The HTTP response to parse.
350352
* @param {boolean} w3c Whether the response should be processed using the
351353
* W3C wire protocol.
352-
* @return {{value: ?}} The parsed response.
354+
* @return {?} The parsed response.
353355
* @throws {WebDriverError} If the HTTP response is an error.
354356
*/
355357
function parseHttpResponse(httpResponse, w3c) {
@@ -369,11 +371,7 @@ function parseHttpResponse(httpResponse, w3c) {
369371
} else {
370372
error.checkLegacyResponse(parsed);
371373
}
372-
373-
if (!parsed || typeof parsed !== 'object') {
374-
parsed = {value: parsed};
375-
}
376-
return parsed
374+
return parsed;
377375
}
378376

379377
let value = httpResponse.body.replace(/\r\n/g, '\n');
@@ -386,7 +384,7 @@ function parseHttpResponse(httpResponse, w3c) {
386384
throw new error.WebDriverError(value);
387385
}
388386

389-
return {value: value || null};
387+
return value || null;
390388
}
391389

392390

javascript/node/selenium-webdriver/lib/test/index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ var build = require('./build'),
2323
isDevMode = require('../devmode'),
2424
webdriver = require('../../'),
2525
flow = webdriver.promise.controlFlow(),
26+
firefox = require('../../firefox'),
2627
remote = require('../../remote'),
2728
testing = require('../../testing'),
2829
fileserver = require('./fileserver');
@@ -159,6 +160,10 @@ function TestEnvironment(browserName, server) {
159160
var parts = browserName.split(/:/, 3);
160161

161162
if (parts[0] === LEGACY_FIREFOX) {
163+
var options = builder.getFirefoxOptions() || new firefox.Options();
164+
options.useGeckoDriver(false);
165+
builder.setFirefoxOptions(options);
166+
162167
parts[0] = webdriver.Browser.FIREFOX;
163168
}
164169

@@ -168,6 +173,7 @@ function TestEnvironment(browserName, server) {
168173
} else if (remoteUrl) {
169174
builder.usingServer(remoteUrl);
170175
}
176+
171177
builder.disableEnvironmentOverrides();
172178
return realBuild.call(builder);
173179
};

javascript/node/selenium-webdriver/test/actions_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ test.suite(function(env) {
2929
test.beforeEach(function() { driver = env.builder().build(); });
3030
test.afterEach(function() { driver.quit(); });
3131

32-
test.ignore(env.browsers(Browser.PHANTOM_JS, Browser.SAFARI)).
32+
test.ignore(
33+
env.browsers(Browser.FIREFOX, Browser.PHANTOM_JS, Browser.SAFARI)).
3334
describe('WebDriver.actions()', function() {
3435

3536
test.it('can move to and click element in an iframe', function() {

javascript/node/selenium-webdriver/test/cookie_test.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,11 @@ test.suite(function(env) {
151151
assertHasCookies();
152152
});
153153

154-
test.ignore(env.browsers(Browser.ANDROID, Browser.FIREFOX, Browser.IE)).
154+
test.ignore(env.browsers(
155+
Browser.ANDROID,
156+
Browser.FIREFOX,
157+
'legacy-' + Browser.FIREFOX,
158+
Browser.IE)).
155159
it('should retain cookie expiry', function() {
156160
let expirationDelay = 5 * 1000;
157161
let expiry = new Date(Date.now() + expirationDelay);

javascript/node/selenium-webdriver/test/execute_script_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@ test.suite(function(env) {
207207
assert(execute('return arguments.length', 1, 'a', false)).equalTo(3);
208208
});
209209

210-
test.it('can return arguments object as array', function() {
210+
test.ignore(env.browsers(Browser.FIREFOX)).
211+
it('can return arguments object as array', function() {
211212
execute('return arguments', 1, 'a', false).then(function(val) {
212213
assert(val.length).equalTo(3);
213214
assert(val[0]).equalTo(1);

javascript/node/selenium-webdriver/test/logging_test.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ test.suite(function(env) {
2929
// - does not return proper log level for "browser" messages.
3030
// - does not delete logs after retrieval
3131
// Logging API is not supported in IE.
32+
// Logging API not supported in Marionette.
3233
// Tests depend on opening data URLs, which is broken in Safari (issue 7586)
33-
test.ignore(env.browsers(Browser.PHANTOM_JS, Browser.IE, Browser.SAFARI)).
34+
test.ignore(env.browsers(
35+
Browser.PHANTOM_JS, Browser.IE, Browser.SAFARI, Browser.FIREFOX)).
3436
describe('logging', function() {
3537
var driver;
3638

@@ -64,7 +66,7 @@ test.suite(function(env) {
6466
});
6567

6668
// Firefox does not capture JS error console log messages.
67-
test.ignore(env.browsers(Browser.FIREFOX)).
69+
test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
6870
it('can be turned down', function() {
6971
var prefs = new logging.Preferences();
7072
prefs.setLevel(logging.Type.BROWSER, logging.Level.SEVERE);
@@ -87,7 +89,7 @@ test.suite(function(env) {
8789
});
8890

8991
// Firefox does not capture JS error console log messages.
90-
test.ignore(env.browsers(Browser.FIREFOX)).
92+
test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
9193
it('can be made verbose', function() {
9294
var prefs = new logging.Preferences();
9395
prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);
@@ -116,7 +118,7 @@ test.suite(function(env) {
116118
});
117119

118120
// Firefox does not capture JS error console log messages.
119-
test.ignore(env.browsers(Browser.FIREFOX)).
121+
test.ignore(env.browsers(Browser.FIREFOX, 'legacy-firefox')).
120122
it('clears records after retrieval', function() {
121123
var prefs = new logging.Preferences();
122124
prefs.setLevel(logging.Type.BROWSER, logging.Level.DEBUG);

javascript/node/selenium-webdriver/test/page_loading_test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ test.suite(function(env) {
5454
assert(driver.getTitle()).equalTo('We Arrive Here');
5555
});
5656

57-
test.it('should be able to get a fragment on the current page', function() {
57+
// Skip Firefox; see https://bugzilla.mozilla.org/show_bug.cgi?id=1280300
58+
test.ignore(browsers(Browser.FIREFOX)).
59+
it('should be able to get a fragment on the current page', function() {
5860
driver.get(Pages.xhtmlTestPage);
5961
driver.get(Pages.xhtmlTestPage + '#text');
6062
driver.findElement(By.id('id1'));

javascript/node/selenium-webdriver/test/stale_element_test.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@ test.suite(function(env) {
4848

4949
test.it('an element found in a different frame is stale', function() {
5050
driver.get(Pages.missedJsReferencePage);
51-
driver.switchTo().frame('inner');
51+
52+
var frame = driver.findElement(By.css('iframe[name="inner"]'));
53+
driver.switchTo().frame(frame);
54+
5255
var el = driver.findElement(By.id('oneline'));
5356
driver.switchTo().defaultContent();
5457
el.getText().then(fail, function(e) {

javascript/node/selenium-webdriver/test/upload_test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,15 @@ test.suite(function(env) {
7171
});
7272

7373
driver.findElement(By.id('upload')).sendKeys(fp);
74-
driver.findElement(By.id('go')).submit();
74+
driver.findElement(By.id('go')).click();
7575

7676
// Uploading files across a network may take a while, even if they're small.
7777
var label = driver.findElement(By.id('upload_label'));
7878
driver.wait(until.elementIsNotVisible(label),
7979
10 * 1000, 'File took longer than 10 seconds to upload!');
8080

81-
driver.switchTo().frame('upload_target');
81+
var frame = driver.findElement(By.id('upload_target'));
82+
driver.switchTo().frame(frame);
8283
assert(driver.findElement(By.css('body')).getText())
8384
.equalTo(LOREM_IPSUM_TEXT);
8485
});

0 commit comments

Comments
 (0)