tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_list_style.html (4651B)


      1 <html>
      2 
      3 <head>
      4  <title>Test hide/show events for HTMLListBulletAccessibles on list restyle</title>
      5  <link rel="stylesheet" type="text/css"
      6        href="chrome://mochikit/content/tests/SimpleTest/test.css" />
      7 
      8  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      9 
     10  <script type="application/javascript"
     11          src="../common.js"></script>
     12  <script type="application/javascript"
     13          src="../name.js"></script>
     14  <script type="application/javascript"
     15          src="../role.js"></script>
     16  <script type="application/javascript"
     17          src="../promisified-events.js"></script>
     18 
     19  <script type="application/javascript">
     20    /**
     21     * Change list style type to none.
     22     */
     23    async function hideBullet() {
     24      info("Hide bullet by setting style to none");
     25 
     26      let liAcc = getAccessible("list_element");
     27      let bullet = liAcc.firstChild;
     28 
     29      let events = waitForEvents([
     30        [EVENT_HIDE, bullet],
     31        [EVENT_REORDER, liAcc]
     32      ]);
     33 
     34      getNode("list").style.setProperty("list-style-type", "none");
     35 
     36      await events;
     37 
     38      is(liAcc.name, "list element",
     39          "Check that first child of LI is not a bullet.");
     40 
     41      dumpTree("list");
     42    }
     43 
     44    /**
     45     * Change list style type to circles.
     46     */
     47    async function showBullet() {
     48      info("Show bullet by setting style to circle");
     49      let liAcc = getAccessible("list_element");
     50 
     51      let events = waitForEvents([
     52        [EVENT_SHOW, evt => evt.accessible.parent == liAcc],
     53        [EVENT_REORDER, liAcc]
     54      ]);
     55 
     56      getNode("list").style.setProperty("list-style-type", "circle");
     57 
     58      await events;
     59 
     60      is(liAcc.name, "◦ list element",
     61          "Check that first child of LI is a circle bullet.");
     62 
     63      dumpTree("list");
     64    }
     65 
     66    /**
     67     * Change list style position.
     68     */
     69     async function changeBulletPosition() {
     70      info("Change list style position");
     71      let liAcc = getAccessible("list_element");
     72 
     73      let events = waitForEvents([
     74        [EVENT_HIDE, evt => evt.accessible.role == ROLE_LISTITEM_MARKER],
     75        [EVENT_SHOW, evt => evt.accessible.role == ROLE_LISTITEM_MARKER],
     76        [EVENT_REORDER, liAcc]
     77      ]);
     78 
     79      getNode("list").style.setProperty("list-style-position", "inside");
     80 
     81      await events;
     82 
     83      is(liAcc.name, "◦ list element",
     84          "Check that first child of LI is a circle bullet.");
     85    }
     86 
     87    async function changeBulletPositionAndType() {
     88      let events = waitForEvents([
     89        [EVENT_HIDE, evt => evt.accessible.role == ROLE_LISTITEM_MARKER],
     90        [EVENT_REORDER, evt => evt.accessible.role == ROLE_LISTITEM]
     91      ]);
     92 
     93      let list = getNode("inside-marker-list");
     94 
     95      // Bug 1513447 - This changes the list type to "none" and the
     96      // position implicitly to "outside".
     97      list.style.setProperty("list-style", "none");
     98      list.offsetLeft
     99      list.style.setProperty("list-style-type", "telugu");
    100 
    101      await events;
    102    }
    103 
    104    async function doTest() {
    105 
    106      testAccessibleTree("list", { LIST: [ // ol
    107        { LISTITEM: [ // li
    108          { LISTITEM_MARKER: [ ] },
    109          { TEXT_LEAF: [] },
    110          ] },
    111      ] } );
    112 
    113      await hideBullet();
    114 
    115      testAccessibleTree("list", { LIST: [ // ol
    116        { LISTITEM: [ // li
    117          { TEXT_LEAF: [] },
    118          ] },
    119      ] } );
    120 
    121      await showBullet();
    122 
    123      testAccessibleTree("list", { LIST: [ // ol
    124        { LISTITEM: [ // li
    125          { LISTITEM_MARKER: [ ] },
    126          { TEXT_LEAF: [] },
    127          ] },
    128      ] } );
    129 
    130      await changeBulletPosition();
    131 
    132      testAccessibleTree("list", { LIST: [ // ol
    133        { LISTITEM: [ // li
    134          { LISTITEM_MARKER: [ ] },
    135          { TEXT_LEAF: [] },
    136          ] },
    137      ] } );
    138 
    139      testAccessibleTree("unmarked-list", { LIST: [ // ol
    140        { LISTITEM: [ // li
    141          { TEXT_LEAF: [] },
    142          ] },
    143      ] } );
    144 
    145      await changeBulletPositionAndType();
    146 
    147      SimpleTest.finish();
    148    }
    149 
    150    SimpleTest.waitForExplicitFinish();
    151    addA11yLoadEvent(doTest);
    152  </script>
    153 
    154 </head>
    155 
    156 <body>
    157 
    158  <a target="_blank"
    159     href="https://bugzilla.mozilla.org/show_bug.cgi?id=1100602"
    160     title="[e10s] crash in mozilla::a11y::ProxyAccessible::Shutdown()">
    161    Mozilla Bug 1100602
    162  </a>
    163  <p id="display"></p>
    164  <div id="content" style="display: none"></div>
    165  <pre id="test">
    166  </pre>
    167 
    168  <ol id="list" style="list-style-type: circle;">
    169    <li id="list_element">list element</li>
    170  </ol>
    171 
    172  <ol id="unmarked-list" style="list-style: none;">
    173    <li>list element</li>
    174  </ol>
    175 
    176  <ol id="inside-marker-list" style="list-style-position: inside;">
    177    <li>list element</li>
    178  </ol>
    179 
    180 </body>
    181 </html>