From: <asa...@us...> - 2017-06-02 15:01:45
|
Revision: 14531 http://sourceforge.net/p/htmlunit/code/14531 Author: asashour Date: 2017-06-02 15:01:42 +0000 (Fri, 02 Jun 2017) Log Message: ----------- Add regression test detected by WebDriver Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPage3Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java 2017-06-02 06:14:24 UTC (rev 14530) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java 2017-06-02 15:01:42 UTC (rev 14531) @@ -1308,7 +1308,6 @@ final boolean altKey, final int button) { final SgmlPage page = getPage(); - final ScriptResult scriptResult; final Event event; if (MouseEvent.TYPE_CONTEXT_MENU.equals(eventType) Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java 2017-06-02 06:14:24 UTC (rev 14530) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java 2017-06-02 15:01:42 UTC (rev 14531) @@ -2488,7 +2488,7 @@ * @return a ScriptResult which will contain both the current page (which may be different than * the previous page and a JavaScript result object. */ - public ScriptResult executeJavaScriptFunction(Object function, final Object thisObject, + public ScriptResult executeJavaScriptFunction(final Object function, final Object thisObject, final Object[] args, final DomNode htmlElementScope) { if (!getWebClient().getOptions().isJavaScriptEnabled()) { return new ScriptResult(null, this); Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPage3Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPage3Test.java 2017-06-02 06:14:24 UTC (rev 14530) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPage3Test.java 2017-06-02 15:01:42 UTC (rev 14531) @@ -15,6 +15,7 @@ package com.gargoylesoftware.htmlunit.html; import static com.gargoylesoftware.htmlunit.BrowserRunner.TestedBrowser.IE; +import static java.nio.charset.StandardCharsets.ISO_8859_1; import java.util.List; @@ -456,4 +457,34 @@ loadPageWithAlerts2(content); } + + /** + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = "error", + CHROME = "Something") + public void shouldBeAbleToFindElementByXPathInXmlDocument() throws Exception { + final String html = "<?xml version='1.0' encoding='UTF-8'?>\n" + + "<html xmlns='http://www.w3.org/1999/xhtml'\n" + + " xmlns:svg='http://www.w3.org/2000/svg'\n" + + " xmlns:xlink='http://www.w3.org/1999/xlink'>\n" + + "<body>\n" + + " <svg:svg id='chart_container' height='220' width='400'>\n" + + " <svg:text y='16' x='200' text-anchor='middle'>Something</svg:text>\n" + + " </svg:svg>\n" + + "</body>\n" + + "</html>\n"; + + final WebDriver driver = loadPage2(html, URL_FIRST, "application/xhtml+xml", ISO_8859_1, null); + String actual; + try { + WebElement element = driver.findElement(By.xpath("//svg:svg//svg:text")); + actual = element.getText(); + } + catch (final Exception e) { + actual = "error"; + } + assertEquals(getExpectedAlerts()[0], actual); + } } |