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>