tor-browser

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

test_words.html (4681B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4  <title>nsIAccessibleText getText related function tests for html:input,html:div and html:textarea</title>
      5  <meta charset="utf-8" />
      6  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
      7 
      8  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
      9  <script type="application/javascript"
     10          src="../common.js"></script>
     11  <script type="application/javascript"
     12          src="../text.js"></script>
     13  <script type="application/javascript">
     14    if (navigator.platform.startsWith("Mac")) {
     15      SimpleTest.expectAssertions(0, 1);
     16    } else {
     17      SimpleTest.expectAssertions(0, 1);
     18    }
     19 
     20    async function doTest() {
     21      test_common();
     22      for (let newSegmenter of [true, false]) {
     23        for (let stopAtPunctuation of [true, false]) {
     24          await test_per_segmenter(newSegmenter, stopAtPunctuation);
     25 }
     26      }
     27      SimpleTest.finish();
     28    }
     29 
     30    function test_common() {
     31      // "one two"
     32      testWords("div1", ["one", "two"]);
     33 
     34      // "one  two"
     35      testWords("div2", ["one", "two"]);
     36 
     37      // "one,two"
     38      testWordCount("div3", 2, kOk);
     39      testWordAt("div3", 0, "one", kTodo);
     40      testWordAt("div3", 1, "two", kOk);
     41 
     42      // "one, two"
     43      testWordCount("div4", 2, kOk);
     44      testWordAt("div4", 0, "one", kTodo);
     45      testWordAt("div4", 1, "two", kOk);
     46 
     47      // "one+two"
     48      testWordCount("div5", 2, kOk);
     49      testWordAt("div5", 0, "one", kTodo);
     50      testWordAt("div5", 1, "two", kOk);
     51 
     52      // "one+two   "
     53      testWordCount("div6", 2, kOk);
     54      testWordAt("div6", 0, "one", kTodo);
     55      testWordAt("div6", 1, "two", kOk);
     56 
     57      // "one\ntwo"
     58      testWordCount("div7", 2, kOk);
     59      testWordAt("div7", 0, "one", kOk);
     60      testWordAt("div7", 1, "two", kTodo);
     61 
     62      // "345"
     63      testWords("div9", ["345"]);
     64 
     65      // "3a A4"
     66      testWords("div10", ["3a", "A4"]);
     67 
     68      // "カタカナ"
     69      testWords("div13", ["カタカナ"], kOk);
     70 
     71      // "3+4*5=23"
     72      testWordCount("div16", 4, kOk);
     73      testWordAt("div16", 0, "3", kTodo);
     74      testWordAt("div16", 1, "4", kTodo);
     75      testWordAt("div16", 2, "5", kTodo);
     76      testWordAt("div16", 3, "23", kTodo);
     77 
     78      // "Hello. Friend, are you here?!"
     79      testWordCount("div17", 5, kOk);
     80      testWordAt("div17", 0, "Hello", kTodo);
     81      testWordAt("div17", 1, "Friend", kTodo);
     82      testWordAt("div17", 2, "are", kOk);
     83      testWordAt("div17", 3, "you", kOk);
     84      testWordAt("div17", 4, "here", kTodo);
     85 
     86      testWords("input_1", ["foo", "bar"]);
     87    }
     88 
     89    async function test_per_segmenter(aNewSegmenter, aStopAtPunctuation) {
     90      // If aNewSegmenter is true, use UAX#14/#29 compatible segmenter.
     91      await SpecialPowers.pushPrefEnv({"set": [
     92        ["intl.icu4x.segmenter.enabled", aNewSegmenter],
     93        ["layout.word_select.stop_at_punctuation", aStopAtPunctuation],
     94      ]});
     95 
     96      // "one.two"
     97      if (!aStopAtPunctuation) {
     98        testWordCount("div8", 1, kOk);
     99        testWordAt("div8", 0, "one.two", kOk);
    100      } else {
    101        testWordCount("div8", 2, kOk);
    102        testWordAt("div8", 0, "one", kTodo);
    103        testWordAt("div8", 1, "two", kOk);
    104      }
    105 
    106      // "3.1416"
    107      testWords("div11", ["3.1416"], !aStopAtPunctuation ? kOk : kTodo);
    108 
    109      // "4,261.01"
    110      testWords("div12", ["4,261.01"], !aStopAtPunctuation ? kOk: kTodo);
    111 
    112      // "Peter's car"
    113      testWords("div14", ["Peter's", "car"], !aStopAtPunctuation ? kOk : kTodo);
    114 
    115      // "N.A.T.O."
    116      testWords("div15", ["N.A.T.O."], !aStopAtPunctuation ? kOk : kTodo);
    117 
    118      await SpecialPowers.popPrefEnv();
    119    }
    120 
    121    SimpleTest.waitForExplicitFinish();
    122    addA11yLoadEvent(doTest);
    123  </script>
    124 </head>
    125 <body>
    126 
    127  <a target="_blank"
    128     title="nsIAccessibleText test word boundaries"
    129     href="https://bugzilla.mozilla.org/show_bug.cgi?id=452769">Mozilla Bug 452769</a>
    130  <p id="display"></p>
    131  <div id="content" style="display: none"></div>
    132  <pre id="test">
    133  <div id="div1">one two</div>
    134  <div id="div2">one  two</div>
    135  <div id="div3">one,two</div>
    136  <div id="div4">one, two</div>
    137  <div id="div5">one+two</div>
    138  <div id="div6">one+two   </div>
    139  <div id="div7">one<br/>two</div>
    140  <div id="div8">one.two</div>
    141  <div id="div9">345</div>
    142  <div id="div10">3a A4</div>
    143  <div id="div11">3.1416</div>
    144  <div id="div12">4,261.01</div>
    145  <div id="div13">カタカナ</div>
    146  <div id="div14">Peter's car</div>
    147  <div id="div15">N.A.T.O.</div>
    148  <div id="div16">3+4*5=23</div>
    149  <div id="div17">Hello. Friend, are you here?!</div>
    150  </pre>
    151  <input id="input_1" type="text" value="foo bar" placeholder="something or other">
    152 
    153 </body>
    154 </html>