Package jodd.decora.parser

Source Code of jodd.decora.parser.DecoraParserTest

// Copyright (c) 2003-2014, Jodd Team (jodd.org). All Rights Reserved.

package jodd.decora.parser;

import jodd.io.FastCharArrayWriter;
import jodd.io.FileUtil;
import jodd.io.findfile.FindFile;
import jodd.io.findfile.WildcardFindFile;
import jodd.util.StringUtil;
import org.junit.Before;
import org.junit.Test;

import java.io.BufferedReader;
import java.io.CharArrayReader;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import static org.junit.Assert.assertEquals;

public class DecoraParserTest {

  protected String testDataRoot;

  @Before
  public void setUp() throws Exception {
    if (testDataRoot != null) {
      return;
    }
    URL data = DecoraParserTest.class.getResource("test");
    testDataRoot = data.getFile();
  }

  @Test
  public void testDecoraParser() throws IOException {
    DecoraParser decoraParser = new DecoraParser();

    FindFile ff = new WildcardFindFile().include("*.*ml");
    ff.setMatchType(FindFile.Match.NAME);
    ff.searchPath(testDataRoot);

    File file;
    while ((file = ff.nextFile()) != null) {

      System.out.println("+" + file.getName());

      char[] page = FileUtil.readString(file).toCharArray();

      String decoratorFileName = StringUtil.replace(file.getAbsolutePath(), ".html", "-decora.htm");
      char[] decorator = FileUtil.readString(decoratorFileName).toCharArray();

      FastCharArrayWriter writer = new FastCharArrayWriter();
      decoraParser.decorate(writer, page, decorator);
      String out = writer.toString();

      String outFileName = StringUtil.replace(file.getAbsolutePath(), ".html", "-out.htm");
      String outExpected = FileUtil.readString(outFileName);

      assertEquals(trimLines(outExpected), trimLines(out));
    }
  }


  private String trimLines(String string) throws IOException {
    BufferedReader in = new BufferedReader(new CharArrayReader(string.toCharArray()));
    StringBuilder result = new StringBuilder(string.length());
    String line;
    while ((line = in.readLine()) != null) {
      result.append(line.trim()).append('\n');
    }
    return result.toString();
  }
}
TOP

Related Classes of jodd.decora.parser.DecoraParserTest

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.