You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2016/06/29 11:11:17 UTC
[11/39] tika git commit: Convert new lines from windows to unix
http://git-wip-us.apache.org/repos/asf/tika/blob/c7a6bcac/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
----------------------------------------------------------------------
diff --git a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
index dcc6508..6cda282 100644
--- a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
+++ b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
@@ -1,466 +1,466 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tika.parser.iwork;
-
-import static org.apache.tika.TikaTest.assertContains;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.TikaCoreProperties;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.junit.Before;
-import org.junit.Test;
-import org.xml.sax.ContentHandler;
-
-/**
- * Tests if the IWork parser parses the content and metadata properly of the supported formats.
- */
-public class IWorkParserTest {
-
- private IWorkPackageParser iWorkParser;
- private ParseContext parseContext;
-
- @Before
- public void setUp() {
- iWorkParser = new IWorkPackageParser();
- parseContext = new ParseContext();
- parseContext.set(Parser.class, new AutoDetectParser());
- }
-
- /**
- * Check the given InputStream is not closed by the Parser (TIKA-1117).
- *
- * @throws Exception
- */
- @Test
- public void testStreamNotClosed() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
- input.read(); // Will throw an Exception if the stream was already closed.
- }
-
- @Test
- public void testParseKeynote() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- // Make sure enough keys came through
- // (Exact numbers will vary based on composites)
- assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 6);
- List<String> metadataKeys = Arrays.asList(metadata.names());
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.SLIDE_COUNT.getName()));
-// assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Office.SLIDE_COUNT.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
-
- // Check the metadata values
- assertEquals("application/vnd.apple.keynote", metadata.get(Metadata.CONTENT_TYPE));
- assertEquals("3", metadata.get(Metadata.SLIDE_COUNT));
- assertEquals("1024", metadata.get(KeynoteContentHandler.PRESENTATION_WIDTH));
- assertEquals("768", metadata.get(KeynoteContentHandler.PRESENTATION_HEIGHT));
- assertEquals("Tika user", metadata.get(TikaCoreProperties.CREATOR));
- assertEquals("Apache tika", metadata.get(TikaCoreProperties.TITLE));
-
- String content = handler.toString();
- assertContains("A sample presentation", content);
- assertContains("For the Apache Tika project", content);
- assertContains("Slide 1", content);
- assertContains("Some random text for the sake of testability.", content);
- assertContains("A nice comment", content);
- assertContains("A nice note", content);
-
- // test table data
- assertContains("Cell one", content);
- assertContains("Cell two", content);
- assertContains("Cell three", content);
- assertContains("Cell four", content);
- assertContains("Cell 5", content);
- assertContains("Cell six", content);
- assertContains("7", content);
- assertContains("Cell eight", content);
- assertContains("5/5/1985", content);
- }
-
- // TIKA-910
- @Test
- public void testKeynoteTextBoxes() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testTextBoxes.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- assertTrue(content.replaceAll("\\s+", " ").contains("text1 text2 text3"));
- }
-
- // TIKA-910
- @Test
- public void testKeynoteBulletPoints() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testBulletPoints.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- assertTrue(content.replaceAll("\\s+", " ").contains("bullet point 1 bullet point 2 bullet point 3"));
- }
-
- // TIKA-923
- @Test
- public void testKeynoteTables() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testTables.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- content = content.replaceAll("\\s+", " ");
- assertContains("row 1 row 2 row 3", content);
- }
-
- // TIKA-923
- @Test
- public void testKeynoteMasterSlideTable() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testMasterSlideTable.key");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- content = content.replaceAll("\\s+", " ");
- assertContains("master row 1", content);
- assertContains("master row 2", content);
- assertContains("master row 3", content);
- }
-
- @Test
- public void testParsePages() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPages.pages");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- // Make sure enough keys came through
- // (Exact numbers will vary based on composites)
- assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 50);
- List<String> metadataKeys = Arrays.asList(metadata.names());
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.PAGE_COUNT.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.LAST_MODIFIED.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.LANGUAGE));
-
- // Check the metadata values
- assertEquals("application/vnd.apple.pages", metadata.get(Metadata.CONTENT_TYPE));
- assertEquals("Tika user", metadata.get(TikaCoreProperties.CREATOR));
- assertEquals("Apache tika", metadata.get(TikaCoreProperties.TITLE));
- assertEquals("2010-05-09T21:34:38+0200", metadata.get(Metadata.CREATION_DATE));
- assertEquals("2010-05-09T23:50:36+0200", metadata.get(Metadata.LAST_MODIFIED));
- assertEquals("en", metadata.get(TikaCoreProperties.LANGUAGE));
- assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
-
- String content = handler.toString();
-
- // text on page 1
- assertContains("Sample pages document", content);
- assertContains("Some plain text to parse.", content);
- assertContains("Cell one", content);
- assertContains("Cell two", content);
- assertContains("Cell three", content);
- assertContains("Cell four", content);
- assertContains("Cell five", content);
- assertContains("Cell six", content);
- assertContains("Cell seven", content);
- assertContains("Cell eight", content);
- assertContains("Cell nine", content);
- assertContains("Both Pages 1.x and Keynote 2.x", content); // ...
-
- // text on page 2
- assertContains("A second page....", content);
- assertContains("Extensible Markup Language", content); // ...
- }
-
- // TIKA-904
- @Test
- public void testPagesLayoutMode() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesLayout.pages");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- assertContains("text box 1 - here is some text", content);
- assertContains("created in a text box in layout mode", content);
- assertContains("text box 2 - more text!@!$@#", content);
- assertContains("this is text inside of a green box", content);
- assertContains("text inside of a green circle", content);
- }
-
- @Test
- public void testParseNumbers() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testNumbers.numbers");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- // Make sure enough keys came through
- // (Exact numbers will vary based on composites)
- assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 8);
- List<String> metadataKeys = Arrays.asList(metadata.names());
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.PAGE_COUNT.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.COMMENTS.getName()));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.TITLE));
- assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
-
- // Check the metadata values
- assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
- assertEquals("Tika User", metadata.get(TikaCoreProperties.CREATOR));
- assertEquals("Account checking", metadata.get(TikaCoreProperties.TITLE));
- assertEquals("a comment", metadata.get(TikaCoreProperties.COMMENTS));
-
- String content = handler.toString();
- assertContains("Category", content);
- assertContains("Home", content);
- assertContains("-226", content);
- assertContains("-137.5", content);
- assertContains("Checking Account: 300545668", content);
- assertContains("4650", content);
- assertContains("Credit Card", content);
- assertContains("Groceries", content);
- assertContains("-210", content);
- assertContains("Food", content);
- assertContains("Try adding your own account transactions to this table.", content);
- }
-
- // TIKA- 924
- @Test
- public void testParseNumbersTableNames() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/tableNames.numbers");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
- String content = handler.toString();
- assertContains("This is the main table", content);
- }
-
- @Test
- public void testParseNumbersTableHeaders() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/tableHeaders.numbers");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- String content = handler.toString();
- for(int header=1;header<=5;header++) {
- assertContains("header" + header, content);
- }
- for(int row=1;row<=3;row++) {
- assertContains("row" + row, content);
- }
- }
-
- /**
- * We don't currently support password protected Pages files, as
- * we don't know how the encryption works (it's not regular Zip
- * Encryption). See TIKA-903 for details
- */
- @Test
- public void testParsePagesPasswordProtected() throws Exception {
- // Document password is "tika", but we can't use that yet...
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesPwdProtected.pages");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, metadata, parseContext);
-
- // Content will be empty
- String content = handler.toString();
- assertEquals("", content);
-
- // Will have been identified as encrypted
- assertEquals("application/x-tika-iworks-protected", metadata.get(Metadata.CONTENT_TYPE));
- }
-
- /**
- * Check we get headers, footers and footnotes from Pages
- */
- @Test
- public void testParsePagesHeadersFootersFootnotes() throws Exception {
- String footnote = "Footnote: Do a lot of people really use iWork?!?!";
- String header = "THIS IS SOME HEADER TEXT";
- String footer = "THIS IS SOME FOOTER TEXT\t1";
- String footer2 = "THIS IS SOME FOOTER TEXT\t2";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersFootnotes.pages");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, metadata, parseContext);
- String contents = handler.toString();
-
- // Check regular text
- assertContains("Both Pages 1.x", contents); // P1
- assertContains("understanding the Pages document", contents); // P1
- assertContains("should be page 2", contents); // P2
-
- // Check for headers, footers and footnotes
- assertContains(header, contents);
- assertContains(footer, contents);
- assertContains(footer2, contents);
- assertContains(footnote, contents);
- }
-
- /**
- * Check we get upper-case Roman numerals within the footer for AutoPageNumber.
- */
- @Test
- public void testParsePagesHeadersFootersRomanUpper() throws Exception {
- String header = "THIS IS SOME HEADER TEXT";
- String footer = "THIS IS SOME FOOTER TEXT\tI";
- String footer2 = "THIS IS SOME FOOTER TEXT\tII";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersRomanUpper.pages");
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, new Metadata(), parseContext);
- String contents = handler.toString();
-
- // Check for headers, footers and footnotes
- assertContains(header, contents);
- assertContains(footer, contents);
- assertContains(footer2, contents);
- }
-
- /**
- * Check we get lower-case Roman numerals within the footer for AutoPageNumber.
- */
- @Test
- public void testParsePagesHeadersFootersRomanLower() throws Exception {
- String header = "THIS IS SOME HEADER TEXT";
- String footer = "THIS IS SOME FOOTER TEXT\ti";
- String footer2 = "THIS IS SOME FOOTER TEXT\tii";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersRomanLower.pages");
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, new Metadata(), parseContext);
- String contents = handler.toString();
-
- // Check for headers, footers and footnotes
- assertContains(header, contents);
- assertContains(footer, contents);
- assertContains(footer2, contents);
- }
-
- /**
- * Check we get upper-case alpha-numeric letters within the footer for AutoPageNumber.
- */
- @Test
- public void testParsePagesHeadersAlphaUpper() throws Exception {
- String header = "THIS IS SOME HEADER TEXT\tA";
- String footer = "THIS IS SOME FOOTER TEXT\tA";
- String footer2 = "THIS IS SOME FOOTER TEXT\tB";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersAlphaUpper.pages");
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, new Metadata(), parseContext);
- String contents = handler.toString();
-
- // Check for headers, footers and footnotes
- assertContains(header, contents);
- assertContains(footer, contents);
- assertContains(footer2, contents);
- }
-
- /**
- * Check we get lower-case alpha-numeric letters within the footer for AutoPageNumber.
- */
- @Test
- public void testParsePagesHeadersAlphaLower() throws Exception {
- String header = "THIS IS SOME HEADER TEXT";
- String footer = "THIS IS SOME FOOTER TEXT\ta";
- String footer2 = "THIS IS SOME FOOTER TEXT\tb";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersAlphaLower.pages");
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, new Metadata(), parseContext);
- String contents = handler.toString();
-
- // Check for headers, footers and footnotes
- assertContains(header, contents);
- assertContains(footer, contents);
- assertContains(footer2, contents);
- }
-
- /**
- * Check we get annotations (eg comments) from Pages
- */
- @Test
- public void testParsePagesAnnotations() throws Exception {
- String commentA = "comment about the APXL file";
- String commentB = "comment about UIMA";
-
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesComments.pages");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
-
- iWorkParser.parse(input, handler, metadata, parseContext);
- String contents = handler.toString();
-
- // Check regular text
- assertContains("Both Pages 1.x", contents); // P1
- assertContains("understanding the Pages document", contents); // P1
- assertContains("should be page 2", contents); // P2
-
- // Check for comments
- assertContains(commentA, contents);
- assertContains(commentB, contents);
- }
-
- // TIKA-918
- @Test
- public void testNumbersExtractChartNames() throws Exception {
- InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testNumbersCharts.numbers");
- Metadata metadata = new Metadata();
- ContentHandler handler = new BodyContentHandler();
- iWorkParser.parse(input, handler, metadata, parseContext);
- String contents = handler.toString();
- assertContains("Expenditure by Category", contents);
- assertContains("Currency Chart name", contents);
- assertContains("Chart 2", contents);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tika.parser.iwork;
+
+import static org.apache.tika.TikaTest.assertContains;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.sax.BodyContentHandler;
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.ContentHandler;
+
+/**
+ * Tests if the IWork parser parses the content and metadata properly of the supported formats.
+ */
+public class IWorkParserTest {
+
+ private IWorkPackageParser iWorkParser;
+ private ParseContext parseContext;
+
+ @Before
+ public void setUp() {
+ iWorkParser = new IWorkPackageParser();
+ parseContext = new ParseContext();
+ parseContext.set(Parser.class, new AutoDetectParser());
+ }
+
+ /**
+ * Check the given InputStream is not closed by the Parser (TIKA-1117).
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testStreamNotClosed() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+ input.read(); // Will throw an Exception if the stream was already closed.
+ }
+
+ @Test
+ public void testParseKeynote() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ // Make sure enough keys came through
+ // (Exact numbers will vary based on composites)
+ assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 6);
+ List<String> metadataKeys = Arrays.asList(metadata.names());
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.SLIDE_COUNT.getName()));
+// assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Office.SLIDE_COUNT.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
+
+ // Check the metadata values
+ assertEquals("application/vnd.apple.keynote", metadata.get(Metadata.CONTENT_TYPE));
+ assertEquals("3", metadata.get(Metadata.SLIDE_COUNT));
+ assertEquals("1024", metadata.get(KeynoteContentHandler.PRESENTATION_WIDTH));
+ assertEquals("768", metadata.get(KeynoteContentHandler.PRESENTATION_HEIGHT));
+ assertEquals("Tika user", metadata.get(TikaCoreProperties.CREATOR));
+ assertEquals("Apache tika", metadata.get(TikaCoreProperties.TITLE));
+
+ String content = handler.toString();
+ assertContains("A sample presentation", content);
+ assertContains("For the Apache Tika project", content);
+ assertContains("Slide 1", content);
+ assertContains("Some random text for the sake of testability.", content);
+ assertContains("A nice comment", content);
+ assertContains("A nice note", content);
+
+ // test table data
+ assertContains("Cell one", content);
+ assertContains("Cell two", content);
+ assertContains("Cell three", content);
+ assertContains("Cell four", content);
+ assertContains("Cell 5", content);
+ assertContains("Cell six", content);
+ assertContains("7", content);
+ assertContains("Cell eight", content);
+ assertContains("5/5/1985", content);
+ }
+
+ // TIKA-910
+ @Test
+ public void testKeynoteTextBoxes() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testTextBoxes.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ assertTrue(content.replaceAll("\\s+", " ").contains("text1 text2 text3"));
+ }
+
+ // TIKA-910
+ @Test
+ public void testKeynoteBulletPoints() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testBulletPoints.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ assertTrue(content.replaceAll("\\s+", " ").contains("bullet point 1 bullet point 2 bullet point 3"));
+ }
+
+ // TIKA-923
+ @Test
+ public void testKeynoteTables() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testTables.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ content = content.replaceAll("\\s+", " ");
+ assertContains("row 1 row 2 row 3", content);
+ }
+
+ // TIKA-923
+ @Test
+ public void testKeynoteMasterSlideTable() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testMasterSlideTable.key");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ content = content.replaceAll("\\s+", " ");
+ assertContains("master row 1", content);
+ assertContains("master row 2", content);
+ assertContains("master row 3", content);
+ }
+
+ @Test
+ public void testParsePages() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPages.pages");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ // Make sure enough keys came through
+ // (Exact numbers will vary based on composites)
+ assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 50);
+ List<String> metadataKeys = Arrays.asList(metadata.names());
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.PAGE_COUNT.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.LAST_MODIFIED.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.LANGUAGE));
+
+ // Check the metadata values
+ assertEquals("application/vnd.apple.pages", metadata.get(Metadata.CONTENT_TYPE));
+ assertEquals("Tika user", metadata.get(TikaCoreProperties.CREATOR));
+ assertEquals("Apache tika", metadata.get(TikaCoreProperties.TITLE));
+ assertEquals("2010-05-09T21:34:38+0200", metadata.get(Metadata.CREATION_DATE));
+ assertEquals("2010-05-09T23:50:36+0200", metadata.get(Metadata.LAST_MODIFIED));
+ assertEquals("en", metadata.get(TikaCoreProperties.LANGUAGE));
+ assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
+
+ String content = handler.toString();
+
+ // text on page 1
+ assertContains("Sample pages document", content);
+ assertContains("Some plain text to parse.", content);
+ assertContains("Cell one", content);
+ assertContains("Cell two", content);
+ assertContains("Cell three", content);
+ assertContains("Cell four", content);
+ assertContains("Cell five", content);
+ assertContains("Cell six", content);
+ assertContains("Cell seven", content);
+ assertContains("Cell eight", content);
+ assertContains("Cell nine", content);
+ assertContains("Both Pages 1.x and Keynote 2.x", content); // ...
+
+ // text on page 2
+ assertContains("A second page....", content);
+ assertContains("Extensible Markup Language", content); // ...
+ }
+
+ // TIKA-904
+ @Test
+ public void testPagesLayoutMode() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesLayout.pages");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ assertContains("text box 1 - here is some text", content);
+ assertContains("created in a text box in layout mode", content);
+ assertContains("text box 2 - more text!@!$@#", content);
+ assertContains("this is text inside of a green box", content);
+ assertContains("text inside of a green circle", content);
+ }
+
+ @Test
+ public void testParseNumbers() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testNumbers.numbers");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ // Make sure enough keys came through
+ // (Exact numbers will vary based on composites)
+ assertTrue("Insufficient metadata found " + metadata.size(), metadata.size() >= 8);
+ List<String> metadataKeys = Arrays.asList(metadata.names());
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.CONTENT_TYPE));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.PAGE_COUNT.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.CREATOR.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.COMMENTS.getName()));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(Metadata.TITLE));
+ assertTrue("Metadata not found in " + metadataKeys, metadataKeys.contains(TikaCoreProperties.TITLE.getName()));
+
+ // Check the metadata values
+ assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
+ assertEquals("Tika User", metadata.get(TikaCoreProperties.CREATOR));
+ assertEquals("Account checking", metadata.get(TikaCoreProperties.TITLE));
+ assertEquals("a comment", metadata.get(TikaCoreProperties.COMMENTS));
+
+ String content = handler.toString();
+ assertContains("Category", content);
+ assertContains("Home", content);
+ assertContains("-226", content);
+ assertContains("-137.5", content);
+ assertContains("Checking Account: 300545668", content);
+ assertContains("4650", content);
+ assertContains("Credit Card", content);
+ assertContains("Groceries", content);
+ assertContains("-210", content);
+ assertContains("Food", content);
+ assertContains("Try adding your own account transactions to this table.", content);
+ }
+
+ // TIKA- 924
+ @Test
+ public void testParseNumbersTableNames() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/tableNames.numbers");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+ String content = handler.toString();
+ assertContains("This is the main table", content);
+ }
+
+ @Test
+ public void testParseNumbersTableHeaders() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/tableHeaders.numbers");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ String content = handler.toString();
+ for(int header=1;header<=5;header++) {
+ assertContains("header" + header, content);
+ }
+ for(int row=1;row<=3;row++) {
+ assertContains("row" + row, content);
+ }
+ }
+
+ /**
+ * We don't currently support password protected Pages files, as
+ * we don't know how the encryption works (it's not regular Zip
+ * Encryption). See TIKA-903 for details
+ */
+ @Test
+ public void testParsePagesPasswordProtected() throws Exception {
+ // Document password is "tika", but we can't use that yet...
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesPwdProtected.pages");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, metadata, parseContext);
+
+ // Content will be empty
+ String content = handler.toString();
+ assertEquals("", content);
+
+ // Will have been identified as encrypted
+ assertEquals("application/x-tika-iworks-protected", metadata.get(Metadata.CONTENT_TYPE));
+ }
+
+ /**
+ * Check we get headers, footers and footnotes from Pages
+ */
+ @Test
+ public void testParsePagesHeadersFootersFootnotes() throws Exception {
+ String footnote = "Footnote: Do a lot of people really use iWork?!?!";
+ String header = "THIS IS SOME HEADER TEXT";
+ String footer = "THIS IS SOME FOOTER TEXT\t1";
+ String footer2 = "THIS IS SOME FOOTER TEXT\t2";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersFootnotes.pages");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, metadata, parseContext);
+ String contents = handler.toString();
+
+ // Check regular text
+ assertContains("Both Pages 1.x", contents); // P1
+ assertContains("understanding the Pages document", contents); // P1
+ assertContains("should be page 2", contents); // P2
+
+ // Check for headers, footers and footnotes
+ assertContains(header, contents);
+ assertContains(footer, contents);
+ assertContains(footer2, contents);
+ assertContains(footnote, contents);
+ }
+
+ /**
+ * Check we get upper-case Roman numerals within the footer for AutoPageNumber.
+ */
+ @Test
+ public void testParsePagesHeadersFootersRomanUpper() throws Exception {
+ String header = "THIS IS SOME HEADER TEXT";
+ String footer = "THIS IS SOME FOOTER TEXT\tI";
+ String footer2 = "THIS IS SOME FOOTER TEXT\tII";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersRomanUpper.pages");
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, new Metadata(), parseContext);
+ String contents = handler.toString();
+
+ // Check for headers, footers and footnotes
+ assertContains(header, contents);
+ assertContains(footer, contents);
+ assertContains(footer2, contents);
+ }
+
+ /**
+ * Check we get lower-case Roman numerals within the footer for AutoPageNumber.
+ */
+ @Test
+ public void testParsePagesHeadersFootersRomanLower() throws Exception {
+ String header = "THIS IS SOME HEADER TEXT";
+ String footer = "THIS IS SOME FOOTER TEXT\ti";
+ String footer2 = "THIS IS SOME FOOTER TEXT\tii";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersRomanLower.pages");
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, new Metadata(), parseContext);
+ String contents = handler.toString();
+
+ // Check for headers, footers and footnotes
+ assertContains(header, contents);
+ assertContains(footer, contents);
+ assertContains(footer2, contents);
+ }
+
+ /**
+ * Check we get upper-case alpha-numeric letters within the footer for AutoPageNumber.
+ */
+ @Test
+ public void testParsePagesHeadersAlphaUpper() throws Exception {
+ String header = "THIS IS SOME HEADER TEXT\tA";
+ String footer = "THIS IS SOME FOOTER TEXT\tA";
+ String footer2 = "THIS IS SOME FOOTER TEXT\tB";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersAlphaUpper.pages");
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, new Metadata(), parseContext);
+ String contents = handler.toString();
+
+ // Check for headers, footers and footnotes
+ assertContains(header, contents);
+ assertContains(footer, contents);
+ assertContains(footer2, contents);
+ }
+
+ /**
+ * Check we get lower-case alpha-numeric letters within the footer for AutoPageNumber.
+ */
+ @Test
+ public void testParsePagesHeadersAlphaLower() throws Exception {
+ String header = "THIS IS SOME HEADER TEXT";
+ String footer = "THIS IS SOME FOOTER TEXT\ta";
+ String footer2 = "THIS IS SOME FOOTER TEXT\tb";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesHeadersFootersAlphaLower.pages");
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, new Metadata(), parseContext);
+ String contents = handler.toString();
+
+ // Check for headers, footers and footnotes
+ assertContains(header, contents);
+ assertContains(footer, contents);
+ assertContains(footer2, contents);
+ }
+
+ /**
+ * Check we get annotations (eg comments) from Pages
+ */
+ @Test
+ public void testParsePagesAnnotations() throws Exception {
+ String commentA = "comment about the APXL file";
+ String commentB = "comment about UIMA";
+
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testPagesComments.pages");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+
+ iWorkParser.parse(input, handler, metadata, parseContext);
+ String contents = handler.toString();
+
+ // Check regular text
+ assertContains("Both Pages 1.x", contents); // P1
+ assertContains("understanding the Pages document", contents); // P1
+ assertContains("should be page 2", contents); // P2
+
+ // Check for comments
+ assertContains(commentA, contents);
+ assertContains(commentB, contents);
+ }
+
+ // TIKA-918
+ @Test
+ public void testNumbersExtractChartNames() throws Exception {
+ InputStream input = IWorkParserTest.class.getResourceAsStream("/test-documents/testNumbersCharts.numbers");
+ Metadata metadata = new Metadata();
+ ContentHandler handler = new BodyContentHandler();
+ iWorkParser.parse(input, handler, metadata, parseContext);
+ String contents = handler.toString();
+ assertContains("Expenditure by Category", contents);
+ assertContains("Currency Chart name", contents);
+ assertContains("Chart 2", contents);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tika/blob/c7a6bcac/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
----------------------------------------------------------------------
diff --git a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
index 95bd87c..6fad531 100644
--- a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
+++ b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/AbstractPkgTest.java
@@ -1,93 +1,93 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tika.TikaTest;
-import org.apache.tika.exception.TikaException;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.TikaCoreProperties;
-import org.apache.tika.mime.MediaType;
-import org.apache.tika.parser.AbstractParser;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.parser.Parser;
-import org.junit.Before;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-/**
- * Parent class for all Package based Test cases
- */
-public abstract class AbstractPkgTest extends TikaTest {
- protected ParseContext trackingContext;
- protected ParseContext recursingContext;
-
- protected Parser autoDetectParser;
- protected EmbeddedTrackingParser tracker;
-
- @Before
- public void setUp() throws Exception {
- tracker = new EmbeddedTrackingParser();
- trackingContext = new ParseContext();
- trackingContext.set(Parser.class, tracker);
-
- autoDetectParser = new AutoDetectParser();
- recursingContext = new ParseContext();
- recursingContext.set(Parser.class, autoDetectParser);
- }
-
-
- @SuppressWarnings("serial")
- protected static class EmbeddedTrackingParser extends AbstractParser {
- protected List<String> filenames = new ArrayList<String>();
- protected List<String> mediatypes = new ArrayList<String>();
- protected List<String> createdAts = new ArrayList<String>();
- protected List<String> modifiedAts = new ArrayList<String>();
- protected byte[] lastSeenStart;
-
- public void reset() {
- filenames.clear();
- mediatypes.clear();
- createdAts.clear();
- modifiedAts.clear();
- }
-
- public Set<MediaType> getSupportedTypes(ParseContext context) {
- // Cheat!
- return (new AutoDetectParser()).getSupportedTypes(context);
- }
-
- public void parse(InputStream stream, ContentHandler handler,
- Metadata metadata, ParseContext context) throws IOException,
- SAXException, TikaException {
- filenames.add(metadata.get(Metadata.RESOURCE_NAME_KEY));
- mediatypes.add(metadata.get(Metadata.CONTENT_TYPE));
- createdAts.add(metadata.get(TikaCoreProperties.CREATED));
- modifiedAts.add(metadata.get(TikaCoreProperties.MODIFIED));
-
- lastSeenStart = new byte[32];
- stream.read(lastSeenStart);
- }
-
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.tika.TikaTest;
+import org.apache.tika.exception.TikaException;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
+import org.apache.tika.mime.MediaType;
+import org.apache.tika.parser.AbstractParser;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
+import org.junit.Before;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+/**
+ * Parent class for all Package based Test cases
+ */
+public abstract class AbstractPkgTest extends TikaTest {
+ protected ParseContext trackingContext;
+ protected ParseContext recursingContext;
+
+ protected Parser autoDetectParser;
+ protected EmbeddedTrackingParser tracker;
+
+ @Before
+ public void setUp() throws Exception {
+ tracker = new EmbeddedTrackingParser();
+ trackingContext = new ParseContext();
+ trackingContext.set(Parser.class, tracker);
+
+ autoDetectParser = new AutoDetectParser();
+ recursingContext = new ParseContext();
+ recursingContext.set(Parser.class, autoDetectParser);
+ }
+
+
+ @SuppressWarnings("serial")
+ protected static class EmbeddedTrackingParser extends AbstractParser {
+ protected List<String> filenames = new ArrayList<String>();
+ protected List<String> mediatypes = new ArrayList<String>();
+ protected List<String> createdAts = new ArrayList<String>();
+ protected List<String> modifiedAts = new ArrayList<String>();
+ protected byte[] lastSeenStart;
+
+ public void reset() {
+ filenames.clear();
+ mediatypes.clear();
+ createdAts.clear();
+ modifiedAts.clear();
+ }
+
+ public Set<MediaType> getSupportedTypes(ParseContext context) {
+ // Cheat!
+ return (new AutoDetectParser()).getSupportedTypes(context);
+ }
+
+ public void parse(InputStream stream, ContentHandler handler,
+ Metadata metadata, ParseContext context) throws IOException,
+ SAXException, TikaException {
+ filenames.add(metadata.get(Metadata.RESOURCE_NAME_KEY));
+ mediatypes.add(metadata.get(Metadata.CONTENT_TYPE));
+ createdAts.add(metadata.get(TikaCoreProperties.CREATED));
+ modifiedAts.add(metadata.get(TikaCoreProperties.MODIFIED));
+
+ lastSeenStart = new byte[32];
+ stream.read(lastSeenStart);
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/tika/blob/c7a6bcac/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java
----------------------------------------------------------------------
diff --git a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java
index 3dc01f6..42b60da 100644
--- a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java
+++ b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java
@@ -1,89 +1,89 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
-
-import static java.nio.charset.StandardCharsets.US_ASCII;
-import static org.junit.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.junit.Test;
-import org.xml.sax.ContentHandler;
-
-/**
- * Test case for parsing bzip2 files.
- */
-public class Bzip2ParserTest extends AbstractPkgTest {
-
- @Test
- public void testBzip2Parsing() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = Bzip2ParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tbz2")) {
- parser.parse(stream, handler, metadata, recursingContext);
- }
-
- assertEquals("application/x-bzip2", metadata.get(Metadata.CONTENT_TYPE));
- String content = handler.toString();
- assertContains("test-documents/testEXCEL.xls", content);
- assertContains("test-documents/testHTML.html", content);
- assertContains("test-documents/testOpenOffice2.odt", content);
- assertContains("test-documents/testPDF.pdf", content);
- assertContains("test-documents/testPPT.ppt", content);
- assertContains("test-documents/testRTF.rtf", content);
- assertContains("test-documents/testTXT.txt", content);
- assertContains("test-documents/testWORD.doc", content);
- assertContains("test-documents/testXML.xml", content);
- }
-
-
- /**
- * Tests that the ParseContext parser is correctly
- * fired for all the embedded entries.
- */
- @Test
- public void testEmbedded() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = ZipParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tbz2")) {
- parser.parse(stream, handler, metadata, trackingContext);
- }
-
- // Should find a single entry, for the (compressed) tar file
- assertEquals(1, tracker.filenames.size());
- assertEquals(1, tracker.mediatypes.size());
- assertEquals(1, tracker.modifiedAts.size());
-
- assertEquals(null, tracker.filenames.get(0));
- assertEquals(null, tracker.mediatypes.get(0));
- assertEquals(null, tracker.createdAts.get(0));
- assertEquals(null, tracker.modifiedAts.get(0));
-
- // Tar file starts with the directory name
- assertEquals("test-documents/", new String(tracker.lastSeenStart, 0, 15, US_ASCII));
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
+
+import static java.nio.charset.StandardCharsets.US_ASCII;
+import static org.junit.Assert.assertEquals;
+
+import java.io.InputStream;
+
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.sax.BodyContentHandler;
+import org.junit.Test;
+import org.xml.sax.ContentHandler;
+
+/**
+ * Test case for parsing bzip2 files.
+ */
+public class Bzip2ParserTest extends AbstractPkgTest {
+
+ @Test
+ public void testBzip2Parsing() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = Bzip2ParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tbz2")) {
+ parser.parse(stream, handler, metadata, recursingContext);
+ }
+
+ assertEquals("application/x-bzip2", metadata.get(Metadata.CONTENT_TYPE));
+ String content = handler.toString();
+ assertContains("test-documents/testEXCEL.xls", content);
+ assertContains("test-documents/testHTML.html", content);
+ assertContains("test-documents/testOpenOffice2.odt", content);
+ assertContains("test-documents/testPDF.pdf", content);
+ assertContains("test-documents/testPPT.ppt", content);
+ assertContains("test-documents/testRTF.rtf", content);
+ assertContains("test-documents/testTXT.txt", content);
+ assertContains("test-documents/testWORD.doc", content);
+ assertContains("test-documents/testXML.xml", content);
+ }
+
+
+ /**
+ * Tests that the ParseContext parser is correctly
+ * fired for all the embedded entries.
+ */
+ @Test
+ public void testEmbedded() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tbz2")) {
+ parser.parse(stream, handler, metadata, trackingContext);
+ }
+
+ // Should find a single entry, for the (compressed) tar file
+ assertEquals(1, tracker.filenames.size());
+ assertEquals(1, tracker.mediatypes.size());
+ assertEquals(1, tracker.modifiedAts.size());
+
+ assertEquals(null, tracker.filenames.get(0));
+ assertEquals(null, tracker.mediatypes.get(0));
+ assertEquals(null, tracker.createdAts.get(0));
+ assertEquals(null, tracker.modifiedAts.get(0));
+
+ // Tar file starts with the directory name
+ assertEquals("test-documents/", new String(tracker.lastSeenStart, 0, 15, US_ASCII));
+ }
+}
http://git-wip-us.apache.org/repos/asf/tika/blob/c7a6bcac/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java
----------------------------------------------------------------------
diff --git a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java
index 0439a38..378a0fc 100644
--- a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java
+++ b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java
@@ -1,102 +1,102 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
-
-import static java.nio.charset.StandardCharsets.US_ASCII;
-import static org.junit.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.junit.Test;
-import org.xml.sax.ContentHandler;
-
-/**
- * Test case for parsing gzip files.
- */
-public class GzipParserTest extends AbstractPkgTest {
-
- @Test
- public void testGzipParsing() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = GzipParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tgz")) {
- parser.parse(stream, handler, metadata, recursingContext);
- }
-
- assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
- String content = handler.toString();
- assertContains("test-documents/testEXCEL.xls", content);
- assertContains("test-documents/testHTML.html", content);
- assertContains("test-documents/testOpenOffice2.odt", content);
- assertContains("test-documents/testPDF.pdf", content);
- assertContains("test-documents/testPPT.ppt", content);
- assertContains("test-documents/testRTF.rtf", content);
- assertContains("test-documents/testTXT.txt", content);
- assertContains("test-documents/testWORD.doc", content);
- assertContains("test-documents/testXML.xml", content);
- }
-
- /**
- * Tests that the ParseContext parser is correctly
- * fired for all the embedded entries.
- */
- @Test
- public void testEmbedded() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = ZipParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tgz")) {
- parser.parse(stream, handler, metadata, trackingContext);
- }
-
- // Should find a single entry, for the (compressed) tar file
- assertEquals(1, tracker.filenames.size());
- assertEquals(1, tracker.mediatypes.size());
- assertEquals(1, tracker.modifiedAts.size());
-
- assertEquals(null, tracker.filenames.get(0));
- assertEquals(null, tracker.mediatypes.get(0));
- assertEquals(null, tracker.modifiedAts.get(0));
-
- // Tar file starts with the directory name
- assertEquals("test-documents/", new String(tracker.lastSeenStart, 0, 15, US_ASCII));
- }
-
- @Test
- public void testSvgzParsing() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = GzipParserTest.class.getResourceAsStream(
- "/test-documents/testSVG.svgz")) {
- parser.parse(stream, handler, metadata, recursingContext);
- }
-
- assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
+
+import static java.nio.charset.StandardCharsets.US_ASCII;
+import static org.junit.Assert.assertEquals;
+
+import java.io.InputStream;
+
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.sax.BodyContentHandler;
+import org.junit.Test;
+import org.xml.sax.ContentHandler;
+
+/**
+ * Test case for parsing gzip files.
+ */
+public class GzipParserTest extends AbstractPkgTest {
+
+ @Test
+ public void testGzipParsing() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = GzipParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tgz")) {
+ parser.parse(stream, handler, metadata, recursingContext);
+ }
+
+ assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
+ String content = handler.toString();
+ assertContains("test-documents/testEXCEL.xls", content);
+ assertContains("test-documents/testHTML.html", content);
+ assertContains("test-documents/testOpenOffice2.odt", content);
+ assertContains("test-documents/testPDF.pdf", content);
+ assertContains("test-documents/testPPT.ppt", content);
+ assertContains("test-documents/testRTF.rtf", content);
+ assertContains("test-documents/testTXT.txt", content);
+ assertContains("test-documents/testWORD.doc", content);
+ assertContains("test-documents/testXML.xml", content);
+ }
+
+ /**
+ * Tests that the ParseContext parser is correctly
+ * fired for all the embedded entries.
+ */
+ @Test
+ public void testEmbedded() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tgz")) {
+ parser.parse(stream, handler, metadata, trackingContext);
+ }
+
+ // Should find a single entry, for the (compressed) tar file
+ assertEquals(1, tracker.filenames.size());
+ assertEquals(1, tracker.mediatypes.size());
+ assertEquals(1, tracker.modifiedAts.size());
+
+ assertEquals(null, tracker.filenames.get(0));
+ assertEquals(null, tracker.mediatypes.get(0));
+ assertEquals(null, tracker.modifiedAts.get(0));
+
+ // Tar file starts with the directory name
+ assertEquals("test-documents/", new String(tracker.lastSeenStart, 0, 15, US_ASCII));
+ }
+
+ @Test
+ public void testSvgzParsing() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = GzipParserTest.class.getResourceAsStream(
+ "/test-documents/testSVG.svgz")) {
+ parser.parse(stream, handler, metadata, recursingContext);
+ }
+
+ assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/tika/blob/c7a6bcac/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java
----------------------------------------------------------------------
diff --git a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java
index 95126ed..35ab265 100644
--- a/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java
+++ b/tika-parser-modules/tika-parser-package-module/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java
@@ -1,105 +1,105 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.junit.Test;
-import org.xml.sax.ContentHandler;
-
-/**
- * Test case for parsing tar files.
- */
-public class TarParserTest extends AbstractPkgTest {
-
- @Test
- public void testTarParsing() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = TarParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tar")) {
- parser.parse(stream, handler, metadata, recursingContext);
- }
-
- assertEquals("application/x-tar", metadata.get(Metadata.CONTENT_TYPE));
- String content = handler.toString();
- assertContains("test-documents/testEXCEL.xls", content);
- assertContains("test-documents/testHTML.html", content);
- assertContains("test-documents/testOpenOffice2.odt", content);
- assertContains("test-documents/testPDF.pdf", content);
- assertContains("test-documents/testPPT.ppt", content);
- assertContains("test-documents/testRTF.rtf", content);
- assertContains("test-documents/testTXT.txt", content);
- assertContains("test-documents/testWORD.doc", content);
- assertContains("test-documents/testXML.xml", content);
- }
-
- /**
- * Tests that the ParseContext parser is correctly
- * fired for all the embedded entries.
- */
- @Test
- public void testEmbedded() throws Exception {
- Parser parser = new AutoDetectParser(); // Should auto-detect!
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
-
- try (InputStream stream = ZipParserTest.class.getResourceAsStream(
- "/test-documents/test-documents.tar")) {
- parser.parse(stream, handler, metadata, trackingContext);
- }
-
- // Should have found all 9 documents, but not the directory
- assertEquals(9, tracker.filenames.size());
- assertEquals(9, tracker.mediatypes.size());
- assertEquals(9, tracker.modifiedAts.size());
-
- // Should have names but not content types, as tar doesn't
- // store the content types
- assertEquals("test-documents/testEXCEL.xls", tracker.filenames.get(0));
- assertEquals("test-documents/testHTML.html", tracker.filenames.get(1));
- assertEquals("test-documents/testOpenOffice2.odt", tracker.filenames.get(2));
- assertEquals("test-documents/testPDF.pdf", tracker.filenames.get(3));
- assertEquals("test-documents/testPPT.ppt", tracker.filenames.get(4));
- assertEquals("test-documents/testRTF.rtf", tracker.filenames.get(5));
- assertEquals("test-documents/testTXT.txt", tracker.filenames.get(6));
- assertEquals("test-documents/testWORD.doc", tracker.filenames.get(7));
- assertEquals("test-documents/testXML.xml", tracker.filenames.get(8));
-
- for(String type : tracker.mediatypes) {
- assertNull(type);
- }
- for(String crt : tracker.createdAts) {
- assertNull(crt);
- }
- for(String mod : tracker.modifiedAts) {
- assertNotNull(mod);
- assertTrue("Modified at " + mod, mod.startsWith("20"));
- }
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.tika.parser.pkg;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.sax.BodyContentHandler;
+import org.junit.Test;
+import org.xml.sax.ContentHandler;
+
+/**
+ * Test case for parsing tar files.
+ */
+public class TarParserTest extends AbstractPkgTest {
+
+ @Test
+ public void testTarParsing() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = TarParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tar")) {
+ parser.parse(stream, handler, metadata, recursingContext);
+ }
+
+ assertEquals("application/x-tar", metadata.get(Metadata.CONTENT_TYPE));
+ String content = handler.toString();
+ assertContains("test-documents/testEXCEL.xls", content);
+ assertContains("test-documents/testHTML.html", content);
+ assertContains("test-documents/testOpenOffice2.odt", content);
+ assertContains("test-documents/testPDF.pdf", content);
+ assertContains("test-documents/testPPT.ppt", content);
+ assertContains("test-documents/testRTF.rtf", content);
+ assertContains("test-documents/testTXT.txt", content);
+ assertContains("test-documents/testWORD.doc", content);
+ assertContains("test-documents/testXML.xml", content);
+ }
+
+ /**
+ * Tests that the ParseContext parser is correctly
+ * fired for all the embedded entries.
+ */
+ @Test
+ public void testEmbedded() throws Exception {
+ Parser parser = new AutoDetectParser(); // Should auto-detect!
+ ContentHandler handler = new BodyContentHandler();
+ Metadata metadata = new Metadata();
+
+ try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+ "/test-documents/test-documents.tar")) {
+ parser.parse(stream, handler, metadata, trackingContext);
+ }
+
+ // Should have found all 9 documents, but not the directory
+ assertEquals(9, tracker.filenames.size());
+ assertEquals(9, tracker.mediatypes.size());
+ assertEquals(9, tracker.modifiedAts.size());
+
+ // Should have names but not content types, as tar doesn't
+ // store the content types
+ assertEquals("test-documents/testEXCEL.xls", tracker.filenames.get(0));
+ assertEquals("test-documents/testHTML.html", tracker.filenames.get(1));
+ assertEquals("test-documents/testOpenOffice2.odt", tracker.filenames.get(2));
+ assertEquals("test-documents/testPDF.pdf", tracker.filenames.get(3));
+ assertEquals("test-documents/testPPT.ppt", tracker.filenames.get(4));
+ assertEquals("test-documents/testRTF.rtf", tracker.filenames.get(5));
+ assertEquals("test-documents/testTXT.txt", tracker.filenames.get(6));
+ assertEquals("test-documents/testWORD.doc", tracker.filenames.get(7));
+ assertEquals("test-documents/testXML.xml", tracker.filenames.get(8));
+
+ for(String type : tracker.mediatypes) {
+ assertNull(type);
+ }
+ for(String crt : tracker.createdAts) {
+ assertNull(crt);
+ }
+ for(String mod : tracker.modifiedAts) {
+ assertNotNull(mod);
+ assertTrue("Modified at " + mod, mod.startsWith("20"));
+ }
+ }
+}