aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/hpsf
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2008-08-12 18:44:50 +0000
committerNick Burch <nick@apache.org>2008-08-12 18:44:50 +0000
commit67de5e70b49cb58017bffef33a8c3075d2698911 (patch)
treed692c7384570f1246f44dfc0f8f41bf5a93e1f23 /src/testcases/org/apache/poi/hpsf
parent13d89f642c5bda25e447970b2f5ca8b7790cb727 (diff)
downloadpoi-67de5e70b49cb58017bffef33a8c3075d2698911.tar.gz
poi-67de5e70b49cb58017bffef33a8c3075d2698911.zip
New HPSF based TextExtractor for document metadata, org.apache.poi.hpsf.extractor.HPFSPropertiesExtractor
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@685260 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/hpsf')
-rw-r--r--src/testcases/org/apache/poi/hpsf/extractor/TestHPFSPropertiesExtractor.java115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/hpsf/extractor/TestHPFSPropertiesExtractor.java b/src/testcases/org/apache/poi/hpsf/extractor/TestHPFSPropertiesExtractor.java
new file mode 100644
index 0000000000..7d967874a4
--- /dev/null
+++ b/src/testcases/org/apache/poi/hpsf/extractor/TestHPFSPropertiesExtractor.java
@@ -0,0 +1,115 @@
+/* ====================================================================
+ 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.poi.hpsf.extractor;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+import org.apache.poi.hssf.extractor.ExcelExtractor;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+
+import junit.framework.TestCase;
+
+public class TestHPFSPropertiesExtractor extends TestCase {
+ private String dir;
+
+ protected void setUp() throws Exception {
+ dir = System.getProperty("HPSF.testdata.path");
+ assertNotNull("HPSF.testdata.path not set", dir);
+ }
+
+ public void testNormalProperties() throws Exception {
+ POIFSFileSystem fs = new POIFSFileSystem(
+ new FileInputStream(new File(dir, "TestMickey.doc"))
+ );
+ HPFSPropertiesExtractor ext = new HPFSPropertiesExtractor(fs);
+ ext.getText();
+
+ // Check each bit in turn
+ String sinfText = ext.getSummaryInformationText();
+ String dinfText = ext.getDocumentSummaryInformationText();
+
+ assertTrue(sinfText.indexOf("TEMPLATE = Normal") > -1);
+ assertTrue(sinfText.indexOf("SUBJECT = sample subject") > -1);
+ assertTrue(dinfText.indexOf("MANAGER = sample manager") > -1);
+ assertTrue(dinfText.indexOf("COMPANY = sample company") > -1);
+
+ // Now overall
+ String text = ext.getText();
+ assertTrue(text.indexOf("TEMPLATE = Normal") > -1);
+ assertTrue(text.indexOf("SUBJECT = sample subject") > -1);
+ assertTrue(text.indexOf("MANAGER = sample manager") > -1);
+ assertTrue(text.indexOf("COMPANY = sample company") > -1);
+ }
+ public void testNormalUnicodeProperties() throws Exception {
+ POIFSFileSystem fs = new POIFSFileSystem(
+ new FileInputStream(new File(dir, "TestUnicode.xls"))
+ );
+ HPFSPropertiesExtractor ext = new HPFSPropertiesExtractor(fs);
+ ext.getText();
+
+ // Check each bit in turn
+ String sinfText = ext.getSummaryInformationText();
+ String dinfText = ext.getDocumentSummaryInformationText();
+
+ assertTrue(sinfText.indexOf("AUTHOR = marshall") > -1);
+ assertTrue(sinfText.indexOf("TITLE = Titel: \u00c4h") > -1);
+ assertTrue(dinfText.indexOf("COMPANY = Schreiner") > -1);
+ assertTrue(dinfText.indexOf("SCALE = false") > -1);
+
+ // Now overall
+ String text = ext.getText();
+ assertTrue(text.indexOf("AUTHOR = marshall") > -1);
+ assertTrue(text.indexOf("TITLE = Titel: \u00c4h") > -1);
+ assertTrue(text.indexOf("COMPANY = Schreiner") > -1);
+ assertTrue(text.indexOf("SCALE = false") > -1);
+ }
+ public void testCustomProperties() throws Exception {
+ POIFSFileSystem fs = new POIFSFileSystem(
+ new FileInputStream(new File(dir, "TestMickey.doc"))
+ );
+ HPFSPropertiesExtractor ext = new HPFSPropertiesExtractor(fs);
+
+ // Custom properties are part of the document info stream
+ String dinfText = ext.getDocumentSummaryInformationText();
+ assertTrue(dinfText.indexOf("Client = sample client") > -1);
+ assertTrue(dinfText.indexOf("Division = sample division") > -1);
+
+ String text = ext.getText();
+ assertTrue(text.indexOf("Client = sample client") > -1);
+ assertTrue(text.indexOf("Division = sample division") > -1);
+ }
+
+ public void testConstructors() throws Exception {
+ POIFSFileSystem fs = new POIFSFileSystem(
+ new FileInputStream(new File(dir, "TestUnicode.xls"))
+ );
+ HSSFWorkbook wb = new HSSFWorkbook(fs);
+ ExcelExtractor excelExt = new ExcelExtractor(wb);
+
+ String fsText = (new HPFSPropertiesExtractor(fs)).getText();
+ String hwText = (new HPFSPropertiesExtractor(wb)).getText();
+ String eeText = (new HPFSPropertiesExtractor(excelExt)).getText();
+
+ assertEquals(fsText, hwText);
+ assertEquals(fsText, eeText);
+
+ assertTrue(fsText.indexOf("AUTHOR = marshall") > -1);
+ assertTrue(fsText.indexOf("TITLE = Titel: \u00c4h") > -1);
+ }
+}