Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/devtools/server/tests/chrome/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 5 kB image not shown  

Quelle  test_styles-applied.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/devtools/server/tests/chrome/test_styles-applied.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=
-->

<head>
  <meta charset="utf-8">
  <title>Test for Bug </title>

  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
  <script type="application/javascript" src="inspector-helpers.js"></script>
  <script type="application/javascript">
"use strict";

const { Assert } = ChromeUtils.importESModule(
  "resource://testing-common/Assert.sys.mjs"
);

window.onload = function() {
  SimpleTest.waitForExplicitFinish();
  runNextTest();
};

let gWalker = null;
let gStyles = null;

addTest(async function setup() {
  const url = document.getElementById("inspectorContent").href;
  const { commands, target } = await attachURL(url);

  // We need an active resource command before initializing the inspector front.
  const resourceCommand = commands.resourceCommand;
  // We listen to any random resource, we only need to trigger the resource command
  // onTargetAvailable callback so the `resourceCommand` attribute is set on the target front.
  await resourceCommand.watchResources([resourceCommand.TYPES.DOCUMENT_EVENT], { onAvailable: () => {} });

  const inspector = await target.getFront("inspector");
  gWalker = inspector.walker;
  gStyles = await inspector.getPageStyle();

  runNextTest();
});

addTest(async function inheritedUserStyles() {
  const node = await gWalker.querySelector(gWalker.rootNode, "#test-node")
  const applied = await gStyles.getApplied(node, { inherited: true, filter: "user" });

  ok(!applied[0].inherited, "Entry 0 should be uninherited");
  is(applied[0].rule.type, 100, "Entry 0 should be an element style");
  ok(!!applied[0].rule.href, "Element styles should have a URL");
  is(applied[0].rule.cssText, """Entry 0 should be an empty style");

  is(applied[1].inherited.id, "uninheritable-rule-inheritable-style",
      "Entry 1 should be inherited from the parent");
  is(applied[1].rule.type, 100, "Entry 1 should be an element style");
  is(applied[1].rule.cssText, "color: red;",
      "Entry 1 should have the expected cssText");

  is(applied[2].inherited.id, "inheritable-rule-inheritable-style",
      "Entry 2 should be inherited from the parent's parent");
  is(applied[2].rule.type, 100, "Entry 2 should be an element style");
  is(applied[2].rule.cssText, "color: blue;",
      "Entry 2 should have the expected cssText");

  is(applied[3].inherited.id, "inheritable-rule-inheritable-style",
      "Entry 3 should be inherited from the parent's parent");
  is(applied[3].rule.type, 1, "Entry 3 should be a rule style");
  is(applied[3].rule.cssText, "font-size: 15px;",
      "Entry 3 should have the expected cssText");
  ok(!applied[3].matchedSelectorIndexes,
      "Shouldn't get matchedSelectorIndexes with this request.");

  is(applied[4].inherited.id, "inheritable-rule-uninheritable-style",
      "Entry 4 should be inherited from the parent's parent");
  is(applied[4].rule.type, 1, "Entry 4 should be an rule style");
  is(applied[4].rule.cssText, "font-size: 15px;",
      "Entry 4 should have the expected cssText");
  ok(!applied[4].matchedSelectorIndexes, "Shouldn't get matchedSelectorIndexes with this request.");

  is(applied.length, 5, "Should have 5 rules.");

  runNextTest();
});

addTest(async function inheritedSystemStyles() {
  const node = await gWalker.querySelector(gWalker.rootNode, "#test-node");
  const applied = await gStyles.getApplied(node, { inherited: true, filter: "ua" });
  // If our system stylesheets are prone to churn, this might be a fragile
  // test.  If you're here because of that I apologize, file a bug
  // and we can find a different way to test.

  ok(!applied[1].inherited, "Entry 1 should not be inherited");
  ok(applied[1].rule.parentStyleSheet.system, "Entry 1 should be a system style");
  is(applied[1].rule.type, 1, "Entry 1 should be a rule style");
  is(applied.length, 8, "Should have the expected number of rules.");

  runNextTest();
});

addTest(async function noInheritedStyles() {
  const node = await gWalker.querySelector(gWalker.rootNode, "#test-node")
  const applied = await gStyles.getApplied(node, { inherited: false, filter: "user" });
  ok(!applied[0].inherited, "Entry 0 should be uninherited");
  is(applied[0].rule.type, 100, "Entry 0 should be an element style");
  is(applied[0].rule.cssText, """Entry 0 should be an empty style");
  is(applied.length, 1, "Should have 1 rule.");

  runNextTest();
});

addTest(async function matchedSelectors() {
  const node = await gWalker.querySelector(gWalker.rootNode, "#test-node");
  const applied = await gStyles.getApplied(node, {
    inherited: true, filter: "user", matchedSelectors: true,
  });
  Assert.deepEqual(applied[3].matchedSelectorIndexes, [0], "Entry 3 should have a matched selector");
  Assert.deepEqual(applied[4].matchedSelectorIndexes, [0], "Entry 4 should have a matched selector");
  runNextTest();
});

addTest(async function testMediaQuery() {
  const node = await gWalker.querySelector(gWalker.rootNode, "#mediaqueried")
  const applied = await gStyles.getApplied(node, {
    inherited: false,
    filter: "user",
    matchedSelectors: true,
  });

  const ruleWithMedia = applied[1].rule;
  is(ruleWithMedia.type, 1, "Entry 1 is a rule style");
  is(ruleWithMedia.ancestorData[0].type, "media""Entry 1's rule ancestor data holds the media rule data...");
  is(ruleWithMedia.ancestorData[0].value, "screen""...with the expected value");

  runNextTest();
});

addTest(function cleanup() {
  gStyles = null;
  gWalker = null;
  runNextTest();
});

  </script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=">Mozilla Bug </a>
<a id="inspectorContent" target="_blank" href="inspector-styles-data.html">Test Document</a>
<p id="display"></p>
<div id="content" style="display: none">

</div>
<pre id="test">
</pre>
</body>
</html>

100%


¤ Dauer der Verarbeitung: 0.36 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.