/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test the ResourceCommand API for imported STYLESHEET + iframe.
const styleSheetText = `
@import "${URL_ROOT_ORG_SSL}/style_document.css";
body { background-color: tomato; }`;
const IFRAME_URL = `https://example.org/document-builder.sjs?html=${encodeURIComponent(`
iframe
`)}`;
const TEST_URL = `https://example.org/document-builder.sjs?html=
import stylesheet test
`;
add_task(async function () {
info("Check resource available feature of the ResourceCommand");
const tab = await addTab(TEST_URL);
const { client, resourceCommand, targetCommand } = await initResourceCommand(
tab
);
info("Check whether ResourceCommand gets existing stylesheet");
const availableResources = [];
await resourceCommand.watchResources([resourceCommand.TYPES.STYLESHEET], {
onAvailable: resources => availableResources.push(...resources),
});
await waitFor(() => availableResources.length === 2);
ok(true, "We're getting the expected stylesheets");
const styleNodeStyleSheet = availableResources.find(
resource => resource.nodeHref
);
const importedStyleSheet = availableResources.find(
resource => resource !== styleNodeStyleSheet
);
is(
await getStyleSheetText(styleNodeStyleSheet),
styleSheetText.trim(),
"Got expected text for the