test_ncr_fallback.html (3333B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1202366 5 --> 6 <head> 7 <meta http-equiv="Content-type" content="text/html; charset=UTF-8"> 8 <title>Test for unpaired surrogates</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 11 </head> 12 <body onload="step()"> 13 <pre id="test"> 14 <script class="testbody" type="text/javascript"> 15 /* NOTE: 16 * When we make our data: URL origin work as in Blink, this test will fail. 17 * Don't let this test block alignment of data: URL origin with Blink. 18 */ 19 SimpleTest.waitForExplicitFinish(); 20 21 var expectations = [ 22 "%26%2365533%3B", 23 "a%26%2365533%3B", 24 "%26%2365533%3Ba", 25 "a%26%2365533%3Ba", 26 "%26%2365533%3B", 27 "a%26%2365533%3B", 28 "%26%2365533%3Ba", 29 "a%26%2365533%3Ba", 30 "%26%23128169%3B", 31 "%26%23128169%3B", 32 "%1B%24B%22%29%1B%28B", 33 "%1B%24B%22%29%1B%28B%26%23128169%3B", 34 ]; 35 36 var i = 0; 37 38 function step() { 39 var f = document.getElementsByTagName("iframe")[i]; 40 f.onload = function() { 41 var href = SpecialPowers.wrap(f).contentWindow.location.href; 42 var index = href.indexOf("?foo="); 43 var actual = href.substring(index + 5); 44 var expected = expectations[i]; 45 is(actual, expected, "Should have gotten the expected encode."); 46 i++ 47 if (i == document.getElementsByTagName("iframe").length) { 48 SimpleTest.finish(); 49 } else { 50 step(); 51 } 52 } 53 SpecialPowers.wrap(f).contentDocument.forms[0].submit(); 54 } 55 </script> 56 </pre> 57 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1202366">Mozilla Bug 1202366</a> 58 <p id="display"></p> 59 <div id="content" style="display: none"> 60 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=\uD83D></form>');</script>"></iframe> 61 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=a\uD83D></form>');</script>"></iframe> 62 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=\uD83Da></form>');</script>"></iframe> 63 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=a\uD83Da></form>');</script>"></iframe> 64 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=\uDCA9></form>');</script>"></iframe> 65 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=a\uDCA9></form>');</script>"></iframe> 66 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=\uDCA9a></form>');</script>"></iframe> 67 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=a\uDCA9a></form>');</script>"></iframe> 68 <iframe src="data:text/html;charset=big5,<script>document.write('<form><input name=foo value=\uD83D\uDCA9></form>');</script>"></iframe> 69 <iframe src="data:text/html;charset=iso-2022-jp,<script>document.write('<form><input name=foo value=\uD83D\uDCA9></form>');</script>"></iframe> 70 <iframe src="data:text/html;charset=iso-2022-jp,<script>document.write('<form><input name=foo value=\u3012></form>');</script>"></iframe> 71 <iframe src="data:text/html;charset=iso-2022-jp,<script>document.write('<form><input name=foo value=\u3012\uD83D\uDCA9></form>');</script>"></iframe> 72 </div> 73 </body> 74 </html>