Package com.google.jstestdriver.html

Source Code of com.google.jstestdriver.html.HtmlDocParserTest

/*
* Copyright 2009 Google 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.google.jstestdriver.html;

import java.util.List;

import junit.framework.TestCase;

import com.google.common.collect.Lists;
import com.google.jstestdriver.token.BufferedTokenStream;
import com.google.jstestdriver.token.ConcreteToken;
import com.google.jstestdriver.token.Nodes;
import com.google.jstestdriver.token.Token;

/**
* @author corysmith@google.com (Cory Smith)
*/
public class HtmlDocParserTest extends TestCase {

  public void testParseHtmlDoc() throws Exception {
    Token id = ConcreteToken.from("foo ");
    Token html = ConcreteToken.from(" <div></div>");
    List<Token> tokens = Lists.<Token>newArrayList(
                       ConcreteToken.from("/*:DOC"),
                       id,
                       ConcreteToken.from("="),
                       html,
                       ConcreteToken.from("*/"));
   
    BufferedTokenStream stream = new BufferedTokenStream(tokens.iterator());
   
    assertEquals(new Nodes().add(new HtmlDocGlobalNode(id, Lists.newArrayList(html))),
                 new HtmlDocParser().parse(stream));
  }

  public void testParseHtmlDocInBlock() throws Exception {
    Token id = ConcreteToken.from("foo ");
    Token html = ConcreteToken.from(" <div></div>");
    Token functionToken = ConcreteToken.from("function foo()");
    Token blockStartToken = ConcreteToken.from("{");
    Token blockEndToken = ConcreteToken.from("}");
    List<Token> tokens = Lists.<Token>newArrayList(
                       functionToken,
                       blockStartToken,
                       ConcreteToken.from("/*:DOC"),
                       id,
                       ConcreteToken.from("="),
                       html,
                       ConcreteToken.from("*/"),
                       blockEndToken);
   
    BufferedTokenStream stream = new BufferedTokenStream(tokens.iterator());
   
    assertEquals(new Nodes().add(new TextNode(functionToken))
                            .add(new TextNode(blockStartToken))
                            .add(new HtmlDocNestedNode(id, Lists.newArrayList(html)))
                            .add(new TextNode(blockEndToken)),
                 new HtmlDocParser().parse(stream));
  }

  public void testOtherAndBlock() throws Exception {
    Token setUpToken = ConcreteToken.from("TestCase.prototype.setUp ");
    Token equalsToken = ConcreteToken.from("=");
    Token functionToken = ConcreteToken.from(" function()");
    Token blockStartToken = ConcreteToken.from("{");
    Token fooToken = ConcreteToken.from("  this.foo ");
    Token oneToken = ConcreteToken.from(" 1;  ");
    Token docStartToken = ConcreteToken.from("/*:DOC");
    Token barToken = ConcreteToken.from(" bar ");
    Token htmlToken = ConcreteToken.from(" <div></div>");
    Token endDocToken = ConcreteToken.from("*/");
    Token endBlockToken = ConcreteToken.from("}");
    List<Token> tokens = Lists.<Token>newArrayList(
        setUpToken,
        equalsToken,
        functionToken,
        blockStartToken,
        fooToken,
        equalsToken,
        oneToken,
        docStartToken,
        barToken,
        equalsToken,
        htmlToken,
        endDocToken,
        endBlockToken);
    BufferedTokenStream stream = new BufferedTokenStream(tokens.iterator());

    assertEquals(new Nodes().add(new TextNode(setUpToken))
                            .add(new TextNode(equalsToken))
                            .add(new TextNode(functionToken))
                            .add(new TextNode(blockStartToken))
                            .add(new TextNode(fooToken))
                            .add(new TextNode(equalsToken))
                            .add(new TextNode(oneToken))
                            .add(new HtmlDocNestedNode(barToken, Lists.newArrayList(htmlToken)))
                            .add(new TextNode(endBlockToken)),
                 new HtmlDocParser().parse(stream));
  }
}
TOP

Related Classes of com.google.jstestdriver.html.HtmlDocParserTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.