/* 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"; // NOTE: worker state values are defined in an enum in nsIServiceWorkerManager // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIServiceWorkerManager.idl const EMPTY_WORKER_LIST = []; const WORKER_RUNNING = { id: "id-worker-1-example", workerDescriptorFront: true, url: "http://example.com/worker.js", state: 4, stateText: "activated", }; const WORKER_STOPPED = { id: "id-worker-1-example", workerDescriptorFront: false, url: "http://example.com/worker.js", state: 4, stateText: "activated", }; const WORKER_WAITING = { id: "id-worker-1-example", workerDescriptorFront: false, url: "http://example.com/worker.js", state: 2, stateText: "installed", }; const REGISTRATION_SINGLE_WORKER = { id: "id-reg-1-example", scope: "SCOPE 123", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }; const REGISTRATION_MULTIPLE_WORKERS = { id: "id-reg-1-example", scope: "SCOPE 123", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, { id: "id-worker-2-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 2, stateText: "installed", }, ], }; const SINGLE_WORKER_DEFAULT_DOMAIN_LIST = [ { id: "id-reg-1-example", scope: "SCOPE 123", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }, ]; const SINGLE_WORKER_DIFFERENT_DOMAIN_LIST = [ { id: "id-reg-1-example", scope: "SCOPE 123", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://different-example.com/worker.js", state: 4, stateText: "activated", }, ], }, ]; const MULTIPLE_WORKER_LIST = [ { id: "id-reg-1-example", scope: "SCOPE1", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }, { id: "id-reg-1-example", scope: "SCOPE2", registrationFront: "", workers: [ { id: "id-worker-2-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 2, stateText: "installed", }, ], }, { id: "id-reg-3-example", scope: "SCOPE3", registrationFront: "", workers: [ { id: "id-worker-3-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }, ]; const MULTIPLE_WORKER_MIXED_DOMAINS_LIST = [ { id: "id-reg-1-example", scope: "SCOPE1", registrationFront: "", workers: [ { id: "id-worker-1-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }, { id: "id-reg-2-example", scope: "SCOPE2", registrationFront: "", workers: [ { id: "id-worker-2-example", workerDescriptorFront: "", url: "http://example.com/worker.js", state: 4, stateText: "activated", }, ], }, { id: "id-reg-3-example", scope: "SCOPE3", registrationFront: "", workers: [ { id: "id-worker-3-example", workerDescriptorFront: "", url: "http://different-example.com/worker.js", state: 4, stateText: "activated", }, ], }, ]; // props for a simple manifest const MANIFEST_SIMPLE = { icons: [ { key: { sizes: "1x1", contentType: "image/png" }, value: { src: "something.png", purpose: "any" }, type: "icon", }, ], identity: [{ key: "name", value: "foo", type: "string" }], presentation: [ { key: "lorem", value: "ipsum", type: "string" }, { key: "foo", value: "bar", type: "string" }, ], validation: [{ level: "warning", message: "This is a warning" }], }; // props for a manifest with string values const MANIFEST_STRING_MEMBERS = { icons: [], identity: [{ key: "name", value: "foo", type: "string" }], presentation: [], validation: [], }; // props for a manifest with color values const MANIFEST_COLOR_MEMBERS = { icons: [], identity: [], presentation: [ { key: "background_color", value: "red", type: "color" }, { key: "theme_color", value: "rgb(0, 0, 0)", type: "color" }, ], validation: [], }; // props for a manifest with icon values const MANIFEST_ICON_MEMBERS = { icons: [ { key: { sizes: "1x1", contentType: "image/png" }, value: { src: "something.png", purpose: "any" }, type: "icon", }, { key: { sizes: "", contentType: "" }, value: { src: "something.svg", purpose: "any maskable" }, type: "icon", }, ], identity: [], presentation: [], validation: [], }; // props for a manifest with values that have an unrecognized type const MANIFEST_UNKNOWN_TYPE_MEMBERS = { icons: [], identity: [{ key: "lorem", value: "ipsum", type: "foo" }], presentation: [], validation: [], }; // props for a manifest with url values const MANIFEST_URL_MEMBERS = { icons: [], identity: [], presentation: [ { key: "start_url", value: "https://example.com/", type: "url" }, { key: "scope", value: "https://example.com/", type: "url" }, ], }; const MANIFEST_WITH_ISSUES = { icons: [], identity: [{ key: "name", value: "foo", type: "string" }], presentation: [ { key: "lorem", value: "ipsum", type: "string" }, { key: "foo", value: "bar", type: "string" }, ], validation: [{ level: "warning", message: "This is a warning" }], }; // props for a manifest with no validation issues const MANIFEST_NO_ISSUES = { icons: [], identity: [{ key: "name", value: "foo", type: "string" }], presentation: [ { key: "lorem", value: "ipsum", type: "string" }, { key: "foo", value: "bar", type: "string" }, ], validation: [], }; module.exports = { // service worker related fixtures EMPTY_WORKER_LIST, MULTIPLE_WORKER_LIST, MULTIPLE_WORKER_MIXED_DOMAINS_LIST, REGISTRATION_MULTIPLE_WORKERS, REGISTRATION_SINGLE_WORKER, SINGLE_WORKER_DEFAULT_DOMAIN_LIST, SINGLE_WORKER_DIFFERENT_DOMAIN_LIST, WORKER_RUNNING, WORKER_STOPPED, WORKER_WAITING, // manifest related fixtures MANIFEST_NO_ISSUES, MANIFEST_WITH_ISSUES, MANIFEST_SIMPLE, MANIFEST_COLOR_MEMBERS, MANIFEST_ICON_MEMBERS, MANIFEST_STRING_MEMBERS, MANIFEST_UNKNOWN_TYPE_MEMBERS, MANIFEST_URL_MEMBERS, };