From: <rb...@us...> - 2014-03-25 19:49:07
|
Revision: 9207 http://sourceforge.net/p/htmlunit/code/9207 Author: rbri Date: 2014-03-25 19:48:55 +0000 (Tue, 25 Mar 2014) Log Message: ----------- JavaScript: Some event definitions ignored when simulating IE11. Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInputTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2014-03-25 19:45:49 UTC (rev 9206) +++ trunk/htmlunit/src/changes/changes.xml 2014-03-25 19:48:55 UTC (rev 9207) @@ -9,6 +9,9 @@ <body> <release version="2.15" date="???" description="Bugfixes"> <action type="fix" dev="rbri"> + JavaScript: Some event definitions ignored when simulating IE11. + </action> + <action type="fix" dev="rbri"> HashMap corruption (leads to an endless loop) because of concurrent access. </action> <action type="fix" dev="rbri"> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2014-03-25 19:45:49 UTC (rev 9206) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2014-03-25 19:48:55 UTC (rev 9207) @@ -415,10 +415,11 @@ final HtmlElement htmlElt = (HtmlElement) domNode; for (final DomAttr attr : htmlElt.getAttributesMap().values()) { final String eventName = attr.getName(); - if (eventName.startsWith("on")) { + if (eventName.toLowerCase(Locale.ENGLISH).startsWith("on")) { createEventHandler(eventName, attr.getValue()); } } + if ("wbr".equalsIgnoreCase(domNode.getLocalName())) { endTagForbidden_ = true; } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java 2014-03-25 19:45:49 UTC (rev 9206) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java 2014-03-25 19:48:55 UTC (rev 9207) @@ -16,6 +16,8 @@ import org.junit.Test; import org.junit.runner.RunWith; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; @@ -208,4 +210,39 @@ loadPageWithAlerts2(html); } + /** + * @throws Exception if the test fails + */ + @Test + @Alerts("foo") + public void click_onClick() throws Exception { + final String html + = "<html><head><title>foo</title></head><body>\n" + + "<form id='form1' onSubmit='alert(\"bar\")'>\n" + + " <input type='button' name='button' id='button' " + + "onClick='alert(\"foo\")'>Push me</button>\n" + + "</form></body></html>"; + + final WebDriver driver = loadPage2(html); + driver.findElement(By.id("button")).click(); + assertEquals(getExpectedAlerts(), getCollectedAlerts(driver)); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts("foo") + public void click_onClickIgnoreCase() throws Exception { + final String html + = "<html><head><title>foo</title></head><body>\n" + + "<form id='form1'>\n" + + " <input type='button' name='button' id='button' " + + "oNclICK='alert(\"foo\")'>Push me</button>\n" + + "</form></body></html>"; + + final WebDriver driver = loadPage2(html); + driver.findElement(By.id("button")).click(); + assertEquals(getExpectedAlerts(), getCollectedAlerts(driver)); + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInputTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInputTest.java 2014-03-25 19:45:49 UTC (rev 9206) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInputTest.java 2014-03-25 19:48:55 UTC (rev 9207) @@ -54,8 +54,7 @@ final HtmlPage secondPage = button.click(); - final String[] expectedAlerts = {"foo"}; - assertEquals(expectedAlerts, collectedAlerts); + assertEquals(getExpectedAlerts(), collectedAlerts); assertSame(page, secondPage); } |