diff --git a/web-extensions/resources/runtime/background.js b/web-extensions/resources/runtime/background.js index 0426ed8f3de27d..01fcd44f3e38b1 100644 --- a/web-extensions/resources/runtime/background.js +++ b/web-extensions/resources/runtime/background.js @@ -1,30 +1,41 @@ browser.test.runTests([ - function browserRuntimeGetURLErrorCases() { - browser.test.assertThrows(() => browser.runtime.getURL()) - browser.test.assertThrows(() => browser.runtime.getURL(null)) - browser.test.assertThrows(() => browser.runtime.getURL(undefined)) - browser.test.assertThrows(() => browser.runtime.getURL(42)) - browser.test.assertThrows(() => browser.runtime.getURL(/test/)) - }, - function browserRuntimeGetURLNormalCases() { - browser.test.assertEq(typeof browser.runtime.getURL(""), "string") - browser.test.assertEq(new URL(browser.runtime.getURL("")).pathname, "/") - browser.test.assertEq(new URL(browser.runtime.getURL("test.js")).pathname, "/test.js") - browser.test.assertEq(new URL(browser.runtime.getURL("/test.js")).pathname, "/test.js") - browser.test.assertEq(new URL(browser.runtime.getURL("../../test.js")).pathname, "/test.js") - browser.test.assertEq(new URL(browser.runtime.getURL("./test.js")).pathname, "/test.js") - browser.test.assertEq(new URL(browser.runtime.getURL("././/example")).pathname, "//example") - browser.test.assertEq(new URL(browser.runtime.getURL("../../example/..//test/")).pathname, "//test/") - browser.test.assertEq(new URL(browser.runtime.getURL(".")).pathname, "/") - browser.test.assertEq(new URL(browser.runtime.getURL("..//../")).pathname, "/") - browser.test.assertEq(new URL(browser.runtime.getURL(".././..")).pathname, "/") - browser.test.assertEq(new URL(browser.runtime.getURL("/.././.")).pathname, "/") - }, - async function browserRuntimeGetPlatformInfo() { - const platformInfo = await browser.runtime.getPlatformInfo() + function browserRuntimeGetURLErrorCases() { + browser.test.assertThrows(() => browser.runtime.getURL()); + browser.test.assertThrows(() => browser.runtime.getURL(null)); + browser.test.assertThrows(() => browser.runtime.getURL(undefined)); + browser.test.assertThrows(() => browser.runtime.getURL(42)); + browser.test.assertThrows(() => browser.runtime.getURL(/test/)); + }, + function browserRuntimeGetURLNormalCases() { + browser.test.assertEq(typeof browser.runtime.getURL(""), "string"); + browser.test.assertEq(new URL(browser.runtime.getURL("")).pathname, "/"); + browser.test.assertEq(new URL(browser.runtime.getURL("test.js")).pathname, "/test.js"); + browser.test.assertEq(new URL(browser.runtime.getURL("/test.js")).pathname, "/test.js"); + browser.test.assertEq(new URL(browser.runtime.getURL("../../test.js")).pathname, "/test.js"); + browser.test.assertEq(new URL(browser.runtime.getURL("./test.js")).pathname, "/test.js"); + browser.test.assertEq(new URL(browser.runtime.getURL("././/example")).pathname, "//example"); + browser.test.assertEq(new URL(browser.runtime.getURL("../../example/..//test/")).pathname, "//test/"); + browser.test.assertEq(new URL(browser.runtime.getURL(".")).pathname, "/"); + browser.test.assertEq(new URL(browser.runtime.getURL("..//../")).pathname, "/"); + browser.test.assertEq(new URL(browser.runtime.getURL(".././..")).pathname, "/"); + browser.test.assertEq(new URL(browser.runtime.getURL("/.././.")).pathname, "/"); + }, + async function browserRuntimeGetPlatformInfo() { + const platformInfo = await browser.runtime.getPlatformInfo(); - browser.test.assertEq(typeof platformInfo, "object") - browser.test.assertEq(typeof platformInfo.os, "string") - browser.test.assertEq(typeof platformInfo.arch, "string") + browser.test.assertEq(typeof platformInfo, "object"); + browser.test.assertEq(typeof platformInfo.os, "string"); + browser.test.assertEq(typeof platformInfo.arch, "string"); + }, + async function browserRuntimeGetVersion() { + const version = browser.runtime.getVersion(); + browser.test.assertEq(typeof version, "string"); + // Implementations are free on how they interpret the version number. + // However, they need to be consistent in APIs (like the management API). + browser.test.assertTrue(version === "1.01" || version === "1.1"); + if (browser.management && browser.management.getSelf) { + const extensionInfo = await browser.management.getSelf(); + browser.test.assertEq(version, extensionInfo.version); } -]) + } +]); diff --git a/web-extensions/resources/runtime/manifest.json b/web-extensions/resources/runtime/manifest.json index 1bd0f0fcbb3d01..42b82c5b402a79 100644 --- a/web-extensions/resources/runtime/manifest.json +++ b/web-extensions/resources/runtime/manifest.json @@ -2,10 +2,13 @@ "manifest_version": 3, "name": "BrowserRuntimeTestExtension", "description": "browser.runtime test extension", - "version": "1.0", + "version": "1.01", "background": { "scripts": [ "background.js" ], "service_worker": "background.js", "type": "module" - } + }, + "permissions": [ + "management" + ] }