Package nl.siegmann.epublib.hhc

Source Code of nl.siegmann.epublib.hhc.ChmParserTest

package nl.siegmann.epublib.hhc;

import java.util.Iterator;

import junit.framework.TestCase;
import nl.siegmann.epublib.Constants;
import nl.siegmann.epublib.chm.ChmParser;
import nl.siegmann.epublib.domain.Book;

import org.apache.commons.io.IOUtils;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.NameScope;
import org.apache.commons.vfs.VFS;

public class ChmParserTest extends TestCase {
 
  public void test1() {
    try {
      FileSystemManager fsManager = VFS.getManager();
      FileObject dir = fsManager.resolveFile("ram://chm_test_dir");
      dir.createFolder();
      String chm1Dir = "/chm1";
      Iterator<String> lineIter = IOUtils.lineIterator(ChmParserTest.class.getResourceAsStream(chm1Dir + "/filelist.txt"), Constants.CHARACTER_ENCODING);
      while(lineIter.hasNext()) {
        String line = lineIter.next();
        FileObject file = dir.resolveFile(line, NameScope.DESCENDENT);
        file.createFile();
        IOUtils.copy(this.getClass().getResourceAsStream(chm1Dir + "/" + line), file.getContent().getOutputStream());
        file.getContent().close();
      }
     
      Book chmBook = ChmParser.parseChm(dir, Constants.CHARACTER_ENCODING);
      assertEquals(45, chmBook.getResources().size());
      assertEquals(18, chmBook.getSpine().size());
      assertEquals(19, chmBook.getTableOfContents().size());
      assertEquals("chm-example", chmBook.getMetadata().getTitles().get(0));
    } catch(Exception e) {
      e.printStackTrace();
      assertTrue(false);
    }
  }


}
TOP

Related Classes of nl.siegmann.epublib.hhc.ChmParserTest

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.