LGTM

2010/7/10  <[email protected]>:
> Reviewers: MikeSamuel,
>
> Description:
> When a comment is added, CajaTreeBuilder assumes the document already
> has a parent node.  This is not
> true if the comment appears as the first line.
>
> Changed processComment to add use a document fragment as a parent node
> when processing a comment
>
> Please review this at http://codereview.appspot.com/1770042/show
>
> Affected files:
>  M     src/com/google/caja/parser/html/CajaTreeBuilder.java
>  M     tests/com/google/caja/parser/html/DomParserTest.java
>
>
> Index: tests/com/google/caja/parser/html/DomParserTest.java
> ===================================================================
> --- tests/com/google/caja/parser/html/DomParserTest.java        (revision
> 4168)
> +++ tests/com/google/caja/parser/html/DomParserTest.java        (working
> copy)
> @@ -231,6 +231,14 @@
>       assertEquals(config, DOM2_HTML_RENDERED_GOLDEN,
> Nodes.render(document));
>     }
>   }
> +
> +  public final void testParseFirstLineComment() throws Exception {
> +    String DOM_WITH_COMMENT = "<!-- This is a comment -->\n" + DOM2_HTML;
> +    TokenQueue<HtmlTokenType> tq = tokenizeTestInput(
> +        DOM_WITH_COMMENT, false, true);
> +    Element el = new DomParser(tq, false, mq).parseDocument();
> +    assertEquals(DOM2_HTML_RENDERED_GOLDEN, Nodes.render(el));
> +  }
>
>   public final void testParseXmlFragmentManyWays() throws Exception {
>     for (DomParser p : allPossibleConfigurations(DOM3_XML, false)) {
> Index: src/com/google/caja/parser/html/CajaTreeBuilder.java
> ===================================================================
> --- src/com/google/caja/parser/html/CajaTreeBuilder.java        (revision
> 4168)
> +++ src/com/google/caja/parser/html/CajaTreeBuilder.java        (working
> copy)
> @@ -144,7 +144,12 @@
>
>   @Override
>   protected void appendCommentToDocument(char[] buf, int start, int length)
> {
> -    appendComment(doc.getDocumentElement(), buf, start, length);
> +    Node el = doc.getDocumentElement();
> +    if (null == el) {
> +      el = doc.createDocumentFragment();
> +      doc.appendChild(el);
> +    }
> +    appendComment(el, buf, start, length);
>   }
>
>   @Override
>
>
>

Reply via email to