mirror of https://github.com/apache/poi.git
convert OPC Compliance unit tests to junit4
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751891 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9354393a9a
commit
f8fcefcd13
|
@ -17,7 +17,6 @@
|
|||
|
||||
package org.apache.poi.openxml4j.opc;
|
||||
|
||||
import org.apache.poi.openxml4j.opc.compliance.AllOpenXML4JComplianceTests;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
|
||||
|
@ -32,7 +31,6 @@ import org.junit.runners.Suite;
|
|||
, TestPackageThumbnail.class
|
||||
, TestPackagingURIHelper.class
|
||||
, TestRelationships.class
|
||||
, AllOpenXML4JComplianceTests.class
|
||||
})
|
||||
public final class AllOpenXML4JTests {
|
||||
}
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/* ====================================================================
|
||||
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.openxml4j.opc.compliance;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
public final class AllOpenXML4JComplianceTests {
|
||||
|
||||
public static Test suite() {
|
||||
TestSuite suite = new TestSuite(AllOpenXML4JComplianceTests.class.getName());
|
||||
suite.addTestSuite(TestOPCCompliancePartName.class);
|
||||
suite.addTestSuite(TestOPCComplianceCoreProperties.class);
|
||||
suite.addTestSuite(TestOPCCompliancePackageModel.class);
|
||||
return suite;
|
||||
}
|
||||
|
||||
}
|
|
@ -17,6 +17,12 @@
|
|||
|
||||
package org.apache.poi.openxml4j.opc.compliance;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
|
@ -37,9 +43,9 @@ import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
|||
import org.apache.poi.openxml4j.opc.TargetMode;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.util.TempFile;
|
||||
import org.junit.Test;
|
||||
|
||||
import junit.framework.AssertionFailedError;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
* Test core properties Open Packaging Convention compliance.
|
||||
|
@ -73,8 +79,9 @@ import junit.framework.TestCase;
|
|||
*
|
||||
* @author Julien Chable
|
||||
*/
|
||||
public final class TestOPCComplianceCoreProperties extends TestCase {
|
||||
public final class TestOPCComplianceCoreProperties {
|
||||
|
||||
@Test
|
||||
public void testCorePropertiesPart() {
|
||||
OPCPackage pkg;
|
||||
try {
|
||||
|
@ -106,6 +113,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.1 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testOnlyOneCorePropertiesPart() throws Exception {
|
||||
// We have relaxed this check, so we can read the file anyway
|
||||
try {
|
||||
|
@ -141,6 +149,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.1 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testOnlyOneCorePropertiesPart_AddRelationship() {
|
||||
InputStream is = OpenXML4JTestDataSamples.openComplianceSampleStream("OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx");
|
||||
OPCPackage pkg;
|
||||
|
@ -169,6 +178,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.1 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testOnlyOneCorePropertiesPart_AddPart() throws InvalidFormatException {
|
||||
String sampleFileName = "OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx";
|
||||
OPCPackage pkg = OPCPackage.open(POIDataSamples.getOpenXML4JInstance().getFile(sampleFileName).getPath());
|
||||
|
@ -189,6 +199,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.2 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testDoNotUseCompatibilityMarkup() {
|
||||
String msg = extractInvalidFormatMessage("DoNotUseCompatibilityMarkupFAIL.docx");
|
||||
assertEquals("OPC Compliance error [M4.2]: A format consumer shall consider the use of the Markup Compatibility namespace to be an error.", msg);
|
||||
|
@ -197,6 +208,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.3 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testDCTermsNamespaceLimitedUse() {
|
||||
String msg = extractInvalidFormatMessage("DCTermsNamespaceLimitedUseFAIL.docx");
|
||||
assertEquals("OPC Compliance error [M4.3]: Producers shall not create a document element that contains refinements to the Dublin Core elements, except for the two specified in the schema: <dcterms:created> and <dcterms:modified> Consumers shall consider a document element that violates this constraint to be an error.", msg);
|
||||
|
@ -205,6 +217,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.4 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testUnauthorizedXMLLangAttribute() {
|
||||
String msg = extractInvalidFormatMessage("UnauthorizedXMLLangAttributeFAIL.docx");
|
||||
assertEquals("OPC Compliance error [M4.4]: Producers shall not create a document element that contains the xml:lang attribute. Consumers shall consider a document element that violates this constraint to be an error.", msg);
|
||||
|
@ -213,6 +226,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.5 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testLimitedXSITypeAttribute_NotPresent() {
|
||||
String msg = extractInvalidFormatMessage("LimitedXSITypeAttribute_NotPresentFAIL.docx");
|
||||
assertEquals("The element 'created' must have the 'xsi:type' attribute present !", msg);
|
||||
|
@ -221,6 +235,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
/**
|
||||
* Test M4.5 rule.
|
||||
*/
|
||||
@Test
|
||||
public void testLimitedXSITypeAttribute_PresentWithUnauthorizedValue() {
|
||||
String msg = extractInvalidFormatMessage("LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx");
|
||||
assertEquals("The element 'modified' must have the 'xsi:type' attribute with the value 'dcterms:W3CDTF', but had 'W3CDTF' !", msg);
|
||||
|
@ -230,6 +245,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
* Document with no core properties - testing at the OPC level,
|
||||
* saving into a new stream
|
||||
*/
|
||||
@Test
|
||||
public void testNoCoreProperties_saveNew() throws Exception {
|
||||
String sampleFileName = "OPCCompliance_NoCoreProperties.xlsx";
|
||||
OPCPackage pkg = OPCPackage.open(POIDataSamples.getOpenXML4JInstance().getFile(sampleFileName).getPath());
|
||||
|
@ -277,6 +293,7 @@ public final class TestOPCComplianceCoreProperties extends TestCase {
|
|||
* Document with no core properties - testing at the OPC level,
|
||||
* from a temp-file, saving in-place
|
||||
*/
|
||||
@Test
|
||||
public void testNoCoreProperties_saveInPlace() throws Exception {
|
||||
String sampleFileName = "OPCCompliance_NoCoreProperties.xlsx";
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
|
||||
package org.apache.poi.openxml4j.opc.compliance;
|
||||
|
||||
import java.io.IOException;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.poi.POIDataSamples;
|
||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
|
@ -31,6 +31,7 @@ import org.apache.poi.openxml4j.opc.PackagePartName;
|
|||
import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
|
||||
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
||||
import org.apache.poi.openxml4j.opc.TargetMode;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test Open Packaging Convention package model compliance.
|
||||
|
@ -40,13 +41,14 @@ import org.apache.poi.openxml4j.opc.TargetMode;
|
|||
*
|
||||
* @author Julien Chable
|
||||
*/
|
||||
public class TestOPCCompliancePackageModel extends TestCase {
|
||||
public class TestOPCCompliancePackageModel {
|
||||
|
||||
/**
|
||||
* A package implementer shall neither create nor recognize a part with a
|
||||
* part name derived from another part name by appending segments to it.
|
||||
* [M1.11]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameDerivationAdditionFailure() {
|
||||
OPCPackage pkg = OPCPackage.create("TODELETEIFEXIST.docx");
|
||||
try {
|
||||
|
@ -72,6 +74,7 @@ public class TestOPCCompliancePackageModel extends TestCase {
|
|||
* part name derived from another part name by appending segments to it.
|
||||
* [M1.11]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameDerivationReadingFailure() throws IOException {
|
||||
String filename = "OPCCompliance_DerivedPartNameFAIL.docx";
|
||||
try {
|
||||
|
@ -89,6 +92,7 @@ public class TestOPCCompliancePackageModel extends TestCase {
|
|||
* implementers shall neither create nor recognize packages with equivalent
|
||||
* part names.
|
||||
*/
|
||||
@Test
|
||||
public void testAddPackageAlreadyAddFailure() throws Exception {
|
||||
OPCPackage pkg = OPCPackage.create("DELETEIFEXISTS.docx");
|
||||
PackagePartName name1 = null;
|
||||
|
@ -113,6 +117,7 @@ public class TestOPCCompliancePackageModel extends TestCase {
|
|||
* implementers shall neither create nor recognize packages with equivalent
|
||||
* part names.
|
||||
*/
|
||||
@Test
|
||||
public void testAddPackageAlreadyAddFailure2() throws Exception {
|
||||
OPCPackage pkg = OPCPackage.create("DELETEIFEXISTS.docx");
|
||||
PackagePartName partName = null;
|
||||
|
@ -138,6 +143,7 @@ public class TestOPCCompliancePackageModel extends TestCase {
|
|||
* the attempt to create such a relationship and shall treat any such
|
||||
* relationship as invalid.
|
||||
*/
|
||||
@Test
|
||||
public void testAddRelationshipRelationshipsPartFailure() {
|
||||
OPCPackage pkg = OPCPackage.create("DELETEIFEXISTS.docx");
|
||||
PackagePartName name1 = null;
|
||||
|
|
|
@ -17,14 +17,17 @@
|
|||
|
||||
package org.apache.poi.openxml4j.opc.compliance;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
import org.apache.poi.openxml4j.opc.PackagePartName;
|
||||
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test part name Open Packaging Convention compliance.
|
||||
|
@ -77,13 +80,14 @@ import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
|||
*
|
||||
* @author Julien Chable
|
||||
*/
|
||||
public final class TestOPCCompliancePartName extends TestCase {
|
||||
public final class TestOPCCompliancePartName {
|
||||
|
||||
/**
|
||||
* Test some common invalid names.
|
||||
*
|
||||
* A segment shall not contain percent-encoded unreserved characters. [M1.8]
|
||||
*/
|
||||
@Test
|
||||
public void testInvalidPartNames() {
|
||||
String[] invalidNames = { "/", "/xml./doc.xml", "[Content_Types].xml", "//xml/." };
|
||||
for (String s : invalidNames) {
|
||||
|
@ -102,6 +106,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
/**
|
||||
* Test some common valid names.
|
||||
*/
|
||||
@Test
|
||||
public void testValidPartNames() throws URISyntaxException {
|
||||
String[] validNames = { "/xml/item1.xml", "/document.xml",
|
||||
"/a/%D1%86.xml" };
|
||||
|
@ -113,6 +118,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
/**
|
||||
* A part name shall not be empty. [M1.1]
|
||||
*/
|
||||
@Test
|
||||
public void testEmptyPartNameFailure() throws URISyntaxException {
|
||||
try {
|
||||
PackagingURIHelper.createPartName(new URI(""));
|
||||
|
@ -129,6 +135,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
*
|
||||
* A segment shall include at least one non-dot character. [M1.10]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameWithInvalidSegmentsFailure() {
|
||||
String[] invalidNames = { "//document.xml", "//word/document.xml",
|
||||
"/word//document.rels", "/word//rels//document.rels",
|
||||
|
@ -148,6 +155,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
* A segment shall not hold any characters other than ipchar (RFC 3987) characters.
|
||||
* [M1.6].
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameWithNonPCharCharacters() {
|
||||
String[] validNames = { "/doc&.xml" };
|
||||
try {
|
||||
|
@ -164,6 +172,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
/**
|
||||
* A segment shall not contain percent-encoded unreserved characters [M1.8].
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameWithUnreservedEncodedCharactersFailure() {
|
||||
String[] invalidNames = { "/a/docum%65nt.xml" };
|
||||
try {
|
||||
|
@ -180,6 +189,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
/**
|
||||
* A part name shall start with a forward slash ('/') character. [M1.4]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameStartsWithAForwardSlashFailure()
|
||||
throws URISyntaxException {
|
||||
try {
|
||||
|
@ -193,6 +203,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
/**
|
||||
* A part name shall not have a forward slash as the last character. [M1.5]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameEndsWithAForwardSlashFailure()
|
||||
throws URISyntaxException {
|
||||
try {
|
||||
|
@ -207,6 +218,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
* Part name equivalence is determined by comparing part names as
|
||||
* case-insensitive ASCII strings. [M1.12]
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameComparaison() throws Exception {
|
||||
String[] partName1 = { "/word/document.xml", "/docProps/core.xml", "/rels/.rels" };
|
||||
String[] partName2 = { "/WORD/DocUment.XML", "/docProps/core.xml", "/rels/.rels" };
|
||||
|
@ -225,6 +237,7 @@ public final class TestOPCCompliancePartName extends TestCase {
|
|||
*
|
||||
* All the comparisons MUST FAIL !
|
||||
*/
|
||||
@Test
|
||||
public void testPartNameComparaisonFailure() throws Exception {
|
||||
String[] partName1 = { "/word/document.xml", "/docProps/core.xml", "/rels/.rels" };
|
||||
String[] partName2 = { "/WORD/DocUment.XML2", "/docProp/core.xml", "/rels/rels" };
|
||||
|
|
Loading…
Reference in New Issue