gecko-dev/layout/style/test/browser_newtab_share_rule_p...

44 строки
1.7 KiB
JavaScript
Исходник Обычный вид История

var theTab;
var theBrowser;
function listener(evt) {
if (evt.target == theBrowser.contentDocument) {
doTest();
}
}
function test() {
waitForExplicitFinish();
var testURL = getRootDirectory(gTestPath) + "newtab_share_rule_processors.html";
theTab = BrowserTestUtils.addTab(gBrowser, testURL);
theBrowser = gBrowser.getBrowserForTab(theTab);
theBrowser.addEventListener("load", listener, true);
}
function doTest() {
theBrowser.removeEventListener("load", listener, true);
var winUtils = theBrowser.contentWindow
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindowUtils);
if (winUtils.isStyledByServo) {
todo(false, "should update this test to check that Servo is also " +
"correctly sharing CascadeData");
} else {
// The initial set of agent-level sheets should have a rule processor that's
// also being used by another document.
ok(winUtils.hasRuleProcessorUsedByMultipleStyleSets(Ci.nsIStyleSheetService.AGENT_SHEET),
"agent sheet rule processor is used by multiple style sets");
// Document-level sheets currently never get shared rule processors.
ok(!winUtils.hasRuleProcessorUsedByMultipleStyleSets(Ci.nsIStyleSheetService.AUTHOR_SHEET),
"author sheet rule processor is not used by multiple style sets");
// Adding a unique style sheet to the agent level will cause it to have a
// rule processor that is unique.
theBrowser.contentWindow.wrappedJSObject.addAgentSheet();
ok(!winUtils.hasRuleProcessorUsedByMultipleStyleSets(Ci.nsIStyleSheetService.AGENT_SHEET),
"agent sheet rule processor is not used by multiple style sets after " +
"having a unique sheet added to it");
}
gBrowser.removeTab(theTab);
finish();
}