From: <asa...@us...> - 2012-12-19 06:52:55
|
Revision: 7890 http://sourceforge.net/p/htmlunit/code/7890 Author: asashour Date: 2012-12-19 06:52:52 +0000 (Wed, 19 Dec 2012) Log Message: ----------- Upper-case the charset detected from "meta" tag. Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/util/EncodingSniffer.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/util/EncodingSniffer.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/util/EncodingSniffer.java 2012-12-19 05:37:11 UTC (rev 7889) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/util/EncodingSniffer.java 2012-12-19 06:52:52 UTC (rev 7890) @@ -365,12 +365,12 @@ if (charset == null) { continue; } - charset = charset.toUpperCase(); } if (UTF16_BE.equalsIgnoreCase(charset) || UTF16_LE.equalsIgnoreCase(charset)) { charset = UTF8; } if (isSupportedCharset(charset)) { + charset = charset.toUpperCase(); if (LOG.isDebugEnabled()) { LOG.debug("Encoding found in meta tag: '" + charset + "'."); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java 2012-12-19 05:37:11 UTC (rev 7889) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java 2012-12-19 06:52:52 UTC (rev 7890) @@ -1551,4 +1551,32 @@ final WebDriver driver = loadPage2(html, URL_FIRST, "text/html;charset=UTF-8", "ISO-8859-1"); verifyAlerts(DEFAULT_WAIT_TIME, expectedAlerts, driver); } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(IE = { "undefined", "undefined", "utf-8", "windows-1252" }, + FF = { "UTF-8", "UTF-8", "undefined", "undefined" }, + CHROME = { "UTF-8", "UTF-8", "UTF-8", "ISO-8859-1" }) + public void encoding5() throws Exception { + final String html = "<html>\n" + + "<head>\n" + + "<meta charset='UTF-8'>\n" + + " <script>\n" + + " function test() {\n" + + " alert(document.inputEncoding);\n" + + " alert(document.characterSet);\n" + + " alert(document.charset);\n" + + " alert(document.defaultCharset);\n" + + " }\n" + + " </script>\n" + + "</head><body onload='test()'>\n" + + " <a id='myId' href='test?è=è'>test</a>" + + "</body></html>"; + + final String[] expectedAlerts = getExpectedAlerts(); + final WebDriver driver = loadPage2(html, URL_FIRST, "text/html", "UTF-8"); + verifyAlerts(DEFAULT_WAIT_TIME, expectedAlerts, driver); + } } |