mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-05 05:30:29 +00:00
Test for bug 725016 - extensions which add categories in their chrome.manifest expect that they contract they refer to will be available when the category observer notification is fired.
--HG-- extra : rebase_source : d5ee7c20f54a1d3a7b14051bdf0ba309fc6aee17
This commit is contained in:
parent
2a64ef934f
commit
b012d47bed
3
xpcom/tests/unit/bug725015.manifest
Normal file
3
xpcom/tests/unit/bug725015.manifest
Normal file
@ -0,0 +1,3 @@
|
||||
category bug725015-test-category bug725015-category-entry @bug725015.test.contract
|
||||
component {05070380-6e6e-42ba-aaa5-3289fc55ca5a} dummyfile.js
|
||||
contract @bug725015.test.contract {05070380-6e6e-42ba-aaa5-3289fc55ca5a}
|
39
xpcom/tests/unit/test_bug725015.js
Normal file
39
xpcom/tests/unit/test_bug725015.js
Normal file
@ -0,0 +1,39 @@
|
||||
/* 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/. */
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
const manifest = do_get_file('bug725015.manifest');
|
||||
const contract = "@bug725015.test.contract";
|
||||
const observerTopic = "xpcom-category-entry-added";
|
||||
const category = "bug725015-test-category";
|
||||
const entry = "bug725015-category-entry";
|
||||
const cid = Components.ID("{05070380-6e6e-42ba-aaa5-3289fc55ca5a}");
|
||||
|
||||
function observe_category(subj, topic, data) {
|
||||
try {
|
||||
do_check_eq(topic, observerTopic);
|
||||
if (data != category)
|
||||
return;
|
||||
|
||||
var thisentry = subj.QueryInterface(Ci.nsISupportsCString).data;
|
||||
do_check_eq(thisentry, entry);
|
||||
|
||||
do_check_eq(Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager).getCategoryEntry(category, entry), contract);
|
||||
do_check_true(Cc[contract].equals(cid));
|
||||
}
|
||||
catch (e) {
|
||||
do_throw(e);
|
||||
}
|
||||
do_test_finished();
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
do_test_pending();
|
||||
Services.obs.addObserver(observe_category, observerTopic, false);
|
||||
Components.manager.QueryInterface(Ci.nsIComponentRegistrar).autoRegister(manifest);
|
||||
}
|
@ -15,6 +15,7 @@ fail-if = os == "android"
|
||||
fail-if = os == "android"
|
||||
[test_bug478086.js]
|
||||
[test_bug656331.js]
|
||||
[test_bug725015.js]
|
||||
[test_compmgr_warnings.js]
|
||||
[test_file_createUnique.js]
|
||||
[test_file_equality.js]
|
||||
|
Loading…
x
Reference in New Issue
Block a user