Feature test container sync initialization

This commit is contained in:
stoically 2019-12-19 07:49:41 +01:00 committed by Kendall Werts
parent 07af32af92
commit 4bcb908942
2 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,66 @@
describe("Sync", () => {
let tab;
beforeEach(async () => {
tab = await helper.browser.initializeWithTab();
});
it.only("should init sync on startup", async () => {
const mozContainer = await background.browser.contextualIdentities.create({
name: "Mozilla",
color: "red",
icon: "briefcase",
});
await background.browser.contextualIdentities.update("firefox-container-2", {color:"purple"});
await background.browser.contextualIdentities.update("firefox-container-4", {icon:"pet"});
await Promise.all([
{
userContextId: "1",
url: "https://twitter.com",
},
{
userContextId: "2",
url: "https://www.facebook.com",
},
{
userContextId: "4",
url: "https://www.linkedin.com",
neverAsk: true,
},
{
userContextId: mozContainer.cookieStoreId.replace("firefox-container-", ""),
url: "https://developer.mozilla.org",
neverAsk: true,
}
].map(async (assign) => {
await background.browser.tabs.update(tab.id, {
cookieStoreId: `firefox-container-${assign.userContextId}`
});
await background.browser.runtime.onMessage.addListener.yield({
method: "setOrRemoveAssignment",
tabId: tab.id,
url: assign.url,
userContextId: assign.userContextId,
value: !true
});
if (assign.neverAsk) {
await nextTick();
await background.browser.runtime.onMessage.addListener.yield({
method: "neverAsk",
neverAsk: true,
pageUrl: assign.url,
});
}
}));
await background.browser.runtime.onStartup.addListener.yield();
await nextTick();
const sync = await background.browser.storage.sync.get();
expect(sync.identities.length).to.equal(5);
});
});

View file

@ -5,6 +5,7 @@ if (!process.listenerCount("unhandledRejection")) {
const path = require("path");
const chai = require("chai");
const sinonChai = require("sinon-chai");
const crypto = require("crypto");
global.sinon = require("sinon");
global.expect = chai.expect;
chai.should();
@ -29,6 +30,9 @@ global.buildDom = async ({background = {}, popup = {}}) => {
...background.jsom,
beforeParse(window) {
window.browser.permissions.getAll.resolves({permissions: ["bookmarks"]});
window.crypto = {
getRandomValues: arr => crypto.randomBytes(arr.length),
};
}
}
};