]> source.dussan.org Git - poi.git/commitdiff
Ensure that CTVectorVariant is included in poi-ooxml-schemas.jar, Added accessors...
authorYegor Kozlov <yegor@apache.org>
Tue, 20 Apr 2010 10:27:30 +0000 (10:27 +0000)
committerYegor Kozlov <yegor@apache.org>
Tue, 20 Apr 2010 10:27:30 +0000 (10:27 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@935860 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/POIXMLProperties.java
src/ooxml/testcases/org/apache/poi/xwpf/AllXWPFTests.java
src/ooxml/testcases/org/apache/poi/xwpf/TestAllExtendedProperties.java [new file with mode: 0644]
src/ooxml/testcases/org/apache/poi/xwpf/TestPackageCorePropertiesGetKeywords.java [new file with mode: 0644]
test-data/document/TestPoiXMLDocumentCorePropertiesGetKeywords.docx [new file with mode: 0644]

index 846614c880d6c2462e67543bc372d064bf539396..0a8cdaeadbd2dbecbc3f9b8fafad69295e44a007 100644 (file)
@@ -34,6 +34,8 @@
 
     <changes>
         <release version="3.7-SNAPSHOT" date="2010-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">49153 - Ensure that CTVectorVariant is included in poi-ooxml-schemas.jar</action>
+           <action dev="POI-DEVELOPERS" type="add">49146 - Added accessors to CoreProperties.Keywords  </action>
            <action dev="POI-DEVELOPERS" type="fix">48916 - Propagate parent to parent-aware records decoded from Escher</action>
            <action dev="POI-DEVELOPERS" type="fix">48485 - Add extra paper size constans to PrintSetup, such as A3, B4 and B5</action>
            <action dev="POI-DEVELOPERS" type="fix">Make poifs.filesystem.DirectoryNode preserve the original ordering of its files, which HSMF needs to be able to correctly match up chunks</action>
index 45e17a2df65c0ee6b7675c5a933dc226cefc0102..6717c903ac4dd1a9c0fc37659f29949a9cf83ed2 100644 (file)
@@ -217,6 +217,12 @@ public class POIXMLProperties {
                public void setIdentifier(String identifier) {
                        part.setIdentifierProperty(identifier);
                }
+               public String getKeywords() {
+                       return part.getKeywordsProperty().getValue();
+               }
+               public void setKeywords(String keywords) {
+                       part.setKeywordsProperty(keywords);
+               }
                public Date getLastPrinted() {
                        return part.getLastPrintedProperty().getValue();
                }
index 5847903311bd246ed38b2164fff5c167c825f2e5..17786326acd3d78e796418782f6d245235d5cb1f 100644 (file)
@@ -45,6 +45,8 @@ public final class AllXWPFTests {
                result.addTestSuite(TestXWPFParagraph.class);
                result.addTestSuite(TestXWPFRun.class);
                result.addTestSuite(TestXWPFTable.class);
-               return result;
+               result.addTestSuite(TestAllExtendedProperties.class);
+               result.addTestSuite(TestPackageCorePropertiesGetKeywords.class);
+        return result;
        }
 }
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/TestAllExtendedProperties.java b/src/ooxml/testcases/org/apache/poi/xwpf/TestAllExtendedProperties.java
new file mode 100644 (file)
index 0000000..9db3be7
--- /dev/null
@@ -0,0 +1,109 @@
+/* ====================================================================
+   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.xwpf;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.POIXMLProperties.CoreProperties;
+import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackageProperties;
+import org.apache.poi.openxml4j.util.Nullable;
+import org.apache.poi.util.POILogger;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.openxmlformats.schemas.officeDocument.x2006.docPropsVTypes.CTVariant;
+import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTProperties;
+import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTVectorLpstr;
+import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.CTVectorVariant;
+
+/**
+ * Tests if the {@link CoreProperties#getKeywords()} method. This test has been
+ * submitted because even though the
+ * {@link PackageProperties#getKeywordsProperty()} had been present before, the
+ * {@link CoreProperties#getKeywords()} had been missing.
+ * 
+ * The author of this has added {@link CoreProperties#getKeywords()} and
+ * {@link CoreProperties#setKeywords(String)} and this test is supposed to test
+ * them.
+ * 
+ * @author Antoni Mylka
+ * 
+ */
+public final class TestAllExtendedProperties extends TestCase {
+       public void testGetAllExtendedProperties() {
+               XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestPoiXMLDocumentCorePropertiesGetKeywords.docx");
+               CTProperties ctProps = doc.getProperties().getExtendedProperties().getUnderlyingProperties();
+               assertEquals("Microsoft Office Word",ctProps.getApplication());
+               assertEquals("14.0000",ctProps.getAppVersion());
+               assertEquals(57,ctProps.getCharacters());
+               assertEquals(66,ctProps.getCharactersWithSpaces());
+               assertEquals("",ctProps.getCompany());
+               assertNull(ctProps.getDigSig());
+               assertEquals(0,ctProps.getDocSecurity());
+               assertNotNull(ctProps.getDomNode());
+               
+               CTVectorVariant vec = ctProps.getHeadingPairs();
+               assertEquals(2,vec.getVector().sizeOfVariantArray());
+               assertEquals("Title",vec.getVector().getVariantArray(0).getLpstr());
+               assertEquals(1,vec.getVector().getVariantArray(1).getI4());
+               
+               assertFalse(ctProps.isSetHiddenSlides());
+               assertEquals(0,ctProps.getHiddenSlides());
+               assertFalse(ctProps.isSetHLinks());
+               assertNull(ctProps.getHLinks());
+               assertNull(ctProps.getHyperlinkBase());
+               assertTrue(ctProps.isSetHyperlinksChanged());
+               assertFalse(ctProps.getHyperlinksChanged());
+               assertEquals(1,ctProps.getLines());
+               assertTrue(ctProps.isSetLinksUpToDate());
+               assertFalse(ctProps.getLinksUpToDate());
+               assertNull(ctProps.getManager());
+               assertFalse(ctProps.isSetMMClips());
+               assertEquals(0,ctProps.getMMClips());
+               assertFalse(ctProps.isSetNotes());
+               assertEquals(0,ctProps.getNotes());
+               assertEquals(1,ctProps.getPages());
+               assertEquals(1,ctProps.getParagraphs());
+               assertNull(ctProps.getPresentationFormat());
+               assertTrue(ctProps.isSetScaleCrop());
+               assertFalse(ctProps.getScaleCrop());
+               assertTrue(ctProps.isSetSharedDoc());
+               assertFalse(ctProps.getSharedDoc());
+               assertFalse(ctProps.isSetSlides());
+               assertEquals(0,ctProps.getSlides());
+               assertEquals("Normal.dotm",ctProps.getTemplate());
+               
+               CTVectorLpstr vec2 = ctProps.getTitlesOfParts();
+               assertEquals(1,vec2.getVector().sizeOfLpstrArray());
+               assertEquals("Example Word 2010 Document",vec2.getVector().getLpstrArray(0));
+               
+               assertEquals(3,ctProps.getTotalTime());
+               assertEquals(10,ctProps.getWords());
+               
+       }
+}
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/TestPackageCorePropertiesGetKeywords.java b/src/ooxml/testcases/org/apache/poi/xwpf/TestPackageCorePropertiesGetKeywords.java
new file mode 100644 (file)
index 0000000..f741b0b
--- /dev/null
@@ -0,0 +1,64 @@
+/* ====================================================================
+   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.xwpf;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.POIXMLProperties.CoreProperties;
+import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.openxml4j.opc.PackageProperties;
+import org.apache.poi.openxml4j.util.Nullable;
+import org.apache.poi.util.POILogger;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+
+/**
+ * Tests if the {@link CoreProperties#getKeywords()} method. This test has been
+ * submitted because even though the
+ * {@link PackageProperties#getKeywordsProperty()} had been present before, the
+ * {@link CoreProperties#getKeywords()} had been missing.
+ * 
+ * The author of this has added {@link CoreProperties#getKeywords()} and
+ * {@link CoreProperties#setKeywords(String)} and this test is supposed to test
+ * them.
+ * 
+ * @author Antoni Mylka
+ * 
+ */
+public final class TestPackageCorePropertiesGetKeywords extends TestCase {
+       public void testGetSetKeywords() {
+               XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestPoiXMLDocumentCorePropertiesGetKeywords.docx");
+               String keywords = doc.getProperties().getCoreProperties().getKeywords();
+               assertEquals("extractor, test, rdf", keywords);
+               
+               doc.getProperties().getCoreProperties().setKeywords("test, keywords");
+               doc = XWPFTestDataSamples.writeOutAndReadBack(doc);
+               keywords = doc.getProperties().getCoreProperties().getKeywords();
+               assertEquals("test, keywords",keywords);
+       }
+}
diff --git a/test-data/document/TestPoiXMLDocumentCorePropertiesGetKeywords.docx b/test-data/document/TestPoiXMLDocumentCorePropertiesGetKeywords.docx
new file mode 100644 (file)
index 0000000..ee38479
Binary files /dev/null and b/test-data/document/TestPoiXMLDocumentCorePropertiesGetKeywords.docx differ