tor-browser

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

test_input_list_attribute.html (5914B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=556007
      5 -->
      6 <head>
      7  <title>Test for Bug 556007</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     10 </head>
     11 <body>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=556007">Mozilla Bug 556007</a>
     13 <p id="display"></p>
     14 <div id="content" style="display: none">
     15 </div>
     16 <pre id="test">
     17 <script type="application/javascript">
     18 
     19 /** Test for Bug 556007 */
     20 
     21 function test0() {
     22  var input = document.createElement("input");
     23  ok("list" in input, "list should be an input element IDL attribute");
     24 }
     25 
     26 // Default .list returns null.
     27 function test1(aContent, aInput) {
     28  return null;
     29 }
     30 
     31 // Regular test case.
     32 function test2(aContent, aInput) {
     33  var datalist = document.createElement("datalist");
     34  datalist.id = 'd';
     35 
     36  aContent.appendChild(aInput);
     37  aContent.appendChild(datalist);
     38  aInput.setAttribute('list', 'd');
     39 
     40  return datalist;
     41 }
     42 
     43 // If none of the element is in doc.
     44 function test3(aContent, aInput) {
     45  var datalist = document.createElement("datalist");
     46  datalist.id = 'd';
     47 
     48  aInput.setAttribute('list', 'd');
     49 
     50  return null;
     51 }
     52 
     53 // If one of the element isn't in doc.
     54 function test4(aContent, aInput) {
     55  var datalist = document.createElement("datalist");
     56  datalist.id = 'd';
     57 
     58  aContent.appendChild(aInput);
     59  aInput.setAttribute('list', 'd');
     60 
     61  return null;
     62 }
     63 
     64 // If one of the element isn't in doc.
     65 function test5(aContent, aInput) {
     66  var datalist = document.createElement("datalist");
     67  datalist.id = 'd';
     68 
     69  aContent.appendChild(datalist);
     70  aInput.setAttribute('list', 'd');
     71 
     72  return null;
     73 }
     74 
     75 // If datalist is added before input.
     76 function test6(aContent, aInput) {
     77  var datalist = document.createElement("datalist");
     78  datalist.id = 'd';
     79 
     80  aContent.appendChild(datalist);
     81  aContent.appendChild(aInput);
     82  aInput.setAttribute('list', 'd');
     83 
     84  return datalist;
     85 }
     86 
     87 // If setAttribute is set before datalist and input are in doc.
     88 function test7(aContent, aInput) {
     89  var datalist = document.createElement("datalist");
     90  datalist.id = 'd';
     91 
     92  aInput.setAttribute('list', 'd');
     93 
     94  aContent.appendChild(datalist);
     95  aContent.appendChild(aInput);
     96 
     97  return datalist;
     98 }
     99 
    100 // If setAttribute is set before datalist is in doc.
    101 function test8(aContent, aInput) {
    102  var datalist = document.createElement("datalist");
    103  datalist.id = 'd';
    104 
    105  aContent.appendChild(aInput);
    106  aInput.setAttribute('list', 'd');
    107 
    108  aContent.appendChild(datalist);
    109 
    110  return datalist;
    111 }
    112 
    113 // If setAttribute is set before datalist is created.
    114 function test9(aContent, aInput) {
    115  aContent.appendChild(aInput);
    116  aInput.setAttribute('list', 'd');
    117 
    118  var datalist = document.createElement("datalist");
    119  datalist.id = 'd';
    120  aContent.appendChild(datalist);
    121 
    122  return datalist;
    123 }
    124 
    125 // If another datalist is added _after_ the first one, with the same id.
    126 function test10(aContent, aInput) {
    127  var datalist = document.createElement("datalist");
    128  datalist.id = 'd';
    129  var datalist2 = document.createElement("datalist");
    130  datalist2.id = 'd';
    131 
    132  aInput.setAttribute('list', 'd');
    133  aContent.appendChild(aInput);
    134  aContent.appendChild(datalist);
    135  aContent.appendChild(datalist2);
    136 
    137  return datalist;
    138 }
    139 
    140 // If another datalist is added _before_ the first one with the same id.
    141 function test11(aContent, aInput) {
    142  var datalist = document.createElement("datalist");
    143  datalist.id = 'd';
    144  var datalist2 = document.createElement("datalist");
    145  datalist2.id = 'd';
    146 
    147  aInput.setAttribute('list', 'd');
    148  aContent.appendChild(aInput);
    149  aContent.appendChild(datalist);
    150  aContent.insertBefore(datalist2, datalist);
    151 
    152  return datalist2;
    153 }
    154 
    155 // If datalist changes it's id.
    156 function test12(aContent, aInput) {
    157  var datalist = document.createElement("datalist");
    158  datalist.id = 'd';
    159 
    160  aInput.setAttribute('list', 'd');
    161  aContent.appendChild(aInput);
    162  aContent.appendChild(datalist);
    163 
    164  datalist.id = 'foo';
    165 
    166  return null;
    167 }
    168 
    169 // If datalist is removed.
    170 function test13(aContent, aInput) {
    171  var datalist = document.createElement("datalist");
    172  datalist.id = 'd';
    173 
    174  aInput.setAttribute('list', 'd');
    175  aContent.appendChild(aInput);
    176  aContent.appendChild(datalist);
    177  aContent.removeChild(datalist);
    178 
    179  return null;
    180 }
    181 
    182 // If id contain spaces.
    183 function test14(aContent, aInput) {
    184  var datalist = document.createElement("datalist");
    185  datalist.id = 'a b c d';
    186 
    187  aInput.setAttribute('list', 'a b c d');
    188  aContent.appendChild(aInput);
    189  aContent.appendChild(datalist);
    190 
    191  return datalist;
    192 }
    193 
    194 // If id is the empty string.
    195 function test15(aContent, aInput) {
    196  var datalist = document.createElement("datalist");
    197  datalist.id = '';
    198 
    199  aInput.setAttribute('list', '');
    200  aContent.appendChild(aInput);
    201  aContent.appendChild(datalist);
    202 
    203  return null;
    204 }
    205 
    206 // If the id doesn't point to a datalist.
    207 function test16(aContent, aInput) {
    208  var input = document.createElement("input");
    209  input.id = 'd';
    210 
    211  aInput.setAttribute('list', 'd');
    212  aContent.appendChild(aInput);
    213  aContent.appendChild(input);
    214 
    215  return null;
    216 }
    217 
    218 // If the first element with the id isn't a datalist.
    219 function test17(aContent, aInput) {
    220  var input = document.createElement("input");
    221  input.id = 'd';
    222  var datalist = document.createElement("datalist");
    223  datalist.id = 'd';
    224 
    225  aInput.setAttribute('list', 'd');
    226  aContent.appendChild(aInput);
    227  aContent.appendChild(input);
    228  aContent.appendChild(datalist);
    229 
    230  return null;
    231 }
    232 
    233 var tests = [ test1, test2, test3, test4, test5, test6, test7, test8, test9,
    234              test10, test11, test12, test13, test14, test15, test16, test17 ];
    235 
    236 test0();
    237 
    238 for (var test of tests) {
    239  var content = document.getElementById('content');
    240 
    241  // Clean-up.
    242  content.textContent = '';
    243 
    244  var input = document.createElement("input");
    245  var res = test(content, input);
    246 
    247  is(input.list, res, "input.list should be " + res);
    248 }
    249 
    250 </script>
    251 </pre>
    252 </body>
    253 </html>