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

Quelle  test_menuchecks.xhtml   Sprache: HTML

 
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>

<window title="Menu Checkbox and Radio Tests"
  onload="runTest()"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>      

  <hbox>
    <button id="menu" type="menu" label="View">
      <menupopup id="popup" onpopupshown="popupShown()" onpopuphidden="popupHidden()">
        <menuitem id="toolbar" label="Show Toolbar" type="checkbox"/>
        <menuitem id="statusbar" label="Show Status Bar" type="checkbox" checked="true"/>
        <menuitem id="bookmarks" label="Show Bookmarks" type="checkbox" autocheck="false"/>
        <menuitem id="history" label="Show History" type="checkbox" autocheck="false" checked="true"/>
        <menuseparator/>
        <menuitem id="byname" label="By Name" type="radio" name="sort"/>
        <menuitem id="bydate" label="By Date" type="radio" name="sort" checked="true"/>
        <menuseparator/>
        <menuitem id="ascending" label="Ascending" type="radio" name="order" checked="true"/>
        <menuitem id="descending" label="Descending" type="radio" name="order" autocheck="false"/>
        <menuitem id="bysubject" label="By Subject" type="radio" name="sort"/>
      </menupopup>
    </button>

  </hbox>

  <!--
  This test checks that checkbox and radio menu items work properly
  -->
  <script class="testbody" type="application/javascript">
  <![CDATA[

  SimpleTest.waitForExplicitFinish();
  var gTestIndex = 0;

  // tests to perform
  var tests = [
    {
      testname: "select unchecked checkbox",
      item: "toolbar",
      checked: ["toolbar", "statusbar", "history", "bydate", "ascending"]
    },
    {
      testname: "select checked checkbox",
      item: "statusbar",
      checked: ["toolbar", "history", "bydate", "ascending"]
    },
    {
      testname: "select unchecked autocheck checkbox",
      item: "bookmarks",
      checked: ["toolbar", "history", "bydate", "ascending"]
    },
    {
      testname: "select checked autocheck checkbox",
      item: "history",
      checked: ["toolbar", "history", "bydate", "ascending"]
    },
    {
      testname: "select unchecked radio",
      item: "byname",
      checked: ["toolbar", "history", "byname", "ascending"]
    },
    {
      testname: "select checked radio",
      item: "byname",
      checked: ["toolbar", "history", "byname", "ascending"]
    },
    {
      testname: "select out of order checked radio",
      item: "bysubject",
      scroll: true,
      checked: ["toolbar", "history", "bysubject", "ascending"]
    },
    {
      testname: "select first radio again",
      item: "byname",
      checked: ["toolbar", "history", "byname", "ascending"]
    },
    {
      testname: "select autocheck radio",
      item: "descending",
      checked: ["toolbar", "history", "byname", "ascending"]
    }
  ];

  function runTest()
  {
    checkMenus(["statusbar", "history", "bydate", "ascending"], "initial");
    document.getElementById("menu").open = true;
  }

  function checkMenus(checkedItems, testname)
  {
    var isok = true;
    var children = document.getElementById("popup").childNodes;
    for (var c = 0; c < children.length; c++) {
      var child = children[c];
      if ((checkedItems.includes(child.id) && child.getAttribute("checked") != "true") ||
          (!checkedItems.includes(child.id) && child.hasAttribute("checked"))) {
        isok = false;
        break;
      }
    }

    ok(isok, testname);
  }

  function popupShown()
  {
    var test = tests[gTestIndex];

    if (test.scroll) {
      // On Windows 10, the menu is larger than the test frame. Scroll the later
      // items into view. Since we are just testing the checked state of the items,
      // and not their positions, this doesn't affect the behaviour of the test.
      document.getElementById(test.item).scrollIntoView({ block: 'nearest' });
    }
    synthesizeMouse(document.getElementById(test.item), 4, 4, { });
  }

  function popupHidden()
  {
    if (gTestIndex < tests.length) {
      var test = tests[gTestIndex];
      checkMenus(test.checked, test.testname);
      gTestIndex++;
      if (gTestIndex < tests.length) {
        document.getElementById("menu").open = true;
      }
      else {
        // manually setting the checkbox should also update the radio state
        document.getElementById("bydate").setAttribute("checked", "true");
        checkMenus(["toolbar", "history", "bydate", "ascending"], "set checked attribute on radio");
        SimpleTest.finish();
      }
    }
  }

  ]]>
  </script>

<body xmlns="http://www.w3.org/1999/xhtml">
<p id="display">
</p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>

</window>

¤ Dauer der Verarbeitung: 0.15 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 und die Messung sind noch experimentell.