webextension-polyfill/test/test-browser-global.js

43 lines
1.3 KiB
JavaScript
Raw Normal View History

"use strict";
const {deepEqual, equal} = require("chai").assert;
const {setupTestDOMWindow} = require("./setup");
const {testCustomProperties, testUndefinedProperties} = require("./helpers");
describe("browser-polyfill", () => {
it("wraps the global chrome namespace with a global browser namespace", () => {
const fakeChrome = {};
return setupTestDOMWindow(fakeChrome).then(window => {
equal(typeof window.browser, "object", "Got the window.browser object");
});
});
2016-11-02 20:31:56 +00:00
it("does not override the global browser namespace if it already exists", () => {
const fakeChrome = {
runtime: {lastError: null},
};
const fakeBrowser = {
mycustomns: {mykey: true},
};
return setupTestDOMWindow(fakeChrome, fakeBrowser).then(window => {
deepEqual(window.browser, fakeBrowser,
2016-11-02 20:31:56 +00:00
"The existing browser has not been wrapped");
});
});
describe("browser wrapper", () => {
it("supports custom properties defined using Object.defineProperty", () => {
const fakeChrome = {};
return setupTestDOMWindow(fakeChrome).then(testCustomProperties);
});
it("returns undefined for property undefined in the target", () => {
const fakeChrome = {myns: {mykey: true}};
return setupTestDOMWindow(fakeChrome).then(testUndefinedProperties);
});
});
});