diff options
Diffstat (limited to 'testing/marionette/test_assert.js')
-rw-r--r-- | testing/marionette/test_assert.js | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/testing/marionette/test_assert.js b/testing/marionette/test_assert.js new file mode 100644 index 000000000..c14f2852e --- /dev/null +++ b/testing/marionette/test_assert.js @@ -0,0 +1,126 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +"use strict"; + +const {utils: Cu} = Components; + +Cu.import("chrome://marionette/content/assert.js"); +Cu.import("chrome://marionette/content/error.js"); + +add_test(function test_session() { + assert.session({sessionId: "foo"}); + for (let typ of [null, undefined, ""]) { + Assert.throws(() => assert.session({sessionId: typ}), InvalidSessionIDError); + } + + run_next_test(); +}); + +add_test(function test_platforms() { + // at least one will fail + let raised; + for (let fn of [assert.firefox, assert.fennec, assert.b2g, assert.mobile]) { + try { + fn(); + } catch (e) { + raised = e; + } + } + ok(raised instanceof UnsupportedOperationError); + + run_next_test(); +}); + +add_test(function test_defined() { + assert.defined({}); + Assert.throws(() => assert.defined(undefined), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_number() { + assert.number(1); + assert.number(0); + assert.number(-1); + assert.number(1.2); + for (let i of ["foo", "1", {}, [], NaN, Infinity, undefined]) { + Assert.throws(() => assert.number(i), InvalidArgumentError); + } + run_next_test(); +}); + +add_test(function test_integer() { + assert.integer(1); + assert.integer(0); + assert.integer(-1); + Assert.throws(() => assert.integer("foo"), InvalidArgumentError); + Assert.throws(() => assert.integer(1.2), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_positiveInteger() { + assert.positiveInteger(1); + assert.positiveInteger(0); + Assert.throws(() => assert.positiveInteger(-1), InvalidArgumentError); + Assert.throws(() => assert.positiveInteger("foo"), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_boolean() { + assert.boolean(true); + assert.boolean(false); + Assert.throws(() => assert.boolean("false"), InvalidArgumentError); + Assert.throws(() => assert.boolean(undefined), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_string() { + assert.string("foo"); + assert.string(`bar`); + Assert.throws(() => assert.string(42), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_object() { + assert.object({}); + assert.object(new Object()); + for (let typ of [42, "foo", true, null, undefined]) { + Assert.throws(() => assert.object(typ), InvalidArgumentError); + } + + run_next_test(); +}); + +add_test(function test_in() { + assert.in("foo", {foo: 42}); + for (let typ of [{}, 42, true, null, undefined]) { + Assert.throws(() => assert.in("foo", typ), InvalidArgumentError); + } + + run_next_test(); +}); + +add_test(function test_array() { + assert.array([]); + assert.array(new Array()); + Assert.throws(() => assert.array(42), InvalidArgumentError); + Assert.throws(() => assert.array({}), InvalidArgumentError); + + run_next_test(); +}); + +add_test(function test_that() { + equal(1, assert.that(n => n + 1)(1)); + Assert.throws(() => assert.that(() => false)()); + Assert.throws(() => assert.that(val => val)(false)); + Assert.throws(() => assert.that(val => val, "foo", SessionNotCreatedError)(false), + SessionNotCreatedError); + + run_next_test(); +}); |