From: <rb...@us...> - 2013-08-02 16:12:10
|
Revision: 8434 http://sourceforge.net/p/htmlunit/code/8434 Author: rbri Date: 2013-08-02 16:12:07 +0000 (Fri, 02 Aug 2013) Log Message: ----------- XMLHttpRequest open(..) methods failed when called with null for userid/password (patch Sebastian Cato) Issue 1532 Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest2Test.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-08-02 14:41:06 UTC (rev 8433) +++ trunk/htmlunit/src/changes/changes.xml 2013-08-02 16:12:07 UTC (rev 8434) @@ -8,6 +8,9 @@ <body> <release version="2.13" date="???" description="Bugfixes"> + <action type="fix" dev="rbri" issue="1532" due-to="Sebastian Cato"> + XMLHttpRequest open(..) methods failed when called with null for userid/password. + </action> <action type="fix" dev="rbri" issue="1531" due-to="Sebastian Cato"> XMLHttpRequest open(..) methods delivers wrong credentials. </action> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java 2013-08-02 14:41:06 UTC (rev 8433) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java 2013-08-02 16:12:07 UTC (rev 8434) @@ -504,10 +504,12 @@ if (Undefined.instance != user || Undefined.instance != password) { String userCred = null; String passwordCred = ""; - if (Undefined.instance != user) { + final boolean userIsNull = null == user || Undefined.instance == user; + final boolean passwordIsNull = null == password || Undefined.instance == password; + if (!userIsNull) { userCred = user.toString(); } - if (Undefined.instance != password) { + if (!passwordIsNull) { passwordCred = password.toString(); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest2Test.java 2013-08-02 14:41:06 UTC (rev 8433) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest2Test.java 2013-08-02 16:12:07 UTC (rev 8434) @@ -671,4 +671,38 @@ loadPageWithAlerts2(html, servlets); } + + /** + * Test XMLHttpRequest with basic authentication. + * @throws Exception on failure + */ + @Test + @Alerts("<xml></xml>") + public void openNullUserIdNullPassword() throws Exception { + final String html = + "<html>\n" + + " <head>\n" + + " <title>XMLHttpRequest Test</title>\n" + + " <script>\n" + + " var request;\n" + + " function testBasicAuth() {\n" + + " if (window.XMLHttpRequest) {\n" + + " request = new XMLHttpRequest();\n" + + " } else if (window.ActiveXObject) {\n" + + " request = new ActiveXObject('Microsoft.XMLHTTP');\n" + + " }\n" + + " request.open('GET', '" + URL_SECOND + "', false, null, null);\n" + + " request.send();\n" + + " alert(request.responseText);\n" + + " }\n" + + " </script>\n" + + " </head>\n" + + " <body onload='testBasicAuth()'>\n" + + " </body>\n" + + "</html>"; + + getMockWebConnection().setResponse(URL_SECOND, "<xml></xml>", "text/xml"); + + loadPageWithAlerts2(html); + } } |