From: <mgu...@us...> - 2013-01-30 08:47:42
|
Revision: 8064 http://sourceforge.net/p/htmlunit/code/8064 Author: mguillem Date: 2013-01-30 08:47:35 +0000 (Wed, 30 Jan 2013) Log Message: ----------- JavaScript: fixed exception occurring while testing window or document == "some string". Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/SimpleScriptableProxy.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/Window2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-01-29 21:06:47 UTC (rev 8063) +++ trunk/htmlunit/src/changes/changes.xml 2013-01-30 08:47:35 UTC (rev 8064) @@ -8,6 +8,9 @@ <body> <release version="2.12" date="???" description="Bugfixes, CSS3 Selectors"> + <action type="fix" dev="mguillem" issue="1479"> + JavaScript: fixed exception occurring while testing window or document == "some string". + </action> <action type="fix" dev="rbri" issue="1478"> Support for CSS pseudo selector ':focus' added. </action> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/SimpleScriptableProxy.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/SimpleScriptableProxy.java 2013-01-29 21:06:47 UTC (rev 8063) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/SimpleScriptableProxy.java 2013-01-30 08:47:35 UTC (rev 8064) @@ -123,4 +123,15 @@ getDelegee().put(name, start, value); } + /** + * Delegates call to delegee. + * @param hint the type hint + * @return the default value + * + * @see net.sourceforge.htmlunit.corejs.javascript.Scriptable#getDefaultValue + */ + @Override + public Object getDefaultValue(final Class<?> hint) { + return getDelegee().getDefaultValue(hint); + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/Window2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/Window2Test.java 2013-01-29 21:06:47 UTC (rev 8063) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/Window2Test.java 2013-01-30 08:47:35 UTC (rev 8064) @@ -1050,4 +1050,21 @@ loadPageWithAlerts2(html); } + + /** + * Was producing "TypeError: Object's getDefaultValue() method returned an object" due to Delegator not delegating + * getDefaultValue(hint) to delegee when hint is null. + * @throws Exception if the test fails + */ + @Test + @Alerts("false") + public void equalsString() throws Exception { + final String html = "<html><body>\n" + + "<script>\n" + + " alert('foo' == window);\n" + + "</script>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } } 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 2013-01-29 21:06:47 UTC (rev 8063) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocumentTest.java 2013-01-30 08:47:35 UTC (rev 8064) @@ -1841,4 +1841,21 @@ loadPageWithAlerts2(html); } + + /** + * Was producing "TypeError: Object's getDefaultValue() method returned an object" due to Delegator not delegating + * getDefaultValue(hint) to delegee when hint is null. + * @throws Exception if the test fails + */ + @Test + @Alerts("false") + public void equalsString() throws Exception { + final String html = "<html><body>\n" + + "<script>\n" + + " alert('foo' == document);\n" + + "</script>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } } |