Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  test_menuchecks.xhtml   Sprache: unbekannt

 
<?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.17 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge