Package com.google.jstestdriver.html

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

/*
* 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.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
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.Token;

/**
* @author corysmith@google.com (Cory Smith)
*
*/
public class HtmlDocLexerTest extends TestCase {
  private Token[] tokens = new Token[]{new ConcreteToken("/*:DOC".toCharArray()),
      new ConcreteToken("*/".toCharArray()),
      new ConcreteToken("{".toCharArray()),
      new ConcreteToken("=".toCharArray()),
      new ConcreteToken("}".toCharArray())};

  public void testCreateTokens() throws Exception {
    List<Token> expected = Lists.newArrayList(tokens[0],
      tokens[1], tokens[2], tokens[3]);
    BufferedInputStream stream =
        new BufferedInputStream(
            new ByteArrayInputStream((tokens[0].toString()
                                      + tokens[1].toString()
                                      + tokens[2].toString()
                                      + tokens[3].toString()).getBytes()));
    BufferedTokenStream lexer = new HtmlDocLexer().createStream(stream);
    for (Token token : expected) {
      assertEquals(token, lexer.read());
    }
    assertFalse(lexer.available());
  }

  public void testCreateTokensWithOtherTokens() throws Exception {
    Token otherOne = new ConcreteToken("<div></div>".toCharArray());
    BufferedInputStream stream =
      new BufferedInputStream(
        new ByteArrayInputStream((tokens[0].toString()
            + otherOne.toString() + tokens[1].toString()).getBytes()));

    BufferedTokenStream lexer = new HtmlDocLexer().createStream(stream);
    List<Token> expected =
        Lists.newArrayList(tokens[0], otherOne, tokens[1]);
    for (Token token : expected) {
      assertEquals(token, lexer.read());
    }
  }
 
  public void testCreateTokensFromRealCode() throws Exception {
    BufferedInputStream stream = new BufferedInputStream(
        new ByteArrayInputStream(("TestCase.prototype.setUp = function(){"
                                  + "  this.foo = 1;"
                                  + "  /*:DOC bar = <div></div>*/"
                                  + "};").getBytes()));
   
    BufferedTokenStream lexer = new HtmlDocLexer().createStream(stream);
    List<Token> expected = Lists.newArrayList(
      ConcreteToken.from("TestCase.prototype.setUp "),
      ConcreteToken.from("="),
      ConcreteToken.from(" function()"),
      ConcreteToken.from("{"),
      ConcreteToken.from("  this.foo "),
      tokens[3],
      ConcreteToken.from(" 1;  "),
      tokens[0],
      ConcreteToken.from(" bar "),
      ConcreteToken.from("="),
      ConcreteToken.from(" <div></div>"),
      tokens[1],
      tokens[4]);
    for (Token token : expected) {
      assertEquals(token, lexer.read());
    }
  }

  public void testCreateTokensWithCommentTokens() throws Exception {
    Token otherOne = new ConcreteToken("/** foo".toCharArray());
    BufferedInputStream stream =
      new BufferedInputStream(
        new ByteArrayInputStream((tokens[2].toString()
            + otherOne.toString() + tokens[1].toString() + tokens[3].toString()).getBytes()));
   
    BufferedTokenStream lexer = new HtmlDocLexer().createStream(stream);
    List<Token> expected =
      Lists.newArrayList(tokens[2], otherOne, tokens[1], tokens[3]);
    for (Token token : expected) {
      assertEquals(token, lexer.read());
    }
  }
 
 
 
}
TOP

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

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.