123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /* 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 deprecate = require("sdk/util/deprecate");
- const { LoaderWithHookedConsole } = require("sdk/test/loader");
- const { get, set } = require("sdk/preferences/service");
- const PREFERENCE = "devtools.errorconsole.deprecation_warnings";
- exports["test Deprecate Usage"] = function testDeprecateUsage(assert) {
- set(PREFERENCE, true);
- let { loader, messages } = LoaderWithHookedConsole(module);
- let deprecate = loader.require("sdk/util/deprecate");
- function functionIsDeprecated() {
- deprecate.deprecateUsage("foo");
- }
- functionIsDeprecated();
- assert.equal(messages.length, 1, "only one error is dispatched");
- assert.equal(messages[0].type, "error", "the console message is an error");
- let msg = messages[0].msg;
- 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) {
- set(PREFERENCE, true);
- let { loader, messages } = LoaderWithHookedConsole(module);
- let deprecate = loader.require("sdk/util/deprecate");
- 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(messages.length, 1, "only one error is dispatched");
- assert.equal(messages[0].type, "error", "the console message is an error");
- let msg = messages[0].msg;
- 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();
- }
- exports.testDeprecateEvent = function(assert, done) {
- set(PREFERENCE, true);
- let { loader, messages } = LoaderWithHookedConsole(module);
- let deprecate = loader.require("sdk/util/deprecate");
- let { on, emit } = loader.require('sdk/event/core');
- let testObj = {};
- testObj.on = deprecate.deprecateEvent(on.bind(null, testObj), 'BAD', ['fire']);
- testObj.on('fire', function() {
- testObj.on('water', function() {
- assert.equal(messages.length, 1, "only one error is dispatched");
- loader.unload();
- done();
- })
- assert.equal(messages.length, 1, "only one error is dispatched");
- emit(testObj, 'water');
- });
- assert.equal(messages.length, 1, "only one error is dispatched");
- assert.equal(messages[0].type, "error", "the console message is an error");
- let msg = messages[0].msg;
- assert.ok(msg.indexOf("BAD") !== -1, "message contains the given message");
- assert.ok(msg.indexOf("deprecateEvent") !== -1,
- "message contains name of the caller function");
- assert.ok(msg.indexOf(module.uri) !== -1,
- "message contains URI of the caller module");
- emit(testObj, 'fire');
- }
- exports.testDeprecateSettingToggle = function (assert, done) {
- let { loader, messages } = LoaderWithHookedConsole(module);
- let deprecate = loader.require("sdk/util/deprecate");
-
- function fn () { deprecate.deprecateUsage("foo"); }
- set(PREFERENCE, false);
- fn();
- assert.equal(messages.length, 0, 'no deprecation warnings');
-
- set(PREFERENCE, true);
- fn();
- assert.equal(messages.length, 1, 'deprecation warnings when toggled');
- set(PREFERENCE, false);
- fn();
- assert.equal(messages.length, 1, 'no new deprecation warnings');
- done();
- };
- exports.testDeprecateSetting = function (assert, done) {
- // Set devtools.errorconsole.deprecation_warnings to false
- set(PREFERENCE, false);
- let { loader, messages } = LoaderWithHookedConsole(module);
- let deprecate = loader.require("sdk/util/deprecate");
- // deprecateUsage test
- function functionIsDeprecated() {
- deprecate.deprecateUsage("foo");
- }
- functionIsDeprecated();
- assert.equal(messages.length, 0,
- "no errors dispatched on deprecateUsage");
- // deprecateFunction test
- function originalFunction() {};
- let deprecateFunction = deprecate.deprecateFunction(originalFunction,
- "bar");
- deprecateFunction();
- assert.equal(messages.length, 0,
- "no errors dispatched on deprecateFunction");
- // deprecateEvent
- let { on, emit } = loader.require('sdk/event/core');
- let testObj = {};
- testObj.on = deprecate.deprecateEvent(on.bind(null, testObj), 'BAD', ['fire']);
- testObj.on('fire', () => {
- assert.equal(messages.length, 0,
- "no errors dispatched on deprecateEvent");
- done();
- });
- emit(testObj, 'fire');
- }
- require("test").run(exports);
|