Ensure that CTVectorVariant is included in poi-ooxml-schemas.jar, Added accessors to CoreProperties.Keywords. See Bugzilla 49146 and 49153
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@935860 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ba9704c3ab
commit
e3ea49bf61
@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.7-SNAPSHOT" date="2010-??-??">
|
<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">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">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>
|
<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>
|
||||||
|
@ -217,6 +217,12 @@ public class POIXMLProperties {
|
|||||||
public void setIdentifier(String identifier) {
|
public void setIdentifier(String identifier) {
|
||||||
part.setIdentifierProperty(identifier);
|
part.setIdentifierProperty(identifier);
|
||||||
}
|
}
|
||||||
|
public String getKeywords() {
|
||||||
|
return part.getKeywordsProperty().getValue();
|
||||||
|
}
|
||||||
|
public void setKeywords(String keywords) {
|
||||||
|
part.setKeywordsProperty(keywords);
|
||||||
|
}
|
||||||
public Date getLastPrinted() {
|
public Date getLastPrinted() {
|
||||||
return part.getLastPrintedProperty().getValue();
|
return part.getLastPrintedProperty().getValue();
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,8 @@ public final class AllXWPFTests {
|
|||||||
result.addTestSuite(TestXWPFParagraph.class);
|
result.addTestSuite(TestXWPFParagraph.class);
|
||||||
result.addTestSuite(TestXWPFRun.class);
|
result.addTestSuite(TestXWPFRun.class);
|
||||||
result.addTestSuite(TestXWPFTable.class);
|
result.addTestSuite(TestXWPFTable.class);
|
||||||
|
result.addTestSuite(TestAllExtendedProperties.class);
|
||||||
|
result.addTestSuite(TestPackageCorePropertiesGetKeywords.class);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user