git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1695212 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_13_FINAL
HANDLERS.put(".docx", new XWPFFileHandler()); | HANDLERS.put(".docx", new XWPFFileHandler()); | ||||
HANDLERS.put(".dotx", new XWPFFileHandler()); | HANDLERS.put(".dotx", new XWPFFileHandler()); | ||||
HANDLERS.put(".docm", new XWPFFileHandler()); | HANDLERS.put(".docm", new XWPFFileHandler()); | ||||
HANDLERS.put(".ooxml", new XWPFFileHandler()); // OPCPackage | |||||
// OpenXML4J files | |||||
HANDLERS.put(".ooxml", new OPCFileHandler()); // OPCPackage | |||||
HANDLERS.put(".zip", new OPCFileHandler()); // OPCPackage | |||||
// Powerpoint | // Powerpoint | ||||
HANDLERS.put(".ppt", new HSLFFileHandler()); | HANDLERS.put(".ppt", new HSLFFileHandler()); | ||||
// TODO: good to ignore? | // TODO: good to ignore? | ||||
EXPECTED_FAILURES.add("spreadsheet/sample-beta.xlsx"); | EXPECTED_FAILURES.add("spreadsheet/sample-beta.xlsx"); | ||||
EXPECTED_FAILURES.add("spreadsheet/49931.xls"); | EXPECTED_FAILURES.add("spreadsheet/49931.xls"); | ||||
EXPECTED_FAILURES.add("openxml4j/ContentTypeHasParameters.ooxml"); | |||||
// This is actually a spreadsheet! | // This is actually a spreadsheet! | ||||
EXPECTED_FAILURES.add("hpsf/TestRobert_Flaherty.doc"); | EXPECTED_FAILURES.add("hpsf/TestRobert_Flaherty.doc"); |
/* ==================================================================== | |||||
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.stress; | |||||
import static org.junit.Assert.assertEquals; | |||||
import java.io.File; | |||||
import java.io.FileInputStream; | |||||
import java.io.InputStream; | |||||
import java.io.PushbackInputStream; | |||||
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples; | |||||
import org.apache.poi.openxml4j.opc.ContentTypes; | |||||
import org.apache.poi.openxml4j.opc.OPCPackage; | |||||
import org.apache.poi.openxml4j.opc.PackagePart; | |||||
import org.apache.poi.xwpf.usermodel.XWPFRelation; | |||||
import org.junit.Test; | |||||
public class OPCFileHandler extends AbstractFileHandler { | |||||
@Override | |||||
public void handleFile(InputStream stream) throws Exception { | |||||
// ignore password protected files | |||||
if (POIXMLDocumentHandler.isEncrypted(stream)) return; | |||||
InputStream is = OpenXML4JTestDataSamples.openSampleStream("dcterms_bug_56479.zip"); | |||||
OPCPackage p = OPCPackage.open(is); | |||||
for (PackagePart part : p.getParts()) { | |||||
if (part.getPartName().toString().equals("/docProps/core.xml")) { | |||||
assertEquals(ContentTypes.CORE_PROPERTIES_PART, part.getContentType()); | |||||
} | |||||
if (part.getPartName().toString().equals("/word/document.xml")) { | |||||
assertEquals(XWPFRelation.DOCUMENT.getContentType(), part.getContentType()); | |||||
} | |||||
if (part.getPartName().toString().equals("/word/theme/theme1.xml")) { | |||||
assertEquals(XWPFRelation.THEME.getContentType(), part.getContentType()); | |||||
} | |||||
} | |||||
} | |||||
public void handleExtracting(File file) throws Exception { | |||||
// text-extraction is not possible currenlty for these types of files | |||||
} | |||||
// a test-case to test this locally without executing the full TestAllFiles | |||||
@Test | |||||
public void test() throws Exception { | |||||
File file = new File("test-data/openxml4j/dcterms_bug_56479.zip"); | |||||
InputStream stream = new PushbackInputStream(new FileInputStream(file), 100000); | |||||
try { | |||||
handleFile(stream); | |||||
} finally { | |||||
stream.close(); | |||||
} | |||||
handleExtracting(file); | |||||
} | |||||
} |
+ "' must have the 'xsi:type' attribute present !"); | + "' must have the 'xsi:type' attribute present !"); | ||||
// Check for the attribute value => 'dcterms:W3CDTF' | // Check for the attribute value => 'dcterms:W3CDTF' | ||||
if (!typeAtt.getValue().equals("dcterms:W3CDTF")) | |||||
if (!typeAtt.getValue().equals(el.getPrefix() + ":W3CDTF")) | |||||
throw new InvalidFormatException("The element '" + elName | throw new InvalidFormatException("The element '" + elName | ||||
+ "' must have the 'xsi:type' attribute with the value 'dcterms:W3CDTF' !"); | |||||
+ "' must have the 'xsi:type' attribute with the value '" + el.getPrefix() + ":W3CDTF', but had '" + typeAtt.getValue() + "' !"); | |||||
} | } | ||||
// Check its children | // Check its children |
/* ==================================================================== | |||||
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; | |||||
import static org.junit.Assert.*; | |||||
import java.io.InputStream; | |||||
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples; | |||||
import org.apache.poi.xwpf.usermodel.XWPFRelation; | |||||
import org.junit.Test; | |||||
public class TestZipPackage { | |||||
@Test | |||||
public void testBug56479() throws Exception { | |||||
InputStream is = OpenXML4JTestDataSamples.openSampleStream("dcterms_bug_56479.zip"); | |||||
OPCPackage p = OPCPackage.open(is); | |||||
// Check we found the contents of it | |||||
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); | |||||
assertFalse("Document should not be found in " + p.getParts(), foundDocument); | |||||
assertFalse("Theme1 should not found in " + p.getParts(), foundTheme1); | |||||
} | |||||
} |
*/ | */ | ||||
public void testLimitedXSITypeAttribute_PresentWithUnauthorizedValue() { | public void testLimitedXSITypeAttribute_PresentWithUnauthorizedValue() { | ||||
String msg = extractInvalidFormatMessage("LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx"); | String msg = extractInvalidFormatMessage("LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx"); | ||||
assertEquals("The element 'modified' must have the 'xsi:type' attribute with the value 'dcterms:W3CDTF' !", msg); | |||||
assertEquals("The element 'modified' must have the 'xsi:type' attribute with the value 'dcterms:W3CDTF', but had 'W3CDTF' !", msg); | |||||
} | } | ||||
/** | /** |