From: <mgu...@us...> - 2013-05-23 12:30:51
|
Revision: 8285 http://sourceforge.net/p/htmlunit/code/8285 Author: mguillem Date: 2013-05-23 12:30:48 +0000 (Thu, 23 May 2013) Log Message: ----------- - asXml(): don't generated self closing tags for empty a, p, and dd nodes - moved unit test with JS from HtmlParagrapTest to HTMLParagraphElementTest Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescription.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlParagraph.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlAnchorTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlParagraphTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLParagraphElementTest.java Added Paths: ----------- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescriptionTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlAnchor.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -310,4 +310,9 @@ final WebWindow newWindow = getPage().getWebClient().openWindow(target, windowName); return newWindow.getEnclosedPage(); } + + @Override + protected boolean isEmptyXmlTagExpanded() { + return true; + } } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescription.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescription.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescription.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -44,4 +44,9 @@ final Map<String, DomAttr> attributes) { super(namespaceURI, qualifiedName, page, attributes); } + + @Override + protected boolean isEmptyXmlTagExpanded() { + return true; + } } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlParagraph.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlParagraph.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlParagraph.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -65,4 +65,9 @@ protected boolean isBlock() { return true; } + + @Override + protected boolean isEmptyXmlTagExpanded() { + return true; + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlAnchorTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlAnchorTest.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlAnchorTest.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -653,4 +653,18 @@ final HtmlPage page2 = span.click(); assertEquals(new URL(getDefaultUrl(), "page2.html"), page2.getUrl()); } + + /** + * @throws Exception if the test fails + */ + @Test + public void asXml_emptyTag() throws Exception { + final String html = "<html><body>\n" + + "<a name='foo'></a>\n" + + "</body></html>"; + + final HtmlPage page = loadPage(html); + final HtmlAnchor htmlAnchor = page.getAnchorByName("foo"); + assertTrue(htmlAnchor.asXml().contains("</a>")); + } } Added: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescriptionTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescriptionTest.java (rev 0) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlDefinitionDescriptionTest.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2002-2013 Gargoyle Software Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gargoylesoftware.htmlunit.html; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.gargoylesoftware.htmlunit.BrowserRunner; +import com.gargoylesoftware.htmlunit.SimpleWebTestCase; + +/** + * Tests for {@link HtmlDefinitionDescription}. + * + * @version $Revision: 7931 $ + * @author Marc Guillemot + */ +@RunWith(BrowserRunner.class) +public class HtmlDefinitionDescriptionTest extends SimpleWebTestCase { + /** + * @throws Exception if the test fails + */ + @Test + public void asXml_emptyTag() throws Exception { + final String html = "<html><body>\n" + + "<dd id='foo'></dd>\n" + + "</body></html>"; + + final HtmlPage page = loadPage(html); + final HtmlElement element = page.getHtmlElementById("foo"); + assertTrue(element.asXml().contains("</dd>")); + } +} Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlParagraphTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlParagraphTest.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlParagraphTest.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -16,42 +16,29 @@ import org.junit.Test; import org.junit.runner.RunWith; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.htmlunit.HtmlUnitDriver; import com.gargoylesoftware.htmlunit.BrowserRunner; -import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; -import com.gargoylesoftware.htmlunit.WebDriverTestCase; +import com.gargoylesoftware.htmlunit.SimpleWebTestCase; /** * Tests for {@link HtmlParagraph}. * * @version $Revision$ - * @author Ahmed Ashour + * @author Marc Guillemot */ @RunWith(BrowserRunner.class) -public class HtmlParagraphTest extends WebDriverTestCase { - +public class HtmlParagraphTest extends SimpleWebTestCase { /** * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = "[object HTMLParagraphElement]", IE = "[object]") - public void simpleScriptable() throws Exception { - final String html = "<html><head>\n" - + "<script>\n" - + " function test() {\n" - + " alert(document.getElementById('myId'));\n" - + " }\n" - + "</script>\n" - + "</head><body onload='test()'>\n" - + " <p id='myId'/>\n" + public void asXml_emptyTag() throws Exception { + final String html = "<html><body>\n" + + "<p id='foo'></p>\n" + "</body></html>"; - final WebDriver driver = loadPageWithAlerts2(html); - if (driver instanceof HtmlUnitDriver) { - final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage(); - assertTrue(HtmlParagraph.class.isInstance(page.getHtmlElementById("myId"))); - } + final HtmlPage page = loadPage(html); + final HtmlElement element = page.getHtmlElementById("foo"); + assertTrue(element.asXml().contains("</p>")); } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLParagraphElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLParagraphElementTest.java 2013-05-23 05:26:45 UTC (rev 8284) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLParagraphElementTest.java 2013-05-23 12:30:48 UTC (rev 8285) @@ -16,20 +16,48 @@ import org.junit.Test; import org.junit.runner.RunWith; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.htmlunit.HtmlUnitDriver; import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; -import com.gargoylesoftware.htmlunit.SimpleWebTestCase; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; +import com.gargoylesoftware.htmlunit.WebDriverTestCase; /** * Tests for {@link HTMLParagraphElement}. * @version $Revision$ * @author Daniel Gredler + * @author Ahmed Ashour */ @RunWith(BrowserRunner.class) -public class HTMLParagraphElementTest extends SimpleWebTestCase { +public class HTMLParagraphElementTest extends WebDriverTestCase { /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = "[object HTMLParagraphElement]", IE = "[object]") + public void simpleScriptable() throws Exception { + final String html = "<html><head>\n" + + "<script>\n" + + " function test() {\n" + + " alert(document.getElementById('myId'));\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + " <p id='myId'/>\n" + + "</body></html>"; + + final WebDriver driver = loadPageWithAlerts2(html); + if (driver instanceof HtmlUnitDriver) { + final HtmlPage page = (HtmlPage) getWebWindowOf((HtmlUnitDriver) driver).getEnclosedPage(); + assertTrue(HtmlParagraph.class.isInstance(page.getHtmlElementById("myId"))); + } + } + + /** * @throws Exception if an error occurs */ @Test @@ -63,7 +91,7 @@ + " </head>\n" + " <body onload='test()'><p id='p'>foo</p></body>\n" + "</html>"; - loadPageWithAlerts(html); + loadPageWithAlerts2(html); } } |