mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
219 lines
7.1 KiB
JavaScript
219 lines
7.1 KiB
JavaScript
/* 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 { Assert } = require("sdk/test/assert");
|
|
|
|
function createAssertTest() {
|
|
let failures = [], successes = [], exceptions = [];
|
|
return {
|
|
test: new Assert({
|
|
fail: (m) => failures.push(m),
|
|
pass: (m) => successes.push(m),
|
|
exception: (e) => exceptions.push(e)
|
|
}),
|
|
failures: failures,
|
|
successes: successes,
|
|
exceptions: exceptions
|
|
};
|
|
}
|
|
|
|
exports["test createAssertTest initial state"] = function(assert) {
|
|
let { failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.ok(true)"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.strictEqual(test.ok(true), true, "assert ok(true) strictEquals true");
|
|
assert.equal(successes.length, 1, "1 success log");
|
|
|
|
assert.equal(test.ok(true), true, "assert ok(true) equals true");
|
|
assert.equal(successes.length, 2, "2 success logs");
|
|
|
|
assert.ok(test.ok(true), "assert ok(true) is ok");
|
|
assert.equal(successes.length, 3, "3 success logs");
|
|
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.ok(false)"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.strictEqual(test.ok(false), false, "assert ok(false) strictEquals false");
|
|
assert.equal(failures.length, 1, "1 failure log");
|
|
|
|
assert.equal(test.ok(false), false, "assert ok(false) equals false");
|
|
assert.equal(failures.length, 2, "2 failure logs");
|
|
|
|
assert.ok(!test.ok(false), "assert ok(false) is not ok");
|
|
assert.equal(failures.length, 3, "3 failure logs");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.ok(false) failure message"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
test.ok(false, "XYZ");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 1, "1 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
|
|
assert.equal(failures[0], "XYZ - false == true");
|
|
}
|
|
|
|
exports["test assert.equal"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.strictEqual(test.equal(true, true), true, "assert equal(true, true) strictEquals true");
|
|
assert.equal(test.equal(true, true), true, "assert equal(true, true) equals true");
|
|
assert.ok(test.equal(true, true), "assert equal(true, true) is ok");
|
|
|
|
assert.equal(successes.length, 3, "3 success log");
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.equal failure message"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
test.equal("foo", "bar", "XYZ");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 1, "1 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
|
|
assert.equal(failures[0], "XYZ - \"foo\" == \"bar\"");
|
|
}
|
|
|
|
exports["test assert.strictEqual"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.strictEqual(test.strictEqual(true, true), true, "assert strictEqual(true, true) strictEquals true");
|
|
assert.equal(successes.length, 1, "1 success logs");
|
|
|
|
assert.equal(test.strictEqual(true, true), true, "assert strictEqual(true, true) equals true");
|
|
assert.equal(successes.length, 2, "2 success logs");
|
|
|
|
assert.ok(test.strictEqual(true, true), "assert strictEqual(true, true) is ok");
|
|
assert.equal(successes.length, 3, "3 success logs");
|
|
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.strictEqual failure message"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
test.strictEqual("foo", "bar", "XYZ");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 1, "1 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
|
|
assert.equal(failures[0], "XYZ - \"foo\" === \"bar\"");
|
|
}
|
|
|
|
exports["test assert.throws(func, string, string) matches"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw new Error("this is a thrown error") },
|
|
"this is a thrown error"
|
|
),
|
|
"throwing an new Error works");
|
|
assert.equal(successes.length, 1, "1 success log");
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw Error("this is a thrown error") },
|
|
"this is a thrown error"
|
|
),
|
|
"throwing an Error works");
|
|
assert.equal(successes.length, 2, "2 success log");
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw "this is a thrown string" },
|
|
"this is a thrown string"
|
|
),
|
|
"throwing a String works");
|
|
assert.equal(successes.length, 3, "3 success logs");
|
|
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.throws(func, string, string) failure message"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
test.throws(
|
|
() => { throw new Error("foo") },
|
|
"bar",
|
|
"XYZ");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 1, "1 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
|
|
assert.equal(failures[0], "XYZ - \"foo\" matches \"bar\"");
|
|
}
|
|
|
|
exports["test assert.throws(func, regex, string) matches"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw new Error("this is a thrown error") },
|
|
/this is a thrown error/
|
|
),
|
|
"throwing an new Error works");
|
|
assert.equal(successes.length, 1, "1 success log");
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw Error("this is a thrown error") },
|
|
/this is a thrown error/
|
|
),
|
|
"throwing an Error works");
|
|
assert.equal(successes.length, 2, "2 success log");
|
|
|
|
assert.ok(
|
|
test.throws(
|
|
() => { throw "this is a thrown string" },
|
|
/this is a thrown string/
|
|
),
|
|
"throwing a String works");
|
|
assert.equal(successes.length, 3, "3 success logs");
|
|
|
|
assert.equal(failures.length, 0, "0 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
}
|
|
|
|
exports["test assert.throws(func, regex, string) failure message"] = (assert) => {
|
|
let { test, failures, successes, exceptions } = createAssertTest();
|
|
|
|
test.throws(
|
|
() => { throw new Error("foo") },
|
|
/bar/i,
|
|
"XYZ");
|
|
|
|
assert.equal(successes.length, 0, "0 success log");
|
|
assert.equal(failures.length, 1, "1 failure logs");
|
|
assert.equal(exceptions.length, 0, "0 exception logs");
|
|
|
|
assert.equal(failures[0], "XYZ - \"foo\" matches \"/bar/i\"");
|
|
}
|
|
|
|
require("sdk/test").run(exports);
|