mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 1393621: Part 2 - Add test for API modules loaded at startup. r=zombie
MozReview-Commit-ID: 6gyDqsaImmX --HG-- extra : rebase_source : 17a7a3c83ab0939371baf98b484b092e1681b34a
This commit is contained in:
parent
78609e834d
commit
a15a2a5be1
@ -10,22 +10,17 @@ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Components.utils.import("resource://gre/modules/Timer.jsm");
|
||||
Components.utils.import("resource://testing-common/AddonTestUtils.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "ContentTask",
|
||||
"resource://testing-common/ContentTask.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Extension",
|
||||
"resource://gre/modules/Extension.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionData",
|
||||
"resource://gre/modules/Extension.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "ExtensionTestUtils",
|
||||
"resource://testing-common/ExtensionXPCShellUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
|
||||
"resource://gre/modules/FileUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "HttpServer",
|
||||
"resource://testing-common/httpd.js");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
|
||||
"resource://gre/modules/NetUtil.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Schemas",
|
||||
"resource://gre/modules/Schemas.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||
ContentTask: "resource://testing-common/ContentTask.jsm",
|
||||
Extension: "resource://gre/modules/Extension.jsm",
|
||||
ExtensionData: "resource://gre/modules/Extension.jsm",
|
||||
ExtensionParent: "resource://gre/modules/ExtensionParent.jsm",
|
||||
ExtensionTestUtils: "resource://testing-common/ExtensionXPCShellUtils.jsm",
|
||||
FileUtils: "resource://gre/modules/FileUtils.jsm",
|
||||
HttpServer: "resource://testing-common/httpd.js",
|
||||
NetUtil: "resource://gre/modules/NetUtil.jsm",
|
||||
Schemas: "resource://gre/modules/Schemas.jsm",
|
||||
});
|
||||
|
||||
Services.prefs.setBoolPref("extensions.webextensions.remote", false);
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
const STARTUP_APIS = [
|
||||
"backgroundPage",
|
||||
];
|
||||
|
||||
// Tests that only the minimal set of API scripts are loaded at startup
|
||||
// for a simple extension.
|
||||
add_task(async function test_loaded_api_scripts() {
|
||||
await ExtensionTestUtils.startAddonManager();
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
useAddonManager: "temporary",
|
||||
background() {},
|
||||
manifest: {},
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
|
||||
const {apiManager} = ExtensionParent;
|
||||
|
||||
const loadedAPIs = Array.from(apiManager.modules.values())
|
||||
.filter(m => m.loaded || m.asyncLoaded)
|
||||
.map(m => m.namespaceName);
|
||||
|
||||
deepEqual(loadedAPIs.sort(), STARTUP_APIS,
|
||||
"No extra APIs should be loaded at startup for a simple extension");
|
||||
|
||||
await extension.unload();
|
||||
});
|
@ -58,6 +58,7 @@ skip-if = true # This test no longer tests what it is meant to test.
|
||||
[test_ext_simple.js]
|
||||
[test_ext_startup_cache.js]
|
||||
skip-if = os == "android"
|
||||
[test_ext_startup_perf.js]
|
||||
[test_ext_storage.js]
|
||||
[test_ext_storage_sync.js]
|
||||
head = head.js head_sync.js
|
||||
|
Loading…
Reference in New Issue
Block a user