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:
Kris Maglione 2017-08-31 15:14:33 -07:00
Родитель 78609e834d
Коммит a15a2a5be1
3 изменённых файлов: 44 добавлений и 16 удалений

Просмотреть файл

@ -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