Bug 1465530 - Enable ESLint rule require-expected-throws-or-rejects for testing/marionette/. r?ato draft
authorMark Banner <standard8@mozilla.com>
Wed, 30 May 2018 17:35:12 +0100
changeset 801653 82ba54f9b44ccc1837d6997f2307da9bdb91e1f7
parent 801214 89d79c2258be1c420153e1adc54338b0165fc88e
push id111713
push userbmo:standard8@mozilla.com
push dateWed, 30 May 2018 16:41:14 +0000
reviewersato
bugs1465530
milestone62.0a1
Bug 1465530 - Enable ESLint rule require-expected-throws-or-rejects for testing/marionette/. r?ato MozReview-Commit-ID: 2CM4x0vUXbC
.eslintrc.js
testing/marionette/test/unit/test_assert.js
testing/marionette/test/unit/test_element.js
testing/marionette/test/unit/test_message.js
testing/marionette/test/unit/test_session.js
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -52,17 +52,16 @@ module.exports = {
     // XXX Bug 1452706. These directories are still being fixed, so turn off
     //  mozilla/require-expected-throws-or-rejects for now.
     "files": [
       "browser/extensions/formautofill/test/unit/test_storage_tombstones.js",
       "browser/modules/test/browser/**",
       "browser/tools/mozscreenshots/browser_boundingbox.js",
       "devtools/client/inspector/extensions/test/head_devtools_inspector_sidebar.js",
       "storage/test/unit/**",
-      "testing/marionette/test/unit/**",
       "toolkit/components/extensions/**",
       "toolkit/mozapps/extensions/test/xpcshell/**"
     ],
     "rules": {
       "mozilla/require-expected-throws-or-rejects": "off",
     }
   }, {
     // XXX Bug 1452706. These directories are still being fixed, so turn off
--- a/testing/marionette/test/unit/test_assert.js
+++ b/testing/marionette/test/unit/test_assert.js
@@ -219,18 +219,18 @@ add_test(function test_array() {
 
   Assert.throws(() => assert.array(42, "custom"), /custom/);
 
   run_next_test();
 });
 
 add_test(function test_that() {
   equal(1, assert.that(n => n + 1)(1));
-  Assert.throws(() => assert.that(() => false)());
-  Assert.throws(() => assert.that(val => val)(false));
+  Assert.throws(() => assert.that(() => false)(), InvalidArgumentError);
+  Assert.throws(() => assert.that(val => val)(false), InvalidArgumentError);
   Assert.throws(() => assert.that(val => val, "foo", SessionNotCreatedError)(false),
       SessionNotCreatedError);
 
   Assert.throws(() => assert.that(() => false, "custom")(), /custom/);
 
   run_next_test();
 });
 
--- a/testing/marionette/test/unit/test_element.js
+++ b/testing/marionette/test/unit/test_element.js
@@ -301,37 +301,37 @@ add_test(function test_coordinates() {
   ok(p.hasOwnProperty("y"));
   equal("number", typeof p.x);
   equal("number", typeof p.y);
 
   deepEqual({x: 50, y: 50}, element.coordinates(domEl));
   deepEqual({x: 10, y: 10}, element.coordinates(domEl, 10, 10));
   deepEqual({x: -5, y: -5}, element.coordinates(domEl, -5, -5));
 
-  Assert.throws(() => element.coordinates(null));
+  Assert.throws(() => element.coordinates(null), /node is null/);
 
-  Assert.throws(() => element.coordinates(domEl, "string", undefined));
-  Assert.throws(() => element.coordinates(domEl, undefined, "string"));
-  Assert.throws(() => element.coordinates(domEl, "string", "string"));
-  Assert.throws(() => element.coordinates(domEl, {}, undefined));
-  Assert.throws(() => element.coordinates(domEl, undefined, {}));
-  Assert.throws(() => element.coordinates(domEl, {}, {}));
-  Assert.throws(() => element.coordinates(domEl, [], undefined));
-  Assert.throws(() => element.coordinates(domEl, undefined, []));
-  Assert.throws(() => element.coordinates(domEl, [], []));
+  Assert.throws(() => element.coordinates(domEl, "string", undefined), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, undefined, "string"), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, "string", "string"), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, {}, undefined), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, undefined, {}), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, {}, {}), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, [], undefined), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, undefined, []), /Offset must be a number/);
+  Assert.throws(() => element.coordinates(domEl, [], []), /Offset must be a number/);
 
   run_next_test();
 });
 
 add_test(function test_WebElement_ctor() {
   let el = new WebElement("foo");
   equal(el.uuid, "foo");
 
   for (let t of [42, true, [], {}, null, undefined]) {
-    Assert.throws(() => new WebElement(t));
+    Assert.throws(() => new WebElement(t), /to be a string/);
   }
 
   run_next_test();
 });
 
 add_test(function test_WebElemenet_is() {
   let a = new WebElement("a");
   let b = new WebElement("b");
--- a/testing/marionette/test/unit/test_message.js
+++ b/testing/marionette/test/unit/test_message.js
@@ -89,21 +89,21 @@ add_test(function test_Command_fromPacke
 
   let msg = c1.toPacket();
   let c2 = Command.fromPacket(msg);
 
   equal(c1.id, c2.id);
   equal(c1.name, c2.name);
   equal(c1.parameters, c2.parameters);
 
-  Assert.throws(() => Command.fromPacket([null, 2, "foo", {}]));
-  Assert.throws(() => Command.fromPacket([1, 2, "foo", {}]));
-  Assert.throws(() => Command.fromPacket([0, null, "foo", {}]));
-  Assert.throws(() => Command.fromPacket([0, 2, null, {}]));
-  Assert.throws(() => Command.fromPacket([0, 2, "foo", false]));
+  Assert.throws(() => Command.fromPacket([null, 2, "foo", {}]), /InvalidArgumentError/);
+  Assert.throws(() => Command.fromPacket([1, 2, "foo", {}]), /InvalidArgumentError/);
+  Assert.throws(() => Command.fromPacket([0, null, "foo", {}]), /InvalidArgumentError/);
+  Assert.throws(() => Command.fromPacket([0, 2, null, {}]), /InvalidArgumentError/);
+  Assert.throws(() => Command.fromPacket([0, 2, "foo", false]), /InvalidArgumentError/);
 
   let nullParams = Command.fromPacket([0, 2, "foo", null]);
   equal("[object Object]", Object.prototype.toString.call(nullParams.parameters));
 
   run_next_test();
 });
 
 add_test(function test_Command_Type() {
@@ -226,20 +226,20 @@ add_test(function test_Response_fromPack
 
   let msg = r1.toPacket();
   let r2 = Response.fromPacket(msg);
 
   equal(r1.id, r2.id);
   equal(r1.error, r2.error);
   equal(r1.body, r2.body);
 
-  Assert.throws(() => Response.fromPacket([null, 2, "foo", {}]));
-  Assert.throws(() => Response.fromPacket([0, 2, "foo", {}]));
-  Assert.throws(() => Response.fromPacket([1, null, "foo", {}]));
-  Assert.throws(() => Response.fromPacket([1, 2, null, {}]));
+  Assert.throws(() => Response.fromPacket([null, 2, "foo", {}]), InvalidArgumentError);
+  Assert.throws(() => Response.fromPacket([0, 2, "foo", {}]), InvalidArgumentError);
+  Assert.throws(() => Response.fromPacket([1, null, "foo", {}]), InvalidArgumentError);
+  Assert.throws(() => Response.fromPacket([1, 2, null, {}]), InvalidArgumentError);
   Response.fromPacket([1, 2, "foo", null]);
 
   run_next_test();
 });
 
 add_test(function test_Response_Type() {
   equal(1, Response.Type);
   run_next_test();
--- a/testing/marionette/test/unit/test_session.js
+++ b/testing/marionette/test/unit/test_session.js
@@ -427,52 +427,54 @@ add_test(function test_Capabilities_from
 
   // matching
   let caps = new session.Capabilities();
 
   caps = fromJSON({acceptInsecureCerts: true});
   equal(true, caps.get("acceptInsecureCerts"));
   caps = fromJSON({acceptInsecureCerts: false});
   equal(false, caps.get("acceptInsecureCerts"));
-  Assert.throws(() => fromJSON({acceptInsecureCerts: "foo"}));
+  Assert.throws(() => fromJSON({acceptInsecureCerts: "foo"}), InvalidArgumentError);
 
   for (let strategy of Object.values(session.PageLoadStrategy)) {
     caps = fromJSON({pageLoadStrategy: strategy});
     equal(strategy, caps.get("pageLoadStrategy"));
   }
-  Assert.throws(() => fromJSON({pageLoadStrategy: "foo"}));
+  Assert.throws(() => fromJSON({pageLoadStrategy: "foo"}), InvalidArgumentError);
 
   let proxyConfig = {proxyType: "manual"};
   caps = fromJSON({proxy: proxyConfig});
   equal("manual", caps.get("proxy").proxyType);
 
   let timeoutsConfig = {implicit: 123};
   caps = fromJSON({timeouts: timeoutsConfig});
   equal(123, caps.get("timeouts").implicit);
 
   caps = fromJSON({"moz:accessibilityChecks": true});
   equal(true, caps.get("moz:accessibilityChecks"));
   caps = fromJSON({"moz:accessibilityChecks": false});
   equal(false, caps.get("moz:accessibilityChecks"));
-  Assert.throws(() => fromJSON({"moz:accessibilityChecks": "foo"}));
-  Assert.throws(() => fromJSON({"moz:accessibilityChecks": 1}));
+  Assert.throws(() => fromJSON({"moz:accessibilityChecks": "foo"}), InvalidArgumentError);
+  Assert.throws(() => fromJSON({"moz:accessibilityChecks": 1}), InvalidArgumentError);
 
   caps = fromJSON({"moz:useNonSpecCompliantPointerOrigin": false});
   equal(false, caps.get("moz:useNonSpecCompliantPointerOrigin"));
   caps = fromJSON({"moz:useNonSpecCompliantPointerOrigin": true});
   equal(true, caps.get("moz:useNonSpecCompliantPointerOrigin"));
-  Assert.throws(() => fromJSON({"moz:useNonSpecCompliantPointerOrigin": "foo"}));
-  Assert.throws(() => fromJSON({"moz:useNonSpecCompliantPointerOrigin": 1}));
+  Assert.throws(() => fromJSON({"moz:useNonSpecCompliantPointerOrigin": "foo"}),
+      InvalidArgumentError);
+  Assert.throws(() => fromJSON({"moz:useNonSpecCompliantPointerOrigin": 1}),
+      InvalidArgumentError);
 
   caps = fromJSON({"moz:webdriverClick": true});
   equal(true, caps.get("moz:webdriverClick"));
   caps = fromJSON({"moz:webdriverClick": false});
   equal(false, caps.get("moz:webdriverClick"));
-  Assert.throws(() => fromJSON({"moz:webdriverClick": "foo"}));
-  Assert.throws(() => fromJSON({"moz:webdriverClick": 1}));
+  Assert.throws(() => fromJSON({"moz:webdriverClick": "foo"}), InvalidArgumentError);
+  Assert.throws(() => fromJSON({"moz:webdriverClick": 1}), InvalidArgumentError);
 
   run_next_test();
 });
 
 // use session.Proxy.toJSON to test marshal
 add_test(function test_marshal() {
   let proxy = new session.Proxy();