From: <rb...@us...> - 2013-10-04 18:33:23
|
Revision: 8590 http://sourceforge.net/p/htmlunit/code/8590 Author: rbri Date: 2013-10-04 18:33:20 +0000 (Fri, 04 Oct 2013) Log Message: ----------- use the correct accept header for javascript requests Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersion2Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2013-10-04 14:59:02 UTC (rev 8589) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java 2013-10-04 18:33:20 UTC (rev 8590) @@ -221,7 +221,7 @@ FIREFOX_17.setImgAcceptHeader("image/png,image/*;q=0.8,*/*;q=0.5"); FIREFOX_17.setCssAcceptHeader("text/css,*/*;q=0.1"); - INTERNET_EXPLORER_8.setHtmlAcceptHeader("image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*"); + INTERNET_EXPLORER_8.setHtmlAcceptHeader("image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*"); final PluginConfiguration flash = new PluginConfiguration("Shockwave Flash", "Shockwave Flash 9.0 r31", "libflashplayer.so"); @@ -501,6 +501,15 @@ /** * Returns the value used by the browser for the accept header + * if requesting an script. + * @return the accept header string + */ + public String getScriptAcceptHeader() { + return "*/*"; + } + + /** + * Returns the value used by the browser for the accept header * if requesting an image. * @return the accept header string */ Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java 2013-10-04 14:59:02 UTC (rev 8589) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java 2013-10-04 18:33:20 UTC (rev 8590) @@ -1088,6 +1088,7 @@ final WebRequest request = new WebRequest(url); request.setAdditionalHeaders(new HashMap<String, String>(referringRequest.getAdditionalHeaders())); request.setAdditionalHeader("Referer", referringRequest.getUrl().toString()); + request.setAdditionalHeader("Accept", client.getBrowserVersion().getScriptAcceptHeader()); final Object cachedScript = cache.getCachedObject(url); if (cachedScript instanceof Script) { Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersion2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersion2Test.java 2013-10-04 14:59:02 UTC (rev 8589) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersion2Test.java 2013-10-04 18:33:20 UTC (rev 8590) @@ -41,7 +41,7 @@ */ @Test @Alerts(DEFAULT = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*", + IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*", IE10 = "Accept: text/html, application/xhtml+xml, */*") public void acceptHeaderGetUrl() throws Exception { final String html = "<html><body>Response</body></html>"; @@ -55,7 +55,7 @@ */ @Test @Alerts(DEFAULT = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*") + IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*") public void acceptHeaderWindowOpen() throws Exception { String html = "<html><body>Response</body></html>"; getMockWebConnection().setDefaultResponse(html); @@ -75,6 +75,48 @@ * @throws Exception if an error occurs */ @Test + @Alerts(DEFAULT = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*") + public void acceptHeaderAnchorClick() throws Exception { + String html = "<html><body>Response</body></html>"; + getMockWebConnection().setDefaultResponse(html); + + html = "<html><head><title>First</title></head>\n" + + "<body>\n" + + " <a id='clickme' href='test.html'>Click me</a>\n" + + "</body></html>"; + final WebDriver driver = loadPage2(html, getDefaultUrl()); + driver.findElement(By.id("clickme")).click(); + + assertEquals(2, getMockWebConnection().getRequestCount()); + assertEquals(getExpectedAlerts()[0], acceptHeaderString()); + } + + /** + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + IE = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, */*") + public void acceptHeaderAnchorClickWithType() throws Exception { + String html = "<html><body>Response</body></html>"; + getMockWebConnection().setDefaultResponse(html); + + html = "<html><head><title>First</title></head>\n" + + "<body>\n" + + " <a id='clickme' href='test.html' type='text/plain'>Click me</a>\n" + + "</body></html>"; + final WebDriver driver = loadPage2(html, getDefaultUrl()); + driver.findElement(By.id("clickme")).click(); + + assertEquals(2, getMockWebConnection().getRequestCount()); + assertEquals(getExpectedAlerts()[0], acceptHeaderString()); + } + + /** + * @throws Exception if an error occurs + */ + @Test @Alerts(DEFAULT = "Accept: image/png,image/*;q=0.8,*/*;q=0.5", CHROME = "Accept: image/webp,*/*;q=0.8", IE = "Accept: */*", @@ -127,6 +169,42 @@ * @throws Exception if an error occurs */ @Test + @Alerts(DEFAULT = "Accept: */*") + public void acceptHeaderJavascript() throws Exception { + final String html + = "<html><head>\n" + + " <script src='test.js' type='text/javascript'>\n" + + "</head>\n" + + "<body>\n" + + "</body></html>"; + loadPage2(html, getDefaultUrl()); + + assertEquals(2, getMockWebConnection().getRequestCount()); + assertEquals(getExpectedAlerts()[0], acceptHeaderString()); + } + + /** + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = "Accept: */*") + public void acceptHeaderJavascriptWithoutType() throws Exception { + final String html + = "<html><head>\n" + + " <script src='test.js'>\n" + + "</head>\n" + + "<body>\n" + + "</body></html>"; + loadPage2(html, getDefaultUrl()); + + assertEquals(2, getMockWebConnection().getRequestCount()); + assertEquals(getExpectedAlerts()[0], acceptHeaderString()); + } + + /** + * @throws Exception if an error occurs + */ + @Test @Alerts(DEFAULT = "Accept: text/css,*/*;q=0.1", IE = "Accept: */*", IE10 = "Accept: text/css") |