Bug 1190325 - Test coverage for runtime extension API, r?kmag
Add coverage for:
* The |openOptionsPage| method when |options_ui| is missing from the manifest.
MozReview-Commit-ID: BwVMzDOECl3
--- a/browser/components/extensions/test/browser/browser_ext_runtime_openOptionsPage.js
+++ b/browser/components/extensions/test/browser/browser_ext_runtime_openOptionsPage.js
@@ -221,8 +221,39 @@ add_task(function* test_tab_options() {
},
});
yield extension.awaitFinish("options-ui-tab");
yield extension.unload();
yield BrowserTestUtils.removeTab(tab);
});
+
+add_task(function* test_options_no_manifest() {
+ let extension = yield loadExtension({
+ manifest: {},
+
+ background: function() {
+ browser.test.log("Try to open options page when not specified in the manifest.");
+
+ browser.runtime.openOptionsPage().then(
+ () => {
+ browser.test.fail("Opening options page without one specified in the manifest generated an error");
+ browser.test.notifyFail("options-no-manifest");
+ },
+ error => {
+ let expected = "No `options_ui` declared";
+ browser.test.assertTrue(
+ error.message.includes(expected),
+ `Got expected error (got: '${error.message}', expected: '${expected}'`);
+ }
+ ).then(() => {
+ browser.test.notifyPass("options-no-manifest");
+ }).catch(error => {
+ browser.test.log(`Error: ${error} :: ${error.stack}`);
+ browser.test.notifyFail("options-no-manifest");
+ });
+ },
+ });
+
+ yield extension.awaitFinish("options-no-manifest");
+ yield extension.unload();
+});