Oreon-Lime-R2/mingw-wine-gecko/wine-gecko-2.47.4-src/wine-gecko-2.47.4/addon-sdk/source/test/commonjs-test-adapter/asserts.js

55 lines
1.7 KiB
JavaScript
Raw Normal View History

/* 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 AssertBase = require("sdk/test/assert").Assert;
/**
* Generates custom assertion constructors that may be bundled with a test
* suite.
* @params {String}
* names of assertion function to be added to the generated Assert.
*/
function Assert() {
let assertDescriptor = {};
Array.forEach(arguments, function(name) {
assertDescriptor[name] = { value: function(message) {
this.pass(message);
}}
});
return function Assert() {
return Object.create(AssertBase.apply(null, arguments), assertDescriptor);
};
}
exports["test suite"] = {
Assert: Assert("foo"),
"test that custom assertor is passed to test function": function(assert) {
assert.ok("foo" in assert, "custom assertion function `foo` is defined");
assert.foo("custom assertion function `foo` is called");
},
"test sub suite": {
"test that `Assert` is inherited by sub suits": function(assert) {
assert.ok("foo" in assert, "assertion function `foo` is not defined");
},
"test sub sub suite": {
Assert: Assert("bar"),
"test that custom assertor is passed to test function": function(assert) {
assert.ok("bar" in assert,
"custom assertion function `bar` is defined");
assert.bar("custom assertion function `bar` is called");
},
"test that `Assert` is not inherited by sub sub suits": function(assert) {
assert.ok(!("foo" in assert),
"assertion function `foo` is not defined");
}
}
}
};
if (module == require.main)
require("test").run(exports);