diff options
Diffstat (limited to 'layout/base/tests/test_bug399284.html')
-rw-r--r-- | layout/base/tests/test_bug399284.html | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/layout/base/tests/test_bug399284.html b/layout/base/tests/test_bug399284.html new file mode 100644 index 000000000..09d729742 --- /dev/null +++ b/layout/base/tests/test_bug399284.html @@ -0,0 +1,116 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=399284 +--> +<head> + <title>Test for Bug 399284</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=399284">Mozilla Bug 399284</a> +<p id="display"></p> +<div id="content" style="display: none"> +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> +/** Test for Bug 399284 **/ +const testContent = "<p id='testPara'>The quick brown fox jumps over the lazy dog"; + +var decoders = [ + "Big5", + "Big5-HKSCS", + "EUC-JP", + "EUC-KR", + "gb18030", + "IBM866", + "ISO-2022-JP", + "ISO-8859-3", + "ISO-8859-4", + "ISO-8859-5", + "ISO-8859-6", + "ISO-8859-7", + "ISO-8859-8", + "ISO-8859-8-I", + "ISO-8859-10", + "ISO-8859-13", + "ISO-8859-14", + "ISO-8859-15", + "ISO-8859-16", + "ISO-8859-2", + "KOI8-R", + "KOI8-U", + "Shift_JIS", + "windows-1250", + "windows-1251", + "windows-1252", + "windows-1253", + "windows-1254", + "windows-1255", + "windows-1256", + "windows-1257", + "windows-1258", + "windows-874", + "x-mac-cyrillic", + "UTF-8", + "UTF-16LE", + "UTF-16BE" +]; + +var decoder; +for (var i = 0; i < decoders.length; i++) { + var decoder = decoders[i]; + var data; + + // encode the content for non-ASCII compatible encodings + if (decoder == "UTF-16BE") + data = encodeUTF16BE(testContent); + else if (decoder == "UTF-16LE") + data = encodeUTF16LE(testContent); + else + data = encodeURI(testContent); + var dataURI = "data:text/html;charset=" + decoder + "," + data; + + var testFrame = document.createElement("iframe"); + frameID = decoder; + testFrame.setAttribute("id", frameID); + var testFrameObj = document.body.appendChild(testFrame); + testFrameObj.setAttribute("onload", "testFontSize('" + decoder + "')"); + testFrameObj.contentDocument.location.assign(dataURI); +} + +function encodeUTF16BE(string) +{ + var encodedString = ""; + for (i = 0; i < string.length; ++i) { + encodedString += "%00"; + encodedString += encodeURI(string.charAt(i)); + } + return encodedString; +} + +function encodeUTF16LE(string) +{ + var encodedString = ""; + for (i = 0; i < string.length; ++i) { + encodedString += encodeURI(string.charAt(i)); + encodedString += "%00"; + } + return encodedString; +} + +function testFontSize(frame) +{ + var iframeDoc = $(frame).contentDocument; + var size = parseInt(iframeDoc.defaultView. + getComputedStyle(iframeDoc.getElementById("testPara"), + null). + getPropertyValue("font-size")); + ok(size > 0, "font size assigned for " + frame); +} +</script> +</pre> +</body> +</html> + |