summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_page_style_menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_page_style_menu.js')
-rw-r--r--browser/base/content/test/general/browser_page_style_menu.js97
1 files changed, 0 insertions, 97 deletions
diff --git a/browser/base/content/test/general/browser_page_style_menu.js b/browser/base/content/test/general/browser_page_style_menu.js
deleted file mode 100644
index cb080d52a..000000000
--- a/browser/base/content/test/general/browser_page_style_menu.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-
-/**
- * Stylesheets are updated for a browser after the pageshow event.
- * This helper function returns a Promise that waits for that pageshow
- * event, and then resolves on the next tick to ensure that gPageStyleMenu
- * has had a chance to update the stylesheets.
- *
- * @param browser
- * The <xul:browser> to wait for.
- * @return Promise
- */
-function promiseStylesheetsUpdated(browser) {
- return ContentTask.spawn(browser, { PAGE }, function*(args) {
- return new Promise((resolve) => {
- addEventListener("pageshow", function onPageShow(e) {
- if (e.target.location == args.PAGE) {
- removeEventListener("pageshow", onPageShow);
- content.setTimeout(resolve, 0);
- }
- });
- })
- });
-}
-
-const PAGE = "http://example.com/browser/browser/base/content/test/general/page_style_sample.html";
-
-/*
- * Test that the right stylesheets do (and others don't) show up
- * in the page style menu.
- */
-add_task(function*() {
- let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank", false);
- let browser = tab.linkedBrowser;
- yield BrowserTestUtils.loadURI(browser, PAGE);
- yield promiseStylesheetsUpdated(browser);
-
- let menupopup = document.getElementById("pageStyleMenu").menupopup;
- gPageStyleMenu.fillPopup(menupopup);
-
- var items = [];
- var current = menupopup.getElementsByTagName("menuseparator")[0];
- while (current.nextSibling) {
- current = current.nextSibling;
- items.push(current);
- }
-
- items = items.map(el => ({
- label: el.getAttribute("label"),
- checked: el.getAttribute("checked") == "true",
- }));
-
- let validLinks = yield ContentTask.spawn(gBrowser.selectedBrowser, items, function(contentItems) {
- let contentValidLinks = 0;
- Array.forEach(content.document.querySelectorAll("link, style"), function (el) {
- var title = el.getAttribute("title");
- var rel = el.getAttribute("rel");
- var media = el.getAttribute("media");
- var idstring = el.nodeName + " " + (title ? title : "without title and") +
- " with rel=\"" + rel + "\"" +
- (media ? " and media=\"" + media + "\"" : "");
-
- var item = contentItems.filter(aItem => aItem.label == title);
- var found = item.length == 1;
- var checked = found && item[0].checked;
-
- switch (el.getAttribute("data-state")) {
- case "0":
- ok(!found, idstring + " should not show up in page style menu");
- break;
- case "0-todo":
- contentValidLinks++;
- todo(!found, idstring + " should not show up in page style menu");
- ok(!checked, idstring + " should not be selected");
- break;
- case "1":
- contentValidLinks++;
- ok(found, idstring + " should show up in page style menu");
- ok(!checked, idstring + " should not be selected");
- break;
- case "2":
- contentValidLinks++;
- ok(found, idstring + " should show up in page style menu");
- ok(checked, idstring + " should be selected");
- break;
- default:
- throw "data-state attribute is missing or has invalid value";
- }
- });
- return contentValidLinks;
- });
-
- ok(items.length, "At least one item in the menu");
- is(items.length, validLinks, "all valid links found");
-
- yield BrowserTestUtils.removeTab(tab);
-});