Closed Bug 1453381 Opened 6 years ago Closed 6 years ago

Run eslint on Marionette xpcshell tests

Categories

(Remote Protocol :: Marionette, enhancement, P3)

enhancement

Tracking

(firefox61 fixed)

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: ato, Assigned: ato)

Details

Attachments

(5 files)

We don’t currently apply the linter to the xpcshell tests in
testing/marionette/test_*.js, but we should.

This probably means we need to move them to a subdirectory of
testing/marionette because the eslint glob pattern would be horrendous
otherwise.  I’m not super-enthusiastic about this since it means
more directory hierarchy, but it is more important to have linting.
Priority: -- → P3
Assignee: nobody → ato
Status: NEW → ASSIGNED
Comment on attachment 8967142 [details]
Bug 1453381 - Fix lint violations in Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235792/#review241602


Code analysis found 1084 defects in this patch (only the first 30 are reported here):
 - 1084 defects found by mozlint

You can run this analysis locally with:
 - `./mach lint path/to/file` (JS/Python)


If you see a problem in this automated review, please report it here: http://bit.ly/2y9N9Vx


::: testing/marionette/test/unit/test_error.js:36
(Diff revision 1)
>    UnsupportedOperationError,
>    WebDriverError,
>  } = ChromeUtils.import("chrome://marionette/content/error.js", {});
>  
>  function notok(condition) {
>    ok(!(condition));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:39
(Diff revision 1)
>  
>  function notok(condition) {
>    ok(!(condition));
>  }
>  
>  add_test(function test_isError() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:39
(Diff revision 1)
>  
>  function notok(condition) {
>    ok(!(condition));
>  }
>  
>  add_test(function test_isError() {

Error: Identifier 'test_iserror' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_error.js:44
(Diff revision 1)
>  add_test(function test_isError() {
>    notok(error.isError(null));
>    notok(error.isError([]));
>    notok(error.isError(new Date()));
>  
>    ok(error.isError(new Components.Exception()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:45
(Diff revision 1)
>    notok(error.isError(null));
>    notok(error.isError([]));
>    notok(error.isError(new Date()));
>  
>    ok(error.isError(new Components.Exception()));
>    ok(error.isError(new Error()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:46
(Diff revision 1)
>    notok(error.isError([]));
>    notok(error.isError(new Date()));
>  
>    ok(error.isError(new Components.Exception()));
>    ok(error.isError(new Error()));
>    ok(error.isError(new EvalError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:47
(Diff revision 1)
>    notok(error.isError(new Date()));
>  
>    ok(error.isError(new Components.Exception()));
>    ok(error.isError(new Error()));
>    ok(error.isError(new EvalError()));
>    ok(error.isError(new InternalError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:48
(Diff revision 1)
>  
>    ok(error.isError(new Components.Exception()));
>    ok(error.isError(new Error()));
>    ok(error.isError(new EvalError()));
>    ok(error.isError(new InternalError()));
>    ok(error.isError(new RangeError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:49
(Diff revision 1)
>    ok(error.isError(new Components.Exception()));
>    ok(error.isError(new Error()));
>    ok(error.isError(new EvalError()));
>    ok(error.isError(new InternalError()));
>    ok(error.isError(new RangeError()));
>    ok(error.isError(new ReferenceError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:50
(Diff revision 1)
>    ok(error.isError(new Error()));
>    ok(error.isError(new EvalError()));
>    ok(error.isError(new InternalError()));
>    ok(error.isError(new RangeError()));
>    ok(error.isError(new ReferenceError()));
>    ok(error.isError(new SyntaxError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:51
(Diff revision 1)
>    ok(error.isError(new EvalError()));
>    ok(error.isError(new InternalError()));
>    ok(error.isError(new RangeError()));
>    ok(error.isError(new ReferenceError()));
>    ok(error.isError(new SyntaxError()));
>    ok(error.isError(new TypeError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:52
(Diff revision 1)
>    ok(error.isError(new InternalError()));
>    ok(error.isError(new RangeError()));
>    ok(error.isError(new ReferenceError()));
>    ok(error.isError(new SyntaxError()));
>    ok(error.isError(new TypeError()));
>    ok(error.isError(new URIError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_error.js:53
(Diff revision 1)
>    ok(error.isError(new RangeError()));
>    ok(error.isError(new ReferenceError()));
>    ok(error.isError(new SyntaxError()));
>    ok(error.isError(new TypeError()));
>    ok(error.isError(new URIError()));
>    ok(error.isError(new WebDriverError()));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:58
(Diff revision 1)
>  const xulEl = new XULElement("browser");
>  const xblEl = new XBLElement("framebox");
>  
>  const seenEls = new element.Store();
>  
>  add_test(function test_toJSON_types() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:58
(Diff revision 1)
>  const xulEl = new XULElement("browser");
>  const xblEl = new XBLElement("framebox");
>  
>  const seenEls = new element.Store();
>  
>  add_test(function test_toJSON_types() {

Error: Identifier 'test_tojson_types' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_evaluate.js:60
(Diff revision 1)
>  
>  const seenEls = new element.Store();
>  
>  add_test(function test_toJSON_types() {
>    // null
>    equal(null, evaluate.toJSON(undefined));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:61
(Diff revision 1)
>  const seenEls = new element.Store();
>  
>  add_test(function test_toJSON_types() {
>    // null
>    equal(null, evaluate.toJSON(undefined));
>    equal(null, evaluate.toJSON(null));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:64
(Diff revision 1)
>    // null
>    equal(null, evaluate.toJSON(undefined));
>    equal(null, evaluate.toJSON(null));
>  
>    // primitives
>    equal(true, evaluate.toJSON(true));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:65
(Diff revision 1)
>    equal(null, evaluate.toJSON(undefined));
>    equal(null, evaluate.toJSON(null));
>  
>    // primitives
>    equal(true, evaluate.toJSON(true));
>    equal(42, evaluate.toJSON(42));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:66
(Diff revision 1)
>    equal(null, evaluate.toJSON(null));
>  
>    // primitives
>    equal(true, evaluate.toJSON(true));
>    equal(42, evaluate.toJSON(42));
>    equal("foo", evaluate.toJSON("foo"));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:69
(Diff revision 1)
>    equal(true, evaluate.toJSON(true));
>    equal(42, evaluate.toJSON(42));
>    equal("foo", evaluate.toJSON("foo"));
>  
>    // collections
>    deepEqual([], evaluate.toJSON([]));

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:72
(Diff revision 1)
>  
>    // collections
>    deepEqual([], evaluate.toJSON([]));
>  
>    // elements
>    ok(WebElement.isReference(evaluate.toJSON(domEl, seenEls)));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:73
(Diff revision 1)
>    // collections
>    deepEqual([], evaluate.toJSON([]));
>  
>    // elements
>    ok(WebElement.isReference(evaluate.toJSON(domEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(svgEl, seenEls)));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:74
(Diff revision 1)
>    deepEqual([], evaluate.toJSON([]));
>  
>    // elements
>    ok(WebElement.isReference(evaluate.toJSON(domEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(svgEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xulEl, seenEls)));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:75
(Diff revision 1)
>  
>    // elements
>    ok(WebElement.isReference(evaluate.toJSON(domEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(svgEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xulEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xblEl, seenEls)));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:78
(Diff revision 1)
>    ok(WebElement.isReference(evaluate.toJSON(svgEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xulEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xblEl, seenEls)));
>  
>    // toJSON
>    equal("foo", evaluate.toJSON({toJSON() { return "foo"; }}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:81
(Diff revision 1)
>  
>    // toJSON
>    equal("foo", evaluate.toJSON({toJSON() { return "foo"; }}));
>  
>    // arbitrary object
>    deepEqual({foo: "bar"}, evaluate.toJSON({foo: "bar"}));

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:83
(Diff revision 1)
>    equal("foo", evaluate.toJSON({toJSON() { return "foo"; }}));
>  
>    // arbitrary object
>    deepEqual({foo: "bar"}, evaluate.toJSON({foo: "bar"}));
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:87
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  
>  add_test(function test_toJSON_sequences() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:87
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  
>  add_test(function test_toJSON_sequences() {

Error: Identifier 'test_tojson_sequences' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_evaluate.js:91
(Diff revision 1)
>  
>  add_test(function test_toJSON_sequences() {
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:92
(Diff revision 1)
>  add_test(function test_toJSON_sequences() {
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:93
(Diff revision 1)
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:94
(Diff revision 1)
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:95
(Diff revision 1)
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:96
(Diff revision 1)
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);
>    deepEqual({bar: "baz"}, actual[5]);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:98
(Diff revision 1)
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:101
(Diff revision 1)
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_toJSON_objects() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:101
(Diff revision 1)
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_toJSON_objects() {

Error: Identifier 'test_tojson_objects' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_evaluate.js:112
(Diff revision 1)
>      "toJSON": {toJSON() { return "foo"; }},
>      "object": {"bar": "baz"},
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:113
(Diff revision 1)
>      "object": {"bar": "baz"},
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:114
(Diff revision 1)
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:115
(Diff revision 1)
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:116
(Diff revision 1)
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:117
(Diff revision 1)
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);
>    deepEqual({"bar": "baz"}, actual.object);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:119
(Diff revision 1)
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);
>    deepEqual({"bar": "baz"}, actual.object);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:10
(Diff revision 1)
>  const {pprint, truncate} = ChromeUtils.import("chrome://marionette/content/format.js", {});
>  
>  const MAX_STRING_LENGTH = 250;
>  const HALF = "x".repeat(MAX_STRING_LENGTH / 2);
>  
>  add_test(function test_pprint() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:10
(Diff revision 1)
>  const {pprint, truncate} = ChromeUtils.import("chrome://marionette/content/format.js", {});
>  
>  const MAX_STRING_LENGTH = 250;
>  const HALF = "x".repeat(MAX_STRING_LENGTH / 2);
>  
>  add_test(function test_pprint() {

Error: Identifier 'test_pprint' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:11
(Diff revision 1)
>  
>  const MAX_STRING_LENGTH = 250;
>  const HALF = "x".repeat(MAX_STRING_LENGTH / 2);
>  
>  add_test(function test_pprint() {
>    equal('[object Object] {"foo":"bar"}', pprint`${{foo: "bar"}}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:13
(Diff revision 1)
>  const HALF = "x".repeat(MAX_STRING_LENGTH / 2);
>  
>  add_test(function test_pprint() {
>    equal('[object Object] {"foo":"bar"}', pprint`${{foo: "bar"}}`);
>  
>    equal("[object Number] 42", pprint`${42}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:14
(Diff revision 1)
>  
>  add_test(function test_pprint() {
>    equal('[object Object] {"foo":"bar"}', pprint`${{foo: "bar"}}`);
>  
>    equal("[object Number] 42", pprint`${42}`);
>    equal("[object Boolean] true", pprint`${true}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:15
(Diff revision 1)
>  add_test(function test_pprint() {
>    equal('[object Object] {"foo":"bar"}', pprint`${{foo: "bar"}}`);
>  
>    equal("[object Number] 42", pprint`${42}`);
>    equal("[object Boolean] true", pprint`${true}`);
>    equal("[object Undefined] undefined", pprint`${undefined}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:16
(Diff revision 1)
>    equal('[object Object] {"foo":"bar"}', pprint`${{foo: "bar"}}`);
>  
>    equal("[object Number] 42", pprint`${42}`);
>    equal("[object Boolean] true", pprint`${true}`);
>    equal("[object Undefined] undefined", pprint`${undefined}`);
>    equal("[object Null] null", pprint`${null}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:19
(Diff revision 1)
>    equal("[object Boolean] true", pprint`${true}`);
>    equal("[object Undefined] undefined", pprint`${undefined}`);
>    equal("[object Null] null", pprint`${null}`);
>  
>    let complexObj = {toJSON: () => "foo"};
>    equal('[object Object] "foo"', pprint`${complexObj}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:23
(Diff revision 1)
>    let complexObj = {toJSON: () => "foo"};
>    equal('[object Object] "foo"', pprint`${complexObj}`);
>  
>    let cyclic = {};
>    cyclic.me = cyclic;
>    equal("[object Object] <cyclic object value>", pprint`${cyclic}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:37
(Diff revision 1)
>      href: "#",
>      name: "bar",
>      src: "s",
>      type: "t",
>    };
>    equal('<input id="foo" class="a b" href="#" name="bar" src="s" type="t">',

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:40
(Diff revision 1)
>      type: "t",
>    };
>    equal('<input id="foo" class="a b" href="#" name="bar" src="s" type="t">',
> -        pprint`${el}`);
> +      pprint`${el}`);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:43
(Diff revision 1)
> -        pprint`${el}`);
> +      pprint`${el}`);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_empty() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:43
(Diff revision 1)
> -        pprint`${el}`);
> +      pprint`${el}`);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_empty() {

Error: Identifier 'test_truncate_empty' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:44
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_empty() {
>    equal(truncate``, "");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:45
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_empty() {
>    equal(truncate``, "");
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:48
(Diff revision 1)
>  add_test(function test_truncate_empty() {
>    equal(truncate``, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_noFields() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:48
(Diff revision 1)
>  add_test(function test_truncate_empty() {
>    equal(truncate``, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_noFields() {

Error: Identifier 'test_truncate_nofields' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:49
(Diff revision 1)
>    equal(truncate``, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_noFields() {
>    equal(truncate`foo bar`, "foo bar");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:50
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_noFields() {
>    equal(truncate`foo bar`, "foo bar");
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:53
(Diff revision 1)
>  add_test(function test_truncate_noFields() {
>    equal(truncate`foo bar`, "foo bar");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_multipleFields() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:53
(Diff revision 1)
>  add_test(function test_truncate_noFields() {
>    equal(truncate`foo bar`, "foo bar");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_multipleFields() {

Error: Identifier 'test_truncate_multiplefields' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:54
(Diff revision 1)
>    equal(truncate`foo bar`, "foo bar");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_multipleFields() {
>    equal(truncate`${0}`, "0");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:55
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_multipleFields() {
>    equal(truncate`${0}`, "0");
>    equal(truncate`${1}${2}${3}`, "123");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:56
(Diff revision 1)
>  });
>  
>  add_test(function test_truncate_multipleFields() {
>    equal(truncate`${0}`, "0");
>    equal(truncate`${1}${2}${3}`, "123");
>    equal(truncate`a${1}b${2}c${3}`, "a1b2c3");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:57
(Diff revision 1)
>  
>  add_test(function test_truncate_multipleFields() {
>    equal(truncate`${0}`, "0");
>    equal(truncate`${1}${2}${3}`, "123");
>    equal(truncate`a${1}b${2}c${3}`, "a1b2c3");
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:60
(Diff revision 1)
>    equal(truncate`${1}${2}${3}`, "123");
>    equal(truncate`a${1}b${2}c${3}`, "a1b2c3");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_primitiveFields() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:60
(Diff revision 1)
>    equal(truncate`${1}${2}${3}`, "123");
>    equal(truncate`a${1}b${2}c${3}`, "a1b2c3");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_primitiveFields() {

Error: Identifier 'test_truncate_primitivefields' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:61
(Diff revision 1)
>    equal(truncate`a${1}b${2}c${3}`, "a1b2c3");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_primitiveFields() {
>    equal(truncate`${123}`, "123");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:62
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_primitiveFields() {
>    equal(truncate`${123}`, "123");
>    equal(truncate`${true}`, "true");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:63
(Diff revision 1)
>  });
>  
>  add_test(function test_truncate_primitiveFields() {
>    equal(truncate`${123}`, "123");
>    equal(truncate`${true}`, "true");
>    equal(truncate`${null}`, "");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:64
(Diff revision 1)
>  
>  add_test(function test_truncate_primitiveFields() {
>    equal(truncate`${123}`, "123");
>    equal(truncate`${true}`, "true");
>    equal(truncate`${null}`, "");
>    equal(truncate`${undefined}`, "");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:65
(Diff revision 1)
>  add_test(function test_truncate_primitiveFields() {
>    equal(truncate`${123}`, "123");
>    equal(truncate`${true}`, "true");
>    equal(truncate`${null}`, "");
>    equal(truncate`${undefined}`, "");
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:68
(Diff revision 1)
>    equal(truncate`${null}`, "");
>    equal(truncate`${undefined}`, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_string() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:68
(Diff revision 1)
>    equal(truncate`${null}`, "");
>    equal(truncate`${undefined}`, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_string() {

Error: Identifier 'test_truncate_string' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:69
(Diff revision 1)
>    equal(truncate`${undefined}`, "");
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_string() {
>    equal(truncate`${"foo"}`, "foo");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:70
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_string() {
>    equal(truncate`${"foo"}`, "foo");
>    equal(truncate`${"x".repeat(250)}`, "x".repeat(250));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:71
(Diff revision 1)
>  });
>  
>  add_test(function test_truncate_string() {
>    equal(truncate`${"foo"}`, "foo");
>    equal(truncate`${"x".repeat(250)}`, "x".repeat(250));
>    equal(truncate`${"x".repeat(260)}`, `${HALF} ... ${HALF}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:72
(Diff revision 1)
>  
>  add_test(function test_truncate_string() {
>    equal(truncate`${"foo"}`, "foo");
>    equal(truncate`${"x".repeat(250)}`, "x".repeat(250));
>    equal(truncate`${"x".repeat(260)}`, `${HALF} ... ${HALF}`);
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:75
(Diff revision 1)
>    equal(truncate`${"x".repeat(250)}`, "x".repeat(250));
>    equal(truncate`${"x".repeat(260)}`, `${HALF} ... ${HALF}`);
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_array() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:75
(Diff revision 1)
>    equal(truncate`${"x".repeat(250)}`, "x".repeat(250));
>    equal(truncate`${"x".repeat(260)}`, `${HALF} ... ${HALF}`);
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_array() {

Error: Identifier 'test_truncate_array' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:76
(Diff revision 1)
>    equal(truncate`${"x".repeat(260)}`, `${HALF} ... ${HALF}`);
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_array() {
>    equal(truncate`${["foo"]}`, JSON.stringify(["foo"]));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:77
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_array() {
>    equal(truncate`${["foo"]}`, JSON.stringify(["foo"]));
>    equal(truncate`${"foo"} ${["bar"]}`, `foo ${JSON.stringify(["bar"])}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:78
(Diff revision 1)
>  });
>  
>  add_test(function test_truncate_array() {
>    equal(truncate`${["foo"]}`, JSON.stringify(["foo"]));
>    equal(truncate`${"foo"} ${["bar"]}`, `foo ${JSON.stringify(["bar"])}`);
>    equal(truncate`${["x".repeat(260)]}`, JSON.stringify([`${HALF} ... ${HALF}`]));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:80
(Diff revision 1)
>  add_test(function test_truncate_array() {
>    equal(truncate`${["foo"]}`, JSON.stringify(["foo"]));
>    equal(truncate`${"foo"} ${["bar"]}`, `foo ${JSON.stringify(["bar"])}`);
>    equal(truncate`${["x".repeat(260)]}`, JSON.stringify([`${HALF} ... ${HALF}`]));
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:83
(Diff revision 1)
>    equal(truncate`${["x".repeat(260)]}`, JSON.stringify([`${HALF} ... ${HALF}`]));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_object() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:83
(Diff revision 1)
>    equal(truncate`${["x".repeat(260)]}`, JSON.stringify([`${HALF} ... ${HALF}`]));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_object() {

Error: Identifier 'test_truncate_object' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_format.js:84
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_object() {
>    equal(truncate`${{}}`, JSON.stringify({}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:85
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_truncate_object() {
>    equal(truncate`${{}}`, JSON.stringify({}));
>    equal(truncate`${{foo: "bar"}}`, JSON.stringify({foo: "bar"}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:86
(Diff revision 1)
>  });
>  
>  add_test(function test_truncate_object() {
>    equal(truncate`${{}}`, JSON.stringify({}));
>    equal(truncate`${{foo: "bar"}}`, JSON.stringify({foo: "bar"}));
>    equal(truncate`${{foo: "x".repeat(260)}}`, JSON.stringify({foo: `${HALF} ... ${HALF}`}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:87
(Diff revision 1)
>  
>  add_test(function test_truncate_object() {
>    equal(truncate`${{}}`, JSON.stringify({}));
>    equal(truncate`${{foo: "bar"}}`, JSON.stringify({foo: "bar"}));
>    equal(truncate`${{foo: "x".repeat(260)}}`, JSON.stringify({foo: `${HALF} ... ${HALF}`}));
>    equal(truncate`${{foo: ["bar"]}}`, JSON.stringify({foo: ["bar"]}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:88
(Diff revision 1)
>  add_test(function test_truncate_object() {
>    equal(truncate`${{}}`, JSON.stringify({}));
>    equal(truncate`${{foo: "bar"}}`, JSON.stringify({foo: "bar"}));
>    equal(truncate`${{foo: "x".repeat(260)}}`, JSON.stringify({foo: `${HALF} ... ${HALF}`}));
>    equal(truncate`${{foo: ["bar"]}}`, JSON.stringify({foo: ["bar"]}));
>    equal(truncate`${{foo: ["bar", {baz: 42}]}}`, JSON.stringify({foo: ["bar", {baz: 42}]}));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:93
(Diff revision 1)
>    equal(truncate`${{foo: ["bar", {baz: 42}]}}`, JSON.stringify({foo: ["bar", {baz: 42}]}));
>  
>    let complex = {
> -    toString() { return "hello world"; }
> +    toString() { return "hello world"; },
>    };
>    equal(truncate`${complex}`, "hello world");

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:98
(Diff revision 1)
>    equal(truncate`${complex}`, "hello world");
>  
>    let longComplex = {
> -    toString() { return "x".repeat(260); }
> +    toString() { return "x".repeat(260); },
>    };
>    equal(truncate`${longComplex}`, `${HALF} ... ${HALF}`);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_format.js:100
(Diff revision 1)
>    let longComplex = {
> -    toString() { return "x".repeat(260); }
> +    toString() { return "x".repeat(260); },
>    };
>    equal(truncate`${longComplex}`, `${HALF} ... ${HALF}`);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]
Comment on attachment 8967142 [details]
Bug 1453381 - Fix lint violations in Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235792/#review241604


Code analysis found 1084 defects in this patch (only the first 30 are reported here):
 - 1084 defects found by mozlint

You can run this analysis locally with:
 - `./mach lint path/to/file` (JS/Python)


If you see a problem in this automated review, please report it here: http://bit.ly/2y9N9Vx


::: testing/marionette/test/unit/test_action.js:20
(Diff revision 1)
>    namespaceURI: XHTMLNS,
>  };
>  
>  action.inputStateMap = new Map();
>  
>  add_test(function test_createAction() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:20
(Diff revision 1)
>    namespaceURI: XHTMLNS,
>  };
>  
>  action.inputStateMap = new Map();
>  
>  add_test(function test_createAction() {

Error: Identifier 'test_createaction' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:21
(Diff revision 1)
>  };
>  
>  action.inputStateMap = new Map();
>  
>  add_test(function test_createAction() {
>    Assert.throws(() => new action.Action(), InvalidArgumentError,

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:23
(Diff revision 1)
>  action.inputStateMap = new Map();
>  
>  add_test(function test_createAction() {
>    Assert.throws(() => new action.Action(), InvalidArgumentError,
>        "Missing Action constructor args");
>    Assert.throws(() => new action.Action(1, 2), InvalidArgumentError,

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:25
(Diff revision 1)
>  add_test(function test_createAction() {
>    Assert.throws(() => new action.Action(), InvalidArgumentError,
>        "Missing Action constructor args");
>    Assert.throws(() => new action.Action(1, 2), InvalidArgumentError,
>        "Missing Action constructor args");
>    Assert.throws(

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:27
(Diff revision 1)
>        "Missing Action constructor args");
>    Assert.throws(() => new action.Action(1, 2), InvalidArgumentError,
>        "Missing Action constructor args");
>    Assert.throws(
>        () => new action.Action(1, 2, "sometype"), /Expected string/, "Non-string arguments.");
>    ok(new action.Action("id", "sometype", "sometype"));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:29
(Diff revision 1)
>        "Missing Action constructor args");
>    Assert.throws(
>        () => new action.Action(1, 2, "sometype"), /Expected string/, "Non-string arguments.");
>    ok(new action.Action("id", "sometype", "sometype"));
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:32
(Diff revision 1)
>    ok(new action.Action("id", "sometype", "sometype"));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_defaultPointerParameters() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:32
(Diff revision 1)
>    ok(new action.Action("id", "sometype", "sometype"));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_defaultPointerParameters() {

Error: Identifier 'test_defaultpointerparameters' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:34
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_defaultPointerParameters() {
>    let defaultParameters = {pointerType: action.PointerType.Mouse};
>    deepEqual(action.PointerParameters.fromJSON(), defaultParameters);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:36
(Diff revision 1)
>  
>  add_test(function test_defaultPointerParameters() {
>    let defaultParameters = {pointerType: action.PointerType.Mouse};
>    deepEqual(action.PointerParameters.fromJSON(), defaultParameters);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:39
(Diff revision 1)
>    deepEqual(action.PointerParameters.fromJSON(), defaultParameters);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerParameters() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:39
(Diff revision 1)
>    deepEqual(action.PointerParameters.fromJSON(), defaultParameters);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerParameters() {

Error: Identifier 'test_processpointerparameters' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:49
(Diff revision 1)
>      parametersData = {pointerType: d};
>      let message = `parametersData: [pointerType: ${parametersData.pointerType}]`;
>      check(/Unknown pointerType/, message, parametersData);
>    }
> -  parametersData.pointerType = "mouse"; //TODO "pen";
> +  parametersData.pointerType = "mouse"; // TODO "pen";
>    deepEqual(action.PointerParameters.fromJSON(parametersData),

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:52
(Diff revision 1)
>    }
> -  parametersData.pointerType = "mouse"; //TODO "pen";
> +  parametersData.pointerType = "mouse"; // TODO "pen";
>    deepEqual(action.PointerParameters.fromJSON(parametersData),
> -      {pointerType: "mouse"}); //TODO action.PointerType.Pen});
> +      {pointerType: "mouse"}); // TODO action.PointerType.Pen});
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:55
(Diff revision 1)
> -      {pointerType: "mouse"}); //TODO action.PointerType.Pen});
> +      {pointerType: "mouse"}); // TODO action.PointerType.Pen});
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerUpDownAction() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:55
(Diff revision 1)
> -      {pointerType: "mouse"}); //TODO action.PointerType.Pen});
> +      {pointerType: "mouse"}); // TODO action.PointerType.Pen});
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerUpDownAction() {

Error: Identifier 'test_processpointerupdownaction' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:61
(Diff revision 1)
>    let actionItem = {type: "pointerDown"};
>    let actionSequence = {type: "pointer", id: "some_id"};
>    for (let d of [-1, "a"]) {
>      actionItem.button = d;
>      checkErrors(
>          /Expected 'button' \(.*\) to be >= 0/, action.Action.fromJSON, [actionSequence, actionItem],

Error: Line 61 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:66
(Diff revision 1)
>          /Expected 'button' \(.*\) to be >= 0/, action.Action.fromJSON, [actionSequence, actionItem],
>          `button: ${actionItem.button}`);
>    }
>    actionItem.button = 5;
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    equal(act.button, actionItem.button);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:68
(Diff revision 1)
>    }
>    actionItem.button = 5;
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    equal(act.button, actionItem.button);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:71
(Diff revision 1)
>    equal(act.button, actionItem.button);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_validateActionDurationAndCoordinates() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:71
(Diff revision 1)
>    equal(act.button, actionItem.button);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_validateActionDurationAndCoordinates() {

Error: Identifier 'test_validateactiondurationandcoordinates' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:95
(Diff revision 1)
>      actionSequence.type = "pointer";
>      checkErrors(/Expected '.*' \(.*\) to be an Integer/,
>          action.Action.fromJSON, [actionSequence, actionItem],
>          `duration: ${actionItem.duration}, subtype: pointerMove`);
>    }
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:98
(Diff revision 1)
>          `duration: ${actionItem.duration}, subtype: pointerMove`);
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionOriginValidation() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:98
(Diff revision 1)
>          `duration: ${actionItem.duration}, subtype: pointerMove`);
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionOriginValidation() {

Error: Identifier 'test_processpointermoveactionoriginvalidation' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:104
(Diff revision 1)
>    let actionSequence = {type: "pointer", id: "some_id"};
>    let actionItem = {duration: 5000, type: "pointerMove"};
>    for (let d of [-1, {a: "blah"}, []]) {
>      actionItem.origin = d;
>  
>      checkErrors(/Expected \'origin\' to be undefined, "viewport", "pointer", or an element/,

Error: Line 104 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:110
(Diff revision 1)
>          action.Action.fromJSON,
>          [actionSequence, actionItem],
>          `actionItem.origin: (${getTypeString(d)})`);
>    }
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:113
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionOriginStringValidation() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:113
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionOriginStringValidation() {

Error: Identifier 'test_processpointermoveactionoriginstringvalidation' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:124
(Diff revision 1)
>          action.Action.fromJSON,
>          [actionSequence, actionItem],
>          `actionItem.origin: ${d}`);
>    }
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:127
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionElementOrigin() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:127
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionElementOrigin() {

Error: Identifier 'test_processpointermoveactionelementorigin' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:132
(Diff revision 1)
>  add_test(function test_processPointerMoveActionElementOrigin() {
>    let actionSequence = {type: "pointer", id: "some_id"};
>    let actionItem = {duration: 5000, type: "pointerMove"};
>    actionItem.origin = domEl;
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, actionItem.origin);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:133
(Diff revision 1)
>    let actionSequence = {type: "pointer", id: "some_id"};
>    let actionItem = {duration: 5000, type: "pointerMove"};
>    actionItem.origin = domEl;
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, actionItem.origin);
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:136
(Diff revision 1)
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, actionItem.origin);
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionDefaultOrigin() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:136
(Diff revision 1)
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, actionItem.origin);
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveActionDefaultOrigin() {

Error: Identifier 'test_processpointermoveactiondefaultorigin' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:141
(Diff revision 1)
>  add_test(function test_processPointerMoveActionDefaultOrigin() {
>    let actionSequence = {type: "pointer", id: "some_id"};
>    // origin left undefined
>    let actionItem = {duration: 5000, type: "pointerMove"};
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, action.PointerOrigin.Viewport);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:142
(Diff revision 1)
>    let actionSequence = {type: "pointer", id: "some_id"};
>    // origin left undefined
>    let actionItem = {duration: 5000, type: "pointerMove"};
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, action.PointerOrigin.Viewport);
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:145
(Diff revision 1)
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, action.PointerOrigin.Viewport);
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveAction() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:145
(Diff revision 1)
>    let a = action.Action.fromJSON(actionSequence, actionItem);
>    deepEqual(a.origin, action.PointerOrigin.Viewport);
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerMoveAction() {

Error: Identifier 'test_processpointermoveaction' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:179
(Diff revision 1)
>        origin: undefined,
>      },
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      ok(actual instanceof action.Action);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:180
(Diff revision 1)
>      },
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      ok(actual instanceof action.Action);
>      equal(actual.duration, expected.duration);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:181
(Diff revision 1)
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      ok(actual instanceof action.Action);
>      equal(actual.duration, expected.duration);
>      equal(actual.x, expected.x);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:182
(Diff revision 1)
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      ok(actual instanceof action.Action);
>      equal(actual.duration, expected.duration);
>      equal(actual.x, expected.x);
>      equal(actual.y, expected.y);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:188
(Diff revision 1)
>  
>      let origin = expected.origin;
>      if (typeof origin == "undefined") {
>        origin = action.PointerOrigin.Viewport;
>      }
>      deepEqual(actual.origin, origin);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:191
(Diff revision 1)
>        origin = action.PointerOrigin.Viewport;
>      }
>      deepEqual(actual.origin, origin);
>  
>    }
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:194
(Diff revision 1)
>  
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationViewport() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:194
(Diff revision 1)
>  
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationViewport() {

Error: Identifier 'test_computepointerdestinationviewport' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:201
(Diff revision 1)
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    // these values should not affect the outcome
>    inputState.x = "99";
>    inputState.y = "10";
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x, target.x);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:202
(Diff revision 1)
>    // these values should not affect the outcome
>    inputState.x = "99";
>    inputState.y = "10";
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x, target.x);
>    equal(act.y, target.y);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:204
(Diff revision 1)
>    inputState.y = "10";
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x, target.x);
>    equal(act.y, target.y);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:207
(Diff revision 1)
>    equal(act.y, target.y);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationPointer() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:207
(Diff revision 1)
>    equal(act.y, target.y);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationPointer() {

Error: Identifier 'test_computepointerdestinationpointer' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:213
(Diff revision 1)
> -  let act = { type: "pointerMove", x: 100, y: 200, origin: "pointer"};
> +  let act = {type: "pointerMove", x: 100, y: 200, origin: "pointer"};
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    inputState.x = 10;
>    inputState.y = 99;
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x + inputState.x, target.x);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:214
(Diff revision 1)
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    inputState.x = 10;
>    inputState.y = 99;
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x + inputState.x, target.x);
>    equal(act.y + inputState.y, target.y);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:217
(Diff revision 1)
>    let target = action.computePointerDestination(act, inputState);
>    equal(act.x + inputState.x, target.x);
>    equal(act.y + inputState.y, target.y);
>  
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:220
(Diff revision 1)
>  
>  
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationElement() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:220
(Diff revision 1)
>  
>  
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationElement() {

Error: Identifier 'test_computepointerdestinationelement' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:222
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_computePointerDestinationElement() {
>    // origin represents a web element
>    // using an object literal instead to test default case in computePointerDestination

Error: Line 222 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:226
(Diff revision 1)
>    // origin represents a web element
>    // using an object literal instead to test default case in computePointerDestination
>    let act = {type: "pointerMove", x: 100, y: 200, origin: {}};
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    let elementCenter = {x: 10, y: 99};
>    let target = action.computePointerDestination(act, inputState, elementCenter);

Error: Line 226 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:227
(Diff revision 1)
>    // using an object literal instead to test default case in computePointerDestination
>    let act = {type: "pointerMove", x: 100, y: 200, origin: {}};
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    let elementCenter = {x: 10, y: 99};
>    let target = action.computePointerDestination(act, inputState, elementCenter);
>    equal(act.x + elementCenter.x, target.x);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:228
(Diff revision 1)
>    let act = {type: "pointerMove", x: 100, y: 200, origin: {}};
>    let inputState = new action.InputState.Pointer(action.PointerType.Mouse);
>    let elementCenter = {x: 10, y: 99};
>    let target = action.computePointerDestination(act, inputState, elementCenter);
>    equal(act.x + elementCenter.x, target.x);
>    equal(act.y + elementCenter.y, target.y);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:230
(Diff revision 1)
>    let elementCenter = {x: 10, y: 99};
>    let target = action.computePointerDestination(act, inputState, elementCenter);
>    equal(act.x + elementCenter.x, target.x);
>    equal(act.y + elementCenter.y, target.y);
>  
>    Assert.throws(

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:235
(Diff revision 1)
>    Assert.throws(
>        () => action.computePointerDestination(act, inputState, {a: 1}),
>        InvalidArgumentError,
>        "Invalid element center coordinates.");
>  
>    Assert.throws(

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:240
(Diff revision 1)
>    Assert.throws(
>        () => action.computePointerDestination(act, inputState, undefined),
>        InvalidArgumentError,
>        "Undefined element center coordinates.");
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:243
(Diff revision 1)
>        "Undefined element center coordinates.");
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerAction() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:243
(Diff revision 1)
>        "Undefined element center coordinates.");
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPointerAction() {

Error: Identifier 'test_processpointeraction' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:267
(Diff revision 1)
>        button: 1,
> -    }
> +    },
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      equal(actual.type, actionSequence.type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:268
(Diff revision 1)
> -    }
> +    },
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      equal(actual.type, actionSequence.type);
>      equal(actual.subtype, expected.type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:269
(Diff revision 1)
>    ];
>    for (let expected of actionItems) {
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      equal(actual.type, actionSequence.type);
>      equal(actual.subtype, expected.type);
>      equal(actual.id, actionSequence.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:271
(Diff revision 1)
>      let actual = action.Action.fromJSON(actionSequence, expected);
>      equal(actual.type, actionSequence.type);
>      equal(actual.subtype, expected.type);
>      equal(actual.id, actionSequence.id);
>      if (expected.type === "pointerUp") {
>        equal(actual.button, expected.button);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:273
(Diff revision 1)
>      equal(actual.subtype, expected.type);
>      equal(actual.id, actionSequence.id);
>      if (expected.type === "pointerUp") {
>        equal(actual.button, expected.button);
>      } else {
>        equal(actual.duration, expected.duration);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:276
(Diff revision 1)
>        equal(actual.button, expected.button);
>      } else {
>        equal(actual.duration, expected.duration);
>      }
>      if (expected.type !== "pause") {
>        equal(actual.pointerType, actionSequence.parameters.pointerType);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:280
(Diff revision 1)
>      if (expected.type !== "pause") {
>        equal(actual.pointerType, actionSequence.parameters.pointerType);
>      }
>    }
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:283
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPauseAction() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:283
(Diff revision 1)
>    }
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processPauseAction() {

Error: Identifier 'test_processpauseaction' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:289
(Diff revision 1)
>    let actionItem = {type: "pause", duration: 5000};
>    let actionSequence = {id: "some_id"};
>    for (let type of ["none", "key", "pointer"]) {
>      actionSequence.type = type;
>      let act = action.Action.fromJSON(actionSequence, actionItem);
>      ok(act instanceof action.Action);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:290
(Diff revision 1)
>    let actionSequence = {id: "some_id"};
>    for (let type of ["none", "key", "pointer"]) {
>      actionSequence.type = type;
>      let act = action.Action.fromJSON(actionSequence, actionItem);
>      ok(act instanceof action.Action);
>      equal(act.type, type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:291
(Diff revision 1)
>    for (let type of ["none", "key", "pointer"]) {
>      actionSequence.type = type;
>      let act = action.Action.fromJSON(actionSequence, actionItem);
>      ok(act instanceof action.Action);
>      equal(act.type, type);
>      equal(act.subtype, actionItem.type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:292
(Diff revision 1)
>      actionSequence.type = type;
>      let act = action.Action.fromJSON(actionSequence, actionItem);
>      ok(act instanceof action.Action);
>      equal(act.type, type);
>      equal(act.subtype, actionItem.type);
>      equal(act.id, actionSequence.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:293
(Diff revision 1)
>      let act = action.Action.fromJSON(actionSequence, actionItem);
>      ok(act instanceof action.Action);
>      equal(act.type, type);
>      equal(act.subtype, actionItem.type);
>      equal(act.id, actionSequence.id);
>      equal(act.duration, actionItem.duration);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:297
(Diff revision 1)
>      equal(act.id, actionSequence.id);
>      equal(act.duration, actionItem.duration);
>    }
>    actionItem.duration = undefined;
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    equal(act.duration, actionItem.duration);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:299
(Diff revision 1)
>    }
>    actionItem.duration = undefined;
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    equal(act.duration, actionItem.duration);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:302
(Diff revision 1)
>    equal(act.duration, actionItem.duration);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processActionSubtypeValidation() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:302
(Diff revision 1)
>    equal(act.duration, actionItem.duration);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processActionSubtypeValidation() {

Error: Identifier 'test_processactionsubtypevalidation' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:307
(Diff revision 1)
>  add_test(function test_processActionSubtypeValidation() {
>    let actionItem = {type: "dancing"};
>    let actionSequence = {id: "some_id"};
> -  let check = function (regex) {
> +  let check = function(regex) {
>      let message = `type: ${actionSequence.type}, subtype: ${actionItem.type}`;
>      checkErrors(regex, action.Action.fromJSON, [actionSequence, actionItem], message);

Error: Line 307 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:313
(Diff revision 1)
>    };
>    for (let type of ["none", "key", "pointer"]) {
>      actionSequence.type = type;
>      check(new RegExp(`Unknown subtype for ${type} action`));
>    }
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:316
(Diff revision 1)
>      check(new RegExp(`Unknown subtype for ${type} action`));
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_processKeyActionUpDown() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:316
(Diff revision 1)
>      check(new RegExp(`Unknown subtype for ${type} action`));
>    }
>    run_next_test();
>  });
>  
>  add_test(function test_processKeyActionUpDown() {

Error: Identifier 'test_processkeyactionupdown' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_action.js:323
(Diff revision 1)
>    let actionItem = {type: "keyDown"};
>  
>    for (let v of [-1, undefined, [], ["a"], {length: 1}, null]) {
>      actionItem.value = v;
>      let message = `actionItem.value: (${getTypeString(v)})`;
>      Assert.throws(() => action.Action.fromJSON(actionSequence, actionItem),

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:325
(Diff revision 1)
>    for (let v of [-1, undefined, [], ["a"], {length: 1}, null]) {
>      actionItem.value = v;
>      let message = `actionItem.value: (${getTypeString(v)})`;
>      Assert.throws(() => action.Action.fromJSON(actionSequence, actionItem),
>          InvalidArgumentError, message);
>      Assert.throws(() => action.Action.fromJSON(actionSequence, actionItem),

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:326
(Diff revision 1)
>      actionItem.value = v;
>      let message = `actionItem.value: (${getTypeString(v)})`;
>      Assert.throws(() => action.Action.fromJSON(actionSequence, actionItem),
>          InvalidArgumentError, message);
>      Assert.throws(() => action.Action.fromJSON(actionSequence, actionItem),
>          /Expected 'value' to be a string that represents single code point/, message);

Error: Line 326 exceeds the maximum line length of 78. [eslint: max-len]

::: testing/marionette/test/unit/test_action.js:331
(Diff revision 1)
>          /Expected 'value' to be a string that represents single code point/, message);
>    }
>  
>    actionItem.value = "\uE004";
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    ok(act instanceof action.Action);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:332
(Diff revision 1)
>    }
>  
>    actionItem.value = "\uE004";
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    ok(act instanceof action.Action);
>    equal(act.type, actionSequence.type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:333
(Diff revision 1)
>  
>    actionItem.value = "\uE004";
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    ok(act instanceof action.Action);
>    equal(act.type, actionSequence.type);
>    equal(act.subtype, actionItem.type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:334
(Diff revision 1)
>    actionItem.value = "\uE004";
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    ok(act instanceof action.Action);
>    equal(act.type, actionSequence.type);
>    equal(act.subtype, actionItem.type);
>    equal(act.id, actionSequence.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:335
(Diff revision 1)
>    let act = action.Action.fromJSON(actionSequence, actionItem);
>    ok(act instanceof action.Action);
>    equal(act.type, actionSequence.type);
>    equal(act.subtype, actionItem.type);
>    equal(act.id, actionSequence.id);
>    equal(act.value, actionItem.value);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:337
(Diff revision 1)
>    equal(act.type, actionSequence.type);
>    equal(act.subtype, actionItem.type);
>    equal(act.id, actionSequence.id);
>    equal(act.value, actionItem.value);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:340
(Diff revision 1)
>    equal(act.value, actionItem.value);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processInputSourceActionSequenceValidation() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_action.js:340
(Diff revision 1)
>    equal(act.value, actionItem.value);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_processInputSourceActionSequenceValidation() {

Error: Identifier 'test_processinputsourceactionsequencevalidation' is not in camel case. [eslint: camelcase]
I suspect the code review bot has run these lints with the eslint
config from central?  This patch adds a new .eslintrc.js for
testing/marionette/test/unit which should resolve all these problems.
Flags: needinfo?(janx)
Ah no, it runs it on a per-commit basis and the .eslintrc.js was
introduced in the subsequent commit.
Flags: needinfo?(janx)
Comment on attachment 8967142 [details]
Bug 1453381 - Fix lint violations in Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235792/#review241642


Code analysis found 1084 defects in this patch (only the first 30 are reported here):
 - 1084 defects found by mozlint

You can run this analysis locally with:
 - `./mach lint path/to/file` (JS/Python)


If you see a problem in this automated review, please report it here: http://bit.ly/2y9N9Vx


::: testing/marionette/test/unit/test_evaluate.js:75
(Diff revision 1)
>  
>    // elements
>    ok(WebElement.isReference(evaluate.toJSON(domEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(svgEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xulEl, seenEls)));
>    ok(WebElement.isReference(evaluate.toJSON(xblEl, seenEls)));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:81
(Diff revision 1)
>  
>    // toJSON
>    equal("foo", evaluate.toJSON({toJSON() { return "foo"; }}));
>  
>    // arbitrary object
>    deepEqual({foo: "bar"}, evaluate.toJSON({foo: "bar"}));

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:83
(Diff revision 1)
>    equal("foo", evaluate.toJSON({toJSON() { return "foo"; }}));
>  
>    // arbitrary object
>    deepEqual({foo: "bar"}, evaluate.toJSON({foo: "bar"}));
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:87
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  
>  add_test(function test_toJSON_sequences() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:87
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  
>  add_test(function test_toJSON_sequences() {

Error: Identifier 'test_tojson_sequences' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_evaluate.js:91
(Diff revision 1)
>  
>  add_test(function test_toJSON_sequences() {
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:92
(Diff revision 1)
>  add_test(function test_toJSON_sequences() {
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:93
(Diff revision 1)
> -  let input = [null, true, [], domEl, {toJSON() { return "foo"}}, {bar: "baz"}];
> +  let input = [null, true, [], domEl, {toJSON() { return "foo"; }}, {bar: "baz"}];
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:94
(Diff revision 1)
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:95
(Diff revision 1)
>  
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:96
(Diff revision 1)
>    equal(null, actual[0]);
>    equal(true, actual[1]);
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);
>    deepEqual({bar: "baz"}, actual[5]);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:98
(Diff revision 1)
>    deepEqual([], actual[2]);
>    ok(WebElement.isReference(actual[3]));
>    equal("foo", actual[4]);
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:101
(Diff revision 1)
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_toJSON_objects() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:101
(Diff revision 1)
>    deepEqual({bar: "baz"}, actual[5]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_toJSON_objects() {

Error: Identifier 'test_tojson_objects' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_evaluate.js:112
(Diff revision 1)
>      "toJSON": {toJSON() { return "foo"; }},
>      "object": {"bar": "baz"},
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:113
(Diff revision 1)
>      "object": {"bar": "baz"},
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:114
(Diff revision 1)
>    };
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:115
(Diff revision 1)
>    let actual = evaluate.toJSON(input, seenEls);
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:116
(Diff revision 1)
>  
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:117
(Diff revision 1)
>    equal(null, actual.null);
>    equal(true, actual.boolean);
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);
>    deepEqual({"bar": "baz"}, actual.object);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_evaluate.js:119
(Diff revision 1)
>    deepEqual([], actual.array);
>    ok(WebElement.isReference(actual.webElement));
>    equal("foo", actual.toJSON);
>    deepEqual({"bar": "baz"}, actual.object);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:11
(Diff revision 1)
> +  InvalidArgumentError,
> +  WebDriverError,
> +} = ChromeUtils.import("chrome://marionette/content/error.js", {});
>  ChromeUtils.import("chrome://marionette/content/message.js");
>  
>  add_test(function test_Message_Origin() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:11
(Diff revision 1)
> +  InvalidArgumentError,
> +  WebDriverError,
> +} = ChromeUtils.import("chrome://marionette/content/error.js", {});
>  ChromeUtils.import("chrome://marionette/content/message.js");
>  
>  add_test(function test_Message_Origin() {

Error: Identifier 'test_message_origin' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:12
(Diff revision 1)
> +  WebDriverError,
> +} = ChromeUtils.import("chrome://marionette/content/error.js", {});
>  ChromeUtils.import("chrome://marionette/content/message.js");
>  
>  add_test(function test_Message_Origin() {
>    equal(0, Message.Origin.Client);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:13
(Diff revision 1)
> +} = ChromeUtils.import("chrome://marionette/content/error.js", {});
>  ChromeUtils.import("chrome://marionette/content/message.js");
>  
>  add_test(function test_Message_Origin() {
>    equal(0, Message.Origin.Client);
>    equal(1, Message.Origin.Server);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:15
(Diff revision 1)
>  
>  add_test(function test_Message_Origin() {
>    equal(0, Message.Origin.Client);
>    equal(1, Message.Origin.Server);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:18
(Diff revision 1)
>    equal(1, Message.Origin.Server);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Message_fromPacket() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:18
(Diff revision 1)
>    equal(1, Message.Origin.Server);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Message_fromPacket() {

Error: Identifier 'test_message_frompacket' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:23
(Diff revision 1)
>  add_test(function test_Message_fromPacket() {
>    let cmd = new Command(4, "foo");
>    let resp = new Response(5, () => {});
>    resp.error = "foo";
>  
>    ok(Message.fromPacket(cmd.toPacket()) instanceof Command);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:24
(Diff revision 1)
>    let cmd = new Command(4, "foo");
>    let resp = new Response(5, () => {});
>    resp.error = "foo";
>  
>    ok(Message.fromPacket(cmd.toPacket()) instanceof Command);
>    ok(Message.fromPacket(resp.toPacket()) instanceof Response);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:25
(Diff revision 1)
>    let resp = new Response(5, () => {});
>    resp.error = "foo";
>  
>    ok(Message.fromPacket(cmd.toPacket()) instanceof Command);
>    ok(Message.fromPacket(resp.toPacket()) instanceof Response);
>    Assert.throws(() => Message.fromPacket([3, 4, 5, 6]),

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:28
(Diff revision 1)
>    ok(Message.fromPacket(cmd.toPacket()) instanceof Command);
>    ok(Message.fromPacket(resp.toPacket()) instanceof Response);
>    Assert.throws(() => Message.fromPacket([3, 4, 5, 6]),
>        /Unrecognised message type in packet/);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:31
(Diff revision 1)
>        /Unrecognised message type in packet/);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:31
(Diff revision 1)
>        /Unrecognised message type in packet/);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command() {

Error: Identifier 'test_command' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:33
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_Command() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(42, cmd.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:34
(Diff revision 1)
>  });
>  
>  add_test(function test_Command() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(42, cmd.id);
>    equal("foo", cmd.name);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:35
(Diff revision 1)
>  
>  add_test(function test_Command() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(42, cmd.id);
>    equal("foo", cmd.name);
>    deepEqual({bar: "baz"}, cmd.parameters);

Error: 'deepequal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:36
(Diff revision 1)
>  add_test(function test_Command() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(42, cmd.id);
>    equal("foo", cmd.name);
>    deepEqual({bar: "baz"}, cmd.parameters);
>    equal(null, cmd.onerror);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:37
(Diff revision 1)
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(42, cmd.id);
>    equal("foo", cmd.name);
>    deepEqual({bar: "baz"}, cmd.parameters);
>    equal(null, cmd.onerror);
>    equal(null, cmd.onresult);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:38
(Diff revision 1)
>    equal(42, cmd.id);
>    equal("foo", cmd.name);
>    deepEqual({bar: "baz"}, cmd.parameters);
>    equal(null, cmd.onerror);
>    equal(null, cmd.onresult);
>    equal(Message.Origin.Client, cmd.origin);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:39
(Diff revision 1)
>    equal("foo", cmd.name);
>    deepEqual({bar: "baz"}, cmd.parameters);
>    equal(null, cmd.onerror);
>    equal(null, cmd.onresult);
>    equal(Message.Origin.Client, cmd.origin);
>    equal(false, cmd.sent);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:41
(Diff revision 1)
>    equal(null, cmd.onerror);
>    equal(null, cmd.onresult);
>    equal(Message.Origin.Client, cmd.origin);
>    equal(false, cmd.sent);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:44
(Diff revision 1)
>    equal(false, cmd.sent);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_onresponse() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:44
(Diff revision 1)
>    equal(false, cmd.sent);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_onresponse() {

Error: Identifier 'test_command_onresponse' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:59
(Diff revision 1)
>  
>    let bodyResp = new Response(9, () => {});
>    bodyResp.body = "bar";
>  
>    cmd.onresponse(errorResp);
>    equal(true, onerrorOk);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:60
(Diff revision 1)
>    let bodyResp = new Response(9, () => {});
>    bodyResp.body = "bar";
>  
>    cmd.onresponse(errorResp);
>    equal(true, onerrorOk);
>    equal(false, onresultOk);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:63
(Diff revision 1)
>    cmd.onresponse(errorResp);
>    equal(true, onerrorOk);
>    equal(false, onresultOk);
>  
>    cmd.onresponse(bodyResp);
>    equal(true, onresultOk);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:65
(Diff revision 1)
>    equal(false, onresultOk);
>  
>    cmd.onresponse(bodyResp);
>    equal(true, onresultOk);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:68
(Diff revision 1)
>    equal(true, onresultOk);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_ctor() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:68
(Diff revision 1)
>    equal(true, onresultOk);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_ctor() {

Error: Identifier 'test_command_ctor' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:72
(Diff revision 1)
>  
>  add_test(function test_Command_ctor() {
>    let cmd = new Command(42, "bar", {bar: "baz"});
>    let msg = cmd.toPacket();
>  
>    equal(Command.Type, msg[0]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:73
(Diff revision 1)
>  add_test(function test_Command_ctor() {
>    let cmd = new Command(42, "bar", {bar: "baz"});
>    let msg = cmd.toPacket();
>  
>    equal(Command.Type, msg[0]);
>    equal(cmd.id, msg[1]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:74
(Diff revision 1)
>    let cmd = new Command(42, "bar", {bar: "baz"});
>    let msg = cmd.toPacket();
>  
>    equal(Command.Type, msg[0]);
>    equal(cmd.id, msg[1]);
>    equal(cmd.name, msg[2]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:75
(Diff revision 1)
>    let msg = cmd.toPacket();
>  
>    equal(Command.Type, msg[0]);
>    equal(cmd.id, msg[1]);
>    equal(cmd.name, msg[2]);
>    equal(cmd.parameters, msg[3]);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:77
(Diff revision 1)
>    equal(Command.Type, msg[0]);
>    equal(cmd.id, msg[1]);
>    equal(cmd.name, msg[2]);
>    equal(cmd.parameters, msg[3]);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:80
(Diff revision 1)
>    equal(cmd.parameters, msg[3]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_toString() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:80
(Diff revision 1)
>    equal(cmd.parameters, msg[3]);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_toString() {

Error: Identifier 'test_command_tostring' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:82
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_Command_toString() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(JSON.stringify(cmd.toPacket()), cmd.toString());

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:84
(Diff revision 1)
>  
>  add_test(function test_Command_toString() {
>    let cmd = new Command(42, "foo", {bar: "baz"});
>    equal(JSON.stringify(cmd.toPacket()), cmd.toString());
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:87
(Diff revision 1)
>    equal(JSON.stringify(cmd.toPacket()), cmd.toString());
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_fromPacket() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:87
(Diff revision 1)
>    equal(JSON.stringify(cmd.toPacket()), cmd.toString());
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_fromPacket() {

Error: Identifier 'test_command_frompacket' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:93
(Diff revision 1)
>    let c1 = new Command(42, "foo", {bar: "baz"});
>  
>    let msg = c1.toPacket();
>    let c2 = Command.fromPacket(msg);
>  
>    equal(c1.id, c2.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:94
(Diff revision 1)
>  
>    let msg = c1.toPacket();
>    let c2 = Command.fromPacket(msg);
>  
>    equal(c1.id, c2.id);
>    equal(c1.name, c2.name);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:95
(Diff revision 1)
>    let msg = c1.toPacket();
>    let c2 = Command.fromPacket(msg);
>  
>    equal(c1.id, c2.id);
>    equal(c1.name, c2.name);
>    equal(c1.parameters, c2.parameters);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:97
(Diff revision 1)
>  
>    equal(c1.id, c2.id);
>    equal(c1.name, c2.name);
>    equal(c1.parameters, c2.parameters);
>  
>    Assert.throws(() => Command.fromPacket([null, 2, "foo", {}]));

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:98
(Diff revision 1)
>    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", {}]));

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:99
(Diff revision 1)
>    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", {}]));

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:100
(Diff revision 1)
>    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, {}]));

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:101
(Diff revision 1)
>  
>    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]));

Error: 'assert' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:104
(Diff revision 1)
>    Assert.throws(() => Command.fromPacket([0, null, "foo", {}]));
>    Assert.throws(() => Command.fromPacket([0, 2, null, {}]));
>    Assert.throws(() => Command.fromPacket([0, 2, "foo", false]));
>  
>    let nullParams = Command.fromPacket([0, 2, "foo", null]);
>    equal("[object Object]", Object.prototype.toString.call(nullParams.parameters));

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:106
(Diff revision 1)
>    Assert.throws(() => Command.fromPacket([0, 2, "foo", false]));
>  
>    let nullParams = Command.fromPacket([0, 2, "foo", null]);
>    equal("[object Object]", Object.prototype.toString.call(nullParams.parameters));
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:109
(Diff revision 1)
>    equal("[object Object]", Object.prototype.toString.call(nullParams.parameters));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_Type() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:109
(Diff revision 1)
>    equal("[object Object]", Object.prototype.toString.call(nullParams.parameters));
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_Type() {

Error: Identifier 'test_command_type' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:110
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Command_Type() {
>    equal(0, Command.Type);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:111
(Diff revision 1)
>    run_next_test();
>  });
>  
>  add_test(function test_Command_Type() {
>    equal(0, Command.Type);
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:114
(Diff revision 1)
>  add_test(function test_Command_Type() {
>    equal(0, Command.Type);
>    run_next_test();
>  });
>  
>  add_test(function test_Response_ctor() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:114
(Diff revision 1)
>  add_test(function test_Command_Type() {
>    equal(0, Command.Type);
>    run_next_test();
>  });
>  
>  add_test(function test_Response_ctor() {

Error: Identifier 'test_response_ctor' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:115
(Diff revision 1)
>    equal(0, Command.Type);
>    run_next_test();
>  });
>  
>  add_test(function test_Response_ctor() {
>    let handler = () => run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:118
(Diff revision 1)
>  
>  add_test(function test_Response_ctor() {
>    let handler = () => run_next_test();
>  
>    let resp = new Response(42, handler);
>    equal(42, resp.id);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:119
(Diff revision 1)
>  add_test(function test_Response_ctor() {
>    let handler = () => run_next_test();
>  
>    let resp = new Response(42, handler);
>    equal(42, resp.id);
>    equal(null, resp.error);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:120
(Diff revision 1)
>    let handler = () => run_next_test();
>  
>    let resp = new Response(42, handler);
>    equal(42, resp.id);
>    equal(null, resp.error);
>    ok("origin" in resp);

Error: 'ok' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:121
(Diff revision 1)
>  
>    let resp = new Response(42, handler);
>    equal(42, resp.id);
>    equal(null, resp.error);
>    ok("origin" in resp);
>    equal(Message.Origin.Server, resp.origin);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:122
(Diff revision 1)
>    let resp = new Response(42, handler);
>    equal(42, resp.id);
>    equal(null, resp.error);
>    ok("origin" in resp);
>    equal(Message.Origin.Server, resp.origin);
>    equal(false, resp.sent);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:123
(Diff revision 1)
>    equal(42, resp.id);
>    equal(null, resp.error);
>    ok("origin" in resp);
>    equal(Message.Origin.Server, resp.origin);
>    equal(false, resp.sent);
>    equal(handler, resp.respHandler_);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:125
(Diff revision 1)
>    ok("origin" in resp);
>    equal(Message.Origin.Server, resp.origin);
>    equal(false, resp.sent);
>    equal(handler, resp.respHandler_);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:128
(Diff revision 1)
>    equal(handler, resp.respHandler_);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_sendConditionally() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:128
(Diff revision 1)
>    equal(handler, resp.respHandler_);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_sendConditionally() {

Error: Identifier 'test_response_sendconditionally' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:132
(Diff revision 1)
>  
>  add_test(function test_Response_sendConditionally() {
>    let fired = false;
>    let resp = new Response(42, () => fired = true);
> -  resp.sendConditionally(r => false);
> +  resp.sendConditionally(() => false);
>    equal(false, resp.sent);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:133
(Diff revision 1)
>  add_test(function test_Response_sendConditionally() {
>    let fired = false;
>    let resp = new Response(42, () => fired = true);
> -  resp.sendConditionally(r => false);
> +  resp.sendConditionally(() => false);
>    equal(false, resp.sent);
>    equal(false, fired);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:135
(Diff revision 1)
>    let resp = new Response(42, () => fired = true);
> -  resp.sendConditionally(r => false);
> +  resp.sendConditionally(() => false);
>    equal(false, resp.sent);
>    equal(false, fired);
> -  resp.sendConditionally(r => true);
> +  resp.sendConditionally(() => true);
>    equal(true, resp.sent);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:136
(Diff revision 1)
> -  resp.sendConditionally(r => false);
> +  resp.sendConditionally(() => false);
>    equal(false, resp.sent);
>    equal(false, fired);
> -  resp.sendConditionally(r => true);
> +  resp.sendConditionally(() => true);
>    equal(true, resp.sent);
>    equal(true, fired);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:138
(Diff revision 1)
>    equal(false, fired);
> -  resp.sendConditionally(r => true);
> +  resp.sendConditionally(() => true);
>    equal(true, resp.sent);
>    equal(true, fired);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:141
(Diff revision 1)
>    equal(true, fired);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_send() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:141
(Diff revision 1)
>    equal(true, fired);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_send() {

Error: Identifier 'test_response_send' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:145
(Diff revision 1)
>  
>  add_test(function test_Response_send() {
>    let fired = false;
>    let resp = new Response(42, () => fired = true);
>    resp.send();
>    equal(true, resp.sent);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:146
(Diff revision 1)
>  add_test(function test_Response_send() {
>    let fired = false;
>    let resp = new Response(42, () => fired = true);
>    resp.send();
>    equal(true, resp.sent);
>    equal(true, fired);

Error: 'equal' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:148
(Diff revision 1)
>    let resp = new Response(42, () => fired = true);
>    resp.send();
>    equal(true, resp.sent);
>    equal(true, fired);
>  
>    run_next_test();

Error: 'run_next_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:151
(Diff revision 1)
>    equal(true, fired);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_sendError_sent() {

Error: 'add_test' is not defined. [eslint: no-undef]

::: testing/marionette/test/unit/test_message.js:151
(Diff revision 1)
>    equal(true, fired);
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_sendError_sent() {

Error: Identifier 'test_response_senderror_sent' is not in camel case. [eslint: camelcase]

::: testing/marionette/test/unit/test_message.js:152
(Diff revision 1)
>  
>    run_next_test();
>  });
>  
>  add_test(function test_Response_sendError_sent() {
>    let resp = new Response(42, r => equal(false, r.sent));

Error: 'equal' is not defined. [eslint: no-undef]
Comment on attachment 8967141 [details]
Bug 1453381 - Move Marionette xpcshell tests to subdirectory.

https://reviewboard.mozilla.org/r/235790/#review241890

::: testing/marionette/moz.build:12
(Diff revision 1)
>  JAR_MANIFESTS += ["jar.mn"]
>  JS_PREFERENCE_FILES += ["prefs/marionette.js"]
>  
>  MARIONETTE_UNIT_MANIFESTS += ["harness/marionette_harness/tests/unit/unit-tests.ini"]
>  MARIONETTE_WEBAPI_MANIFESTS += ["harness/marionette_harness/tests/webapi-tests.ini"]
> -XPCSHELL_TESTS_MANIFESTS += ["unit.ini"]
> +XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.ini"]

Hurray. Something I wanted to see for a long time, but it was always denied. Good, that we have to do it now. :)

::: testing/marionette/test/unit/xpcshell.ini:1
(Diff revision 1)
> +# This Source Code Form is subject to the terms of the Mozilla Public

Please also move this file. It looks like it was newly added.
Attachment #8967141 - Flags: review?(hskupin) → review-
Comment on attachment 8967142 [details]
Bug 1453381 - Fix lint violations in Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235792/#review241894

::: testing/marionette/test/unit/test_action.js:50
(Diff revision 1)
>      let message = `parametersData: [pointerType: ${parametersData.pointerType}]`;
>      check(/Unknown pointerType/, message, parametersData);
>    }
> -  parametersData.pointerType = "mouse"; //TODO "pen";
> +  parametersData.pointerType = "mouse"; // TODO "pen";
>    deepEqual(action.PointerParameters.fromJSON(parametersData),
> -      {pointerType: "mouse"}); //TODO action.PointerType.Pen});
> +      {pointerType: "mouse"}); // TODO action.PointerType.Pen});

Why do we have the review bot complaining about all those styles? Would the former commit have to update the location of our xpcshell tests in the linter config to exclude them?
Attachment #8967142 - Flags: review?(hskupin) → review+
Comment on attachment 8967143 [details]
Bug 1453381 - Enable eslint for Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235794/#review241902

::: .eslintignore
(Diff revision 1)
>  
>  # Servo is imported.
>  servo/**
>  
>  # Remote protocol exclusions
> -testing/marionette/test_*.js

Please update this file in the very first commit of this series to the new location, so that we have a stable second commit.

::: testing/marionette/test/unit/.eslintrc.js:7
(Diff revision 1)
> +
> +module.exports = {
> +  "extends": ["plugin:mozilla/xpcshell-test"],
> +  "rules": {
> +    "camelcase": "off",
> +    "max-len": "off",

Can we at least restrict to 100? I'm sure we tried to keep that limit.
Attachment #8967143 - Flags: review?(hskupin) → review+
Comment on attachment 8967142 [details]
Bug 1453381 - Fix lint violations in Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235792/#review241894

> Why do we have the review bot complaining about all those styles? Would the former commit have to update the location of our xpcshell tests in the linter config to exclude them?

See https://bugzilla.mozilla.org/show_bug.cgi?id=1453381#c8.

Reordering the commits would probably make it happy since it only
runs the lints on changed files.
Comment on attachment 8967147 [details]
Bug 1453381 - Add docs for running Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235796/#review241904

I don't see this file being necessary given that we have all that under testing/marionette, and it should be clear that this is the root folder for the project and documentation can be found there. But it's up to you.
Attachment #8967147 - Flags: review?(hskupin) → review+
Comment on attachment 8967141 [details]
Bug 1453381 - Move Marionette xpcshell tests to subdirectory.

https://reviewboard.mozilla.org/r/235790/#review241890

> Please also move this file. It looks like it was newly added.

Doesn’t look that way to me:

> diff --git a/testing/marionette/unit.ini b/testing/marionette/test/unit/xpcshell.ini
> similarity index 92%
> rename from testing/marionette/unit.ini
> rename to testing/marionette/test/unit/xpcshell.ini
> index 9121191d9469..dad22981ec45 100644
> --- a/testing/marionette/unit.ini
> +++ b/testing/marionette/test/unit/xpcshell.ini
> @@ -2,8 +2,6 @@
>  # License, v. 2.0. If a copy of the MPL was not distributed with this
>  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
>  
> -# xpcshell unit tests for Marionette
> -
>  [DEFAULT]
>  skip-if = appname == "thunderbird"

I guess this is another reason why mozreview sucks.
Attachment #8967141 - Flags: review- → review?(hskupin)
Comment on attachment 8967205 [details]
Bug 1453381 - Update Marionette test documentation.

https://reviewboard.mozilla.org/r/235872/#review241912

::: testing/marionette/doc/Testing.md:34
(Diff revision 1)
> -need to download the `target.common.tests.zip` artifact as attached to
> -Treeherder [build jobs] `B` for your system.  Extract that file and set up
> -the Python Marionette client and harness by executing the following
> -command:
> +need to download the `target.common.tests.zip` artifact as attached
> +to Treeherder [build jobs] `B` for your system.  Extract that file
> +and set up the Python Marionette client and harness by executing
> +the following command in a virtual environment:
>  
> -    % pip install -r config/marionette_requirements.txt
> +	    % pip install -r config/marionette_requirements.txt

Please don't use tabs. They are not necessary.

::: testing/marionette/doc/Testing.md:130
(Diff revision 1)
>  
>  The Marionette harness Python package has a set of unit tests, which
> -are written by using the [pytest] framework. The following command will
> -run all tests:
> +are written by using the [pytest] framework. The following command
> +will run all tests:
>  
> -    % ./mach python-test testing/marionette/
> +	    % ./mach python-test testing/marionette/

Same for tabs in those two cases.
Attachment #8967205 - Flags: review?(hskupin) → review+
Comment on attachment 8967143 [details]
Bug 1453381 - Enable eslint for Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235794/#review241902

> Please update this file in the very first commit of this series to the new location, so that we have a stable second commit.

I’ve reordered commit 2 and 3.  But the problem isn’t really the
commit ordering, but the fact that lints are run on a per-commit
basis, whereas they are run per-push on try.
Comment on attachment 8967205 [details]
Bug 1453381 - Update Marionette test documentation.

https://reviewboard.mozilla.org/r/235872/#review241912

> Please don't use tabs. They are not necessary.

Not going to fix this pointless issue.
Comment on attachment 8967147 [details]
Bug 1453381 - Add docs for running Marionette xpcshell tests.

https://reviewboard.mozilla.org/r/235796/#review241904

When you navigate the source code you might not think to read the
narrative documentation first.  Whilst the narrative documentation
is available if you do a web search, a README in this folder is at
your fingertips: I can think of no more immediate source of help
for confused developers.
Comment on attachment 8967141 [details]
Bug 1453381 - Move Marionette xpcshell tests to subdirectory.

https://reviewboard.mozilla.org/r/235790/#review241890

> Doesn’t look that way to me:
> 
> > diff --git a/testing/marionette/unit.ini b/testing/marionette/test/unit/xpcshell.ini
> > similarity index 92%
> > rename from testing/marionette/unit.ini
> > rename to testing/marionette/test/unit/xpcshell.ini
> > index 9121191d9469..dad22981ec45 100644
> > --- a/testing/marionette/unit.ini
> > +++ b/testing/marionette/test/unit/xpcshell.ini
> > @@ -2,8 +2,6 @@
> >  # License, v. 2.0. If a copy of the MPL was not distributed with this
> >  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
> >  
> > -# xpcshell unit tests for Marionette
> > -
> >  [DEFAULT]
> >  skip-if = appname == "thunderbird"
> 
> I guess this is another reason why mozreview sucks.

When I download the patch from mozreview it's not listed as to have been moved:

> diff --git a/testing/marionette/test/unit/xpcshell.ini b/testing/marionette/test/unit/xpcshell.ini
> new file mode 100644
> --- /dev/null
> +++ b/testing/marionette/test/unit/xpcshell.ini

All the other files are fine.
Comment on attachment 8967141 [details]
Bug 1453381 - Move Marionette xpcshell tests to subdirectory.

https://reviewboard.mozilla.org/r/235790/#review241928

r=me when you are sure the ini file gets moved.
Attachment #8967141 - Flags: review?(hskupin) → review+
It turns out you cannot both move and edit a file in one atomic
action.  This is apparently supported in git, and I don’t know about
hg, but somewhere in git-cinnabar and/or hg conversion it gets
translated as removing and re-adding the file.
Pushed by atolfsen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/399edd0e33b5
Move Marionette xpcshell tests to subdirectory. r=whimboo
https://hg.mozilla.org/integration/autoland/rev/4f99f23d5d43
Enable eslint for Marionette xpcshell tests. r=whimboo
https://hg.mozilla.org/integration/autoland/rev/b624c05942e4
Fix lint violations in Marionette xpcshell tests. r=whimboo
https://hg.mozilla.org/integration/autoland/rev/1d7d30ff1c56
Add docs for running Marionette xpcshell tests. r=whimboo
https://hg.mozilla.org/integration/autoland/rev/389b45c66249
Update Marionette test documentation. r=whimboo
(In reply to Andreas Tolfsen ‹:ato› from comment #33)
> It turns out you cannot both move and edit a file in one atomic
> action.  This is apparently supported in git, and I don’t know about
> hg, but somewhere in git-cinnabar and/or hg conversion it gets
> translated as removing and re-adding the file.

As it looks like it's also supported for hg but mozreview doesn't like it:
https://hg.mozilla.org/integration/autoland/rev/399edd0e33b5
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: