mirror of https://github.com/apache/poi.git
Two more test files from Stefan Kopf for bug #56164, and unit tests which use them
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1589759 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
02abb33195
commit
55d026a89e
|
@ -21,6 +21,7 @@ import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.text.ParsePosition;
|
import java.text.ParsePosition;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -33,8 +34,8 @@ import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||||
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
|
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
|
||||||
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
|
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
|
||||||
import org.apache.poi.openxml4j.util.Nullable;
|
import org.apache.poi.openxml4j.util.Nullable;
|
||||||
import org.apache.poi.util.POILogger;
|
|
||||||
import org.apache.poi.util.POILogFactory;
|
import org.apache.poi.util.POILogFactory;
|
||||||
|
import org.apache.poi.util.POILogger;
|
||||||
|
|
||||||
public final class TestPackageCoreProperties extends TestCase {
|
public final class TestPackageCoreProperties extends TestCase {
|
||||||
private static final POILogger logger = POILogFactory.getLogger(TestPackageCoreProperties.class);
|
private static final POILogger logger = POILogFactory.getLogger(TestPackageCoreProperties.class);
|
||||||
|
@ -180,6 +181,9 @@ public final class TestPackageCoreProperties extends TestCase {
|
||||||
props.setModifiedProperty(strDate);
|
props.setModifiedProperty(strDate);
|
||||||
assertEquals(strDate, props.getModifiedPropertyString());
|
assertEquals(strDate, props.getModifiedPropertyString());
|
||||||
assertEquals(date, props.getModifiedProperty().getValue());
|
assertEquals(date, props.getModifiedProperty().getValue());
|
||||||
|
|
||||||
|
// Tidy
|
||||||
|
pkg.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetPropertiesLO() throws Exception {
|
public void testGetPropertiesLO() throws Exception {
|
||||||
|
@ -197,4 +201,29 @@ public final class TestPackageCoreProperties extends TestCase {
|
||||||
props2.setTitleProperty("Bug 51444 fixed");
|
props2.setTitleProperty("Bug 51444 fixed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testEntitiesInCoreProps_56164() throws Exception {
|
||||||
|
InputStream is = OpenXML4JTestDataSamples.openSampleStream("CorePropertiesHasEntities.ooxml");
|
||||||
|
OPCPackage p = OPCPackage.open(is);
|
||||||
|
is.close();
|
||||||
|
|
||||||
|
// Should have 3 root relationships
|
||||||
|
boolean foundDocRel = false, foundCorePropRel = false, foundExtPropRel = false;
|
||||||
|
for (PackageRelationship pr : p.getRelationships()) {
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.CORE_DOCUMENT))
|
||||||
|
foundDocRel = true;
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.CORE_PROPERTIES))
|
||||||
|
foundCorePropRel = true;
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.EXTENDED_PROPERTIES))
|
||||||
|
foundExtPropRel = true;
|
||||||
|
}
|
||||||
|
assertTrue("Core/Doc Relationship not found in " + p.getRelationships(), foundDocRel);
|
||||||
|
assertTrue("Core Props Relationship not found in " + p.getRelationships(), foundCorePropRel);
|
||||||
|
assertTrue("Ext Props Relationship not found in " + p.getRelationships(), foundExtPropRel);
|
||||||
|
|
||||||
|
// Get the Core Properties
|
||||||
|
PackagePropertiesPart props = (PackagePropertiesPart)p.getPackageProperties();
|
||||||
|
|
||||||
|
// Check
|
||||||
|
assertEquals("Stefan Kopf", props.getCreatorProperty().getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,15 +17,18 @@
|
||||||
|
|
||||||
package org.apache.poi.openxml4j.opc;
|
package org.apache.poi.openxml4j.opc;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
|
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
|
||||||
import org.apache.poi.util.POILogger;
|
|
||||||
import org.apache.poi.util.POILogFactory;
|
import org.apache.poi.util.POILogFactory;
|
||||||
|
import org.apache.poi.util.POILogger;
|
||||||
|
import org.apache.poi.xwpf.usermodel.XWPFRelation;
|
||||||
|
|
||||||
|
|
||||||
public class TestRelationships extends TestCase {
|
public class TestRelationships extends TestCase {
|
||||||
|
@ -309,6 +312,7 @@ public class TestRelationships extends TestCase {
|
||||||
URI rel1 = parent.relativize(rId1.getTargetURI());
|
URI rel1 = parent.relativize(rId1.getTargetURI());
|
||||||
URI rel11 = PackagingURIHelper.relativizeURI(drawingPart.getPartName().getURI(), rId1.getTargetURI());
|
URI rel11 = PackagingURIHelper.relativizeURI(drawingPart.getPartName().getURI(), rId1.getTargetURI());
|
||||||
assertEquals("'Another Sheet'!A1", rel1.getFragment());
|
assertEquals("'Another Sheet'!A1", rel1.getFragment());
|
||||||
|
assertEquals("'Another Sheet'!A1", rel11.getFragment());
|
||||||
|
|
||||||
PackageRelationship rId2 = drawingPart.getRelationship("rId2");
|
PackageRelationship rId2 = drawingPart.getRelationship("rId2");
|
||||||
URI rel2 = PackagingURIHelper.relativizeURI(drawingPart.getPartName().getURI(), rId2.getTargetURI());
|
URI rel2 = PackagingURIHelper.relativizeURI(drawingPart.getPartName().getURI(), rId2.getTargetURI());
|
||||||
|
@ -390,6 +394,45 @@ public class TestRelationships extends TestCase {
|
||||||
targetUri = rId1.getTargetURI();
|
targetUri = rId1.getTargetURI();
|
||||||
assertEquals("mailto:nobody@nowhere.uk%C2%A0", targetUri.toASCIIString());
|
assertEquals("mailto:nobody@nowhere.uk%C2%A0", targetUri.toASCIIString());
|
||||||
assertEquals("nobody@nowhere.uk\u00A0", targetUri.getSchemeSpecificPart());
|
assertEquals("nobody@nowhere.uk\u00A0", targetUri.getSchemeSpecificPart());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testEntitiesInRels_56164() throws Exception {
|
||||||
|
InputStream is = OpenXML4JTestDataSamples.openSampleStream("PackageRelsHasEntities.ooxml");
|
||||||
|
OPCPackage p = OPCPackage.open(is);
|
||||||
|
is.close();
|
||||||
|
|
||||||
|
// Should have 3 root relationships
|
||||||
|
boolean foundDocRel = false, foundCorePropRel = false, foundExtPropRel = false;
|
||||||
|
for (PackageRelationship pr : p.getRelationships()) {
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.CORE_DOCUMENT))
|
||||||
|
foundDocRel = true;
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.CORE_PROPERTIES))
|
||||||
|
foundCorePropRel = true;
|
||||||
|
if (pr.getRelationshipType().equals(PackageRelationshipTypes.EXTENDED_PROPERTIES))
|
||||||
|
foundExtPropRel = true;
|
||||||
|
}
|
||||||
|
assertTrue("Core/Doc Relationship not found in " + p.getRelationships(), foundDocRel);
|
||||||
|
assertTrue("Core Props Relationship not found in " + p.getRelationships(), foundCorePropRel);
|
||||||
|
assertTrue("Ext Props Relationship not found in " + p.getRelationships(), foundExtPropRel);
|
||||||
|
|
||||||
|
// Should have normal work parts
|
||||||
|
boolean foundCoreProps = false, foundDocument = false, foundTheme1 = false;
|
||||||
|
for (PackagePart part : p.getParts()) {
|
||||||
|
if (part.getPartName().toString().equals("/docProps/core.xml")) {
|
||||||
|
assertEquals(ContentTypes.CORE_PROPERTIES_PART, part.getContentType());
|
||||||
|
foundCoreProps = true;
|
||||||
|
}
|
||||||
|
if (part.getPartName().toString().equals("/word/document.xml")) {
|
||||||
|
assertEquals(XWPFRelation.DOCUMENT.getContentType(), part.getContentType());
|
||||||
|
foundDocument = true;
|
||||||
|
}
|
||||||
|
if (part.getPartName().toString().equals("/word/theme/theme1.xml")) {
|
||||||
|
assertEquals(XWPFRelation.THEME.getContentType(), part.getContentType());
|
||||||
|
foundTheme1 = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertTrue("Core not found in " + p.getParts(), foundCoreProps);
|
||||||
|
assertTrue("Document not found in " + p.getParts(), foundDocument);
|
||||||
|
assertTrue("Theme1 not found in " + p.getParts(), foundTheme1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue