1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/* 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/. */
const deprecate = require("sdk/util/deprecate");
var { Loader } = require("sdk/test/loader");
function LoaderWithHookedConsole() {
let errors = [];
let loader = Loader(module, {
console: Object.create(console, {
error: { value: function(error) {
errors.push(error);
}}
})
});
return {
loader: loader,
deprecate: loader.require("sdk/util/deprecate"),
errors: errors
}
}
exports["test Deprecate Usage"] = function testDeprecateUsage(assert) {
let { loader, deprecate, errors } = LoaderWithHookedConsole();
function functionIsDeprecated() {
deprecate.deprecateUsage("foo");
}
functionIsDeprecated();
assert.equal(errors.length, 1, "only one error is dispatched");
let msg = errors[0];
assert.ok(msg.indexOf("foo") !== -1,
"message contains the given message");
assert.ok(msg.indexOf("functionIsDeprecated") !== -1,
"message contains name of the caller function");
assert.ok(msg.indexOf(module.uri) !== -1,
"message contains URI of the caller module");
loader.unload();
}
exports["test Deprecate Function"] = function testDeprecateFunction(assert) {
let { loader, deprecate, errors } = LoaderWithHookedConsole();
let self = {};
let arg1 = "foo";
let arg2 = {};
function originalFunction(a1, a2) {
assert.equal(this, self);
assert.equal(a1, arg1);
assert.equal(a2, arg2);
};
let deprecateFunction = deprecate.deprecateFunction(originalFunction,
"bar");
deprecateFunction.call(self, arg1, arg2);
assert.equal(errors.length, 1,
"only one error is dispatched");
let msg = errors[0];
assert.ok(msg.indexOf("bar") !== -1, "message contains the given message");
assert.ok(msg.indexOf("testDeprecateFunction") !== -1,
"message contains name of the caller function");
assert.ok(msg.indexOf(module.uri) !== -1,
"message contains URI of the caller module");
loader.unload();
}
require("test").run(exports)
|