You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2011/05/15 22:57:56 UTC
svn commit: r1103540 - in
/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser: odf/
odf/ODFParserTest.java odf/OpenOfficeParserTest.java opendocument/
Author: nick
Date: Sun May 15 20:57:55 2011
New Revision: 1103540
URL: http://svn.apache.org/viewvc?rev=1103540&view=rev
Log:
TIKA-659 Merge the ODF parser tests, and put them in the new package
Added:
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/
- copied from r1103332, tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/opendocument/
Removed:
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/OpenOfficeParserTest.java
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/opendocument/
Modified:
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java?rev=1103540&r1=1103332&r2=1103540&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java Sun May 15 20:57:55 2011
@@ -14,40 +14,197 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tika.parser.opendocument;
+package org.apache.tika.parser.odf;
import java.io.InputStream;
import junit.framework.TestCase;
import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.parser.opendocument.OpenOfficeParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
-import org.apache.tika.parser.odf.OpenDocumentParser;
-
public class ODFParserTest extends TestCase {
+ /**
+ * For now, allow us to run some tests against both
+ * the old and the new parser
+ */
+ private Parser[] getParsers() {
+ return new Parser[] {
+ new OpenDocumentParser(),
+ new OpenOfficeParser()
+ };
+ }
- public void testXMLParser() throws Exception {
- InputStream input = ODFParserTest.class.getResourceAsStream(
+ public void testOO3() throws Exception {
+ for (Parser parser : getParsers()) {
+ InputStream input = ODFParserTest.class.getResourceAsStream(
"/test-documents/testODFwithOOo3.odt");
- try {
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- new OpenDocumentParser().parse(input, handler, metadata);
-
- assertEquals(
- "application/vnd.oasis.opendocument.text",
- metadata.get(Metadata.CONTENT_TYPE));
-
- String content = handler.toString();
- assertTrue(content.contains("Tika is part of the Lucene project."));
- assertTrue(content.contains("Solr"));
- assertTrue(content.contains("one embedded"));
- assertTrue(content.contains("Rectangle Title"));
- assertTrue(content.contains("a blue background and dark border")); } finally {
- input.close();
- }
+ try {
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ parser.parse(input, handler, metadata, new ParseContext());
+
+ assertEquals(
+ "application/vnd.oasis.opendocument.text",
+ metadata.get(Metadata.CONTENT_TYPE));
+
+ String content = handler.toString();
+ assertTrue(content.contains("Tika is part of the Lucene project."));
+ assertTrue(content.contains("Solr"));
+ assertTrue(content.contains("one embedded"));
+ assertTrue(content.contains("Rectangle Title"));
+ assertTrue(content.contains("a blue background and dark border"));
+ } finally {
+ input.close();
+ }
+ }
}
+ public void testOO2() throws Exception {
+ for (Parser parser : getParsers()) {
+ InputStream input = ODFParserTest.class.getResourceAsStream(
+ "/test-documents/testOpenOffice2.odt");
+ try {
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ parser.parse(input, handler, metadata, new ParseContext());
+
+ assertEquals(
+ "application/vnd.oasis.opendocument.text",
+ metadata.get(Metadata.CONTENT_TYPE));
+ assertEquals("2007-09-14T11:07:10", metadata.get(Metadata.DATE));
+ assertEquals("2007-09-14T11:06:08", metadata.get(Metadata.CREATION_DATE));
+ assertEquals("en-US", metadata.get(Metadata.LANGUAGE));
+ assertEquals("PT1M7S", metadata.get(Metadata.EDIT_TIME));
+ assertEquals(
+ "NeoOffice/2.2$Unix OpenOffice.org_project/680m18$Build-9161",
+ metadata.get("generator"));
+ assertEquals("0", metadata.get("nbTab"));
+ assertEquals("0", metadata.get("nbObject"));
+ assertEquals("0", metadata.get("nbImg"));
+ assertEquals("1", metadata.get("nbPage"));
+ assertEquals("1", metadata.get("nbPara"));
+ assertEquals("14", metadata.get("nbWord"));
+ assertEquals("78", metadata.get("nbCharacter"));
+
+ // Custom metadata tags present but without values
+ assertEquals(null, metadata.get("custom:Info 1"));
+ assertEquals(null, metadata.get("custom:Info 2"));
+ assertEquals(null, metadata.get("custom:Info 3"));
+ assertEquals(null, metadata.get("custom:Info 4"));
+
+ String content = handler.toString();
+ assertTrue(content.contains(
+ "This is a sample Open Office document,"
+ + " written in NeoOffice 2.2.1 for the Mac."));
+ } finally {
+ input.close();
+ }
+ }
+ }
+
+ /**
+ * Similar to {@link #testXMLParser()}, but using a different
+ * OO2 file with different metadata in it
+ */
+ public void testOO2Metadata() throws Exception {
+ InputStream input = ODFParserTest.class.getResourceAsStream(
+ "/test-documents/testOpenOffice2.odf");
+ try {
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ new OpenDocumentParser().parse(input, handler, metadata);
+
+ assertEquals(
+ "application/vnd.oasis.opendocument.formula",
+ metadata.get(Metadata.CONTENT_TYPE));
+ assertEquals(null, metadata.get(Metadata.DATE));
+ assertEquals("2006-01-27T11:55:22", metadata.get(Metadata.CREATION_DATE));
+ assertEquals("The quick brown fox jumps over the lazy dog", metadata.get(Metadata.TITLE));
+ assertEquals("Gym class featuring a brown fox and lazy dog", metadata.get(Metadata.SUBJECT));
+ assertEquals("PT0S", metadata.get(Metadata.EDIT_TIME));
+ assertEquals("1", metadata.get("editing-cycles"));
+ assertEquals(
+ "OpenOffice.org/2.2$Win32 OpenOffice.org_project/680m14$Build-9134",
+ metadata.get("generator"));
+ assertEquals("Pangram, fox, dog", metadata.get(Metadata.KEYWORDS));
+
+ // User defined metadata
+ assertEquals("Text 1", metadata.get("custom:Info 1"));
+ assertEquals("2", metadata.get("custom:Info 2"));
+ assertEquals("false", metadata.get("custom:Info 3"));
+ assertEquals("true", metadata.get("custom:Info 4"));
+
+ // No statistics present
+ assertEquals(null, metadata.get("nbTab"));
+ assertEquals(null, metadata.get("nbObject"));
+ assertEquals(null, metadata.get("nbImg"));
+ assertEquals(null, metadata.get("nbPage"));
+ assertEquals(null, metadata.get("nbPara"));
+ assertEquals(null, metadata.get("nbWord"));
+ assertEquals(null, metadata.get("nbCharacter"));
+
+ // Note - contents of maths files not currently supported
+ String content = handler.toString();
+ assertEquals("", content);
+ } finally {
+ input.close();
+ }
+ }
+
+ /**
+ * Similar to {@link #testXMLParser()}, but using an OO3 file
+ */
+ public void testOO3Metadata() throws Exception {
+ InputStream input = ODFParserTest.class.getResourceAsStream(
+ "/test-documents/testODFwithOOo3.odt");
+ try {
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ new OpenDocumentParser().parse(input, handler, metadata);
+
+ assertEquals(
+ "application/vnd.oasis.opendocument.text",
+ metadata.get(Metadata.CONTENT_TYPE));
+ assertEquals("2009-10-05T21:22:38", metadata.get(Metadata.DATE));
+ assertEquals("2009-10-05T19:04:01", metadata.get(Metadata.CREATION_DATE));
+ assertEquals("Apache Tika", metadata.get(Metadata.TITLE));
+ assertEquals("Test document", metadata.get(Metadata.SUBJECT));
+ assertEquals("A rather complex document", metadata.get(Metadata.DESCRIPTION));
+ assertEquals("Bart Hanssens", metadata.get(Metadata.CREATOR));
+ assertEquals("Bart Hanssens", metadata.get("initial-creator"));
+ assertEquals("2", metadata.get("editing-cycles"));
+ assertEquals("PT02H03M24S", metadata.get(Metadata.EDIT_TIME));
+ assertEquals(
+ "OpenOffice.org/3.1$Unix OpenOffice.org_project/310m19$Build-9420",
+ metadata.get("generator"));
+ assertEquals("Apache, Lucene, Tika", metadata.get(Metadata.KEYWORDS));
+
+ // User defined metadata
+ assertEquals("Bart Hanssens", metadata.get("custom:Editor"));
+ assertEquals(null, metadata.get("custom:Info 2"));
+ assertEquals(null, metadata.get("custom:Info 3"));
+ assertEquals(null, metadata.get("custom:Info 4"));
+
+ // No statistics present
+ assertEquals("0", metadata.get("nbTab"));
+ assertEquals("2", metadata.get("nbObject"));
+ assertEquals("0", metadata.get("nbImg"));
+ assertEquals("2", metadata.get("nbPage"));
+ assertEquals("13", metadata.get("nbPara"));
+ assertEquals("54", metadata.get("nbWord"));
+ assertEquals("351", metadata.get("nbCharacter"));
+
+ String content = handler.toString();
+ assertTrue(content.contains(
+ "Apache Tika Tika is part of the Lucene project."
+ ));
+ } finally {
+ input.close();
+ }
+ }
}
\ No newline at end of file