tor-browser

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

test_brokenUTF-16.html (2412B)


      1 <html xmlns="http://www.w3.org/1999/xhtml">
      2 <head>
      3 <title>incomplete UTF-16 test</title>
      4 <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      5 
      6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8 
      9 <script type="text/javascript">
     10 
     11 function startTest()
     12 {
     13  // Check this works for a diacritics
     14  var k = "valid UTF-16 key";
     15  var v = "ěščřžýáíéúůĚŠČŘŽÝÁÍÉÚŮ";
     16 
     17  localStorage.setItem(k, v);
     18  is(localStorage.getItem(k), v, "UTF-16 value results from getItem");
     19 
     20  localStorage.setItem(v, "a value");
     21  is(localStorage.getItem(v), "a value", "value result using UTF-16 key from getItem");
     22 
     23  localStorage.clear();
     24 
     25  localStorage[k] = v;
     26  is(localStorage[k], v, "UTF-16 value results from []");
     27 
     28  localStorage[v] = "a value";
     29  is(localStorage[v], "a value", "value result using UTF-16 key from []");
     30 
     31  localStorage.clear();
     32 
     33  localStorage.aKey = v;
     34  is(localStorage.aKey, v, "UTF-16 value results from a dynamic property");
     35 
     36  localStorage.clear();
     37 
     38  // Broken UTF-16
     39  k = "broken UTF-16 key";
     40  v = "\uD800"; // broken UTF-16
     41 
     42  localStorage.setItem(k, v);
     43  is(localStorage.getItem(k), v, "broken value results from getItem");
     44 
     45  localStorage.setItem(v, "a value");
     46  is(localStorage.getItem(v), "a value", "value result using broken key from getItem");
     47 
     48  localStorage.clear();
     49 
     50  localStorage[k] = v;
     51  is(localStorage[k], v, "broken value results from []");
     52 
     53  localStorage[v] = "a value";
     54  is(localStorage[v], "a value", "value result using broken key from []");
     55 
     56  localStorage.clear();
     57 
     58  localStorage.aKey = v;
     59  is(localStorage.aKey, v, "broken value results from a dynamic property");
     60 
     61  localStorage.clear();
     62 
     63  // Another variant
     64  v = "FcK"
     65    + String.fromCharCode(0x8a)
     66    + ".jp";
     67 
     68  localStorage.setItem(k, v);
     69  is(localStorage.getItem(k), v);
     70 
     71  localStorage.setItem(v, "a value");
     72  is(localStorage.getItem(v), "a value");
     73 
     74  localStorage.clear();
     75 
     76  // And yet another variant
     77  v = "something"
     78    + String.fromCharCode(355, 277, 349, 357, 533, 537, 101, 345);
     79 
     80  localStorage.setItem(k, v);
     81  is(localStorage.getItem(k), v);
     82 
     83  localStorage.setItem(v, "a value");
     84  is(localStorage.getItem(v), "a value");
     85 
     86  localStorage.clear();
     87 
     88  SimpleTest.finish();
     89 }
     90 
     91 SimpleTest.waitForExplicitFinish();
     92 
     93 </script>
     94 
     95 </head>
     96 
     97 <body onload="startTest();">
     98 
     99 </body>
    100 </html>