From: <asa...@us...> - 2017-07-21 21:26:08
|
Revision: 14685 http://sourceforge.net/p/htmlunit/code/14685 Author: asashour Date: 2017-07-21 21:26:05 +0000 (Fri, 21 Jul 2017) Log Message: ----------- DomElement: Fix .getChildElements() Issue 1905 Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/DomElement2Test.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2017-07-21 13:02:24 UTC (rev 14684) +++ trunk/htmlunit/src/changes/changes.xml 2017-07-21 21:26:05 UTC (rev 14685) @@ -8,6 +8,9 @@ <body> <release version="2.28" date="???" description="Bugfixes"> + <action type="fix" dev="asashour" issue="1905"> + DomElement: Fix .getChildElements(). + </action> <action type="remove" dev="asashour"> Remove deprecated HtmlFileInput.setValueAttribute(String[]), HtmlInput.click(int,int), SgmlPage.getPageEncoding(), WebRequest.setCharset(String) and WebResponse.getContentAsString(String). Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java 2017-07-21 13:02:24 UTC (rev 14684) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/DomElement.java 2017-07-21 21:26:05 UTC (rev 14685) @@ -820,7 +820,7 @@ private void setNextElement(final DomNode node) { DomNode next = node.getNextSibling(); - while (next != null && !(next instanceof HtmlElement)) { + while (next != null && !(next instanceof DomElement)) { next = next.getNextSibling(); } nextElement_ = (DomElement) next; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/DomElement2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/DomElement2Test.java 2017-07-21 13:02:24 UTC (rev 14684) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/DomElement2Test.java 2017-07-21 21:26:05 UTC (rev 14685) @@ -14,11 +14,14 @@ */ package com.gargoylesoftware.htmlunit.html; +import java.util.concurrent.atomic.AtomicInteger; + import org.junit.Test; import org.junit.runner.RunWith; import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.SimpleWebTestCase; +import com.gargoylesoftware.htmlunit.xml.XmlPage; /** * Tests for {@link DomElement}. @@ -80,4 +83,27 @@ assertFalse(page.getElementById("d3").isMouseOver()); assertTrue(page.getElementById("d4").isMouseOver()); } + + /** + * Test case for Bug #1905. + * + * @throws Exception if the test fails + */ + @Test + public void getChildElements() throws Exception { + final String xml = "<events>\n" + + " <something/>\n" + + "</events>"; + getMockWebConnection().setDefaultResponse(xml, "text/xml"); + getWebClient().setWebConnection(getMockWebConnection()); + final XmlPage page = getWebClient().getPage(URL_FIRST); + final DomElement root = page.getDocumentElement(); + final AtomicInteger count = new AtomicInteger(0); + root.getChildElements().forEach(e -> count.incrementAndGet()); + assertEquals(1, count.get()); + + count.set(0); + root.getChildren().forEach(e -> count.incrementAndGet()); + assertEquals(3, count.get()); + } } |