001 /* 002 * Copyright 2002 - 2010 JEuclid, http://jeuclid.sf.net 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 /* $Id: MathBaseTest.java,v 92b6a7c39d7f 2010/08/11 20:23:17 max $ */ 018 019 package net.sourceforge.jeuclid.test; 020 021 import java.io.IOException; 022 023 import javax.xml.parsers.DocumentBuilder; 024 import javax.xml.parsers.ParserConfigurationException; 025 026 import net.sourceforge.jeuclid.DOMBuilder; 027 import net.sourceforge.jeuclid.MathMLParserSupport; 028 029 import org.apache.commons.logging.Log; 030 import org.apache.commons.logging.LogFactory; 031 import org.junit.Assert; 032 import org.junit.Test; 033 import org.w3c.dom.Document; 034 import org.xml.sax.InputSource; 035 import org.xml.sax.SAXException; 036 037 /** 038 * A JUnit Test case for MathBase. 039 * 040 * @version $Revision: 92b6a7c39d7f $ 041 */ 042 public class MathBaseTest { 043 044 /** 045 * Logger for this class 046 */ 047 private static final Log LOGGER = LogFactory.getLog(MathBaseTest.class); 048 049 /** 050 * Helper class to load included examples. 051 * @param name Name of the example 052 * @return the loaded Document 053 * @throws ParserConfigurationException if anything goes wrong. 054 * @throws SAXException if anything goes wrong. 055 * @throws IOException if anything goes wrong. 056 */ 057 public static Document loadDocument(final String name) 058 throws ParserConfigurationException, SAXException, IOException { 059 final DocumentBuilder parser = MathMLParserSupport 060 .createDocumentBuilder(); 061 Document document = null; 062 MathBaseTest.LOGGER.info("reading:" + name); 063 final InputSource source = new InputSource(MathBaseTest.class 064 .getResourceAsStream("/" + name)); 065 document = parser.parse(source); 066 System.out.println(name + " loaded"); 067 return document; 068 } 069 070 /** 071 * Tests the examples at resources/test/exampleX.mml. 072 * 073 * @throws Exception 074 * if an error occurs. 075 */ 076 @Test 077 public void testEmbeddedExamples() throws Exception { 078 for (int example = 1; example <= 7; example++) { 079 final String exName = "example" + example + ".mml"; 080 final Document document = MathBaseTest.loadDocument(exName); 081 DOMBuilder.getInstance().createJeuclidDom(document); 082 } 083 } 084 085 /** 086 * Tests ODF Reader. 087 * 088 * @throws Exception 089 * if an error occurs. 090 */ 091 @Test 092 public void testOdf() throws Exception { 093 Assert.assertNotNull(MathMLParserSupport 094 .parseInputStreamODF(MathBaseTest.class 095 .getResourceAsStream("/" + "example.odf"))); 096 } 097 098 /** 099 * Tests the new Parser API. 100 * 101 * @throws Exception 102 * if an error occurs. 103 */ 104 @Test 105 public void testNewParser() throws Exception { 106 // Assert.assertNotNull(MathBaseFactory.getMathBaseFactory() 107 // .createMathBase( 108 // new StreamSource(MathBaseTest.class 109 // .getResourceAsStream("/" + "example.odf")), 110 // LayoutContextImpl.getDefaultLayoutContext())); 111 // Assert.assertNotNull(MathBaseFactory.getMathBaseFactory() 112 // .createMathBase( 113 // new StreamSource(MathBaseTest.class 114 // .getResourceAsStream("/" + "example1.mml")), 115 // LayoutContextImpl.getDefaultLayoutContext())); 116 } 117 118 }