From: <rb...@us...> - 2012-11-05 18:54:42
|
Revision: 7690 http://sourceforge.net/p/htmlunit/code/7690 Author: rbri Date: 2012-11-05 18:54:39 +0000 (Mon, 05 Nov 2012) Log Message: ----------- code cleanup and allow self closing for fragment parsing Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java 2012-11-05 12:28:32 UTC (rev 7689) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java 2012-11-05 18:54:39 UTC (rev 7690) @@ -151,6 +151,7 @@ ancestors.add(1, new QName(null, "body", null, null)); } + domBuilder.setFeature(HTMLScanner.ALLOW_SELFCLOSING_TAGS, true); domBuilder.setProperty(HTMLTagBalancer.FRAGMENT_CONTEXT_STACK, ancestors.toArray(new QName[] {})); final XMLInputSource in = new XMLInputSource(null, url.toString(), null, new StringReader(source), null); @@ -257,7 +258,7 @@ private static void addBodyToPageIfNecessary( final HtmlPage page, final boolean originalCall, final boolean checkInsideFrameOnly) { // IE waits for the whole page to load before initializing bodies for frames. - final boolean waitToLoad = page.getWebClient().getBrowserVersion().hasFeature(PAGE_WAIT_LOAD_BEFORE_BODY); + final boolean waitToLoad = page.hasFeature(PAGE_WAIT_LOAD_BEFORE_BODY); if (page.getEnclosingWindow() instanceof FrameWindow && originalCall && waitToLoad) { return; } @@ -341,7 +342,7 @@ || !qualifiedName.contains(":") || namespaceURI.equals(XHTML_NAMESPACE)) { if (SVG_NAMESPACE.equals(namespaceURI) - && page.getWebClient().getBrowserVersion().hasFeature(SVG)) { + && page.hasFeature(SVG)) { return SVG_FACTORY; } @@ -499,7 +500,7 @@ return; } - if (parsingInnerHead_ && page_.getWebClient().getBrowserVersion().hasFeature( + if (parsingInnerHead_ && page_.hasFeature( IGNORE_CONTENTS_OF_INNER_HEAD)) { return; } @@ -600,8 +601,7 @@ if ("head".equals(tagLower)) { parsingInnerHead_ = false; } - if ("head".equals(tagLower) || page_.getWebClient().getBrowserVersion().hasFeature( - IGNORE_CONTENTS_OF_INNER_HEAD)) { + if ("head".equals(tagLower) || page_.hasFeature(IGNORE_CONTENTS_OF_INNER_HEAD)) { return; } } @@ -629,7 +629,7 @@ /** {@inheritDoc} */ public void characters(final char[] ch, final int start, final int length) throws SAXException { if ((characters_ == null || characters_.length() == 0) - && page_.getWebClient().getBrowserVersion().hasFeature(HTMLPARSER_REMOVE_EMPTY_CONTENT) + && page_.hasFeature(HTMLPARSER_REMOVE_EMPTY_CONTENT) && StringUtils.isBlank(new String(ch, start, length))) { DomNode node = currentNode_.getLastChild(); @@ -743,7 +743,7 @@ handleCharacters(); final String data = new String(ch, start, length); if (!data.startsWith("[CDATA") - || !page_.getWebClient().getBrowserVersion().hasFeature(GENERATED_3)) { + || !page_.hasFeature(GENERATED_3)) { final DomComment comment = new DomComment(page_, data); currentNode_.appendChild(comment); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java 2012-11-05 12:28:32 UTC (rev 7689) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java 2012-11-05 18:54:39 UTC (rev 7690) @@ -995,7 +995,6 @@ CHROME = { "Old = <span id=\"innerNode\">Old outerHTML</span>", "New = <div></div><div></div>" }, FF = { "Old = <span id=\"innerNode\">Old outerHTML</span>", "New = <span id=\"innerNode\">Old outerHTML</span>" }) - @NotYetImplemented(IE) public void setOuterHTMLAddMultipleSelfClosingBlock() throws Exception { final String html = createPageForSetOuterHTML("div", "<div/><div>"); loadPageWithAlerts2(html); |