From 2712b14d2f43f51e80818936b0de97d36865ee3b Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Sun, 23 Aug 2009 12:34:24 +0000 Subject: [PATCH] moved all test data to a top-level directory, refactored all junit usages of .testdata.path to one place git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@806959 13f79535-47bb-0310-9956-ffa450edef68 --- build.xml | 62 ++------ src/documentation/content/xdocs/status.xml | 1 + .../testcases/org/apache/poi/TestEmbeded.java | 28 ++-- .../org/apache/poi/TestPOIXMLDocument.java | 20 ++- .../poi/TestXMLPropertiesTextExtractor.java | 19 +-- .../poi/extractor/TestExtractorFactory.java | 65 ++++---- .../openxml4j/OpenXML4JTestDataSamples.java | 107 ++----------- .../TestOPCComplianceCoreProperties.java | 7 +- .../TestOPCCompliancePackageModel.java | 9 +- .../openxml4j/opc/internal/data/sample.docx | Bin 14279 -> 0 bytes .../apache/poi/xslf/TestXSLFSlideShow.java | 30 ++-- .../TestXSLFPowerPointExtractor.java | 31 ++-- .../poi/xssf/XSSFITestDataProvider.java | 3 +- .../apache/poi/xssf/XSSFTestDataSamples.java | 26 +-- .../org/apache/poi/xssf/data/sample.xlsx | Bin 12050 -> 0 bytes .../xssf/eventusermodel/TestXSSFReader.java | 14 +- .../apache/poi/xssf/io/TestLoadSaveXSSF.java | 20 +-- .../apache/poi/xwpf/XWPFTestDataSamples.java | 7 +- .../apache/poi/TestPOIDocumentScratchpad.java | 22 +-- .../apache/poi/hdf/model/TestHDFDocument.java | 20 +-- .../org/apache/poi/hdgf/TestHDGFCore.java | 12 +- .../hdgf/extractor/TestVisioExtractor.java | 38 ++--- .../poi/hdgf/streams/TestStreamBugs.java | 8 +- .../poi/hdgf/streams/TestStreamComplex.java | 8 +- .../org/apache/poi/hpbf/TestHPBFDocument.java | 13 +- .../extractor/TextPublisherTextExtractor.java | 36 ++--- .../poi/hpbf/model/TestEscherParts.java | 16 +- .../poi/hpbf/model/TestQuillContents.java | 49 ++---- .../apache/poi/hslf/TestEncryptedFile.java | 28 +--- .../org/apache/poi/hslf/TestReWrite.java | 21 ++- .../apache/poi/hslf/TestReWriteSanity.java | 7 +- .../org/apache/poi/hslf/TestRecordCounts.java | 6 +- .../hslf/extractor/TestCruddyExtractor.java | 7 +- .../poi/hslf/extractor/TestExtractor.java | 148 ++++++++---------- .../apache/poi/hslf/model/TestBackground.java | 12 +- .../poi/hslf/model/TestHeadersFooters.java | 18 +-- .../apache/poi/hslf/model/TestHyperlink.java | 10 +- .../apache/poi/hslf/model/TestMovieShape.java | 8 +- .../poi/hslf/model/TestOleEmbedding.java | 15 +- .../poi/hslf/model/TestPPGraphics2D.java | 6 +- .../apache/poi/hslf/model/TestPicture.java | 6 +- .../poi/hslf/model/TestSetBoldItalic.java | 4 - .../org/apache/poi/hslf/model/TestShapes.java | 38 ++--- .../org/apache/poi/hslf/model/TestSheet.java | 20 +-- .../poi/hslf/model/TestSlideChangeNotes.java | 6 +- .../poi/hslf/model/TestSlideMaster.java | 19 +-- .../org/apache/poi/hslf/model/TestSlides.java | 5 +- .../apache/poi/hslf/model/TestTextRun.java | 29 +--- .../poi/hslf/model/TestTextRunReWrite.java | 8 +- .../apache/poi/hslf/model/TestTextShape.java | 11 +- .../poi/hslf/record/TestCurrentUserAtom.java | 14 +- .../apache/poi/hslf/record/TestDocument.java | 8 +- .../poi/hslf/record/TestExHyperlink.java | 6 +- .../apache/poi/hslf/record/TestExObjList.java | 7 +- .../poi/hslf/record/TestRecordContainer.java | 6 +- .../org/apache/poi/hslf/record/TestSound.java | 18 +-- .../poi/hslf/usermodel/TestAddingSlides.java | 13 +- .../apache/poi/hslf/usermodel/TestBugs.java | 67 +++----- .../apache/poi/hslf/usermodel/TestCounts.java | 6 +- .../hslf/usermodel/TestMostRecentRecords.java | 6 +- .../poi/hslf/usermodel/TestNotesText.java | 6 +- .../poi/hslf/usermodel/TestPictures.java | 76 ++++----- .../hslf/usermodel/TestReOrderingSlides.java | 12 +- .../poi/hslf/usermodel/TestRecordSetup.java | 6 +- .../poi/hslf/usermodel/TestRichTextRun.java | 30 ++-- .../poi/hslf/usermodel/TestSheetText.java | 11 +- .../poi/hslf/usermodel/TestSlideOrdering.java | 29 ++-- .../poi/hslf/usermodel/TestSoundData.java | 23 +-- .../poi/hsmf/model/TestBlankFileRead.java | 5 +- .../model/TestFileWithAttachmentsRead.java | 5 +- .../poi/hsmf/model/TestOutlook30FileRead.java | 5 +- .../poi/hsmf/model/TestSimpleFileRead.java | 5 +- .../org/apache/poi/hwpf/HWPFDocFixture.java | 3 +- .../apache/poi/hwpf/HWPFTestDataSamples.java | 23 +-- .../org/apache/poi/hwpf/TestHWPFPictures.java | 3 +- .../poi/hwpf/extractor/TestWordExtractor.java | 12 +- .../hwpf/extractor/TestWordExtractorBugs.java | 3 +- .../poi/hwpf/usermodel/TestPictures.java | 3 +- .../org/apache/poi/POIDataSamples.java | 127 +++++++++++---- .../apache/poi/ddf/TestEscherBlipRecord.java | 11 +- .../poi/ddf/TestEscherContainerRecord.java | 13 +- .../poi/hpsf/basic/AllDataFilesTester.java | 7 +- .../org/apache/poi/hpsf/basic/TestBasic.java | 8 +- .../poi/hpsf/basic/TestEmptyProperties.java | 6 +- .../poi/hpsf/basic/TestReadAllFiles.java | 5 +- .../apache/poi/hpsf/basic/TestUnicode.java | 6 +- .../org/apache/poi/hpsf/basic/TestWrite.java | 19 +-- .../poi/hpsf/basic/TestWriteWellKnown.java | 17 +- .../TestHPSFPropertiesExtractor.java | 27 ++-- .../poi/hslf/data/basic_test_ppt_file.ppt | Bin 15360 -> 0 bytes .../poi/hssf/HSSFITestDataProvider.java | 3 +- .../apache/poi/hssf/HSSFTestDataSamples.java | 12 +- .../hssf/extractor/TestExcelExtractor.java | 15 +- .../org/apache/poi/hwpf/data/test2.doc | Bin 19968 -> 0 bytes .../poi/poifs/data/source-files/sample1.doc | Bin 26112 -> 0 bytes .../poi/poifs/data/source-files/sample1.ppt | Bin 101376 -> 0 bytes .../poi/poifs/data/source-files/sample1.xls | Bin 16896 -> 0 bytes .../poi/poifs/data/source-files/sample2.doc | Bin 26112 -> 0 bytes .../poi/poifs/data/source-files/sample2.ppt | Bin 101888 -> 0 bytes .../poi/poifs/data/source-files/sample2.xls | Bin 16896 -> 0 bytes .../poifs/filesystem/TestPOIFSFileSystem.java | 11 +- .../poi/ddf/data => test-data/ddf}/47143.dat | Bin .../ddf/data => test-data/ddf}/Container.dat | Bin .../data => test-data/diagram}/44594-2.vsd | Bin .../hdgf/data => test-data/diagram}/44594.vsd | Bin .../diagram}/NegativeChunkLength.vsd | Bin .../diagram}/ShortChunk1.vsd | Bin .../diagram}/ShortChunk2.vsd | Bin .../diagram}/ShortChunk3.vsd | Bin .../diagram}/Test_Visio-Some_Random_Text.vsd | Bin .../diagram/visio_with_embeded.vsd | Bin .../data => test-data/document}/AIOOB-Tap.doc | Bin .../data => test-data/document}/Bug28627.doc | Bin .../data => test-data/document}/Bug44292.doc | Bin .../data => test-data/document}/Bug44603.doc | Bin .../document}/Bug46610_1.doc | Bin .../document}/Bug46610_2.doc | Bin .../document}/Bug46610_3.doc | Bin .../document}/DiffFirstPageHeadFoot.doc | Bin .../document}/DiffFirstPageHeadFoot.docx | Bin .../data => test-data/document}/FancyFoot.doc | Bin .../document}/FancyFoot.docx | Bin .../document}/HeaderFooterUnicode.doc | Bin .../document}/HeaderFooterUnicode.docx | Bin .../document}/HeaderWithMacros.doc | Bin .../document}/IllustrativeCases.docx | Bin .../document}/ListEntryNoListTable.doc | Bin .../document}/NoHeadFoot.doc | Bin .../document}/NoHeadFoot.docx | Bin .../document}/PageSpecificHeadFoot.doc | Bin .../document}/PageSpecificHeadFoot.docx | Bin .../document}/PasswordProtected.doc | Bin .../document}/ProblemExtracting.doc | Bin .../data => test-data/document}/SampleDoc.doc | Bin .../document}/SampleDoc.docx | Bin .../data => test-data/document}/SampleDoc.txt | 0 .../document}/SimpleHeadThreeColFoot.doc | Bin .../document}/SimpleHeadThreeColFoot.docx | Bin .../document}/TestDocument.docx | Bin .../document}/ThreeColFoot.doc | Bin .../document}/ThreeColFoot.docx | Bin .../document}/ThreeColHead.doc | Bin .../document}/ThreeColHead.docx | Bin .../document}/ThreeColHeadFoot.doc | Bin .../document}/ThreeColHeadFoot.docx | Bin .../document}/WithArtShapes.doc | Bin .../document}/WordWithAttachments.docx | Bin .../data => test-data/document}/delins.docx | Bin .../document}/documentProperties.docx | Bin .../document}/emf_2003_image.doc | Bin .../hdf/data => test-data/document}/empty.doc | Bin .../data => test-data/document}/endnotes.docx | Bin .../data => test-data/document}/footnote.doc | Bin .../document}/footnotes.docx | Bin .../document}/form_footnotes.docx | Bin .../document}/headerFooter.docx | Bin .../data => test-data/document}/sample.docx | Bin .../document}/saved-by-table.doc | Bin .../document}/simple-list.doc | Bin .../document}/simple-table.doc | Bin .../data => test-data/document}/simple.doc | Bin .../document}/simple_image.jpg | Bin .../document}/simple_image.png | Bin .../document}/table_footnotes.docx | Bin .../hwpf/data => test-data/document}/test.doc | Bin .../data => test-data/document}/test.dotx | Bin .../data => test-data/document}/test2.doc | Bin .../document}/testPictures.doc | Bin .../document}/testRangeDelete.doc | Bin .../document}/testRangeInsertion.doc | Bin .../document}/testRangeReplacement.doc | Bin .../document}/two_images.doc | Bin .../document}/vector_image.doc | Bin .../document}/vector_image.emf | Bin .../document}/word_with_embeded.doc | Bin .../data => test-data/hpsf}/Test0313rur.adm | Bin .../data => test-data/hpsf}/TestBug44375.xls | Bin .../hpsf}/TestChineseProperties.doc | Bin .../data => test-data/hpsf}/TestCorel.shw | Bin .../data => test-data/hpsf}/TestEditTime.doc | Bin .../hpsf}/TestGermanWord90.doc | Bin .../data => test-data/hpsf}/TestMickey.doc | Bin .../hpsf}/TestRobert_Flaherty.doc | Bin .../hpsf}/TestSectionDictionary.doc | Bin .../data => test-data/hpsf}/TestShiftJIS.doc | Bin .../hpsf}/TestSolidWorks.sldprt | Bin .../data => test-data/hpsf}/TestUnicode.xls | Bin .../hpsf}/TestWriteWellKnown.doc | Bin .../hpsf}/Test_Humor-Generation.ppt | Bin 2184704 -> 2184192 bytes .../hsmf}/attachment_test_msg.msg | Bin .../hsmf/data => test-data/hsmf}/blank.msg | Bin .../hsmf}/outlook_30_msg.msg | Bin .../hsmf}/simple_test_msg.msg | Bin .../openxml4j}/ExcelWithHyperlinks.xlsx | Bin ...erties_DCTermsNamespaceLimitedUseFAIL.docx | Bin ...rties_DoNotUseCompatibilityMarkupFAIL.docx | Bin ...imitedXSITypeAttribute_NotPresentFAIL.docx | Bin ...bute_PresentWithUnauthorizedValueFAIL.docx | Bin ...eProperties_OnlyOneCorePropertiesPart.docx | Bin ...perties_OnlyOneCorePropertiesPartFAIL.docx | Bin .../OPCCompliance_CoreProperties_SUCCESS.docx | Bin ...ties_UnauthorizedXMLLangAttributeFAIL.docx | Bin .../OPCCompliance_DerivedPartNameFAIL.docx | Bin .../openxml4j}/TestOpenPackageINPUT.docx | Bin .../openxml4j}/TestPackageCommon.docx | Bin .../TestPackageCoreProperiesGetters.docx | Bin .../TestPackageCoreProperiesSetters.docx | Bin .../openxml4j}/TestPackageThumbnail.docx | Bin .../data => test-data/openxml4j}/sample.docx | Bin .../data => test-data/openxml4j}/sample.xlsx | Bin .../openxml4j}/thumbnail.jpg | Bin .../poifs}/ShortLastBlock.qwp | Bin .../poifs}/ShortLastBlock.wps | Bin .../publisher}/LinkAt0And10.pub | Bin .../data => test-data/publisher}/LinkAt10.pub | Bin .../publisher}/LinkAt10And20And30.pub | Bin .../publisher}/LinkAt10And20And30And40.pub | Bin .../publisher}/LinkAt10Longer.pub | Bin .../data => test-data/publisher}/LinkAt20.pub | Bin .../data => test-data/publisher}/Sample.pub | Bin .../data => test-data/publisher}/Sample.txt | 0 .../data => test-data/publisher}/Sample2.pub | Bin .../data => test-data/publisher}/Sample2.txt | 0 .../publisher}/Sample2000.pub | Bin .../data => test-data/publisher}/Sample3.pub | Bin .../data => test-data/publisher}/Sample3.txt | 0 .../data => test-data/publisher}/Sample4.pub | Bin .../data => test-data/publisher}/Sample4.txt | 0 .../data => test-data/publisher}/Sample98.pub | Bin .../publisher}/SampleBrochure.pub | Bin .../publisher}/SampleNewsletter.pub | Bin .../data => test-data/publisher}/Simple.pub | Bin .../data => test-data/slideshow}/38256.ppt | Bin .../data => test-data/slideshow}/41071.ppt | Bin .../data => test-data/slideshow}/41384.ppt | Bin .../data => test-data/slideshow}/42474-1.ppt | Bin .../data => test-data/slideshow}/42474-2.ppt | Bin .../data => test-data/slideshow}/42485.ppt | Bin .../data => test-data/slideshow}/42486.ppt | Bin .../data => test-data/slideshow}/42520.ppt | Bin .../data => test-data/slideshow}/43781.ppt | Bin .../data => test-data/slideshow}/44296.ppt | Bin .../data => test-data/slideshow}/44770.ppt | Bin .../slideshow}/45537_Footer.ppt | Bin .../slideshow}/45537_Header.ppt | Bin .../slideshow}/45541_Footer.pptx | Bin .../slideshow}/45541_Header.pptx | Bin .../data => test-data/slideshow}/45543.ppt | Bin .../slideshow}/45545_Comment.pptx | Bin .../data => test-data/slideshow}/47261.ppt | Bin .../data => test-data/slideshow}/PPT95.ppt | Bin .../slideshow}/PPTWithAttachments.pptm | Bin .../ParagraphStylesShorterThanCharStyles.ppt | Bin .../Password_Protected-56-hello.ppt | Bin .../slideshow}/Password_Protected-hello.ppt | Bin .../Password_Protected-np-hello.ppt | Bin .../slideshow}/PictureLengthZero.ppt | Bin .../slideshow}/PictureTypeZero.ppt | Bin .../slideshow}/SampleShow.ppt | Bin .../slideshow}/SampleShow.pptx | Bin .../slideshow}/SampleShow.txt | 0 .../slideshow}/Single_Coloured_Page.ppt | Bin ...oloured_Page_With_Fonts_and_Alignments.ppt | Bin .../slideshow}/WithComments.ppt | Bin .../slideshow}/WithLinks.ppt | Bin .../slideshow}/WithMacros.ppt | Bin .../slideshow}/alterman_security.ppt | Bin .../slideshow}/backgrounds.ppt | Bin .../slideshow}/basic_test_ppt_file.ppt | Bin .../slideshow}/bug-41015.ppt | Bin .../data => test-data/slideshow}/bullets.ppt | Bin .../data => test-data/slideshow}/clock.jpg | Bin .../data => test-data/slideshow}/cow.pict | Bin .../data => test-data/slideshow}/empty.ppt | Bin .../slideshow}/empty_textbox.ppt | Bin .../slideshow}/headers_footers.ppt | Bin .../slideshow}/headers_footers_2007.ppt | Bin .../slideshow}/iisd_report.ppt | Bin .../slideshow}/incorrect_slide_order.ppt | Bin .../slideshow}/missing_core_records.ppt | Bin .../slideshow}/next_test_ppt_file.ppt | Bin .../slideshow}/ole2-embedding-2003.ppt | Bin .../data => test-data/slideshow}/painting.png | Bin .../data => test-data/slideshow}/pictures.ppt | Bin .../slideshow}/ppt_with_embeded.ppt | Bin .../slideshow}/ppt_with_png.ppt | Bin .../data => test-data/slideshow}/ringin.wav | Bin .../data => test-data/slideshow}/sample.pptx | Bin .../data => test-data/slideshow}/santa.wmf | Bin .../data => test-data/slideshow}/sci_cec.dib | Bin .../slideshow}/slide_master.ppt | Bin .../data => test-data/slideshow}/sound.ppt | Bin .../slideshow}/text-margins.ppt | Bin .../slideshow}/text_shapes.ppt | Bin .../data => test-data/slideshow}/tomcat.png | Bin .../slideshow}/with_textbox.ppt | Bin .../data => test-data/slideshow}/wrench.emf | Bin .../spreadsheet}/12561-1.xls | Bin .../spreadsheet}/12561-2.xls | Bin .../spreadsheet}/12843-1.xls | Bin .../spreadsheet}/12843-2.xls | Bin .../data => test-data/spreadsheet}/13224.xls | Bin .../data => test-data/spreadsheet}/13796.xls | Bin .../spreadsheet}/14330-1.xls | Bin .../spreadsheet}/14330-2.xls | Bin .../data => test-data/spreadsheet}/14460.xls | Bin .../data => test-data/spreadsheet}/15228.xls | Bin .../data => test-data/spreadsheet}/15375.xls | Bin .../data => test-data/spreadsheet}/15556.xls | Bin .../data => test-data/spreadsheet}/15573.xls | Bin .../spreadsheet}/1900DateWindowing.xls | Bin .../spreadsheet}/1904DateWindowing.xls | Bin .../spreadsheet}/19599-1.xls | Bin .../spreadsheet}/19599-2.xls | Bin .../data => test-data/spreadsheet}/22742.xls | Bin .../data => test-data/spreadsheet}/24207.xls | Bin .../data => test-data/spreadsheet}/24215.xls | Bin .../data => test-data/spreadsheet}/25183.xls | Bin .../data => test-data/spreadsheet}/25695.xls | Bin .../data => test-data/spreadsheet}/26100.xls | Bin .../spreadsheet}/27272_1.xls | Bin .../spreadsheet}/27272_2.xls | Bin .../27349-vlookupAcrossSheets.xls | Bin .../data => test-data/spreadsheet}/27364.xls | Bin .../data => test-data/spreadsheet}/27394.xls | Bin .../data => test-data/spreadsheet}/27852.xls | Bin .../data => test-data/spreadsheet}/27933.xls | Bin .../data => test-data/spreadsheet}/28772.xls | Bin .../data => test-data/spreadsheet}/28774.xls | Bin .../data => test-data/spreadsheet}/29675.xls | Bin .../data => test-data/spreadsheet}/29942.xls | Bin .../data => test-data/spreadsheet}/29982.xls | Bin .../data => test-data/spreadsheet}/30070.xls | Bin .../data => test-data/spreadsheet}/30540.xls | Bin .../spreadsheet}/30978-alt.xls | Bin .../spreadsheet}/30978-deleted.xls | Bin .../data => test-data/spreadsheet}/31661.xls | Bin .../data => test-data/spreadsheet}/31749.xls | Bin .../data => test-data/spreadsheet}/31979.xls | Bin .../data => test-data/spreadsheet}/32822.xls | Bin .../data => test-data/spreadsheet}/33082.xls | Bin .../data => test-data/spreadsheet}/34775.xls | Bin .../data => test-data/spreadsheet}/35564.xls | Bin .../data => test-data/spreadsheet}/35565.xls | Bin .../data => test-data/spreadsheet}/36947.xls | Bin .../data => test-data/spreadsheet}/37376.xls | Bin .../data => test-data/spreadsheet}/37630.xls | Bin .../spreadsheet}/37684-1.xls | Bin .../spreadsheet}/37684-2.xls | Bin .../data => test-data/spreadsheet}/37684.xls | Bin .../data => test-data/spreadsheet}/39234.xls | Bin .../data => test-data/spreadsheet}/39512.xls | Bin .../data => test-data/spreadsheet}/39634.xls | Bin .../spreadsheet}/3dFormulas.xls | Bin .../data => test-data/spreadsheet}/40285.xls | Bin .../data => test-data/spreadsheet}/41139.xls | Bin .../data => test-data/spreadsheet}/41546.xls | Bin .../spreadsheet}/42464-ExpPtg-bad.xls | Bin .../spreadsheet}/42464-ExpPtg-ok.xls | Bin .../data => test-data/spreadsheet}/42726.xls | Bin .../data => test-data/spreadsheet}/42844.xls | Bin .../data => test-data/spreadsheet}/43251.xls | Bin .../data => test-data/spreadsheet}/43493.xls | Bin .../data => test-data/spreadsheet}/43623.xls | Bin .../data => test-data/spreadsheet}/43902.xls | Bin .../spreadsheet}/44010-SingleChart.xls | Bin .../spreadsheet}/44010-TwoCharts.xls | Bin .../data => test-data/spreadsheet}/44167.xls | Bin .../data => test-data/spreadsheet}/44200.xls | Bin .../data => test-data/spreadsheet}/44201.xls | Bin .../data => test-data/spreadsheet}/44235.xls | Bin .../data => test-data/spreadsheet}/44297.xls | Bin .../data => test-data/spreadsheet}/44593.xls | Bin .../data => test-data/spreadsheet}/44636.xls | Bin .../data => test-data/spreadsheet}/44643.xls | Bin .../data => test-data/spreadsheet}/44693.xls | Bin .../data => test-data/spreadsheet}/44840.xls | Bin .../data => test-data/spreadsheet}/44861.xls | Bin .../data => test-data/spreadsheet}/44891.xls | Bin .../data => test-data/spreadsheet}/44958.xls | Bin .../data => test-data/spreadsheet}/45290.xls | Bin .../data => test-data/spreadsheet}/45322.xls | Bin .../spreadsheet}/45365-2.xls | Bin .../data => test-data/spreadsheet}/45365.xls | Bin .../data => test-data/spreadsheet}/45430.xlsx | Bin .../data => test-data/spreadsheet}/45431.xlsm | Bin .../data => test-data/spreadsheet}/45492.xls | Bin .../spreadsheet}/45538_classic_Footer.xls | Bin .../spreadsheet}/45538_classic_Header.xls | Bin .../spreadsheet}/45538_form_Footer.xls | Bin .../spreadsheet}/45538_form_Header.xls | Bin .../spreadsheet}/45540_classic_Footer.xlsx | Bin .../spreadsheet}/45540_classic_Header.xlsx | Bin .../spreadsheet}/45540_form_Footer.xlsx | Bin .../spreadsheet}/45540_form_Header.xlsx | Bin .../data => test-data/spreadsheet}/45544.xlsx | Bin .../data => test-data/spreadsheet}/45720.xls | Bin .../data => test-data/spreadsheet}/45761.xls | Bin .../data => test-data/spreadsheet}/45784.xls | Bin .../data => test-data/spreadsheet}/45829.png | Bin .../data => test-data/spreadsheet}/46137.xls | Bin .../data => test-data/spreadsheet}/46445.xls | Bin .../data => test-data/spreadsheet}/46535.xlsx | Bin .../data => test-data/spreadsheet}/46536.xlsx | Bin .../data => test-data/spreadsheet}/46904.xls | Bin .../data => test-data/spreadsheet}/47026.xlsm | Bin .../data => test-data/spreadsheet}/47034.xls | Bin .../data => test-data/spreadsheet}/47089.xlsm | Bin .../data => test-data/spreadsheet}/47154.xls | Bin .../data => test-data/spreadsheet}/47504.xlsx | Bin .../data => test-data/spreadsheet}/47668.xlsx | Bin .../AbnormalSharedFormulaFlag.xls | Bin .../spreadsheet}/AreaErrPtg.xls | Bin .../spreadsheet}/AverageTaxRates.xlsx | Bin .../spreadsheet}/BigSSTRecord | 0 .../spreadsheet}/BigSSTRecord2 | 0 .../spreadsheet}/BigSSTRecord2CR1 | 0 .../spreadsheet}/BigSSTRecord2CR2 | 0 .../spreadsheet}/BigSSTRecord2CR3 | 0 .../spreadsheet}/BigSSTRecord2CR4 | 0 .../spreadsheet}/BigSSTRecord2CR5 | 0 .../spreadsheet}/BigSSTRecord2CR6 | 0 .../spreadsheet}/BigSSTRecord2CR7 | 0 .../spreadsheet}/BigSSTRecordCR | 0 .../spreadsheet}/Booleans.xlsx | Bin .../spreadsheet}/ColumnStyle1dp.xls | Bin .../spreadsheet}/ColumnStyle1dpColoured.xls | Bin .../spreadsheet}/ColumnStyleNone.xls | Bin .../spreadsheet}/ContinueRecordProblem.xls | Bin ...omXMLMapping-singleattributenamespace.xlsx | Bin .../CustomXMLMappings-complex-type.xlsx | Bin .../spreadsheet}/CustomXMLMappings.xlsx | Bin .../CustomXmlMappings-inverse-order.xlsx | Bin .../spreadsheet}/DBCSHeader.xls | Bin .../spreadsheet}/DBCSSheetName.xls | Bin .../spreadsheet}/DateFormats.xls | Bin .../spreadsheet}/EmbeddedChartHeaderTest.xls | Bin .../spreadsheet}/Employee.xls | Bin .../data => test-data/spreadsheet}/ErrPtg.xls | Bin .../spreadsheet}/ExcelWithAttachments.xlsm | Bin .../spreadsheet}/ForShifting.xls | Bin .../spreadsheet}/ForShifting.xlsx | Bin .../spreadsheet}/Formatting.xls | Bin .../spreadsheet}/Formatting.xlsx | Bin .../spreadsheet}/FormulaEvalTestData.xls | Bin .../FormulaEvalTestData_Copy.xlsx | Bin .../spreadsheet}/HyperlinksOnManySheets.xls | Bin .../spreadsheet}/IfFormulaTest.xls | Bin .../IndexFunctionTestCaseData.xls | Bin .../spreadsheet}/IntersectionPtg.xls | Bin .../LookupFunctionsTestCaseData.xls | Bin .../spreadsheet}/MRExtraLines.xls | Bin .../spreadsheet}/MissingBits.xls | Bin .../spreadsheet}/NoGutsRecords.xls | Bin .../spreadsheet}/OddStyleRecord.xls | Bin .../spreadsheet}/PercentPtg.xls | Bin .../spreadsheet}/RangePtg.xls | Bin .../spreadsheet}/ReadOnlyRecommended.xls | Bin .../spreadsheet}/ReferencePtg.xls | Bin .../spreadsheet}/SampleSS.txt | 0 .../spreadsheet}/SampleSS.xls | Bin .../spreadsheet}/SampleSS.xlsx | Bin .../spreadsheet}/SharedFormulaTest.xls | Bin .../spreadsheet}/SheetWithDrawing.xls | Bin .../data => test-data/spreadsheet}/Simple.xls | Bin .../spreadsheet}/SimpleChart.xls | Bin .../spreadsheet}/SimpleMultiCell.xls | Bin .../spreadsheet}/SimpleMultiCell.xlsx | Bin .../spreadsheet}/SimpleWithAutofilter.xls | Bin .../spreadsheet}/SimpleWithChoose.xls | Bin .../spreadsheet}/SimpleWithColours.xls | Bin .../spreadsheet}/SimpleWithComments.xls | Bin .../spreadsheet}/SimpleWithDataFormat.xls | Bin .../spreadsheet}/SimpleWithFormula.xls | Bin .../spreadsheet}/SimpleWithImages-mac.xls | Bin .../spreadsheet}/SimpleWithImages.xls | Bin .../spreadsheet}/SimpleWithPageBreaks.xls | Bin .../spreadsheet}/SimpleWithPrintArea.xls | Bin .../spreadsheet}/SimpleWithSkip.xls | Bin .../spreadsheet}/SimpleWithStyling.xls | Bin .../spreadsheet}/SingleLetterRanges.xls | Bin .../spreadsheet}/SquareMacro.xls | Bin .../spreadsheet}/StringContinueRecords.xls | Bin .../spreadsheet}/StringFormulas.xls | Bin .../spreadsheet}/Tables.xlsx | Bin .../spreadsheet}/TwoSheetsNoneHidden.xls | Bin .../spreadsheet}/TwoSheetsNoneHidden.xlsx | Bin .../spreadsheet}/TwoSheetsOneHidden.xls | Bin .../spreadsheet}/TwoSheetsOneHidden.xlsx | Bin .../spreadsheet}/UncalcedRecord.xls | Bin .../spreadsheet}/UnionPtg.xls | Bin .../spreadsheet}/WORKBOOK_in_capitals.xls | Bin .../spreadsheet}/WithChart.xls | Bin .../spreadsheet}/WithChart.xlsx | Bin .../spreadsheet}/WithCheckBoxes.xls | Bin .../spreadsheet}/WithDrawing.xlsx | Bin .../spreadsheet}/WithEmbeded.xlsx | Bin .../spreadsheet}/WithExtendedStyles.xls | Bin .../spreadsheet}/WithFormattedGraphTitle.xls | Bin .../spreadsheet}/WithHyperlink.xls | Bin .../spreadsheet}/WithMoreVariousData.xlsx | Bin .../spreadsheet}/WithThreeCharts.xls | Bin .../spreadsheet}/WithThreeCharts.xlsx | Bin .../spreadsheet}/WithTwoCharts.xls | Bin .../spreadsheet}/WithTwoCharts.xlsx | Bin .../spreadsheet}/WithTwoHyperLinks.xls | Bin .../spreadsheet}/WithVariousData.xlsx | Bin .../spreadsheet}/WrongFormulaRecordType.xls | Bin .../spreadsheet}/blankworkbook.xls | Bin .../spreadsheet}/bug_42794.mdb | Bin .../spreadsheet}/bug_42794.xls | Bin .../spreadsheet}/colwidth.xls | Bin .../spreadsheet}/comments.xls | Bin .../spreadsheet}/comments.xlsx | Bin .../spreadsheet}/countifExamples.xls | Bin .../spreadsheet}/duprich1.xls | Bin .../spreadsheet}/duprich2.xls | Bin .../spreadsheet}/dvEmpty.xls | Bin .../spreadsheet}/evencontinuation.txt | 0 .../spreadsheet}/ex41187-19267.xls | Bin .../spreadsheet}/ex42564-21435.xls | Bin .../spreadsheet}/ex42564-21503.xls | Bin .../spreadsheet}/ex42564-elementOrder.xls | Bin .../spreadsheet}/ex42570-20305.xls | Bin .../spreadsheet}/ex44921-21902.xls | Bin .../spreadsheet}/ex45046-21984.xls | Bin .../spreadsheet}/ex45582-22397.xls | Bin .../spreadsheet}/ex45672.xls | Bin .../spreadsheet}/ex45698-22488.xls | Bin .../ex45978-extraLinkTableSheets.xls | Bin .../spreadsheet}/ex46548-23133.xls | Bin .../spreadsheet}/excel_with_embeded.xls | Bin .../spreadsheet}/extendedtextstrings.txt | 0 .../spreadsheet}/externalFunctionExample.xls | Bin .../spreadsheet}/logoKarmokar4.png | Bin .../spreadsheet}/missingFuncs44675.xls | Bin .../spreadsheet}/multibookFormulaA.xls | Bin .../spreadsheet}/multibookFormulaB.xls | Bin .../spreadsheet}/namedinput.xls | Bin .../spreadsheet}/noHeaderFooter47244.xls | Bin .../spreadsheet}/ole2-embedding.xls | Bin .../spreadsheet}/overlapSharedFormula.xls | Bin .../spreadsheet}/password.xls | Bin .../spreadsheet}/picture.xlsx | Bin .../spreadsheet}/reordered_sheets.xlsx | Bin .../spreadsheet}/richtextdata.txt | 0 .../data => test-data/spreadsheet}/rk.xls | Bin .../spreadsheet}/sample-beta.xlsx | Bin .../spreadsheet}/sample.xlsx | Bin .../spreadsheet}/shared_formulas.xlsx | Bin .../stringacross2continuations.txt | 0 .../spreadsheet}/styles.xlsx | Bin .../spreadsheet}/sumifformula.xls | Bin .../templateExcelWithAutofilter.xls | Bin .../data => test-data/spreadsheet}/test.xltx | Bin .../spreadsheet}/testArraysAndTables.xls | Bin .../spreadsheet}/testNames.xls | Bin .../spreadsheet}/testRRaC.xls | Bin .../spreadsheet}/testRVA.xls | Bin .../spreadsheet}/test_properties1 | 0 .../spreadsheet}/unicodeNameRecord.xls | Bin .../spreadsheet}/xlsx-jdbc.xlsx | Bin .../spreadsheet}/yearfracExamples.xls | Bin 563 files changed, 701 insertions(+), 1100 deletions(-) delete mode 100755 src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/data/sample.docx delete mode 100644 src/ooxml/testcases/org/apache/poi/xssf/data/sample.xlsx delete mode 100644 src/testcases/org/apache/poi/hslf/data/basic_test_ppt_file.ppt delete mode 100755 src/testcases/org/apache/poi/hwpf/data/test2.doc delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample1.doc delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample1.ppt delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample1.xls delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample2.doc delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample2.ppt delete mode 100644 src/testcases/org/apache/poi/poifs/data/source-files/sample2.xls rename {src/testcases/org/apache/poi/ddf/data => test-data/ddf}/47143.dat (100%) rename {src/testcases/org/apache/poi/ddf/data => test-data/ddf}/Container.dat (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/44594-2.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/44594.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/NegativeChunkLength.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/ShortChunk1.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/ShortChunk2.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/ShortChunk3.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hdgf/data => test-data/diagram}/Test_Visio-Some_Random_Text.vsd (100%) rename src/testcases/org/apache/poi/poifs/data/visio_with_embeded.xls => test-data/diagram/visio_with_embeded.vsd (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/AIOOB-Tap.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug28627.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug44292.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug44603.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug46610_1.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug46610_2.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/Bug46610_3.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/DiffFirstPageHeadFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/DiffFirstPageHeadFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/FancyFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/FancyFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/HeaderFooterUnicode.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/HeaderFooterUnicode.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/HeaderWithMacros.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/IllustrativeCases.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ListEntryNoListTable.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/NoHeadFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/NoHeadFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/PageSpecificHeadFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/PageSpecificHeadFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/PasswordProtected.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ProblemExtracting.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/SampleDoc.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/SampleDoc.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/SampleDoc.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/SimpleHeadThreeColFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/SimpleHeadThreeColFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/TestDocument.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColHead.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColHead.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColHeadFoot.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/ThreeColHeadFoot.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/WithArtShapes.doc (100%) rename {src/ooxml/testcases/org/apache/poi/ooxml/data => test-data/document}/WordWithAttachments.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/delins.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/documentProperties.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/emf_2003_image.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hdf/data => test-data/document}/empty.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/endnotes.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/footnote.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/footnotes.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/form_footnotes.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/headerFooter.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/sample.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/saved-by-table.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hdf/data => test-data/document}/simple-list.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hdf/data => test-data/document}/simple-table.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hdf/data => test-data/document}/simple.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/simple_image.jpg (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/simple_image.png (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/table_footnotes.docx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/test.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/test.dotx (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/test2.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/testPictures.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/testRangeDelete.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/testRangeInsertion.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/testRangeReplacement.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/two_images.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/vector_image.doc (100%) rename {src/scratchpad/testcases/org/apache/poi/hwpf/data => test-data/document}/vector_image.emf (100%) rename {src/testcases/org/apache/poi/poifs/data => test-data/document}/word_with_embeded.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/Test0313rur.adm (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestBug44375.xls (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestChineseProperties.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestCorel.shw (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestEditTime.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestGermanWord90.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestMickey.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestRobert_Flaherty.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestSectionDictionary.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestShiftJIS.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestSolidWorks.sldprt (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestUnicode.xls (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/TestWriteWellKnown.doc (100%) rename {src/testcases/org/apache/poi/hpsf/data => test-data/hpsf}/Test_Humor-Generation.ppt (99%) rename {src/scratchpad/testcases/org/apache/poi/hsmf/data => test-data/hsmf}/attachment_test_msg.msg (100%) rename {src/scratchpad/testcases/org/apache/poi/hsmf/data => test-data/hsmf}/blank.msg (100%) rename {src/scratchpad/testcases/org/apache/poi/hsmf/data => test-data/hsmf}/outlook_30_msg.msg (100%) rename {src/scratchpad/testcases/org/apache/poi/hsmf/data => test-data/hsmf}/simple_test_msg.msg (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/ExcelWithHyperlinks.xlsx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_DCTermsNamespaceLimitedUseFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_DoNotUseCompatibilityMarkupFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_NotPresentFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPartFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_SUCCESS.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_CoreProperties_UnauthorizedXMLLangAttributeFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data => test-data/openxml4j}/OPCCompliance_DerivedPartNameFAIL.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/TestOpenPackageINPUT.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/TestPackageCommon.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/TestPackageCoreProperiesGetters.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/TestPackageCoreProperiesSetters.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/TestPackageThumbnail.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/sample.docx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/sample.xlsx (100%) rename {src/ooxml/testcases/org/apache/poi/openxml4j/opc/data => test-data/openxml4j}/thumbnail.jpg (100%) rename {src/testcases/org/apache/poi/poifs/data => test-data/poifs}/ShortLastBlock.qwp (100%) rename {src/testcases/org/apache/poi/poifs/data => test-data/poifs}/ShortLastBlock.wps (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt0And10.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt10.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt10And20And30.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt10And20And30And40.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt10Longer.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/LinkAt20.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample2.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample2.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample2000.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample3.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample3.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample4.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample4.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Sample98.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/SampleBrochure.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/SampleNewsletter.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hpbf/data => test-data/publisher}/Simple.pub (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/38256.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/41071.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/41384.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/42474-1.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/42474-2.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/42485.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/42486.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/42520.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/43781.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/44296.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/44770.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45537_Footer.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45537_Header.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45541_Footer.pptx (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45541_Header.pptx (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45543.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/45545_Comment.pptx (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/47261.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/PPT95.ppt (100%) rename {src/ooxml/testcases/org/apache/poi/ooxml/data => test-data/slideshow}/PPTWithAttachments.pptm (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/ParagraphStylesShorterThanCharStyles.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/Password_Protected-56-hello.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/Password_Protected-hello.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/Password_Protected-np-hello.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/PictureLengthZero.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/PictureTypeZero.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/SampleShow.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/SampleShow.pptx (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/SampleShow.txt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/Single_Coloured_Page.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/Single_Coloured_Page_With_Fonts_and_Alignments.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/WithComments.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/WithLinks.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/WithMacros.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/alterman_security.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/backgrounds.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/basic_test_ppt_file.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/bug-41015.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/bullets.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/clock.jpg (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/cow.pict (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/empty.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/empty_textbox.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/headers_footers.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/headers_footers_2007.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/iisd_report.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/incorrect_slide_order.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/missing_core_records.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/next_test_ppt_file.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/ole2-embedding-2003.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/painting.png (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/pictures.ppt (100%) rename {src/testcases/org/apache/poi/poifs/data => test-data/slideshow}/ppt_with_embeded.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/ppt_with_png.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/ringin.wav (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/sample.pptx (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/santa.wmf (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/sci_cec.dib (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/slide_master.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/sound.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/text-margins.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/text_shapes.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/tomcat.png (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/with_textbox.ppt (100%) rename {src/scratchpad/testcases/org/apache/poi/hslf/data => test-data/slideshow}/wrench.emf (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/12561-1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/12561-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/12843-1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/12843-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/13224.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/13796.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/14330-1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/14330-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/14460.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/15228.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/15375.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/15556.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/15573.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/1900DateWindowing.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/1904DateWindowing.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/19599-1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/19599-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/22742.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/24207.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/24215.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/25183.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/25695.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/26100.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27272_1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27272_2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27349-vlookupAcrossSheets.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27364.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27394.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27852.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/27933.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/28772.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/28774.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/29675.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/29942.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/29982.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/30070.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/30540.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/30978-alt.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/30978-deleted.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/31661.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/31749.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/31979.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/32822.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/33082.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/34775.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/35564.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/35565.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/36947.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/37376.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/37630.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/37684-1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/37684-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/37684.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/39234.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/39512.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/39634.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/3dFormulas.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/40285.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/41139.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/41546.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/42464-ExpPtg-bad.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/42464-ExpPtg-ok.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/42726.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/42844.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/43251.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/43493.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/43623.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/43902.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44010-SingleChart.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44010-TwoCharts.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44167.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44200.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44201.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44235.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44297.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44593.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44636.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44643.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44693.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44840.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44861.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44891.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/44958.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45290.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45322.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45365-2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45365.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45430.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45431.xlsm (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45492.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45538_classic_Footer.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45538_classic_Header.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45538_form_Footer.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45538_form_Header.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45540_classic_Footer.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45540_classic_Header.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45540_form_Footer.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45540_form_Header.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45544.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45720.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45761.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45784.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/45829.png (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/46137.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/46445.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/46535.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/46536.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/46904.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47026.xlsm (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47034.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47089.xlsm (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47154.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47504.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/47668.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/AbnormalSharedFormulaFlag.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/AreaErrPtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/AverageTaxRates.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR1 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR2 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR3 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR4 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR5 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR6 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecord2CR7 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/BigSSTRecordCR (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Booleans.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ColumnStyle1dp.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ColumnStyle1dpColoured.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ColumnStyleNone.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ContinueRecordProblem.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/CustomXMLMapping-singleattributenamespace.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/CustomXMLMappings-complex-type.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/CustomXMLMappings.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/CustomXmlMappings-inverse-order.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/DBCSHeader.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/DBCSSheetName.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/DateFormats.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/EmbeddedChartHeaderTest.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Employee.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ErrPtg.xls (100%) rename {src/ooxml/testcases/org/apache/poi/ooxml/data => test-data/spreadsheet}/ExcelWithAttachments.xlsm (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ForShifting.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ForShifting.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Formatting.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Formatting.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/FormulaEvalTestData.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/FormulaEvalTestData_Copy.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/HyperlinksOnManySheets.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/IfFormulaTest.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/IndexFunctionTestCaseData.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/IntersectionPtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/LookupFunctionsTestCaseData.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/MRExtraLines.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/MissingBits.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/NoGutsRecords.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/OddStyleRecord.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/PercentPtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/RangePtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ReadOnlyRecommended.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ReferencePtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SampleSS.txt (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SampleSS.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SampleSS.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SharedFormulaTest.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SheetWithDrawing.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Simple.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleChart.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleMultiCell.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleMultiCell.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithAutofilter.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithChoose.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithColours.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithComments.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithDataFormat.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithFormula.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithImages-mac.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithImages.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithPageBreaks.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithPrintArea.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithSkip.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SimpleWithStyling.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SingleLetterRanges.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/SquareMacro.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/StringContinueRecords.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/StringFormulas.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/Tables.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/TwoSheetsNoneHidden.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/TwoSheetsNoneHidden.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/TwoSheetsOneHidden.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/TwoSheetsOneHidden.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/UncalcedRecord.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/UnionPtg.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WORKBOOK_in_capitals.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithChart.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithChart.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithCheckBoxes.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithDrawing.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithEmbeded.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithExtendedStyles.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithFormattedGraphTitle.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithHyperlink.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithMoreVariousData.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithThreeCharts.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithThreeCharts.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithTwoCharts.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithTwoCharts.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithTwoHyperLinks.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WithVariousData.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/WrongFormulaRecordType.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/blankworkbook.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/bug_42794.mdb (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/bug_42794.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/colwidth.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/comments.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/comments.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/countifExamples.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/duprich1.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/duprich2.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/dvEmpty.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/evencontinuation.txt (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex41187-19267.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex42564-21435.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex42564-21503.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex42564-elementOrder.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex42570-20305.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex44921-21902.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex45046-21984.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex45582-22397.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex45672.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex45698-22488.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex45978-extraLinkTableSheets.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ex46548-23133.xls (100%) rename {src/testcases/org/apache/poi/poifs/data => test-data/spreadsheet}/excel_with_embeded.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/extendedtextstrings.txt (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/externalFunctionExample.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/logoKarmokar4.png (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/missingFuncs44675.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/multibookFormulaA.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/multibookFormulaB.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/namedinput.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/noHeaderFooter47244.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/ole2-embedding.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/overlapSharedFormula.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/password.xls (100%) rename {src/ooxml/testcases/org/apache/poi/xssf/data => test-data/spreadsheet}/picture.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/reordered_sheets.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/richtextdata.txt (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/rk.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/sample-beta.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/sample.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/shared_formulas.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/stringacross2continuations.txt (100%) rename {src/ooxml/testcases/org/apache/poi/xssf/data => test-data/spreadsheet}/styles.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/sumifformula.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/templateExcelWithAutofilter.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/test.xltx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/testArraysAndTables.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/testNames.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/testRRaC.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/testRVA.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/test_properties1 (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/unicodeNameRecord.xls (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/xlsx-jdbc.xlsx (100%) rename {src/testcases/org/apache/poi/hssf/data => test-data/spreadsheet}/yearfracExamples.xls (100%) diff --git a/build.xml b/build.xml index 1bc0579ab2..49a9d901e0 100644 --- a/build.xml +++ b/build.xml @@ -76,6 +76,7 @@ under the License. + @@ -566,12 +567,7 @@ under the License. - - - - - - + @@ -602,10 +598,7 @@ under the License. - - - - + @@ -631,16 +624,8 @@ under the License. - - - - - - - - - - + + @@ -675,15 +660,7 @@ under the License. - - - - - - - - - + @@ -714,14 +691,7 @@ under the License. - - - - - - - - + @@ -748,8 +718,6 @@ under the License. - - @@ -780,14 +748,7 @@ under the License. - - - - - - - - + @@ -811,12 +772,7 @@ under the License. - - - - - - + diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 491b65e1da..adbbc79915 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -33,6 +33,7 @@ + moved all test data to a top-level directory 47721 - Added implementation for INDIRECT() 45583 - Avoid exception when reading ClipboardData packet in OLE property sets 47652 - Added support for reading encrypted workbooks diff --git a/src/ooxml/testcases/org/apache/poi/TestEmbeded.java b/src/ooxml/testcases/org/apache/poi/TestEmbeded.java index ddd394cf2d..dd63f2799f 100644 --- a/src/ooxml/testcases/org/apache/poi/TestEmbeded.java +++ b/src/ooxml/testcases/org/apache/poi/TestEmbeded.java @@ -36,34 +36,24 @@ import junit.framework.TestCase; */ public class TestEmbeded extends TestCase { - public String dirname; - - public void setUp() { - dirname = System.getProperty("OOXML.testdata.path"); - assertNotNull(dirname); - } - public void testExcel() throws Exception { - File f = new File(dirname, "ExcelWithAttachments.xlsm"); - assertTrue(f.exists()); - - POIXMLDocument doc = new XSSFWorkbook(OPCPackage.open(f.toString())); + POIXMLDocument doc = new XSSFWorkbook( + POIDataSamples.getSpreadSheetInstance().openResourceAsStream("ExcelWithAttachments.xlsm") + ); test(doc, 4); } public void testWord() throws Exception { - File f = new File(dirname, "WordWithAttachments.docx"); - assertTrue(f.exists()); - - POIXMLDocument doc = new XWPFDocument(OPCPackage.open(f.toString())); + POIXMLDocument doc = new XWPFDocument( + POIDataSamples.getDocumentInstance().openResourceAsStream("WordWithAttachments.docx") + ); test(doc, 5); } public void testPowerPoint() throws Exception { - File f = new File(dirname, "PPTWithAttachments.pptm"); - assertTrue(f.exists()); - - POIXMLDocument doc = new XSLFSlideShow(OPCPackage.open(f.toString())); + POIXMLDocument doc = new XSLFSlideShow(OPCPackage.open( + POIDataSamples.getSlideShowInstance().openResourceAsStream("PPTWithAttachments.pptm")) + ); test(doc, 4); } diff --git a/src/ooxml/testcases/org/apache/poi/TestPOIXMLDocument.java b/src/ooxml/testcases/org/apache/poi/TestPOIXMLDocument.java index 8843f60933..e495df7676 100755 --- a/src/ooxml/testcases/org/apache/poi/TestPOIXMLDocument.java +++ b/src/ooxml/testcases/org/apache/poi/TestPOIXMLDocument.java @@ -30,11 +30,13 @@ import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.openxml4j.opc.PackageRelationship; import org.apache.poi.util.TempFile; +import org.apache.poi.util.PackageHelper; /** * Test recursive read and write of OPC packages */ public final class TestPOIXMLDocument extends TestCase { + private static class OPCParser extends POIXMLDocument { public OPCParser(OPCPackage pkg) { @@ -81,9 +83,8 @@ public final class TestPOIXMLDocument extends TestCase { } } - public void assertReadWrite(String path) throws Exception { + public void assertReadWrite(OPCPackage pkg1) throws Exception { - OPCPackage pkg1 = OPCPackage.open(path); OPCParser doc = new OPCParser(pkg1); doc.parse(new TestFactory()); @@ -124,17 +125,20 @@ public final class TestPOIXMLDocument extends TestCase { } public void testPPTX() throws Exception { - File file = new File(System.getProperty("OOXML.testdata.path"), "PPTWithAttachments.pptm"); - assertReadWrite(file.getAbsolutePath()); + assertReadWrite( + PackageHelper.open(POIDataSamples.getSlideShowInstance().openResourceAsStream("PPTWithAttachments.pptm")) + ); } public void testXLSX() throws Exception { - File file = new File(System.getProperty("OOXML.testdata.path"), "ExcelWithAttachments.xlsm"); - assertReadWrite(file.getAbsolutePath()); + assertReadWrite( + PackageHelper.open(POIDataSamples.getSpreadSheetInstance().openResourceAsStream("ExcelWithAttachments.xlsm")) + ); } public void testDOCX() throws Exception { - File file = new File(System.getProperty("OOXML.testdata.path"), "WordWithAttachments.docx"); - assertReadWrite(file.getAbsolutePath()); + assertReadWrite( + PackageHelper.open(POIDataSamples.getDocumentInstance().openResourceAsStream("WordWithAttachments.docx")) + ); } } diff --git a/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java b/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java index 2c0c5b5513..303946a113 100644 --- a/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java +++ b/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java @@ -21,21 +21,16 @@ import java.io.File; import org.apache.poi.xssf.extractor.XSSFExcelExtractor; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.openxml4j.opc.OPCPackage; +import org.apache.poi.util.PackageHelper; import junit.framework.TestCase; public final class TestXMLPropertiesTextExtractor extends TestCase { - private String dirname; - - protected void setUp() { - dirname = System.getProperty("OOXML.testdata.path"); - assertTrue( (new File(dirname)).exists() ); - } + private static final POIDataSamples _ssSamples = POIDataSamples.getSpreadSheetInstance(); public void testGetFromMainExtractor() throws Exception { - OPCPackage pkg = OPCPackage.open( - (new File(dirname, "ExcelWithAttachments.xlsm")).toString() - ); + OPCPackage pkg = PackageHelper.open(_ssSamples.openResourceAsStream("ExcelWithAttachments.xlsm")); + XSSFWorkbook wb = new XSSFWorkbook(pkg); XSSFExcelExtractor ext = new XSSFExcelExtractor(wb); @@ -54,8 +49,8 @@ public final class TestXMLPropertiesTextExtractor extends TestCase { } public void testCore() throws Exception { - OPCPackage pkg = OPCPackage.open( - (new File(dirname, "ExcelWithAttachments.xlsm")).toString() + OPCPackage pkg = PackageHelper.open( + _ssSamples.openResourceAsStream("ExcelWithAttachments.xlsm") ); XSSFWorkbook wb = new XSSFWorkbook(pkg); @@ -72,7 +67,7 @@ public final class TestXMLPropertiesTextExtractor extends TestCase { public void testExtended() throws Exception { OPCPackage pkg = OPCPackage.open( - (new File(dirname, "ExcelWithAttachments.xlsm")).toString() + _ssSamples.openResourceAsStream("ExcelWithAttachments.xlsm") ); XSSFWorkbook wb = new XSSFWorkbook(pkg); diff --git a/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java b/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java index 76daeed760..421b979e3a 100644 --- a/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java +++ b/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java @@ -22,10 +22,13 @@ import java.io.IOException; import org.apache.poi.POIOLE2TextExtractor; import org.apache.poi.POITextExtractor; +import org.apache.poi.POIDataSamples; import org.apache.poi.hdgf.extractor.VisioTextExtractor; import org.apache.poi.hslf.extractor.PowerPointExtractor; import org.apache.poi.hssf.extractor.ExcelExtractor; +import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hwpf.extractor.WordExtractor; +import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor; import org.apache.poi.xssf.extractor.XSSFExcelExtractor; @@ -40,21 +43,18 @@ import org.apache.poi.openxml4j.opc.OPCPackage; * Test that the extractor factory plays nicely */ public class TestExtractorFactory extends TestCase { - private String excel_dir; - private String word_dir; - private String powerpoint_dir; - private String visio_dir; - private String poifs_dir; - + private File txt; private File xls; private File xlsx; - private File xltx; + private File xltx; + private File xlsEmb; private File doc; private File docx; - private File dotx; + private File dotx; + private File docEmb; private File ppt; private File pptx; @@ -64,31 +64,25 @@ public class TestExtractorFactory extends TestCase { protected void setUp() throws Exception { super.setUp(); - excel_dir = System.getProperty("HSSF.testdata.path"); - word_dir = System.getProperty("HWPF.testdata.path"); - powerpoint_dir = System.getProperty("HSLF.testdata.path"); - visio_dir = System.getProperty("HDGF.testdata.path"); - poifs_dir = System.getProperty("POIFS.testdata.path"); - assertNotNull(excel_dir); - assertNotNull(word_dir); - assertNotNull(powerpoint_dir); - assertNotNull(visio_dir); - assertNotNull(poifs_dir); - - txt = new File(powerpoint_dir, "SampleShow.txt"); - - xls = new File(excel_dir, "SampleSS.xls"); - xlsx = new File(excel_dir, "SampleSS.xlsx"); - xltx = new File(excel_dir, "test.xltx"); + POIDataSamples ssTests = POIDataSamples.getSpreadSheetInstance(); + xls = ssTests.getFile("SampleSS.xls"); + xlsx = ssTests.getFile("SampleSS.xlsx"); + xltx = ssTests.getFile("test.xltx"); + xlsEmb = ssTests.getFile("excel_with_embeded.xls"); - doc = new File(word_dir, "SampleDoc.doc"); - docx = new File(word_dir, "SampleDoc.docx"); - dotx = new File(word_dir, "test.dotx"); + POIDataSamples wpTests = POIDataSamples.getDocumentInstance(); + doc = wpTests.getFile("SampleDoc.doc"); + docx = wpTests.getFile("SampleDoc.docx"); + dotx = wpTests.getFile("test.dotx"); + docEmb = wpTests.getFile("word_with_embeded.doc"); - ppt = new File(powerpoint_dir, "SampleShow.ppt"); - pptx = new File(powerpoint_dir, "SampleShow.pptx"); - - vsd = new File(visio_dir, "Test_Visio-Some_Random_Text.vsd"); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + ppt = slTests.getFile("SampleShow.ppt"); + pptx = slTests.getFile("SampleShow.pptx"); + txt = slTests.getFile("SampleShow.txt"); + + POIDataSamples dgTests = POIDataSamples.getDiagramInstance(); + vsd = dgTests.getFile("Test_Visio-Some_Random_Text.vsd"); } public void testFile() throws Exception { @@ -339,8 +333,7 @@ public class TestExtractorFactory extends TestCase { public void testEmbeded() throws Exception { POIOLE2TextExtractor ext; POITextExtractor[] embeds; - File f; - + // No embedings ext = (POIOLE2TextExtractor) ExtractorFactory.createExtractor(xls); @@ -348,9 +341,8 @@ public class TestExtractorFactory extends TestCase { assertEquals(0, embeds.length); // Excel - f = new File(poifs_dir, "excel_with_embeded.xls"); ext = (POIOLE2TextExtractor) - ExtractorFactory.createExtractor(f); + ExtractorFactory.createExtractor(xlsEmb); embeds = ExtractorFactory.getEmbededDocsTextExtractors(ext); assertEquals(6, embeds.length); @@ -367,9 +359,8 @@ public class TestExtractorFactory extends TestCase { assertEquals(2, numWord); // Word - f = new File(poifs_dir, "word_with_embeded.doc"); ext = (POIOLE2TextExtractor) - ExtractorFactory.createExtractor(f); + ExtractorFactory.createExtractor(docEmb); embeds = ExtractorFactory.getEmbededDocsTextExtractors(ext); numWord = 0; numXls = 0; numPpt = 0; diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/OpenXML4JTestDataSamples.java b/src/ooxml/testcases/org/apache/poi/openxml4j/OpenXML4JTestDataSamples.java index 62291d37bd..edf0179066 100755 --- a/src/ooxml/testcases/org/apache/poi/openxml4j/OpenXML4JTestDataSamples.java +++ b/src/ooxml/testcases/org/apache/poi/openxml4j/OpenXML4JTestDataSamples.java @@ -17,6 +17,9 @@ package org.apache.poi.openxml4j; +import org.apache.poi.POIDataSamples; +import org.apache.poi.util.TempFile; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -28,121 +31,31 @@ import java.io.InputStream; * @author jmicich */ public final class OpenXML4JTestDataSamples { - - private static final String IN_DIR_PROP_NAME = "openxml4j.testdata.input"; - private static final String COMP_IN_DIR_PROP_NAME = "openxml4j.compliance.input"; - - private static File _sampleInputDir; - private static File _sampleOutputDir; - private static File _complianceSampleInputDir; + private static final POIDataSamples _samples = POIDataSamples.getOpenXML4JInstance(); private OpenXML4JTestDataSamples() { // no instances of this class } - + public static InputStream openSampleStream(String sampleFileName) { - File f = getSampleFile(sampleFileName); - try { - return new FileInputStream(f); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } + return _samples.openResourceAsStream(sampleFileName); } public static String getSampleFileName(String sampleFileName) { - // TODO - investigate allowing read/write access for package opened on stream return getSampleFile(sampleFileName).getAbsolutePath(); } public static File getSampleFile(String sampleFileName) { - File dir = getSampleInputDir(); - File f = new File(dir, sampleFileName); - if (!f.exists()) { - throw new RuntimeException("Specified sample file '" - + f.getAbsolutePath() + "' does not exist"); - } - if (f.isDirectory()) { - throw new RuntimeException("Specified sample file '" - + f.getAbsolutePath() + "' is a directory"); - } - return f; + return _samples.getFile(sampleFileName); } public static File getOutputFile(String outputFileName) { - File dir = getSampleOutputDir(); - return new File(dir, outputFileName); + String suffix = outputFileName.substring(outputFileName.lastIndexOf('.')); + return TempFile.createTempFile(outputFileName, suffix); } public static InputStream openComplianceSampleStream(String sampleFileName) { - File f = getComplianceSampleFile(sampleFileName); - try { - return new FileInputStream(f); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - private static File getComplianceSampleFile(String sampleFileName) { - File dir = getComplianceSampleInputDir(); - File f = new File(dir, sampleFileName); - if (!f.exists()) { - throw new RuntimeException("Specified sample file '" - + f.getAbsolutePath() + "' does not exist"); - } - if (f.isDirectory()) { - throw new RuntimeException("Specified sample file '" - + f.getAbsolutePath() + "' is a directory"); - } - return f; - } - public static String getComplianceSampleFileName(String sampleFileName) { - return getComplianceSampleFile(sampleFileName).getAbsolutePath(); - } - private static File getComplianceSampleInputDir() { - if (_complianceSampleInputDir == null) { - _complianceSampleInputDir = getAndCheckDirByProperty(COMP_IN_DIR_PROP_NAME); - } - return _complianceSampleInputDir; - } - - - private static File getSampleInputDir() { - if (_sampleInputDir == null) { - _sampleInputDir = getAndCheckDirByProperty(IN_DIR_PROP_NAME); - } - return _sampleInputDir; - } - - private static File getAndCheckDirByProperty(String propName) { - String dirName = System.getProperty(propName); - File dir = new File(dirName); - if (!dir.exists()) { - throw new RuntimeException("Specified '" + propName + "' directory: '" - + dirName + "' does not exist"); - } - if (!dir.isDirectory()) { - throw new RuntimeException("Specified '" + propName + "' directory: '" - + dirName + "' is a not a proper directory"); - } - return dir; - } - - private static File getSampleOutputDir() { - if (_sampleOutputDir == null) { - File dir = new File(System.getProperty("java.io.tmpdir"), "poifiles"); - if (dir.exists()) { - if (!dir.isDirectory()) { - throw new RuntimeException("Specified output directory: '" - + dir.getAbsolutePath() + "' is a not a proper directory"); - } - } else { - if (!dir.mkdirs()) { - throw new RuntimeException("Failed to create directory: '" - + dir.getAbsolutePath() + "'"); - } - } - _sampleOutputDir = dir; - } - return _sampleOutputDir; + return _samples.openResourceAsStream(sampleFileName); } } diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java index 7d26fddd7a..b3a4a6320f 100755 --- a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java +++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java @@ -33,6 +33,7 @@ import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackageRelationshipTypes; import org.apache.poi.openxml4j.opc.PackagingURIHelper; import org.apache.poi.openxml4j.opc.TargetMode; +import org.apache.poi.POIDataSamples; /** * Test core properties Open Packaging Convention compliance. @@ -144,11 +145,11 @@ public final class TestOPCComplianceCoreProperties extends TestCase { * Test M4.1 rule. */ public void testOnlyOneCorePropertiesPart_AddPart() { - String sampleFileName = OpenXML4JTestDataSamples.getComplianceSampleFileName("OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx"); + String sampleFileName = "OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx"; OPCPackage pkg = null; try { - pkg = OPCPackage.open(sampleFileName); - } catch (InvalidFormatException e) { + pkg = OPCPackage.open(POIDataSamples.getOpenXML4JInstance().getFile(sampleFileName).getPath()); + } catch (Exception e) { throw new RuntimeException(e); } diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCCompliancePackageModel.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCCompliancePackageModel.java index b07c8c51bc..e3c54f367e 100755 --- a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCCompliancePackageModel.java +++ b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/TestOPCCompliancePackageModel.java @@ -18,6 +18,7 @@ package org.apache.poi.openxml4j.opc.compliance; import java.io.File; +import java.io.IOException; import junit.framework.TestCase; @@ -29,6 +30,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.apache.poi.POIDataSamples; /** * Test Open Packaging Convention package model compliance. @@ -70,11 +72,10 @@ public class TestOPCCompliancePackageModel extends TestCase { * part name derived from another part name by appending segments to it. * [M1.11] */ - public void testPartNameDerivationReadingFailure() { - String filepath = System.getProperty("openxml4j.compliance.input") - + File.separator + "OPCCompliance_DerivedPartNameFAIL.docx"; + public void testPartNameDerivationReadingFailure() throws IOException { + String filename = "OPCCompliance_DerivedPartNameFAIL.docx"; try { - OPCPackage.open(filepath); + OPCPackage.open(POIDataSamples.getOpenXML4JInstance().openResourceAsStream(filename)); } catch (InvalidFormatException e) { return; } diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/data/sample.docx b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/data/sample.docx deleted file mode 100755 index dc87bc817a2327891d990b65d981eca13505aec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14279 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 y R writeOutAndReadBack(R wb) { Workbook result; try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(8192); + wb.write(baos); + InputStream is = new ByteArrayInputStream(baos.toByteArray()); if (wb instanceof HSSFWorkbook) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(8192); - wb.write(baos); - InputStream is = new ByteArrayInputStream(baos.toByteArray()); result = new HSSFWorkbook(is); } else if (wb instanceof XSSFWorkbook) { - File tmp = TempFile.createTempFile("poi-ooxml-", ".xlsx"); - FileOutputStream out = new FileOutputStream(tmp); - wb.write(out); - out.close(); - OPCPackage pkg = OPCPackage.open(tmp.getAbsolutePath()); - result = new XSSFWorkbook(pkg); + result = new XSSFWorkbook(is); } else { - throw new RuntimeException("Unexpected workbook type (" + throw new RuntimeException("Unexpected workbook type (" + wb.getClass().getName() + ")"); } - } catch (InvalidFormatException e) { - throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/data/sample.xlsx b/src/ooxml/testcases/org/apache/poi/xssf/data/sample.xlsx deleted file mode 100644 index a275cf417e01a78f9562b1b13725a404f234d5d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12050 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 I{_*Mm0DX*4GXMYp diff --git a/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java index 0ace7c3f63..0592fbcc76 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java @@ -26,14 +26,16 @@ import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.usermodel.XSSFRichTextString; +import org.apache.poi.POIDataSamples; /** * Tests for {@link XSSFReader} */ public final class TestXSSFReader extends TestCase { + private static POIDataSamples _ssTests = POIDataSamples.getSpreadSheetInstance(); - public void testGetBits() throws Exception { - OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx")); + public void testGetBits() throws Exception { + OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("SampleSS.xlsx")); XSSFReader r = new XSSFReader(pkg); @@ -46,7 +48,7 @@ public final class TestXSSFReader extends TestCase { } public void testStyles() throws Exception { - OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx")); + OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("SampleSS.xlsx")); XSSFReader r = new XSSFReader(pkg); @@ -55,7 +57,7 @@ public final class TestXSSFReader extends TestCase { } public void testStrings() throws Exception { - OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx")); + OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("SampleSS.xlsx")); XSSFReader r = new XSSFReader(pkg); @@ -64,7 +66,7 @@ public final class TestXSSFReader extends TestCase { } public void testSheets() throws Exception { - OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx")); + OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("SampleSS.xlsx")); XSSFReader r = new XSSFReader(pkg); byte[] data = new byte[4096]; @@ -96,7 +98,7 @@ public final class TestXSSFReader extends TestCase { * (as they are defined in the workbook.xml) */ public void testOrderOfSheets() throws Exception { - OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("reordered_sheets.xlsx")); + OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("reordered_sheets.xlsx")); XSSFReader r = new XSSFReader(pkg); diff --git a/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java b/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java index 0f739f750e..f635eea850 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java @@ -28,23 +28,15 @@ import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFPictureData; +import org.apache.poi.xssf.XSSFITestDataProvider; +import org.apache.poi.POIDataSamples; public class TestLoadSaveXSSF extends TestCase { - - String filename; - - protected void setUp() { - - System.setProperty("org.apache.poi.util.POILogger", org.apache.poi.util.CommonsLogger.class.getName()); - filename = System.getProperty("XSSF.testdata.path"); - if (filename == null) { - filename = "src/ooxml/testcases/org/apache/poi/xssf/data"; - } - } + private static final POIDataSamples _ssSampels = POIDataSamples.getSpreadSheetInstance(); public void testLoadSample() throws Exception { - XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "sample.xlsx").getAbsolutePath()); + XSSFWorkbook workbook = new XSSFWorkbook(_ssSampels.openResourceAsStream("sample.xlsx")); assertEquals(3, workbook.getNumberOfSheets()); assertEquals("Sheet1", workbook.getSheetName(0)); Sheet sheet = workbook.getSheetAt(0); @@ -58,7 +50,7 @@ public class TestLoadSaveXSSF extends TestCase { // TODO filename string hard coded in XSSFWorkbook constructor in order to make ant test-ooxml target be successful. public void testLoadStyles() throws Exception { - XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "styles.xlsx").getAbsolutePath()); + XSSFWorkbook workbook = new XSSFWorkbook(_ssSampels.openResourceAsStream("styles.xlsx")); Sheet sheet = workbook.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell((short) 0); @@ -68,7 +60,7 @@ public class TestLoadSaveXSSF extends TestCase { // TODO filename string hard coded in XSSFWorkbook constructor in order to make ant test-ooxml target be successful. public void testLoadPictures() throws Exception { - XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "picture.xlsx").getAbsolutePath()); + XSSFWorkbook workbook = new XSSFWorkbook(_ssSampels.openResourceAsStream("picture.xlsx")); List pictures = workbook.getAllPictures(); assertEquals(1, pictures.size()); } diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java b/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java index 3255d62f10..945ffebe6d 100755 --- a/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java @@ -28,7 +28,7 @@ import java.io.*; public class XWPFTestDataSamples { public static XWPFDocument openSampleDocument(String sampleName) { - InputStream is = HWPFTestDataSamples.openSampleFileStream(sampleName); + InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream(sampleName); try { return new XWPFDocument(is); } catch (IOException e) { @@ -46,9 +46,4 @@ public class XWPFTestDataSamples { throw new RuntimeException(e); } } - - public static POIDataSamples getInstance(){ - return HWPFTestDataSamples.getInstance(); - } - } diff --git a/src/scratchpad/testcases/org/apache/poi/TestPOIDocumentScratchpad.java b/src/scratchpad/testcases/org/apache/poi/TestPOIDocumentScratchpad.java index 8c9224fd9d..7e7d0b249a 100644 --- a/src/scratchpad/testcases/org/apache/poi/TestPOIDocumentScratchpad.java +++ b/src/scratchpad/testcases/org/apache/poi/TestPOIDocumentScratchpad.java @@ -25,7 +25,7 @@ import junit.framework.TestCase; import java.io.*; import org.apache.poi.hslf.HSLFSlideShow; -import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.poifs.filesystem.*; /** @@ -41,29 +41,15 @@ public final class TestPOIDocumentScratchpad extends TestCase { // The POI Documents to work on private POIDocument doc; private POIDocument doc2; - // POIFS primed on the test (powerpoint and word) data - private POIFSFileSystem pfs; - private POIFSFileSystem pfs2; /** * Set things up, using a PowerPoint document and * a Word Document for our testing */ public void setUp() throws Exception { - String dirnameHSLF = System.getProperty("HSLF.testdata.path"); - String filenameHSLF = dirnameHSLF + "/basic_test_ppt_file.ppt"; - String dirnameHSSF = System.getProperty("HSSF.testdata.path"); - String filenameHSSF = dirnameHSLF + "/DateFormats.ppt"; - String dirnameHWPF = System.getProperty("HWPF.testdata.path"); - String filenameHWPF = dirnameHWPF + "/test2.doc"; - - FileInputStream fisHSLF = new FileInputStream(filenameHSLF); - pfs = new POIFSFileSystem(fisHSLF); - doc = new HSLFSlideShow(pfs); - - FileInputStream fisHWPF = new FileInputStream(filenameHWPF); - pfs2 = new POIFSFileSystem(fisHWPF); - doc2 = new HWPFDocument(pfs2); + doc = new HSLFSlideShow(POIDataSamples.getSlideShowInstance().openResourceAsStream("basic_test_ppt_file.ppt")); + + doc2 = HWPFTestDataSamples.openSampleFile("test2.doc"); } public void testReadProperties() { diff --git a/src/scratchpad/testcases/org/apache/poi/hdf/model/TestHDFDocument.java b/src/scratchpad/testcases/org/apache/poi/hdf/model/TestHDFDocument.java index 4f4b4707b8..42f79caf40 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdf/model/TestHDFDocument.java +++ b/src/scratchpad/testcases/org/apache/poi/hdf/model/TestHDFDocument.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import junit.framework.TestCase; +import org.apache.poi.POIDataSamples; /** * Class to test {@link HDFDocument} functionality @@ -30,19 +31,12 @@ import junit.framework.TestCase; * @author Bob Otterberg */ public final class TestHDFDocument extends TestCase { + private static final POIDataSamples _samples = POIDataSamples.getDocumentInstance(); + public void testStopJUnitComplainintAboutNoTests() { // TODO - fix these junits } - private static InputStream openSample(String sampleFileName) { - String fullPathName = System.getProperty("HDF.testdata.path") + "/" + sampleFileName; - try { - return new FileInputStream(System.getProperty("HDF.testdata.path")); - } catch (FileNotFoundException e) { - throw new RuntimeException("Sample HDF file '" + fullPathName + "' was not found."); - } - } - /** * OBJECTIVE: Test that HDF can read an empty document (empty.doc).

* SUCCESS: HDF reads the document. Matches values in their particular positions.

@@ -50,7 +44,7 @@ public final class TestHDFDocument extends TestCase { * in the document in their known positions.

*/ public void fixme_testEmpty() throws IOException { - InputStream stream = openSample("empty.doc"); + InputStream stream = _samples.openResourceAsStream("empty.doc"); new HDFDocument(stream); } @@ -61,7 +55,7 @@ public final class TestHDFDocument extends TestCase { * in the document in their known positions.

*/ public void fixme_testSimple() throws IOException { - InputStream stream = openSample("simple.doc"); + InputStream stream = _samples.openResourceAsStream("simple.doc"); new HDFDocument(stream); } @@ -73,7 +67,7 @@ public final class TestHDFDocument extends TestCase { * */ public void fixme_testSimpleList() throws IOException { - InputStream stream = openSample("simple-list.doc"); + InputStream stream = _samples.openResourceAsStream("simple-list.doc"); new HDFDocument(stream); } @@ -84,7 +78,7 @@ public final class TestHDFDocument extends TestCase { * in the document in their known positions.

*/ public void fixme_testSimpleTable() throws IOException { - InputStream stream = openSample("simple-table.doc"); + InputStream stream = _samples.openResourceAsStream("simple-table.doc"); new HDFDocument(stream); } } diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFCore.java b/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFCore.java index e98c8110a0..d6616b9147 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFCore.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/TestHDGFCore.java @@ -22,18 +22,17 @@ import java.io.FileInputStream; import org.apache.poi.hdgf.streams.PointerContainingStream; import org.apache.poi.hdgf.streams.TrailerStream; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; public final class TestHDGFCore extends TestCase { + private static POIDataSamples _dgTests = POIDataSamples.getDiagramInstance(); + private POIFSFileSystem fs; - private String dirname; - private String filename; protected void setUp() throws Exception { - dirname = System.getProperty("HDGF.testdata.path"); - filename = dirname + "/Test_Visio-Some_Random_Text.vsd"; - fs = new POIFSFileSystem(new FileInputStream(filename)); + fs = new POIFSFileSystem(_dgTests.openResourceAsStream("Test_Visio-Some_Random_Text.vsd")); } public void testCreate() throws Exception { @@ -68,8 +67,7 @@ public final class TestHDGFCore extends TestCase { * appears to have a negative chunk length */ public void DISABLEDtestNegativeChunkLength() throws Exception { - filename = dirname + "/NegativeChunkLength.vsd"; - fs = new POIFSFileSystem(new FileInputStream(filename)); + fs = new POIFSFileSystem(_dgTests.openResourceAsStream("NegativeChunkLength.vsd")); HDGFDiagram hdgf = new HDGFDiagram(fs); assertNotNull(hdgf); diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/extractor/TestVisioExtractor.java b/src/scratchpad/testcases/org/apache/poi/hdgf/extractor/TestVisioExtractor.java index 16bd9a961e..30b8db4fbd 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/extractor/TestVisioExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/extractor/TestVisioExtractor.java @@ -19,20 +19,20 @@ package org.apache.poi.hdgf.extractor; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileInputStream; import java.io.PrintStream; import junit.framework.TestCase; import org.apache.poi.hdgf.HDGFDiagram; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; public final class TestVisioExtractor extends TestCase { - private String dirname; + private static POIDataSamples _dgTests = POIDataSamples.getDiagramInstance(); + private String defFilename; protected void setUp() { - dirname = System.getProperty("HDGF.testdata.path"); - defFilename = dirname + "/Test_Visio-Some_Random_Text.vsd"; + defFilename = "Test_Visio-Some_Random_Text.vsd"; } /** @@ -41,14 +41,14 @@ public final class TestVisioExtractor extends TestCase { public void testCreation() throws Exception { VisioTextExtractor extractor; - extractor = new VisioTextExtractor(new FileInputStream(defFilename)); + extractor = new VisioTextExtractor(_dgTests.openResourceAsStream(defFilename)); assertNotNull(extractor); assertNotNull(extractor.getAllText()); assertEquals(3, extractor.getAllText().length); extractor = new VisioTextExtractor( new POIFSFileSystem( - new FileInputStream(defFilename) + _dgTests.openResourceAsStream(defFilename) ) ); assertNotNull(extractor); @@ -58,7 +58,7 @@ public final class TestVisioExtractor extends TestCase { extractor = new VisioTextExtractor( new HDGFDiagram( new POIFSFileSystem( - new FileInputStream(defFilename) + _dgTests.openResourceAsStream(defFilename) ) ) ); @@ -69,7 +69,7 @@ public final class TestVisioExtractor extends TestCase { public void testExtraction() throws Exception { VisioTextExtractor extractor = - new VisioTextExtractor(new FileInputStream(defFilename)); + new VisioTextExtractor(_dgTests.openResourceAsStream(defFilename)); // Check the array fetch String[] text = extractor.getAllText(); @@ -86,20 +86,11 @@ public final class TestVisioExtractor extends TestCase { } public void testProblemFiles() throws Exception { - File a = new File(dirname, "44594.vsd"); - VisioTextExtractor.main(new String[] {a.toString()}); - - File b = new File(dirname, "44594-2.vsd"); - VisioTextExtractor.main(new String[] {b.toString()}); - - File c = new File(dirname, "ShortChunk1.vsd"); - VisioTextExtractor.main(new String[] {c.toString()}); - - File d = new File(dirname, "ShortChunk2.vsd"); - VisioTextExtractor.main(new String[] {d.toString()}); - - File e = new File(dirname, "ShortChunk3.vsd"); - VisioTextExtractor.main(new String[] {e.toString()}); + String[] files = {"44594.vsd", "44594-2.vsd", "ShortChunk1.vsd", "ShortChunk2.vsd", "ShortChunk3.vsd"}; + for(String file : files){ + VisioTextExtractor ex = new VisioTextExtractor(_dgTests.openResourceAsStream(file)); + ex.getText(); + } } public void testMain() throws Exception { @@ -108,7 +99,8 @@ public final class TestVisioExtractor extends TestCase { PrintStream capture = new PrintStream(baos); System.setOut(capture); - VisioTextExtractor.main(new String[] {defFilename}); + String path = _dgTests.getFile(defFilename).getPath(); + VisioTextExtractor.main(new String[] {path}); // Put things back System.setOut(oldOut); diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java index 66c3907082..5ba377afdf 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java @@ -18,6 +18,7 @@ package org.apache.poi.hdgf.streams; import java.io.FileInputStream; +import java.io.InputStream; import org.apache.poi.hdgf.HDGFDiagram; import org.apache.poi.hdgf.chunks.ChunkFactory; @@ -25,6 +26,7 @@ import org.apache.poi.hdgf.pointers.Pointer; import org.apache.poi.hdgf.pointers.PointerFactory; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; /** * Tests for bugs with streams @@ -36,13 +38,11 @@ public final class TestStreamBugs extends StreamTest { private POIFSFileSystem filesystem; protected void setUp() throws Exception { - String dirname = System.getProperty("HDGF.testdata.path"); - String filename = dirname + "/44594.vsd"; ptrFactory = new PointerFactory(11); chunkFactory = new ChunkFactory(11); - FileInputStream fin = new FileInputStream(filename); - filesystem = new POIFSFileSystem(fin); + InputStream is = POIDataSamples.getDiagramInstance().openResourceAsStream("44594.vsd"); + filesystem = new POIFSFileSystem(is); DocumentEntry docProps = (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument"); diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java index a06c03aa24..6aa2b2e31c 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java @@ -18,6 +18,7 @@ package org.apache.poi.hdgf.streams; import java.io.FileInputStream; +import java.io.InputStream; import org.apache.poi.hdgf.chunks.Chunk; import org.apache.poi.hdgf.chunks.ChunkFactory; @@ -25,6 +26,7 @@ import org.apache.poi.hdgf.pointers.Pointer; import org.apache.poi.hdgf.pointers.PointerFactory; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; public final class TestStreamComplex extends StreamTest { private byte[] contents; @@ -34,13 +36,11 @@ public final class TestStreamComplex extends StreamTest { private PointerFactory ptrFactory; protected void setUp() throws Exception { - String dirname = System.getProperty("HDGF.testdata.path"); - String filename = dirname + "/Test_Visio-Some_Random_Text.vsd"; ptrFactory = new PointerFactory(11); chunkFactory = new ChunkFactory(11); - FileInputStream fin = new FileInputStream(filename); - POIFSFileSystem filesystem = new POIFSFileSystem(fin); + InputStream is = POIDataSamples.getDiagramInstance().openResourceAsStream("Test_Visio-Some_Random_Text.vsd"); + POIFSFileSystem filesystem = new POIFSFileSystem(is); DocumentEntry docProps = (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument"); diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/TestHPBFDocument.java b/src/scratchpad/testcases/org/apache/poi/hpbf/TestHPBFDocument.java index 96e1591e02..4ea2793774 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/TestHPBFDocument.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/TestHPBFDocument.java @@ -21,27 +21,22 @@ import java.io.File; import java.io.FileInputStream; import junit.framework.TestCase; +import org.apache.poi.POIDataSamples; public final class TestHPBFDocument extends TestCase { - private String dir; - - protected void setUp() { - dir = System.getProperty("HPBF.testdata.path"); - } + private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); public void testOpen() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); assertNotNull(doc); } public void testBits() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); assertNotNull(doc.getMainContents()); diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java b/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java index 7aceb66d43..fd3c97fe72 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java @@ -21,37 +21,31 @@ import java.io.File; import java.io.FileInputStream; import org.apache.poi.hpbf.HPBFDocument; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; public final class TextPublisherTextExtractor extends TestCase { - private String dir; - - protected void setUp() { - dir = System.getProperty("HPBF.testdata.path"); - } + private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); public void testBasics() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); PublisherTextExtractor ext = new PublisherTextExtractor(doc); ext.getText(); - f = new File(dir, "Simple.pub"); ext = new PublisherTextExtractor( - new FileInputStream(f) + _samples.openResourceAsStream("Simple.pub") ); ext.getText(); } public void testContents() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); PublisherTextExtractor ext = @@ -87,9 +81,8 @@ public final class TextPublisherTextExtractor extends TestCase { ); // Now a simpler one - f = new File(dir, "Simple.pub"); ext = new PublisherTextExtractor( - new FileInputStream(f) + _samples.openResourceAsStream("Simple.pub") ); text = ext.getText(); assertEquals( @@ -113,21 +106,18 @@ public final class TextPublisherTextExtractor extends TestCase { File f; HPBFDocument doc; - f = new File(dir, "Sample.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); String s2007 = (new PublisherTextExtractor(doc)).getText(); - f = new File(dir, "Sample2000.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample2000.pub") ); String s2000 = (new PublisherTextExtractor(doc)).getText(); - f = new File(dir, "Sample98.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample98.pub") ); String s98 = (new PublisherTextExtractor(doc)).getText(); @@ -141,9 +131,8 @@ public final class TextPublisherTextExtractor extends TestCase { * as we can hope it to. */ public void testWithHyperlinks() throws Exception { - File f = new File(dir, "LinkAt10.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("LinkAt10.pub") ); PublisherTextExtractor ext = @@ -159,8 +148,9 @@ public final class TextPublisherTextExtractor extends TestCase { // Now a much more complex document - f = new File(dir, "Sample.pub"); - ext = new PublisherTextExtractor(new FileInputStream(f)); + ext = new PublisherTextExtractor( + _samples.openResourceAsStream("Sample.pub") + ); ext.setHyperlinksByDefault(true); String text = ext.getText(); diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java index 702c5fd8f3..0df03e16eb 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java @@ -21,20 +21,16 @@ import java.io.File; import java.io.FileInputStream; import org.apache.poi.hpbf.HPBFDocument; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; public final class TestEscherParts extends TestCase { - private String dir; - - protected void setUp() { - dir = System.getProperty("HPBF.testdata.path"); - } + private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); public void testBasics() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); EscherStm es = doc.getEscherStm(); @@ -50,9 +46,8 @@ public final class TestEscherParts extends TestCase { } public void testComplex() throws Exception { - File f = new File(dir, "SampleBrochure.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("SampleBrochure.pub") ); EscherStm es = doc.getEscherStm(); @@ -68,9 +63,8 @@ public final class TestEscherParts extends TestCase { // Now do another complex file - f = new File(dir, "SampleNewsletter.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("SampleNewsletter.pub") ); es = doc.getEscherStm(); diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestQuillContents.java b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestQuillContents.java index 6a80c86286..b88e45b028 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestQuillContents.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestQuillContents.java @@ -17,29 +17,22 @@ package org.apache.poi.hpbf.model; -import java.io.File; -import java.io.FileInputStream; - import org.apache.poi.hpbf.HPBFDocument; import org.apache.poi.hpbf.model.qcbits.QCTextBit; import org.apache.poi.hpbf.model.qcbits.QCPLCBit.Type12; import org.apache.poi.hpbf.model.qcbits.QCPLCBit.Type0; import org.apache.poi.hpbf.model.qcbits.QCPLCBit.Type4; import org.apache.poi.hpbf.model.qcbits.QCPLCBit.Type8; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; public final class TestQuillContents extends TestCase { - private String dir; - - protected void setUp() { - dir = System.getProperty("HPBF.testdata.path"); - } + private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); public void testBasics() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); QuillContents qc = doc.getQuillContents(); @@ -69,9 +62,8 @@ public final class TestQuillContents extends TestCase { } public void testText() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); QuillContents qc = doc.getQuillContents(); @@ -84,9 +76,8 @@ public final class TestQuillContents extends TestCase { } public void testPLC() throws Exception { - File f = new File(dir, "Simple.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Simple.pub") ); QuillContents qc = doc.getQuillContents(); @@ -145,9 +136,8 @@ public final class TestQuillContents extends TestCase { } public void testComplexPLC() throws Exception { - File f = new File(dir, "Sample.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); QuillContents qc = doc.getQuillContents(); @@ -247,9 +237,8 @@ public final class TestQuillContents extends TestCase { } public void testNoHyperlinks() throws Exception { - File f = new File(dir, "SampleNewsletter.pub"); HPBFDocument doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("SampleNewsletter.pub") ); QuillContents qc = doc.getQuillContents(); @@ -264,15 +253,13 @@ public final class TestQuillContents extends TestCase { } public void testSimpleHyperlink() throws Exception { - File f; HPBFDocument doc; QuillContents qc; Type12 hlBit; // Link at 10 - f = new File(dir, "LinkAt10.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("LinkAt10.pub") ); qc = doc.getQuillContents(); @@ -285,9 +272,8 @@ public final class TestQuillContents extends TestCase { assertEquals("http://poi.apache.org/", hlBit.getHyperlink(0)); // Longer link at 10 - f = new File(dir, "LinkAt10Longer.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("LinkAt10Longer.pub") ); qc = doc.getQuillContents(); @@ -300,9 +286,8 @@ public final class TestQuillContents extends TestCase { assertEquals("http://poi.apache.org/hpbf/", hlBit.getHyperlink(0)); // Link at 20 - f = new File(dir, "LinkAt20.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("LinkAt20.pub") ); qc = doc.getQuillContents(); @@ -316,15 +301,13 @@ public final class TestQuillContents extends TestCase { } public void testManyHyperlinks() throws Exception { - File f; HPBFDocument doc; QuillContents qc; Type12 hlBit; // Link at 10 - f = new File(dir, "LinkAt10.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("LinkAt10.pub") ); qc = doc.getQuillContents(); @@ -339,16 +322,14 @@ public final class TestQuillContents extends TestCase { } public void testHyperlinkDifferentVersions() throws Exception { - File f; HPBFDocument doc; QuillContents qc; Type12 hlBitA; Type12 hlBitB; // Latest version - f = new File(dir, "Sample.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample.pub") ); qc = doc.getQuillContents(); @@ -375,9 +356,8 @@ public final class TestQuillContents extends TestCase { assertEquals("mailto:dev@poi.apache.org?subject=HPBF", hlBitB.getHyperlink(2)); // 2000 version - f = new File(dir, "Sample2000.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample2000.pub") ); qc = doc.getQuillContents(); @@ -404,9 +384,8 @@ public final class TestQuillContents extends TestCase { assertEquals("mailto:dev@poi.apache.org?subject=HPBF", hlBitB.getHyperlink(2)); // 98 version - f = new File(dir, "Sample98.pub"); doc = new HPBFDocument( - new FileInputStream(f) + _samples.openResourceAsStream("Sample98.pub") ); qc = doc.getQuillContents(); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/TestEncryptedFile.java b/src/scratchpad/testcases/org/apache/poi/hslf/TestEncryptedFile.java index 892cb81387..da07810b86 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/TestEncryptedFile.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/TestEncryptedFile.java @@ -21,6 +21,7 @@ package org.apache.poi.hslf; import junit.framework.TestCase; import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; +import org.apache.poi.POIDataSamples; /** * Tests that HSLFSlideShow does the right thing with an encrypted file @@ -28,48 +29,31 @@ import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; * @author Nick Burch (nick at torchbox dot com) */ public final class TestEncryptedFile extends TestCase { - // A non encrypted file - private String ss_ne; - // An encrypted file, with encrypted properties - private String ss_e; - // An encrypted file, without encrypted properties - private String ss_np_e; - // An encrypted file, with a 56 bit key - private String ss_56_e; - - - public TestEncryptedFile() { - String dirname = System.getProperty("HSLF.testdata.path"); - - ss_ne = dirname + "/basic_test_ppt_file.ppt"; - ss_e = dirname + "/Password_Protected-hello.ppt"; - ss_np_e = dirname + "/Password_Protected-np-hello.ppt"; - ss_56_e = dirname + "/Password_Protected-56-hello.ppt"; - } + private static POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); public void testLoadNonEncrypted() throws Exception { - HSLFSlideShow hss = new HSLFSlideShow(ss_ne); + HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); assertNotNull(hss); } public void testLoadEncrypted() throws Exception { try { - new HSLFSlideShow(ss_e); + new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-hello.ppt")); fail(); } catch(EncryptedPowerPointFileException e) { // Good } try { - new HSLFSlideShow(ss_np_e); + new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-np-hello.ppt")); fail(); } catch(EncryptedPowerPointFileException e) { // Good } try { - new HSLFSlideShow(ss_56_e); + new HSLFSlideShow(slTests.openResourceAsStream("Password_Protected-56-hello.ppt")); fail(); } catch(EncryptedPowerPointFileException e) { // Good diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java index b1468f2c55..ff918ad03d 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java @@ -19,10 +19,14 @@ package org.apache.poi.hslf; import junit.framework.TestCase; -import java.io.*; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.poifs.filesystem.*; +import org.apache.poi.POIDataSamples; + +import java.io.ByteArrayOutputStream; +import java.io.ByteArrayInputStream; +import java.io.FileNotFoundException; /** * Tests that HSLFSlideShow writes the powerpoint bit of data back out @@ -41,21 +45,16 @@ public final class TestReWrite extends TestCase { private POIFSFileSystem pfsC; public void setUp() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filenameA = dirname + "/basic_test_ppt_file.ppt"; - FileInputStream fisA = new FileInputStream(filenameA); - pfsA = new POIFSFileSystem(fisA); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + + pfsA = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); hssA = new HSLFSlideShow(pfsA); - String filenameB = dirname + "/ParagraphStylesShorterThanCharStyles.ppt"; - FileInputStream fisB = new FileInputStream(filenameB); - pfsB = new POIFSFileSystem(fisB); + pfsB = new POIFSFileSystem(slTests.openResourceAsStream("ParagraphStylesShorterThanCharStyles.ppt")); hssB = new HSLFSlideShow(pfsB); - String filenameC = dirname + "/WithMacros.ppt"; - FileInputStream fisC = new FileInputStream(filenameC); - pfsC = new POIFSFileSystem(fisC); + pfsC = new POIFSFileSystem(slTests.openResourceAsStream("WithMacros.ppt")); hssC = new HSLFSlideShow(pfsC); } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java index 7467021544..4590e551ce 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWriteSanity.java @@ -23,6 +23,7 @@ import java.io.*; import java.util.*; import org.apache.poi.hslf.record.*; import org.apache.poi.poifs.filesystem.*; +import org.apache.poi.POIDataSamples; /** * Tests that HSLFSlideShow writes the powerpoint bit of data back out @@ -37,10 +38,8 @@ public final class TestReWriteSanity extends TestCase { private POIFSFileSystem pfs; public TestReWriteSanity() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - FileInputStream fis = new FileInputStream(filename); - pfs = new POIFSFileSystem(fis); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); ss = new HSLFSlideShow(pfs); } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/TestRecordCounts.java b/src/scratchpad/testcases/org/apache/poi/hslf/TestRecordCounts.java index 16e0c2785c..5d509b6203 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/TestRecordCounts.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/TestRecordCounts.java @@ -20,6 +20,7 @@ package org.apache.poi.hslf; import junit.framework.TestCase; import org.apache.poi.hslf.record.*; +import org.apache.poi.POIDataSamples; /** * Tests that HSLFSlideShow returns the right numbers of key records when @@ -32,9 +33,8 @@ public final class TestRecordCounts extends TestCase { private HSLFSlideShow ss; public TestRecordCounts() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - ss = new HSLFSlideShow(filename); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + ss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); } public void testSheetsCount() { diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestCruddyExtractor.java b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestCruddyExtractor.java index fdcc45e0b9..8b236b31ee 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestCruddyExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestCruddyExtractor.java @@ -21,6 +21,8 @@ package org.apache.poi.hslf.extractor; import junit.framework.TestCase; import java.util.Vector; +import org.apache.poi.POIDataSamples; + /** * Tests that the QuickButCruddyTextExtractor works correctly * @@ -56,9 +58,8 @@ public final class TestCruddyExtractor extends TestCase { }; public TestCruddyExtractor() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - te = new QuickButCruddyTextExtractor(filename); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + te = new QuickButCruddyTextExtractor(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); } public void testReadAsVector() { diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java index 769638bf02..66316be7df 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java @@ -28,6 +28,7 @@ import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; @@ -41,19 +42,15 @@ public final class TestExtractor extends TestCase { private PowerPointExtractor ppe; /** Extractor primed on the 1 page but text-box'd test data */ private PowerPointExtractor ppe2; - /** Where to go looking for our test files */ - private String dirname; /** Where our embeded files live */ - private String pdirname; + //private String pdirname; + private static POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + //private String pdirname; protected void setUp() throws Exception { - dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - ppe = new PowerPointExtractor(filename); - String filename2 = dirname + "/with_textbox.ppt"; - ppe2 = new PowerPointExtractor(filename2); - - pdirname = System.getProperty("POIFS.testdata.path"); + + ppe = new PowerPointExtractor(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); + ppe2 = new PowerPointExtractor(slTests.openResourceAsStream("with_textbox.ppt")); } public void testReadSheetText() { @@ -114,8 +111,7 @@ public final class TestExtractor extends TestCase { * @throws Exception */ public void testMissingCoreRecords() throws Exception { - String filename = dirname + "/missing_core_records.ppt"; - ppe = new PowerPointExtractor(filename); + ppe = new PowerPointExtractor(slTests.openResourceAsStream("missing_core_records.ppt")); String text = ppe.getText(true, false); String nText = ppe.getNotes(); @@ -141,72 +137,67 @@ public final class TestExtractor extends TestCase { } public void testExtractFromEmbeded() throws Exception { - String filename3 = pdirname + "/excel_with_embeded.xls"; - POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(filename3) - ); - HSLFSlideShow ss; - - DirectoryNode dirA = (DirectoryNode) - fs.getRoot().getEntry("MBD0000A3B6"); - DirectoryNode dirB = (DirectoryNode) - fs.getRoot().getEntry("MBD0000A3B3"); - - assertNotNull(dirA.getEntry("PowerPoint Document")); - assertNotNull(dirB.getEntry("PowerPoint Document")); - - // Check the first file - ss = new HSLFSlideShow(dirA, fs); - ppe = new PowerPointExtractor(ss); - assertEquals("Sample PowerPoint file\nThis is the 1st file\nNot much too it\n", - ppe.getText(true, false) - ); + POIFSFileSystem fs = new POIFSFileSystem( + POIDataSamples.getSpreadSheetInstance().openResourceAsStream("excel_with_embeded.xls") + ); + HSLFSlideShow ss; - // And the second - ss = new HSLFSlideShow(dirB, fs); - ppe = new PowerPointExtractor(ss); - assertEquals("Sample PowerPoint file\nThis is the 2nd file\nNot much too it either\n", - ppe.getText(true, false) - ); - } + DirectoryNode dirA = (DirectoryNode) + fs.getRoot().getEntry("MBD0000A3B6"); + DirectoryNode dirB = (DirectoryNode) + fs.getRoot().getEntry("MBD0000A3B3"); - /** - * A powerpoint file with embeded powerpoint files - */ - public void testExtractFromOwnEmbeded() throws Exception { - String path = pdirname + "/ppt_with_embeded.ppt"; - ppe = new PowerPointExtractor(path); - List shapes = ppe.getOLEShapes(); - assertEquals("Expected 6 ole shapes in " + path, 6, shapes.size()); - int num_ppt = 0, num_doc = 0, num_xls = 0; - for(OLEShape ole : shapes) { - String name = ole.getInstanceName(); - InputStream data = ole.getObjectData().getData(); - if ("Worksheet".equals(name)) { - HSSFWorkbook wb = new HSSFWorkbook(data); - num_xls++; - } else if ("Document".equals(name)) { - HWPFDocument doc = new HWPFDocument(data); - num_doc++; - } else if ("Presentation".equals(name)) { - num_ppt++; - SlideShow ppt = new SlideShow(data); - } - } - assertEquals("Expected 2 embedded Word Documents", 2, num_doc); - assertEquals("Expected 2 embedded Excel Spreadsheets", 2, num_xls); - assertEquals("Expected 2 embedded PowerPoint Presentations", 2, num_ppt); - } + assertNotNull(dirA.getEntry("PowerPoint Document")); + assertNotNull(dirB.getEntry("PowerPoint Document")); + + // Check the first file + ss = new HSLFSlideShow(dirA, fs); + ppe = new PowerPointExtractor(ss); + assertEquals("Sample PowerPoint file\nThis is the 1st file\nNot much too it\n", + ppe.getText(true, false) + ); + + // And the second + ss = new HSLFSlideShow(dirB, fs); + ppe = new PowerPointExtractor(ss); + assertEquals("Sample PowerPoint file\nThis is the 2nd file\nNot much too it either\n", + ppe.getText(true, false) + ); + } + + /** + * A powerpoint file with embeded powerpoint files + */ + public void testExtractFromOwnEmbeded() throws Exception { + String path = "ppt_with_embeded.ppt"; + ppe = new PowerPointExtractor(POIDataSamples.getSlideShowInstance().openResourceAsStream(path)); + List shapes = ppe.getOLEShapes(); + assertEquals("Expected 6 ole shapes in " + path, 6, shapes.size()); + int num_ppt = 0, num_doc = 0, num_xls = 0; + for(OLEShape ole : shapes) { + String name = ole.getInstanceName(); + InputStream data = ole.getObjectData().getData(); + if ("Worksheet".equals(name)) { + HSSFWorkbook wb = new HSSFWorkbook(data); + num_xls++; + } else if ("Document".equals(name)) { + HWPFDocument doc = new HWPFDocument(data); + num_doc++; + } else if ("Presentation".equals(name)) { + num_ppt++; + SlideShow ppt = new SlideShow(data); + } + } + assertEquals("Expected 2 embedded Word Documents", 2, num_doc); + assertEquals("Expected 2 embedded Excel Spreadsheets", 2, num_xls); + assertEquals("Expected 2 embedded PowerPoint Presentations", 2, num_ppt); + } /** * From bug #45543 */ public void testWithComments() throws Exception { - String filename; - - // New file - filename = dirname + "/WithComments.ppt"; - ppe = new PowerPointExtractor(filename); + ppe = new PowerPointExtractor(slTests.openResourceAsStream("WithComments.ppt")); String text = ppe.getText(); assertFalse("Comments not in by default", contains(text, "This is a test comment")); @@ -218,8 +209,7 @@ public final class TestExtractor extends TestCase { // And another file - filename = dirname + "/45543.ppt"; - ppe = new PowerPointExtractor(filename); + ppe = new PowerPointExtractor(slTests.openResourceAsStream("45543.ppt")); text = ppe.getText(); assertFalse("Comments not in by default", contains(text, "testdoc")); @@ -234,11 +224,10 @@ public final class TestExtractor extends TestCase { * From bug #45537 */ public void testHeaderFooter() throws Exception { - String filename, text; - + String text; + // With a header on the notes - filename = dirname + "/45537_Header.ppt"; - HSLFSlideShow hslf = new HSLFSlideShow(new FileInputStream(filename)); + HSLFSlideShow hslf = new HSLFSlideShow(slTests.openResourceAsStream("45537_Header.ppt")); SlideShow ss = new SlideShow(hslf); assertNotNull(ss.getNotesHeadersFooters()); assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getHeaderText()); @@ -256,13 +245,12 @@ public final class TestExtractor extends TestCase { // And with a footer, also on notes - filename = dirname + "/45537_Footer.ppt"; - hslf = new HSLFSlideShow(new FileInputStream(filename)); + hslf = new HSLFSlideShow(slTests.openResourceAsStream("45537_Footer.ppt")); ss = new SlideShow(hslf); assertNotNull(ss.getNotesHeadersFooters()); assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getFooterText()); - ppe = new PowerPointExtractor(filename); + ppe = new PowerPointExtractor(slTests.openResourceAsStream("45537_Footer.ppt")); text = ppe.getText(); assertFalse("Unable to find expected word in text\n" + text, contains(text, "testdoc")); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java index e1ac1914f6..69e7a6b37f 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java @@ -24,6 +24,7 @@ import java.awt.*; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hslf.HSLFSlideShow; +import org.apache.poi.POIDataSamples; /** * Test Fill object. @@ -31,6 +32,7 @@ import org.apache.poi.hslf.HSLFSlideShow; * @author Yegor Kozlov */ public final class TestBackground extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** * Default background for slide, shape and slide master. @@ -52,7 +54,7 @@ public final class TestBackground extends TestCase { * Read fill information from an reference ppt file */ public void testReadBackground() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(System.getProperty("HSLF.testdata.path") + "/backgrounds.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("backgrounds.ppt")); Fill fill; Shape shape; @@ -93,7 +95,7 @@ public final class TestBackground extends TestCase { slide = ppt.createSlide(); slide.setFollowMasterBackground(false); fill = slide.getBackground().getFill(); - idx = ppt.addPicture(new File(System.getProperty("HSLF.testdata.path") + "/tomcat.png"), Picture.PNG); + idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG); fill.setFillType(Fill.FILL_PICTURE); fill.setPictureData(idx); @@ -107,7 +109,7 @@ public final class TestBackground extends TestCase { slide = ppt.createSlide(); slide.setFollowMasterBackground(false); fill = slide.getBackground().getFill(); - idx = ppt.addPicture(new File(System.getProperty("HSLF.testdata.path") + "/tomcat.png"), Picture.PNG); + idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG); fill.setFillType(Fill.FILL_PATTERN); fill.setPictureData(idx); fill.setBackgroundColor(Color.green); @@ -123,7 +125,7 @@ public final class TestBackground extends TestCase { slide = ppt.createSlide(); slide.setFollowMasterBackground(false); fill = slide.getBackground().getFill(); - idx = ppt.addPicture(new File(System.getProperty("HSLF.testdata.path") + "/tomcat.png"), Picture.PNG); + idx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG); fill.setFillType(Fill.FILL_TEXTURE); fill.setPictureData(idx); @@ -131,7 +133,7 @@ public final class TestBackground extends TestCase { shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200)); fill = shape.getFill(); fill.setFillType(Fill.FILL_PICTURE); - idx = ppt.addPicture(new File(System.getProperty("HSLF.testdata.path") + "/clock.jpg"), Picture.JPEG); + idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG); fill.setPictureData(idx); slide.addShape(shape); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHeadersFooters.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHeadersFooters.java index cf94e04539..1e86b8c3af 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHeadersFooters.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHeadersFooters.java @@ -19,6 +19,7 @@ package org.apache.poi.hslf.model; import java.io.*; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; import junit.framework.TestCase; @@ -28,14 +29,11 @@ import junit.framework.TestCase; public final class TestHeadersFooters extends TestCase { - public static final String cwd = System.getProperty("HSLF.testdata.path"); + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); public void testRead() throws Exception { - File file = new File(cwd, "headers_footers.ppt"); - FileInputStream is = new FileInputStream(file); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("headers_footers.ppt")); HeadersFooters slideHdd = ppt.getSlideHeadersFooters(); assertTrue(slideHdd.isFooterVisible()); @@ -79,10 +77,7 @@ public final class TestHeadersFooters extends TestCase */ public void testReadNoHeadersFooters() throws Exception { - File file = new File(cwd, "basic_test_ppt_file.ppt"); - FileInputStream is = new FileInputStream(file); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt")); HeadersFooters slideHdd = ppt.getSlideHeadersFooters(); assertFalse(slideHdd.isFooterVisible()); @@ -119,10 +114,7 @@ public final class TestHeadersFooters extends TestCase */ public void testRead2007() throws Exception { - File file = new File(cwd, "headers_footers_2007.ppt"); - FileInputStream is = new FileInputStream(file); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("headers_footers_2007.ppt")); HeadersFooters slideHdd = ppt.getSlideHeadersFooters(); assertTrue(slideHdd.isFooterVisible()); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHyperlink.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHyperlink.java index 48de8804e9..6f9f9eb8b4 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHyperlink.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestHyperlink.java @@ -19,10 +19,8 @@ package org.apache.poi.hslf.model; import junit.framework.TestCase; -import java.io.FileInputStream; -import java.io.File; - import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Test Hyperlink. @@ -30,12 +28,10 @@ import org.apache.poi.hslf.usermodel.SlideShow; * @author Yegor Kozlov */ public final class TestHyperlink extends TestCase { - protected String cwd = System.getProperty("HSLF.testdata.path"); + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); public void testTextRunHyperlinks() throws Exception { - FileInputStream is = new FileInputStream(new File(cwd, "WithLinks.ppt")); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("WithLinks.ppt")); TextRun[] run; Slide slide; diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestMovieShape.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestMovieShape.java index 8d2f704561..9460642bb4 100755 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestMovieShape.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestMovieShape.java @@ -20,11 +20,11 @@ package org.apache.poi.hslf.model; import java.awt.geom.Rectangle2D; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; import junit.framework.TestCase; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Test MovieShape object. @@ -33,16 +33,16 @@ import org.apache.poi.hslf.usermodel.SlideShow; */ public final class TestMovieShape extends TestCase { - protected String cwd = System.getProperty("HSLF.testdata.path"); + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); public void testCreate() throws Exception { SlideShow ppt = new SlideShow(); Slide slide = ppt.createSlide(); - String path = cwd + "/test-movie.mpg"; + String path = "/test-movie.mpg"; int movieIdx = ppt.addMovie(path, MovieShape.MOVIE_MPEG); - int thumbnailIdx = ppt.addPicture(new File(cwd, "tomcat.png"), Picture.PNG); + int thumbnailIdx = ppt.addPicture(_slTests.readFile("tomcat.png"), Picture.PNG); MovieShape shape = new MovieShape(movieIdx, thumbnailIdx); shape.setAnchor(new Rectangle2D.Float(300,225,120,90)); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java index e8fae8a37e..28445210fb 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java @@ -17,9 +17,6 @@ package org.apache.poi.hslf.model; -import java.io.File; -import java.io.FileInputStream; - import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; @@ -29,17 +26,17 @@ import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.POIDataSamples; public final class TestOleEmbedding extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** * Tests support for OLE objects. * * @throws Exception if an error occurs. */ public void testOleEmbedding2003() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - File file = new File(dirname, "ole2-embedding-2003.ppt"); - HSLFSlideShow slideShow = new HSLFSlideShow(new FileInputStream(file)); + HSLFSlideShow slideShow = new HSLFSlideShow(_slTests.openResourceAsStream("ole2-embedding-2003.ppt")); // Placeholder EMFs for clients that don't support the OLE components. PictureData[] pictures = slideShow.getPictures(); assertEquals("Should be two pictures", 2, pictures.length); @@ -54,11 +51,7 @@ public final class TestOleEmbedding extends TestCase { } public void testOLEShape() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - File file = new File(dirname, "ole2-embedding-2003.ppt"); - FileInputStream is = new FileInputStream(file); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("ole2-embedding-2003.ppt")); Slide slide = ppt.getSlides()[0]; Shape[] sh = slide.getShapes(); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java index 521230077e..b89383c302 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java @@ -20,6 +20,7 @@ package org.apache.poi.hslf.model; import junit.framework.TestCase; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hslf.HSLFSlideShow; +import org.apache.poi.POIDataSamples; import java.awt.*; import java.awt.Rectangle; @@ -32,12 +33,11 @@ import java.io.ByteArrayInputStream; * @author Yegor Kozlov */ public final class TestPPGraphics2D extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); private SlideShow ppt; protected void setUp() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/empty.ppt"; - ppt = new SlideShow(new HSLFSlideShow(filename)); + ppt = new SlideShow(_slTests.openResourceAsStream("empty.ppt")); } public void testGraphics() throws Exception { diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java index 3be128921b..871893210a 100755 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java @@ -20,13 +20,13 @@ package org.apache.poi.hslf.model; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.image.BufferedImage; -import java.io.File; import junit.framework.TestCase; import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.hslf.usermodel.PictureData; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Test Picture shape. @@ -34,6 +34,7 @@ import org.apache.poi.hslf.usermodel.SlideShow; * @author Yegor Kozlov */ public final class TestPicture extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** * Test that the reference count of a blip is incremented every time the picture is inserted. @@ -41,14 +42,13 @@ public final class TestPicture extends TestCase { * */ public void testMultiplePictures() throws Exception { - String cwd = System.getProperty("HSLF.testdata.path"); SlideShow ppt = new SlideShow(); Slide s = ppt.createSlide(); Slide s2 = ppt.createSlide(); Slide s3 = ppt.createSlide(); - int idx = ppt.addPicture(new File(cwd, "clock.jpg"), Picture.JPEG); + int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG); Picture pict = new Picture(idx); Picture pict2 = new Picture(idx); Picture pict3 = new Picture(idx); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSetBoldItalic.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSetBoldItalic.java index 572dbd035c..23b798fd6f 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSetBoldItalic.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSetBoldItalic.java @@ -36,10 +36,6 @@ public final class TestSetBoldItalic extends TestCase { * and set some of the style attributes */ public void testTextBoxWrite() throws Exception { - //String dirname = System.getProperty("HSLF.testdata.path"); - //String filename = dirname + "/with_textbox.ppt"; - //new SlideShow(new HSLFSlideShow(filename)); - SlideShow ppt = new SlideShow(); Slide sl = ppt.createSlide(); RichTextRun rt; diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java index 292b7fd63d..0d016e39d3 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java @@ -22,12 +22,12 @@ import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.ddf.*; +import org.apache.poi.POIDataSamples; import java.awt.*; import java.awt.Rectangle; import java.io.ByteArrayOutputStream; import java.io.ByteArrayInputStream; -import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -37,16 +37,15 @@ import java.util.ArrayList; * @author Yegor Kozlov */ public final class TestShapes extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); + private SlideShow ppt; private SlideShow pptB; protected void setUp() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/empty.ppt"; - ppt = new SlideShow(new HSLFSlideShow(filename)); + ppt = new SlideShow(_slTests.openResourceAsStream("empty.ppt")); - String filenameB = dirname + "/empty_textbox.ppt"; - pptB = new SlideShow(new HSLFSlideShow(filenameB)); + pptB = new SlideShow(_slTests.openResourceAsStream("empty_textbox.ppt")); } public void testGraphics() throws Exception { @@ -94,9 +93,7 @@ public final class TestShapes extends TestCase { * @throws Exception */ public void testTextBoxRead() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/with_textbox.ppt"; - ppt = new SlideShow(new HSLFSlideShow(filename)); + ppt = new SlideShow(_slTests.openResourceAsStream("with_textbox.ppt")); Slide sl = ppt.getSlides()[0]; Shape[] sh = sl.getShapes(); for (int i = 0; i < sh.length; i++) { @@ -198,17 +195,16 @@ public final class TestShapes extends TestCase { * it must be the same as returned by Slide.getTextRuns(). */ public void testTextBoxSet() throws Exception { - textBoxSet("/with_textbox.ppt"); - textBoxSet("/basic_test_ppt_file.ppt"); - textBoxSet("/next_test_ppt_file.ppt"); - textBoxSet("/Single_Coloured_Page.ppt"); - textBoxSet("/Single_Coloured_Page_With_Fonts_and_Alignments.ppt"); - textBoxSet("/incorrect_slide_order.ppt"); + textBoxSet("with_textbox.ppt"); + textBoxSet("basic_test_ppt_file.ppt"); + textBoxSet("next_test_ppt_file.ppt"); + textBoxSet("Single_Coloured_Page.ppt"); + textBoxSet("Single_Coloured_Page_With_Fonts_and_Alignments.ppt"); + textBoxSet("incorrect_slide_order.ppt"); } private void textBoxSet(String filename) throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - SlideShow ppt = new SlideShow(new HSLFSlideShow(dirname + filename)); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(filename)); Slide[] sl = ppt.getSlides(); for (int k = 0; k < sl.length; k++) { ArrayList lst1 = new ArrayList(); @@ -234,7 +230,6 @@ public final class TestShapes extends TestCase { * Test adding shapes to ShapeGroup */ public void testShapeGroup() throws Exception { - String cwd = System.getProperty("HSLF.testdata.path"); SlideShow ppt = new SlideShow(); Slide slide = ppt.createSlide(); @@ -245,8 +240,7 @@ public final class TestShapes extends TestCase { group.setAnchor(new Rectangle(0, 0, (int)pgsize.getWidth(), (int)pgsize.getHeight())); slide.addShape(group); - File img = new File(cwd, "clock.jpg"); - int idx = ppt.addPicture(img, Picture.JPEG); + int idx = ppt.addPicture(_slTests.readFile("clock.jpg"), Picture.JPEG); Picture pict = new Picture(idx, group); pict.setAnchor(new Rectangle(0, 0, 200, 200)); group.addShape(pict); @@ -287,8 +281,8 @@ public final class TestShapes extends TestCase { * Test functionality of Sheet.removeShape(Shape shape) */ public void testRemoveShapes() throws IOException { - String file = System.getProperty("HSLF.testdata.path")+ "/with_textbox.ppt"; - SlideShow ppt = new SlideShow(new HSLFSlideShow(file)); + String file = "with_textbox.ppt"; + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(file)); Slide sl = ppt.getSlides()[0]; Shape[] sh = sl.getShapes(); assertEquals("expected four shaped in " + file, 4, sh.length); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java index 667478b043..4bed9ee186 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java @@ -20,14 +20,11 @@ package org.apache.poi.hslf.model; import junit.framework.AssertionFailedError; import junit.framework.TestCase; -import java.io.FileInputStream; -import java.io.File; - -import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; import org.apache.poi.hslf.record.ColorSchemeAtom; import org.apache.poi.hslf.record.PPDrawing; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Test common functionality of the Sheet object. @@ -36,23 +33,16 @@ import org.apache.poi.hslf.usermodel.SlideShow; * @author Yegor Kozlov */ public final class TestSheet extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** * For each ppt in the test directory check that all sheets are properly initialized */ public void testSheet() throws Exception { - File home = new File(System.getProperty("HSLF.testdata.path")); - File[] files = home.listFiles(); - for (int i = 0; i < files.length; i++) { - if(!files[i].getName().endsWith(".ppt")) continue; - if(files[i].getName().endsWith("PPT95.ppt")) continue; - + String[] tests = {"SampleShow.ppt", "backgrounds.ppt", "text_shapes.ppt", "pictures.ppt"}; + for (String file : tests) { try { - FileInputStream is = new FileInputStream(files[i]); - HSLFSlideShow hslf = new HSLFSlideShow(is); - is.close(); - - SlideShow ppt = new SlideShow(hslf); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream(file)); doSlideShow(ppt); } catch (EncryptedPowerPointFileException e){ ; //skip encrypted ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideChangeNotes.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideChangeNotes.java index e39ca5a4d1..71c95f87b7 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideChangeNotes.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideChangeNotes.java @@ -23,6 +23,7 @@ import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.record.SlideAtom; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Tests that changing a slide's idea of what notes sheet is its works right @@ -34,9 +35,8 @@ public final class TestSlideChangeNotes extends TestCase { private SlideShow ss; public TestSlideChangeNotes() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - HSLFSlideShow hss = new HSLFSlideShow(filename); + POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); + HSLFSlideShow hss = new HSLFSlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt")); ss = new SlideShow(hss); } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideMaster.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideMaster.java index 20bdaa8a57..45c3c0c2bc 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideMaster.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlideMaster.java @@ -28,6 +28,7 @@ import org.apache.poi.hslf.record.Environment; import org.apache.poi.hslf.record.TextHeaderAtom; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Tests for SlideMaster @@ -35,18 +36,14 @@ import org.apache.poi.hslf.usermodel.SlideShow; * @author Yegor Kozlov */ public final class TestSlideMaster extends TestCase{ - String home; - - public void setUp() { - home = System.getProperty("HSLF.testdata.path"); - } + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** * The reference ppt has two masters. * Check we can read their attributes. */ public void testSlideMaster() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); Environment env = ppt.getDocumentRecord().getEnvironment(); @@ -86,7 +83,7 @@ public final class TestSlideMaster extends TestCase{ * Test we can read default text attributes for a title master sheet */ public void testTitleMasterTextAttributes() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); TitleMaster[] master = ppt.getTitleMasters(); assertEquals(1, master.length); @@ -107,7 +104,7 @@ public final class TestSlideMaster extends TestCase{ * Slide 3 has title layout and follows the TitleMaster. Verify that. */ public void testTitleMaster() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); Slide slide = ppt.getSlides()[2]; MasterSheet masterSheet = slide.getMasterSheet(); assertTrue(masterSheet instanceof TitleMaster); @@ -136,7 +133,7 @@ public final class TestSlideMaster extends TestCase{ * If a style attribute is not set ensure it is read from the master */ public void testMasterAttributes() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); Slide[] slide = ppt.getSlides(); assertEquals(3, slide.length); TextRun[] trun; @@ -185,7 +182,7 @@ public final class TestSlideMaster extends TestCase{ * Check we can dynamically assign a slide master to a slide. */ public void testChangeSlideMaster() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); SlideMaster[] master = ppt.getSlidesMasters(); Slide[] slide = ppt.getSlides(); int sheetNo; @@ -219,7 +216,7 @@ public final class TestSlideMaster extends TestCase{ * (typical for the "bullted body" placeholder) */ public void testIndentation() throws Exception { - SlideShow ppt = new SlideShow(new HSLFSlideShow(home + "/slide_master.ppt")); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("slide_master.ppt")); Slide slide = ppt.getSlides()[0]; TextRun[] trun; diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlides.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlides.java index f60cfed57d..11889f4409 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlides.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSlides.java @@ -20,6 +20,7 @@ package org.apache.poi.hslf.model; import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; import java.io.ByteArrayOutputStream; import java.io.ByteArrayInputStream; @@ -137,8 +138,8 @@ public final class TestSlides extends TestCase { * Add slides to ppt which already has two slides */ public void testAddSlides2to3() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - SlideShow ppt = new SlideShow(new HSLFSlideShow(dirname + "/basic_test_ppt_file.ppt")); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + SlideShow ppt = new SlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); assertTrue(ppt.getSlides().length == 2); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java index 770a44803e..be399fefa6 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java @@ -22,13 +22,13 @@ import java.io.IOException; import junit.framework.TestCase; -import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.model.textproperties.TextPropCollection; import org.apache.poi.hslf.record.TextBytesAtom; import org.apache.poi.hslf.record.TextCharsAtom; import org.apache.poi.hslf.record.TextHeaderAtom; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Tests for TextRuns @@ -36,32 +36,19 @@ import org.apache.poi.hslf.usermodel.SlideShow; * @author Nick Burch (nick at torchbox dot com) */ public final class TestTextRun extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); + // SlideShow primed on the test data private SlideShow ss; private SlideShow ssRich; - // TODO - use this or similar through rest of hslf tests - private static SlideShow openSampleSlideShow(String name) { - String dirname = System.getProperty("HSLF.testdata.path"); - - // Basic (non rich) test file - String filename = dirname + "/" + name; - HSLFSlideShow x; - try { - x = new HSLFSlideShow(filename); - } catch (IOException e) { - throw new RuntimeException(e); - } - return new SlideShow(x); - } - - protected void setUp() { + protected void setUp() throws IOException { // Basic (non rich) test file - ss = openSampleSlideShow("basic_test_ppt_file.ppt"); + ss = new SlideShow(_slTests.openResourceAsStream("basic_test_ppt_file.ppt")); // Rich test file - ssRich = openSampleSlideShow("Single_Coloured_Page.ppt"); + ssRich = new SlideShow(_slTests.openResourceAsStream("Single_Coloured_Page.ppt")); } /** @@ -429,10 +416,10 @@ public final class TestTextRun extends TestCase { * of the wrong list of potential paragraph properties defined in StyleTextPropAtom. * */ - public void testBug41015() { + public void testBug41015() throws IOException { RichTextRun[] rt; - SlideShow ppt = openSampleSlideShow("bug-41015.ppt"); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("bug-41015.ppt")); Slide sl = ppt.getSlides()[0]; TextRun[] txt = sl.getTextRuns(); assertEquals(2, txt.length); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRunReWrite.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRunReWrite.java index 2a2a10bb45..db55a2c052 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRunReWrite.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRunReWrite.java @@ -25,6 +25,7 @@ import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.usermodel.RichTextRun; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.poifs.filesystem.*; +import org.apache.poi.POIDataSamples; /** * Tests that if we load something up, get a TextRun, set the text @@ -45,10 +46,9 @@ public final class TestTextRunReWrite extends TestCase { * Load up a test PPT file with rich data */ public void setUp() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/Single_Coloured_Page_With_Fonts_and_Alignments.ppt"; - FileInputStream fis = new FileInputStream(filename); - pfs = new POIFSFileSystem(fis); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + String filename = "Single_Coloured_Page_With_Fonts_and_Alignments.ppt"; + pfs = new POIFSFileSystem(slTests.openResourceAsStream(filename)); hss = new HSLFSlideShow(pfs); ss = new SlideShow(hss); } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java index 07ed6d2da6..7285f5120a 100755 --- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java @@ -25,6 +25,7 @@ import java.util.HashMap; import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.hslf.record.TextHeaderAtom; +import org.apache.poi.POIDataSamples; /** * Verify behavior of TextShape and its sub-classes @@ -32,7 +33,7 @@ import org.apache.poi.hslf.record.TextHeaderAtom; * @author Yegor Kozlov */ public final class TestTextShape extends TestCase { - protected String cwd = System.getProperty("HSLF.testdata.path"); + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); public void testCreateAutoShape(){ TextShape shape = new AutoShape(ShapeTypes.Trapezoid); @@ -70,9 +71,7 @@ public final class TestTextShape extends TestCase { * - text in auto-shapes */ public void testRead() throws IOException { - FileInputStream is = new FileInputStream(new File(cwd, "text_shapes.ppt")); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text_shapes.ppt")); ArrayList lst1 = new ArrayList(); Slide slide = ppt.getSlides()[0]; @@ -157,9 +156,7 @@ public final class TestTextShape extends TestCase { } public void testMargins() throws IOException { - FileInputStream is = new FileInputStream(new File(cwd, "text-margins.ppt")); - SlideShow ppt = new SlideShow(is); - is.close(); + SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text-margins.ppt")); Slide slide = ppt.getSlides()[0]; diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java index 8df159a32d..ed1f19a030 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestCurrentUserAtom.java @@ -20,12 +20,12 @@ package org.apache.poi.hslf.record; import junit.framework.TestCase; import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; /** * Tests that CurrentUserAtom works properly. @@ -33,6 +33,7 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; * @author Nick Burch (nick at torchbox dot com) */ public final class TestCurrentUserAtom extends TestCase { + private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance(); /** Not encrypted */ private String normalFile; /** Encrypted */ @@ -41,14 +42,13 @@ public final class TestCurrentUserAtom extends TestCase { protected void setUp() throws Exception { super.setUp(); - String dirname = System.getProperty("HSLF.testdata.path"); - normalFile = dirname + "/basic_test_ppt_file.ppt"; - encFile = dirname + "/Password_Protected-hello.ppt"; + normalFile = "basic_test_ppt_file.ppt"; + encFile = "Password_Protected-hello.ppt"; } public void testReadNormal() throws Exception { POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(normalFile) + _slTests.openResourceAsStream(normalFile) ); CurrentUserAtom cu = new CurrentUserAtom(fs); @@ -68,7 +68,7 @@ public final class TestCurrentUserAtom extends TestCase { public void testReadEnc() throws Exception { POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(encFile) + _slTests.openResourceAsStream(encFile) ); try { @@ -82,7 +82,7 @@ public final class TestCurrentUserAtom extends TestCase { public void testWriteNormal() throws Exception { // Get raw contents from a known file POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(normalFile) + _slTests.openResourceAsStream(normalFile) ); DocumentEntry docProps = (DocumentEntry)fs.getRoot().getEntry("Current User"); byte[] contents = new byte[docProps.getSize()]; diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocument.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocument.java index e61273bb50..114a41da8d 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocument.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestDocument.java @@ -18,10 +18,10 @@ package org.apache.poi.hslf.record; import junit.framework.TestCase; -import java.io.*; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.poifs.filesystem.*; +import org.apache.poi.POIDataSamples; /** * Tests that Document works properly (Also tests Environment while we're at it) @@ -35,10 +35,8 @@ public final class TestDocument extends TestCase { private POIFSFileSystem pfs; public TestDocument() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - FileInputStream fis = new FileInputStream(filename); - pfs = new POIFSFileSystem(fis); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); ss = new HSLFSlideShow(pfs); } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExHyperlink.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExHyperlink.java index 18ae888ecd..fff9d7286e 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExHyperlink.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExHyperlink.java @@ -19,7 +19,6 @@ package org.apache.poi.hslf.record; import java.io.ByteArrayOutputStream; -import java.io.File; import java.util.ArrayList; import java.util.List; @@ -28,6 +27,7 @@ import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Tests that ExHyperlink works properly. @@ -98,8 +98,8 @@ public final class TestExHyperlink extends TestCase { } public void testRealFile() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - HSLFSlideShow hss = new HSLFSlideShow(dirname + File.separator + "WithLinks.ppt"); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("WithLinks.ppt")); SlideShow ss = new SlideShow(hss); // Get the document diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExObjList.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExObjList.java index b2bf2d7065..d3739ec3b8 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExObjList.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestExObjList.java @@ -18,12 +18,11 @@ package org.apache.poi.hslf.record; -import java.io.File; - import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; import org.apache.poi.hslf.usermodel.SlideShow; +import org.apache.poi.POIDataSamples; /** * Tests that ExObjList works properly. @@ -32,8 +31,8 @@ import org.apache.poi.hslf.usermodel.SlideShow; */ public class TestExObjList extends TestCase { public void testRealFile() throws Exception { - String dirname = System.getProperty("HSLF.testdata.path"); - HSLFSlideShow hss = new HSLFSlideShow(dirname + File.separator + "WithLinks.ppt"); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("WithLinks.ppt")); SlideShow ss = new SlideShow(hss); // Get the document diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java index 74684e7e73..8481cbc70f 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java @@ -21,6 +21,7 @@ package org.apache.poi.hslf.record; import junit.framework.TestCase; import org.apache.poi.hslf.HSLFSlideShow; +import org.apache.poi.POIDataSamples; /** * Tests that the helper methods on RecordContainer work properly @@ -147,9 +148,8 @@ public final class TestRecordContainer extends TestCase { super.setUp(); // Find a real RecordContainer record - String dirname = System.getProperty("HSLF.testdata.path"); - String filename = dirname + "/basic_test_ppt_file.ppt"; - HSLFSlideShow hss = new HSLFSlideShow(filename); + POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); + HSLFSlideShow hss = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt")); Record[] r = hss.getRecords(); for(int i=0; i 128); // Check right contents - byte[] emf = HWPFTestDataSamples.getTestDataFileContent("vector_image.emf"); + byte[] emf = POIDataSamples.getDocumentInstance().readFile("vector_image.emf"); byte[] pemf = pic.getContent(); assertEquals(emf.length, pemf.length); for(int i=0; itrue if standard system propery is not set, * but the data is available on the test runtime classpath */ private boolean _sampleDataIsAvaliableOnClassPath; - private String _testDataDir; + private String _moduleDir; /** * - * @param dir the name of the system property that defines path to the test files - * @param classPathTestFile the name of the test file to check if resources are available from the classpath + * @param moduleDir the name of the directory containing the test files */ - public POIDataSamples(String dir, String classPathTestFile){ - _testDataDir = dir; - initialise(classPathTestFile); + private POIDataSamples(String moduleDir){ + _moduleDir = moduleDir; + initialise(); + } + + public static POIDataSamples getSpreadSheetInstance(){ + if(_instSpreadsheet == null) _instSpreadsheet = new POIDataSamples("spreadsheet"); + return _instSpreadsheet; + } + + public static POIDataSamples getDocumentInstance(){ + if(_instDocument == null) _instDocument = new POIDataSamples("document"); + return _instDocument; + } + + public static POIDataSamples getSlideShowInstance(){ + if(_instSlideshow == null) _instSlideshow = new POIDataSamples("slideshow"); + return _instSlideshow; + } + + public static POIDataSamples getDiagramInstance(){ + if(_instOpenxml4j == null) _instOpenxml4j = new POIDataSamples("diagram"); + return _instOpenxml4j; + } + + public static POIDataSamples getOpenXML4JInstance(){ + if(_instDiagram == null) _instDiagram = new POIDataSamples("openxml4j"); + return _instDiagram; + } + + public static POIDataSamples getPOIFSInstance(){ + if(_instPOIFS == null) _instPOIFS = new POIDataSamples("poifs"); + return _instPOIFS; + } + + public static POIDataSamples getDDFInstance(){ + if(_instDDF == null) _instDDF = new POIDataSamples("ddf"); + return _instDDF; + } + + public static POIDataSamples getHPSFInstance(){ + if(_instHPSF == null) _instHPSF = new POIDataSamples("hpsf"); + return _instHPSF; + } + + public static POIDataSamples getPublisherInstance(){ + if(_instHPBF == null) _instHPBF = new POIDataSamples("publisher"); + return _instHPBF; } + public static POIDataSamples getHSMFInstance(){ + if(_instHSMF == null) _instHSMF = new POIDataSamples("hsmf"); + return _instHSMF; + } /** * Opens a sample file from the test data directory * @@ -60,40 +123,46 @@ public abstract class POIDataSamples { } if (_resolvedDataDir == null) { throw new RuntimeException("Must set system property '" - + _testDataDir + + TEST_PROPERTY + "' properly before running tests"); } + File f = getFile(sampleFileName); + try { + return new FileInputStream(f); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + } + + /** + * + * @param sampleFileName the name of the test file + * @return + * @throws RuntimeException if the file was not found + */ + public File getFile(String sampleFileName) { File f = new File(_resolvedDataDir, sampleFileName); if (!f.exists()) { throw new RuntimeException("Sample file '" + sampleFileName + "' not found in data dir '" + _resolvedDataDir.getAbsolutePath() + "'"); } try { - if(!sampleFileName.equals(f.getCanonicalFile().getName())){ + if(sampleFileName.length() > 0 && !sampleFileName.equals(f.getCanonicalFile().getName())){ throw new RuntimeException("File name is case-sensitive: requested '" + sampleFileName + "' but actual file is '" + f.getCanonicalFile().getName() + "'"); } } catch (IOException e){ throw new RuntimeException(e); } - - try { - return new FileInputStream(f); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } + return f; } - /** - * - * @param classPathTest test file to check if the resources are avaiable from the classpath - */ - private void initialise(String classPathTest) { - String dataDirName = System.getProperty(_testDataDir); + private void initialise() { + String dataDirName = System.getProperty(TEST_PROPERTY); if (dataDirName == null) { // check to see if we can just get the resources from the classpath - InputStream is = openClasspathResource(classPathTest); + InputStream is = openClasspathResource(""); if (is != null) { try { is.close(); // be nice @@ -104,14 +173,12 @@ public abstract class POIDataSamples { return; } - throw new RuntimeException("Must set system property '" - + _testDataDir + "' before running tests"); + throw new RuntimeException("Must set system property '" + + TEST_PROPERTY + "' before running tests"); } - File dataDir = new File(dataDirName); + File dataDir = new File(dataDirName, _moduleDir); if (!dataDir.exists()) { - throw new RuntimeException("Data dir '" + dataDirName - + "' specified by system property '" + _testDataDir - + "' does not exist"); + throw new RuntimeException("Data dir '" + _moduleDir + " does not exist"); } // convert to canonical file, to make any subsequent error messages // clearer. @@ -129,7 +196,7 @@ public abstract class POIDataSamples { * @return null if the sample file is not deployed on the classpath. */ private InputStream openClasspathResource(String sampleFileName) { - return getClass().getResourceAsStream("data/" + sampleFileName); + return getClass().getResourceAsStream("/" + _moduleDir + "/" + sampleFileName); } private static final class NonSeekableInputStream extends InputStream { diff --git a/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java b/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java index 9e2921fe88..6dffb8df22 100755 --- a/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java +++ b/src/testcases/org/apache/poi/ddf/TestEscherBlipRecord.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.util.Arrays; import junit.framework.TestCase; +import org.apache.poi.POIDataSamples; /** * Test read/serialize of escher blip records @@ -30,12 +31,12 @@ import junit.framework.TestCase; * @author Yegor Kozlov */ public final class TestEscherBlipRecord extends TestCase { - protected String cwd = System.getProperty("DDF.testdata.path"); + private static final POIDataSamples _samples = POIDataSamples.getDDFInstance(); //test reading/serializing of a PNG blip public void testReadPNG() { //provided in bug-44886 - byte[] data = read(new File(cwd, "Container.dat")); + byte[] data = _samples.readFile("Container.dat"); EscherContainerRecord record = new EscherContainerRecord(); record.fillFields(data, 0, new DefaultEscherRecordFactory()); @@ -80,7 +81,7 @@ public final class TestEscherBlipRecord extends TestCase { //test reading/serializing of a PICT metafile public void testReadPICT() { //provided in bug-44886 - byte[] data = read(new File(cwd, "Container.dat")); + byte[] data = _samples.readFile("Container.dat"); EscherContainerRecord record = new EscherContainerRecord(); record.fillFields(data, 0, new DefaultEscherRecordFactory()); @@ -131,7 +132,7 @@ public final class TestEscherBlipRecord extends TestCase { //integral test: check that the read-write-read round trip is consistent public void testContainer() { - byte[] data = read(new File(cwd, "Container.dat")); + byte[] data = _samples.readFile("Container.dat"); EscherContainerRecord record = new EscherContainerRecord(); record.fillFields(data, 0, new DefaultEscherRecordFactory()); @@ -156,7 +157,7 @@ public final class TestEscherBlipRecord extends TestCase { * The test data was created from pl031405.xls attached to Bugzilla #47143 */ public void test47143() { - byte[] data = read(new File(cwd, "47143.dat")); + byte[] data = _samples.readFile("47143.dat"); EscherBSERecord bse = new EscherBSERecord(); bse.fillFields(data, 0, new DefaultEscherRecordFactory()); bse.toString(); //assert that toString() works diff --git a/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java b/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java index 4d83cad446..3db6a3784d 100644 --- a/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java +++ b/src/testcases/org/apache/poi/ddf/TestEscherContainerRecord.java @@ -25,16 +25,13 @@ import junit.framework.TestCase; import org.apache.poi.util.HexRead; import org.apache.poi.util.HexDump; import org.apache.poi.util.IOUtils; +import org.apache.poi.POIDataSamples; /** * Tests for {@link EscherContainerRecord} */ public final class TestEscherContainerRecord extends TestCase { - private String ESCHER_DATA_PATH; - - protected void setUp() { - ESCHER_DATA_PATH = System.getProperty("DDF.testdata.path"); - } + private static final POIDataSamples _samples = POIDataSamples.getDDFInstance(); public void testFillFields() { EscherRecordFactory f = new DefaultEscherRecordFactory(); @@ -151,11 +148,7 @@ public final class TestEscherContainerRecord extends TestCase { * but hopefully we now read the correct size. */ public void testBug44857() throws Exception { - File f = new File(ESCHER_DATA_PATH, "Container.dat"); - assertTrue(f.exists()); - - FileInputStream finp = new FileInputStream(f); - byte[] data = IOUtils.toByteArray(finp); + byte[] data = _samples.readFile("Container.dat"); // This used to fail with an OutOfMemory EscherContainerRecord record = new EscherContainerRecord(); diff --git a/src/testcases/org/apache/poi/hpsf/basic/AllDataFilesTester.java b/src/testcases/org/apache/poi/hpsf/basic/AllDataFilesTester.java index ba7c650b37..0e1c212326 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/AllDataFilesTester.java +++ b/src/testcases/org/apache/poi/hpsf/basic/AllDataFilesTester.java @@ -17,6 +17,8 @@ package org.apache.poi.hpsf.basic; +import org.apache.poi.POIDataSamples; + import java.io.File; import java.io.FileFilter; import java.util.logging.Logger; @@ -30,6 +32,7 @@ import java.util.logging.Logger; * href="mailto:klute@rainer-klute.de"><klute@rainer-klute.de> */ public class AllDataFilesTester { + private static final POIDataSamples _samples = POIDataSamples.getHPSFInstance(); /** *

Interface specifying how to run a test on a single file.

@@ -56,8 +59,8 @@ public class AllDataFilesTester { */ public void runTests(final TestTask task) throws Throwable { - final String dataDirName = System.getProperty("HPSF.testdata.path"); - final File dataDir = new File(dataDirName); + POIDataSamples _samples = POIDataSamples.getHPSFInstance(); + final File dataDir = _samples.getFile(""); final File[] docs = dataDir.listFiles(new FileFilter() { public boolean accept(final File file) diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestBasic.java b/src/testcases/org/apache/poi/hpsf/basic/TestBasic.java index 0eeef4bbdf..b773bd6fd7 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestBasic.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestBasic.java @@ -37,6 +37,7 @@ import org.apache.poi.hpsf.PropertySetFactory; import org.apache.poi.hpsf.Section; import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.hpsf.wellknown.SectionIDMap; +import org.apache.poi.POIDataSamples; /** *

Tests the basic HPSF functionality.

@@ -80,11 +81,10 @@ public final class TestBasic extends TestCase { * @exception FileNotFoundException if the file to be read does not exist. * @exception IOException if any other I/O exception occurs. */ - public void setUp() throws FileNotFoundException, IOException + public void setUp() throws IOException { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); - final File data = new File(dataDir, POI_FS); + POIDataSamples samples = POIDataSamples.getHPSFInstance(); + final File data = samples.getFile(POI_FS); poiFiles = Util.readPOIFiles(data); } diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java b/src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java index 806b49745a..47c4adc340 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java @@ -35,6 +35,7 @@ import org.apache.poi.hpsf.PropertySet; import org.apache.poi.hpsf.PropertySetFactory; import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.hpsf.Variant; +import org.apache.poi.POIDataSamples; /** *

Test case for OLE2 files with empty properties. An empty property's type @@ -69,9 +70,8 @@ public final class TestEmptyProperties extends TestCase { */ public void setUp() throws FileNotFoundException, IOException { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); - final File data = new File(dataDir, POI_FS); + POIDataSamples samples = POIDataSamples.getHPSFInstance(); + final File data = samples.getFile(POI_FS); poiFiles = Util.readPOIFiles(data); } diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java b/src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java index 9916dbc995..8f7bbd5b05 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestReadAllFiles.java @@ -25,6 +25,7 @@ import java.io.InputStream; import junit.framework.TestCase; import org.apache.poi.hpsf.PropertySetFactory; +import org.apache.poi.POIDataSamples; /** *

Tests some HPSF functionality by reading all property sets from all files @@ -41,8 +42,8 @@ public class TestReadAllFiles extends TestCase { */ public void testReadAllFiles() { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); + POIDataSamples _samples = POIDataSamples.getHPSFInstance(); + final File dataDir = _samples.getFile(""); final File[] fileList = dataDir.listFiles(new FileFilter() { public boolean accept(final File f) diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java b/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java index f9cf2b0dcd..581ff14381 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java @@ -32,6 +32,7 @@ import org.apache.poi.hpsf.PropertySet; import org.apache.poi.hpsf.PropertySetFactory; import org.apache.poi.hpsf.Section; import org.apache.poi.hpsf.SummaryInformation; +import org.apache.poi.POIDataSamples; /** *

Tests whether Unicode string can be read from a @@ -57,9 +58,8 @@ public class TestUnicode extends TestCase { * @exception IOException if any other I/O exception occurs */ protected void setUp() { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); - data = new File(dataDir, POI_FS); + POIDataSamples samples = POIDataSamples.getHPSFInstance(); + data = samples.getFile(POI_FS); } diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java b/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java index dbb528f6e2..f824ffb7bc 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java @@ -63,6 +63,7 @@ import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.TempFile; +import org.apache.poi.POIDataSamples; /** *

Tests HPSF's writing functionality.

@@ -71,6 +72,7 @@ import org.apache.poi.util.TempFile; */ public class TestWrite extends TestCase { + private static final POIDataSamples _samples = POIDataSamples.getHPSFInstance(); static final String POI_FS = "TestHPSFWritingFunctionality.doc"; @@ -110,10 +112,7 @@ public class TestWrite extends TestCase */ public void testNoFormatID() throws IOException { - final String dataDirName = System.getProperty("HPSF.testdata.path"); - final File dataDir = new File(dataDirName); - final File filename = new File(dataDir, POI_FS); - filename.deleteOnExit(); + final File filename = TempFile.createTempFile(POI_FS, ".doc"); /* Create a mutable property set with a section that does not have the * formatID set: */ @@ -159,8 +158,7 @@ public class TestWrite extends TestCase public void testWriteEmptyPropertySet() throws IOException, UnsupportedVariantTypeException { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); + final File dataDir = _samples.getFile(""); final File filename = new File(dataDir, POI_FS); filename.deleteOnExit(); @@ -202,8 +200,7 @@ public class TestWrite extends TestCase { final String AUTHOR = "Rainer Klute"; final String TITLE = "Test Document"; - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); + final File dataDir = _samples.getFile(""); final File filename = new File(dataDir, POI_FS); filename.deleteOnExit(); final OutputStream out = new FileOutputStream(filename); @@ -274,8 +271,7 @@ public class TestWrite extends TestCase final String SECTION1 = "Section 1"; final String SECTION2 = "Section 2"; - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); + final File dataDir = _samples.getFile(""); final File filename = new File(dataDir, POI_FS); filename.deleteOnExit(); final OutputStream out = new FileOutputStream(filename); @@ -673,8 +669,7 @@ public class TestWrite extends TestCase */ public void testRecreate() { - final File dataDir = - new File(System.getProperty("HPSF.testdata.path")); + final File dataDir = _samples.getFile(""); final File[] fileList = dataDir.listFiles(new FileFilter() { public boolean accept(final File f) diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java b/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java index d570b029b3..ca3b0864ba 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java @@ -53,6 +53,7 @@ import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.DocumentInputStream; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; /** *

Tests HPSF's high-level writing functionality for the well-known property @@ -78,8 +79,8 @@ public class TestWriteWellKnown extends TestCase { /** *

This test method checks whether DocumentSummary information streams - * can be read. This is done by opening all "Test*" files in the directrory - * pointed to by the "HPSF.testdata.path" system property, trying to extract + * can be read. This is done by opening all "Test*" files in the 'poifs' directrory + * pointed to by the "POI.testdata.path" system property, trying to extract * the document summary information stream in the root directory and calling * its get... methods.

* @throws IOException @@ -93,8 +94,8 @@ public class TestWriteWellKnown extends TestCase { NoPropertySetStreamException, MarkUnsupportedException, UnexpectedPropertySetTypeException { - final String dataDirName = System.getProperty("HPSF.testdata.path"); - final File dataDir = new File(dataDirName); + POIDataSamples _samples = POIDataSamples.getHPSFInstance(); + final File dataDir = _samples.getFile(""); final File[] docs = dataDir.listFiles(new FileFilter() { public boolean accept(final File file) @@ -205,8 +206,8 @@ public class TestWriteWellKnown extends TestCase { NoPropertySetStreamException, MarkUnsupportedException, UnexpectedPropertySetTypeException, WritingNotSupportedException { - final String dataDirName = System.getProperty("HPSF.testdata.path"); - final File dataDir = new File(dataDirName); + POIDataSamples _samples = POIDataSamples.getHPSFInstance(); + final File dataDir = _samples.getFile(""); final File doc1 = new File(dataDir, POI_FS); /* Read a test document doc1 into a POI filesystem. */ @@ -625,8 +626,8 @@ public class TestWriteWellKnown extends TestCase { } }; - final String dataDirName = System.getProperty("HPSF.testdata.path"); - final File dataDir = new File(dataDirName); + POIDataSamples _samples = POIDataSamples.getHPSFInstance(); + final File dataDir = _samples.getFile(""); final File[] docs = dataDir.listFiles(new FileFilter() { public boolean accept(final File file) diff --git a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java index 3120f3cc0d..6d1478fba0 100644 --- a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java +++ b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java @@ -27,18 +27,15 @@ import org.apache.poi.hssf.extractor.ExcelExtractor; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; public final class TestHPSFPropertiesExtractor extends TestCase { - private String dir; - - protected void setUp() { - dir = System.getProperty("HPSF.testdata.path"); - assertNotNull("HPSF.testdata.path not set", dir); - } + private static final POIDataSamples _samples = POIDataSamples.getHPSFInstance(); public void testNormalProperties() throws Exception { - POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream( - new File(dir, "TestMickey.doc"))); + POIFSFileSystem fs = new POIFSFileSystem( + _samples.openResourceAsStream("TestMickey.doc") + ); HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs); ext.getText(); @@ -60,8 +57,9 @@ public final class TestHPSFPropertiesExtractor extends TestCase { } public void testNormalUnicodeProperties() throws Exception { - POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(new File(dir, - "TestUnicode.xls"))); + POIFSFileSystem fs = new POIFSFileSystem( + _samples.openResourceAsStream("TestUnicode.xls") + ); HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs); ext.getText(); @@ -83,8 +81,9 @@ public final class TestHPSFPropertiesExtractor extends TestCase { } public void testCustomProperties() throws Exception { - POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream( - new File(dir, "TestMickey.doc"))); + POIFSFileSystem fs = new POIFSFileSystem( + _samples.openResourceAsStream("TestMickey.doc") + ); HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(fs); // Custom properties are part of the document info stream @@ -101,7 +100,9 @@ public final class TestHPSFPropertiesExtractor extends TestCase { POIFSFileSystem fs; HSSFWorkbook wb; try { - fs = new POIFSFileSystem(new FileInputStream(new File(dir, "TestUnicode.xls"))); + fs = new POIFSFileSystem( + _samples.openResourceAsStream("TestUnicode.xls") + ); wb = new HSSFWorkbook(fs); } catch (IOException e) { throw new RuntimeException(e); diff --git a/src/testcases/org/apache/poi/hslf/data/basic_test_ppt_file.ppt b/src/testcases/org/apache/poi/hslf/data/basic_test_ppt_file.ppt deleted file mode 100644 index af16393f44e0f315c212b60392e2bae2130987bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15360 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 diff --git a/src/testcases/org/apache/poi/hssf/HSSFITestDataProvider.java b/src/testcases/org/apache/poi/hssf/HSSFITestDataProvider.java index 6f6a782410..6be47dea05 100755 --- a/src/testcases/org/apache/poi/hssf/HSSFITestDataProvider.java +++ b/src/testcases/org/apache/poi/hssf/HSSFITestDataProvider.java @@ -21,6 +21,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.ITestDataProvider; import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.POIDataSamples; /** * @author Yegor Kozlov @@ -44,7 +45,7 @@ public final class HSSFITestDataProvider implements ITestDataProvider { } public byte[] getTestDataFileContent(String fileName) { - return HSSFTestDataSamples.getTestDataFileContent(fileName); + return POIDataSamples.getSpreadSheetInstance().readFile(fileName); } public SpreadsheetVersion getSpreadsheetVersion(){ diff --git a/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java b/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java index cbe4e61cd9..2e4553ff71 100644 --- a/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java +++ b/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java @@ -30,17 +30,9 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; * * @author Josh Micich */ -public final class HSSFTestDataSamples extends POIDataSamples { +public final class HSSFTestDataSamples { - private static final HSSFTestDataSamples _inst = new HSSFTestDataSamples("HSSF.testdata.path", "SampleSS.xls"); - - private HSSFTestDataSamples(String dir, String classPathTestFile){ - super(dir, classPathTestFile); - } - - public static POIDataSamples getInstance(){ - return _inst; - } + private static final POIDataSamples _inst = POIDataSamples.getSpreadSheetInstance(); public static InputStream openSampleFileStream(String sampleFileName) { return _inst.openResourceAsStream(sampleFileName); diff --git a/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java b/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java index 5d2518acec..0e9634e626 100644 --- a/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java +++ b/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java @@ -28,6 +28,8 @@ import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.POIDataSamples; + /** * */ @@ -214,11 +216,8 @@ public final class TestExcelExtractor extends TestCase { * Embded in a non-excel file */ public void testWithEmbeded() throws Exception { - // TODO - encapsulate sys prop 'POIFS.testdata.path' similar to HSSFTestDataSamples - String pdirname = System.getProperty("POIFS.testdata.path"); - String filename = pdirname + "/word_with_embeded.doc"; POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(filename) + POIDataSamples.getDocumentInstance().openResourceAsStream("word_with_embeded.doc") ); DirectoryNode objPool = (DirectoryNode) fs.getRoot().getEntry("ObjectPool"); @@ -244,12 +243,10 @@ public final class TestExcelExtractor extends TestCase { * Excel embeded in excel */ public void testWithEmbededInOwn() throws Exception { - // TODO - encapsulate sys prop 'POIFS.testdata.path' similar to HSSFTestDataSamples - String pdirname = System.getProperty("POIFS.testdata.path"); - String filename = pdirname + "/excel_with_embeded.xls"; + POIDataSamples ssSamples = POIDataSamples.getSpreadSheetInstance(); POIFSFileSystem fs = new POIFSFileSystem( - new FileInputStream(filename) - ); + ssSamples.openResourceAsStream("excel_with_embeded.xls") + ); DirectoryNode dirA = (DirectoryNode) fs.getRoot().getEntry("MBD0000A3B5"); DirectoryNode dirB = (DirectoryNode) fs.getRoot().getEntry("MBD0000A3B4"); diff --git a/src/testcases/org/apache/poi/hwpf/data/test2.doc b/src/testcases/org/apache/poi/hwpf/data/test2.doc deleted file mode 100755 index 06921df39545bd0544f062a88c4532632cbea80e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 zcmeHPU2GKB6+Sb&>mM)}C>Zlo7!s1w#IhhwBHD+<1k*Su!6`UO-;!PLtarh?vzcAT zfGX9dEk$Y`Ts1#^Knkg-ln7F}4G(>&+9a|PDQN?$M5MmaDt%~$REMA_ksNQo@9tbP zyZ+lv+O)tu@;B$+bMHC#-ZS^k%$d2~3+Go}dg<5e|0-2 zE7Furmr5myw*W{Qx{f?>`Im1<H& z&>U@(PSk#7ouzQ4qI7nqRBD|O&X?8|POHS}NI6d)PE$Hpes#IJI{r4${a&mroQt=h z=mg5ib^Yfs@{f@}73h6lz8ZFH*l7!vP%WG*>L-mNX()cwEOH$AZ$W;6@j zYx#VfcEhCYX|DBj9i8umUK@m;1pcY!tjDWFwVmob{Szi_CoHQat^2i@J#An2L-ShN zn5&Mqr`vxvm`B@RSh@fC?QikIs7TMdH&M=|rS*bh(fxMekL?h0{*iROBTLHpKL`3c zuglA&U;L=;YD?NbY-b~cdYqc;_H|x!tv?^v^{Tm^kDAY?ujPM3zc>#Uqw02aUi(?+ z=i}PGzCMKc1kSQPzhOCbbbhgN?dMuKZ!WZNOUuk0W8RSQK>Z%*OJ@oW{^Cv{lg$sh z&amevout=4ly!5(Wy>BaI_Wrzb3@sL>pNb`$;bWpfFIANp_p?rsC2-~x-2QC-K^t2 z?dF`68!ry|u9NTvlO3oNAI$VS@m$gw$|YTYFq3nWPSHIK-DRo=iA<5bfW5er%%oDT zkJg=(hXb_=nWJvFYGA(L6xgyK80$n8^cQwK^u!;|6kO+N*FRD|Bs@Qp8|YkCzmINc z4cu*>z;j+d-~xw$Ja7~^2AlyVfVTlY4^Ca3x;*v4)WxZHrfz7r{4WQ$W=+~|UMFqp z_`n?v`7|&18^hAwd$&pN-iUk$h$Ahn;nMr=uqyKRHjP%~?`axsC|h63=lsn$uMW@+ z>;XoAQ9z&nvq--Rya${IE&!YhpM{-t-DJX@zNyoEdRVUGyy=_T6*uSLZOgJcWXD+A z+B|-&(;0tj*Ou|7##?|}$44c4 zfUc#q#Bk$*|E34JM7lmK+0rE~Gn21D_K7FHWF;E9Xt7EzyZ2}J-`Ss3LFE@0B3<$f%ky(zy;tc@N+=DY9b#A zz%{GdDGjgBaxK>8f+)Yv3a2@U2iwMA%C;LKv1rVWM1Oo#9Ecg4C{hg})raMh#WF0Q zcpvyM__B-?&}1zO*4~ljd!G z7cLqZv_zfz1Dz#N+fq8=^^5Ws0n#-cM;?G?T>9ZFzBG@@Q%xt@W%2?v(-=KGdFU6n zHv>#t>H@eGDK2Q95}x453i3*+QiXI&L?$^6tyZjh;s-|N3O96=(i_kq@v)@Fw{C^MMPQbeB4Y52ezoAiD{x zC#`NbPH>EigO$V;l@D%i!&ni%Bq2{C)sNdISDU^$@&eKW`2f}(Z=*$M&z6K+H)-Pm z;{oFV&h~jL+yw3b3xCfl*JB?^)M0x)-oS9&FRC3bl!eQ~Y1ZB6 z`PukjXVNP!tiJK3IqV!z z>GyxXhr0;qR}546cWc1;_(!=R;{oFV;{oFV;{oFV;{oFV;{oFV;{oFVlbst@{Okq9{~e$Hit#_cHZTrmOqvE5m*)Y-`#%I2?>__Z9l^7}THqwWub!s? z#_wkV#_#6WGc>A)35+r}|}t+aMbWD+^ctJnb)RvA)tT(mv;|x!#67cypyKoc#!H@EmpZwVU_oIrpwP-NEle msBL?X9N>O7h}1QO=}ukVxl^uw^Edy=wN~HCFtr!+z`p^Qy8uc6 diff --git a/src/testcases/org/apache/poi/poifs/data/source-files/sample1.doc b/src/testcases/org/apache/poi/poifs/data/source-files/sample1.doc deleted file mode 100644 index 0e935aa528199858b02d3f8523bd41dc0c62d731..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26112 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 diff --git a/src/testcases/org/apache/poi/poifs/data/source-files/sample1.ppt b/src/testcases/org/apache/poi/poifs/data/source-files/sample1.ppt deleted file mode 100644 index 7d72e0236258f464d54e4d704260478a8c0075c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101376 zcmeFa1z1(v`Zv1h4oMN|5Re9u4h5t|Kw7%Hq>*lsMo^Rn=?4bf23_E4?rcI}?Oq2(Y7LG#K(P>F^*9 z_v0QH2K#Y;bbNgLBUuqd!0kWbf0Ge71n=1l<_wxcL~um{faV+p02KfYfCK;o022TU z02=@Y04xF6IRHEWd;kIfLI5HFVu14i2mluVNC7SakO7bbPykQ@PytW_&;ZZ^&;if` zTmoPKU<6(4Y)d-)BqWOGZ29l1BT!v zz=1lr5xz!`Z+4#xT7u=lo-;1|+Kk@q-u2$cZE!b1qA2`njv{!v3+S~242qebyaOee z30p8CcR_EBPf~tu<&SX&7(5)*6aoPB5`WD7{T(_;ZcRANLjp4gJ;xf%1k`tF@H`Xn zbcd4^C-6qLAm!f&==q2s`*Z~U-t%vP@^dq%Z6f`tumA7fhZj8m$Fu)#|Dh+(L6Zdn zbonuUP(Oa%|IiwT@K5+ZcLZ9*_P%5$^inovUShwTkA8hw{Jc$kJ$F0luF^c%`VMHj!(KV3)^Eq^~B!yJgV zU;8bkvgcTF&y*uwoaN~!Z{!lE)o&2RJw8T&Das-s5&#~93ht?3v|8S^10c2w0Pz$f z2S+v|TNfJ#V`o-ZYb)`{CK&_{0*UQw$5eHG0*@<*$g<_bLnQ2}6qZry6ei??6m)`U ztNI(S*7VHJ>vYW*RA(%|PP(=tXqnhefI9Qx@dGU^-Qe*%aMbih{`IDPc3G&SopUA; zSsTPf3w1XO+i)MyS(GqhWyO_N&9QeKh$h#*K?!DT?UBJ>kC`rdh>=B}+5F(E|7+i; zECV@*)&1-|13pZHvUklWM8d~qOB1gK4p#SXm?Kg5CLXn3s#>Gi_MT^3>NHdLGt((< z?MXs6Oi!h%HSV`UbNC8~)aeMo!LtBv`C|+;XU~}&fxgdx%?R<)KL)Mqwl+@2Hcq-K zZg$3wcc4*Gl>K7^9OJtBeV|q(XaHi=KLZ;`(RDDka%5wLKF?OPYh_gT0B;osNFv0| ze+DK%6rj0qG}E^;29NyRW6#dr&)WTfjGUQCMOh?Bu7DwezfEu*IJpClU56GzCJrT> z9i4(#0e>5DXDKOTmH26a*M76$i>^0!YJwgbnEKG@Qne zfyfdX8VbgC=cLwYULFp_0H6{O@q?Bf;<^WT7#Vc$U1trxw9UK~Jt*!~eOv*`qbOO5wt4AKvjL10hHMB+SX;EV zc}uDmYk1F9G6Uh{$CZLp4DljIJ-ygNxj93En`ip6VAszVzKN5cUwIdqFf*+9aqeC) z3h54$rO!d7eo`_U??;_4{o-JKV()Gnw;GTzbyUCs3wbMcFdqP|9b!4dixL8Niq~{ z19fCkYSFc%8&Rlvf0%oZ3UKy_k=grwyN24lgeBlAP>r8grysQn$??H_Eh)s ziSg^5Zi&Vmlh&K8Z(LR2*3Z4cxksC)lz#rataOTII2mIqcQV7Ed^ew7t|7V8HIF9W zZ`sz>{KqDu)p~guTv3rW2uq$f2M&VC>N=Un9=>tt8QY#{NVjMma!r4(#EzqaS;O4T z-aq#KlW5~s(eYyZIeag*qiY9p`J1f;#8;dlGWqAOKXJdGM-5h<30OnW4m!Je3vOHA z9A(En5;i|>`Z9#}A+AbPLexivC-)j*AcfuCi;o8QJgWLD4>tuy7co2&=@SX)OeaUS z#~j(7zt9*8E6ltb|0dZq=S~+b`W=;>M_(U)+Gs~I?Lr_*<$jxNn>l-RNVictDVpm( zb_OY!+PbS53az1m1x-&ZXri66s;;l~NiM9o*BDH%>m`C*UQL^K+Bos*?9{W8jS%3V>6Co(= zUJ1cXqKi({$z+_gdQG_+?2Q}&`QH+1Mm`>>Atc~B_|lzwtjep#hm zB2tIuD$Lq(j+X;-T3(^5;(tPjMS>&fknWO`@igAbR zd#N3}#)E6h3&N~>{$I&iR!U8dBxeWeRrxN_h>C5`X)8XZdGdBQX_8@ABZ^A9QiY+@7qNE0__c(a6(nIy7$jI83i)~G)nr~vn6bMRGi$-6eOqS!u!HXPfsevzQQJV! z*^vFg0mb47nGJS|g}LlYDVl63*Ea+?&WGiU`Re6`=$1|oF^v}`>^l^lMm zFHD1H@cCMUXW2vcCV^Va!*-d7BOY?UHvV#K3o~Ive_BwI#p> z9Zi~QOd!zC`XO1&If1sGefA+Kr;mHT-%lHHblv@6AN^awL{=6ECV|_2$5h%)PvkW{ zF%A2v4SKWsWrnI_1#ptbFr_~z9M=;QzYt7rcG*c-ZpT>?=h*aRd1s1DU{9vqT^LwA z{;>!a&so+?#ja7K=(oAFXAzo(VOq3M(OHOxnuEvU#21-0nEScS@KIp2`U`sTNDTw4 z%5Ybr8j5eP5^t=Qnz}96Wez=9T3hYaN_=D?9=qgGZkZw+-l+x2C6(1z`#ZRv$tfRE ztVyf3Hhv-AoMsmEv6x^B9;EBwyiERU5d^Y+oQfdIK+rHh5j7}*%>vSL4Ze#V|4tma0_sBI z$l8fGviOfU@_)QIf&*JXz{G^s;UWS9n0+527;Fm24-lX@WDkJEs>{)`hDcKWq@nO&6@lUis zTo8v)mw*o|0clN2l1;|2$tc&20AmpBug5vNnG_WH@VHr4(EeKe=4k2xpniB5BW(NcHjllhB5Ixa7 zpjyYrYbQxi`^U$4P#hW_Fr<`lpehtVTonGa1{Bvr(1S?JNxBcB4@3pP2w)%%pIl+< zJx~G+c^$Is!2#U?8(awhAge6YAoNry4poF^1xkYyLg)(3B6J00=Hv>E?vFaq6(W4l z6`FDA3bg@Up%;R#KNKc^pcb)%dtb=zh3XGwp$0X9Pgo-yE)YFm0<{Q+`uZg07!DQ8 zA{;!Ziz*5u-vEmWY8MqM0i|sNS(O5|jssbSVX&_VP+v}l@8tgE!w34rf%TwBfl3rG z0>sm@gusRXgT06?*@C@&Bv6PF*9u*sM^nJ?5e1=2utNkeL?<(2^vhKptSo5N?B(Ob z%)YNOTCn>572qg=y19p7dXjL2a55pF-S5poq#bJR$MyY)2p3fHQ;HsE0RYq#G_;7j z$H$L=-3Sg4R6E!{0+a>?I}rJC549=^<_8BBf)8yB99S4WBUA|X0tXr@-IG5>pgpPp zLpLW#3CD+~517djp}JrfhT%hV@%su;PB=c)5Lgw6&Z*USA5MP0X_eaH5wFspd%q}b!lmY_+{~N`XG93|~A@%Hhe{b`j z%l|ba;2G7a(9Dh-uqIXKKYuxljF&Rt(YKe~=b{*JN_Zc)nAt9FjgW=dRpW>+>? z%k|Y%fZO>Al?)wP*FJZdYI`(}QKeXf(~${~g;D zMv%#l(@t0Hb*1CS$!Yh!Y_XhsS3J!{v+k=*APoy_Ht#*wW|OGa1rz&c^?h{?Q??f5 z(1ZPg0rtx;mWzM($^SK5;XigXAhHwv6|_(M)^N9Ml!Zd1`gO$D^ETlIo%a3B@nUYT zj6OER@M|5>Zx~_B>o#k7eC=ZL?UGIhT%$@$`sfd@~vi)|g4vx|kh#v0T4JOYn;Fvda=2QykTz zs96Ty?6~pnml(EA5t;Od>MKUv2**=!crUJuXQCiSdiWcP4%&~~n^)+SpkugIO=bz& z-*j`#Cs14N$u@gzhn(T)crC>GMp}(fqQ=7Nrpc`_>*tu6T00*7@wC35$U7_t zZMvH0N10ynGN)rc#9RtN+nxK3y~^Og^V~xw=6j-LkofmIo%xS!4;1=C_ze?0YmxsW z9r(32J7B)QP=&J<&kpL(suzJ|cV>ux7~>IubXN^ZZhqH#mrjHo9M}#5nl~hgtsy{W z^%GG89tG`(2m>_@54gG>Y#oIX#DSCpCBZ(gOv5OoytQby<)Ivy5BP%txmg%| z0!jOf-27dB26?dWC&GW0o0*|Z@Cvw~73c)}RQg6ZBYi{CAS5M=o`{csZiN!$L9O@z z@fM%*Jsc&7!vl{5=$@Lg2Og>i4?Gr5^Vd)0aCjhFL-(~XTqK_pv4`?MY5?TWGeCga zI+ex$r~yC{IrI)N&?e={8=S^PPo91n*ZYkI@c)nAp$Ph_box>-$Tk6g^6DS~Tz}kC zLcM`*Q4h5ILpy=$L%|NDL2CpI&G!J!&Pns&9-5gSdI2;m zC(HCC9S`fH%M9VN_&;}U;Yr#uF z+QM%(b6ixd4LDcEcggEs zz{Wd!U)bu}`8+9}*?gIovr6#oo5+%z#p@>+Ve}6d(Wm#+O}Xj|8jitq{aKcIu*9_2 z07i%xj1;7O{zA0^BAXx{Ccfr(40u?-J8pD#eMpZ#aW9T~j5VoMY*a+Lx9tNW#K>lL zTa%@&D>rAPp>wLdbVM-)55w`)DQ6+;ElS=rE?&1A=o2kHJj=Je($JK#H_Q;i61=adqEw~x+hU8b!7aFp zcJTQeZO$)D8n>`L{OjKwt=`(A6(G$?lTTzSjE-SGei`(2S9sFi1+$w1-C`V{^-Ij_ zHoj%*@RCe9N1n*u)y^7xYFVjwN^-K21{JjMPa-E8NK~UeYZ7E-0+6T^L+tKzGUm5c zNyJ3MhnJU8V}3NDV=D>J60TN$(CD+^_ra!mv>GFs%V^>gn_FXY=a&FahFA%)#DYM( zYo&;r5(#PsbcODr6=C>r2H!?+s$9rjosYq*Z|=pt@$D)9K!8?aSCc~MT$@b$3i8e3 z#y4hDt~$ibt#lF5Wt0sD#0S_bq0CvNT-EIH`aCEIazxD07CP-jw;jYxK3c>`Et6aF zZJC)}HO&c+dwl8IyAQ+eN^LE za{DYg!fnb(8FtI`iXwihK($CB-r%GWJ8P1a)t*o{2ZQoFXZxF)wne4I2L-gv+PI3^ z9WQ&G?9pi4c_kYg51*|LO${rr6x^{hvc9O16G*ds5TD_UqW1iHClgHdUTi$+p6>-- zY}LuD>d&X)N|b!!zWVKN4i;Q&UC#BdcV-^K+P9eE)wAYL$T$4@R3L%cNY4#R9VQtZ z*vjClT~g(mApF<^TlO4h$-x!o>SdI@XJm8*x*}IIrl>$;nEChowz36Akcnx_l749 zl{7LATmp4w{=B4@wnWxDRPTa>G>7E(Qu0{RY2~;yulTEnvMuh2lr8DJpZ}oXa41Qq zg|aNvJ*{%Jl~+6?X7fOFzj=A+TChpV>cDJX|J|~ivQ2{+$z+86!OlKa#L@~2LHrK| zo}?zc6?ZXIpt>Ne!7?B^HBi{sk7m*SavCFhANLYMrBS_?2rrWP`1yP9xF5G??a3P+ ztwtREYpeay#o;XV1;u^|zoErv<)gDi>1S;wK&E~nQD-Zj-R3_lo&zlDFE{v_WAaA25-k<^g*3%?!=uDCGN6W;?!4ug#UI533ubwF1j-vkDb1_wj??ica%@lXu@ zyUzl|zo3Sp@_XR=;~)VZ;*P-b2l+DSfas5d1ijddzw~8*o_l(bpaRUcPQc`94Ey(< z43Hxx=*LMf3W0c|N9cuc)|&$=0SEiDHwTmsgFVBc1fSQf%ndCmoop$Mjm(`WPf01I zlev?XF{LAg4Ao=eOO(476kDjk1Kt0FDIoosS-GG2{;>Yszr2OfD(dj!sI}x;g z-*aPEr_+u*VksLN+S(XVS{XYVTVbh~nLGT5OWNLba5DRzA!%;%BMyxfId~e?$rDeF z#E{?xe_|v?I581J!*e=@${=?7KF}C`1k(PGF+}`j6={P~KgLkh;2hFldBpr2NpWxt z;PfBY5M)S&j-NgP`8~IJ>Q6?+f4pJ-@rL<(-Y{n!+s=B!tf-FKjPl}o>82iwuHT*h z5XRPy9vx0^>4I@S@Kz25d-gN+D-!6mtCh;%Cby&FW;1aldI^Rf!u!gZ2PJcTdWY$F z__2qf>fzvkB(b1}(3G5o{#(sS;)DM2I+xc;Uo&NuBs=^lvSw|wi;rq-9EUiq23c(} z8a5g__q{Ihlu>Pes8DKFB^ixs&97gpR^`tXaznIGIW}NV{6?C0C1r-8Ubj+~RCT8L zp1H;yBF~njY-FlqdbSaz=qS<*8S{~-ZGoYRaG0@v%ivwtg&XT}2}cq!-Kp%>6Bs;D1q5=E*+Z@c4u^^wYC!hRX-r|UEt!?u;u@4zAS7AM|XC(OZJ{&_A_ zP)NoGUC7*u`g*(F{YEh#(dUA$^zi9cyvc|taFNqS$#?G4yg{UOts2~Q>8m?WfPq3d zCNrJJFkhj|OQ9|p91=%Q{b7v4M$QfMspY}7FDf!3Y-ASaH?F=Bw#%NdR9kN>>qX7o z-@!|oc_&<1kfKrd;!57su$bmlvLA*mK5&PL7h&2}ilVwxsYVj!8~x%&bFP#sV}9fg z!COWQcVrP$l{;OQSu?T=m)-K2NAcPBt`m8A7JBVD@R953&Is`6+dWtj;X~2PlzsSS@;dowKtQR56>foE|zw`1&5XeEpcY?<~HwOtI!UX{*;tPM*f8%h4q{c+FK3nl6vN^=>ULFLF_w{*0^TP_HE<$offYc4Hm^+0tpFLP6fKFLybG-HoAG zh2+!B!x2~4yL@lUCaies79!q!mBxwd^vD?TWKS9EVl6hAEq=Doo6U3ke2U9m8pGG> z3uWV1?ivaYN#n7r+U0trsG2{04R5rZsqFa~y$FtD454bm;G21Q*yXOOz921{E=sY) zxiEP}JSIFZZqmGh!oOLBT%yMW)iw^BZ)(16y+5&lo{oWH zh>~l3AE%y0H*c76lkya(I{9Y2*B`aH|8Qqq-%#q#M<>Zp11xPD<2&dMLstUXjc7=S z1z2R;7|FJ@W^9n9EIYTWT3;Vw6!n#eoLj+=5?{QDe2Z?PiQR{PR@vv%lPZB31(qHS z4fqRE?(Y_>ACO$aL^?85$T|F6gVd^>UO}aqKz6ymj%a1(k@1T>RKc!3CwK!!KC!2n zI}w7&385J@7m;U;IFsBEu*2J#<=^-=>x<8@Xc>-QO4E%9+wpg>Ky+zi?-IKwT95Ye;HYSNpk`zyAI^mRwE{lq$ zyaY~W&y-Lt^EO|&3<3J4Hv?~9vwd|6@QPmRiJRapIbOLqN9~RtMlKb%534VBe0Xff z^oj~KN8f~OCt#fq)sAGMl8NI2^^g!2V%ukpQY0iQTVXX;O^hnlt0rrsu_~I+jfY?H z=R}*oBOb^vHEw;6@W`W|@xd&Ow34+Jxs=sz(6%RC>T+nwC!(wA{G+aR11`4(F+2{xz6#7x|UPJFAjx<{Xe2SCN zuk4gX;IqV0Fd8JhD(}dJ7xliJ=pG68>>H0%+)Chvi&Ua$vi`lTAQl{f_(m+FLxy`e z9ex^Amfks(w`6SZ58jTlp0&x+<7HB9P$AFnYuKSd*yt#ik@Pr-d+;)|fa!h#*Xp?D zrukyswhp!g(N2LK$^19#4CKDe*aWW}TxO=4Lxm>m$&@xfoE{usU6wD(S}iOgjdndr zuIajho!88Pua4Q=|h##8Ogh7+c_sYb}tu(!FFIL5KEKAimq$LLTMcf;uWp$SohOUFQ z7~qM219;+FkS@ec+w@=VDQ92U;OSdw=;(#Se}2hbR67q)vhGFHd}2J;Fb` zyg@1e>UWnnNRRsWp7@Yw#CKyY&>`Tz$A3D%4WGCioHX%W^MFeK)I40kEC0|uPQF_O zR2D;^z0rbFzECmXbOMT?p1PX=2MgeDfrtPs(7+2Hn5IuO2rf_{x0wZe{?Ukgc7lI1 zrT_TT|NLgk+2#C;ndJX;e|o>g+3i-arYOPs`kerCzq=mtT0mJR3w0^6$#Fi98#d!4 zx-^*Ohf>p`*7{0Vt7^2uRu_Q~k95>a>UeUzq#lv2D=s{|AZ?TZx5bhBL19qj_IUs0 z5T$6Wy|&D08KkP&+2*J{v`;r5&xS^rQEBgG>gQhBR7!A5^D)N9w;v@l#8%gOTqu`> zZvXnj%c=QtB{t4fL)`usk=f^#XPBCH=!Ox<0=XVKCn?=|tba@j1}svuHJ= zae|~isNI>eRcxX(Wof%~18n*~vjAB~F}Xp|Y3Mu;I+;B~IpiY6WSd2C1A+BkpQP#W zID&}ng9J%M{EX{K?lTLURt1C1p(_ociSxvbo_)-`7 zTaS>q7Lyl$7JVIHRf-{pe2?K(nV`sJ_GsU8Ol{-XxA}+h&Y~sI*37lPXUVlW2i??;m0*$<8pXGns|IAoB#KfV9 z;D4#$8(OT+(2&~vX99M{q->SNr+k9vW33`-GRIJ8-ORl%`p#bvz<+s9H27l`!{_^( zEmFxFEj@R4nJ~nMQr-RA*x18bOH$YOcQI*w5;4^CTeN1#Jy+>d!>`y%0iOAKct+y$%#P$hUYZ#}X>c--Xws#BFA1CM2~G?TxSwpJVJ(+VzpM8+J_?p>j zx|Q(bqU-tgiU|Bk={Cn(UNi$yfrXXhl!KL*2dLJV$9105S_p;TP+REVW}J~&zD$n} z&-?qA-|a@@^9O`hoAmTY5q^2?(=MDI3u@f79pxct#2I!0c5lN=&KFSbh7FfKE|e#2 zu?Z$O4^2>4P8aQy_9Fc->jT&PLjNIL?JB#~WjP-}KLSke)1HcC4<3+(;Sr%u`vq!qApiquj78zbqTWL}_JtO;Vh{(w1F8>pg%dxNV zu2Aj|tG~2;KS(;7k3HeT-0EC{bgB&zi1f;Z^NAIEnl8u}BrpW{oMg z*eDIVoG(w4!X}>?uk)d&r-iU~8oa}=WF9m)hzb{maYyM(;AfgJk{D8?*MyUhq2-ZG z$@|H2Ik!E;xc-PZrXe-g!h<6FJg0%eT4%@FWS!@Oi8@c`gPqqKvndZ!1o`eAWMs`V zkG+;w*V)+{?LIo#GyK;2)mBI3F#Q5s$BwS|&fLQkkz(X)$encVoAc$9I)WaX138V} z+ZFH)EbGrODf$wnoPsZ=A&~pqykRezGotOPHaM@ZsZ;tS0Pm8zV{YoCaIm zBdHq-+?~X$ediB2^YL&GR)qi`zDKq7*urMCiIM~B}t!b!r|3e`n(^<`&qdD!dONcO`o9Xw|6RL zy4Nb5!|dc@JHk9ahSjl{8Oy9Zeb(GzcPZcYVYtuHe)t;pQ~G_x883U37X|eXD~I;G zhbD}7JqN=C*vb^W@1_`%8uhcb%GSeuqUPD0ZW=@g9U#Y9 zS${;{)s2coQob7Sk@69jW( zBElr2>ScRN^Rl&1adveH%W#6Uagxy$;^NAHbzG=#TJE~~wh_v6>rP_JcUSb6WOB30>cY;?U@ z&Y0>YUT6E;#t(?)I&ttkeUsP1DzQ+5yyehKGL|(t$?C)(nw=Ki$dSI9!$$Pn)U*fA=m0fIW zAm+zHTJi-|#@bt-5AqV@8YyqT)jtqXmRP%FXIw&LhO=Xrb(y_y_rq3=;<;d^ILY^G z7-kpcR(;HTJv0)7QvJe>zv@O^Kb-uSoTcA)LE+w#Pmq-2aHI+?>PT>zQTiHz!KT$( z8Lft7o4AU!c9Lf4jk&0jv?AYSciU}6#59{cX;oy*&qfE&*EEnLu8q&deeKMpdOcz3 zIJNfK(~8qy$%c#vOWx-AT1(iSfugG&U+b$2LY^j8YeWcM_R%oEY-VhJoIsuIm|sa~ zDKun2FC za-)ZLM2uAKQQQ^lL4Nc6`Nx|`E-#QK@!t%_Jb69&iQBn1`T0t+cAb==DUq|4b!)<- z3xXb;68dJz6h`+A-+e0lLd+oSj{0E2xAurpxepQFQy1^NX18xUg4Df^Ugq(=e~G}q z{w4!fZ&XSZ;I*WHBVRhhb5AwE6Grw6=RNsxfq+PP;M+qGurRYKEfSq6D}S|tWnjzkCSOER&^Jz*-lK1IA4k*agl8QEfOwLMbXcfC@9 zZ;$6|+IjIXInZecl>Or z_jfIwNFit2IJ*dbwh;nMEx*3ae^?SfvKmiAlAKVFw0H-KQXW%Mj zZfhe%&B4k}O=)anXlrC{V=6>_TSbzEml~XX>)ROVTiMze3sJinJ5q}XW1$P`^BY<@ z$m`otf(C3H`SpdU&77R<_}SPT4S{^9@5pLvXKVxVOl%#j^_{@2gDIPlgT4!B*xHJX zlbxN1&062whMLmAltYNx%87%T(#aLXj4VOSz?2h8lgUzshj^Na6ZXhWkef_m7k-KT@vzNa6XB!b44IW@T<;33>!ws3}cst)xy9e#EHR zgiB!Lh*N(uZplCRdTG6&(5;8jPo z$=dTjIubHBje=nnFpCs*S3X{C(x_?`r{77i74IZ*C#=}G-ZANNbAZJ(uF0~b$*{we zwqcc(?a}zfX!Tnj7Q2a#b+Iw;L$IX+LK>X*qAt$GWQ$2EQn07i6)ltI`gJcj#y=#h zvm`GGZa3L-Wth*14M^av6~SgLNVtA~kfH5$?wH46xY85UbcP|43-X!y2L2u80a;(K zLf^G0mX@UP@Q>4dNl2=6DaJ^4gXAOoJVm?YLF3l_wVrLsG;9lp`AgLFnRr9^$%K=l zy47u)o8u4-`?CsVx6V7(0CN7Wmm;Mr-k}fONL3RL+6cqeT4%4{l>PaSopR$1Ik)N< z$~G0mZpTr!ncEgD6OP&Dbdn=pazehbCe{9v6qFq>bR@2Q|cG1`*`j z0&(Wb`geKt-*Rqorry)L>7bP$K+;Ik!<;x{MbJ{7D?0Wu>hW>8*N}$%jp7vi=if4} zeKEtjW4F~ES9;z<23>B>){rWXdJSddy~9Q|WViowH`h@|2@1ikuL9l_RG`GkK^)|m zD5vjcd)Mi^m*VNo2_dMsEpK~)1Gipn$-Bh!CJ~Ql8+wT5hi@@BDpG4jLq>(J)*U=r zJKJQVmei>6399ug!9rh6KGu_XIMfy*StOQfw=;g$-C{S0$&2ZD$aqg@{LX!jvIlK3 zsB|L)Yl*L`%Off1UzDWRT@t9YM`h1sX(LeUTBPn^E>xFa$?B7PHKCdGh4U1DLWxsAv;8oT1t4D%M1edd~Z9C?lR+ z?zzPDt|B}b{;rF?ngq#}q=gzg@p{MuGs6~+>e`1)sB0%8J6vvJ!g$Dz<4YqmT~JI*Mh{OFUw5}7M^XlCrEXI zy}F0(1Xpmr>Z8U)QA!0229DlSo$um0#GjyiX8VZIq=lG5Kk%+>H9qqKTtPIvj33H* zj2V=O_V7=1n3}5}{mz|lQ5CrQ7(+ofS~(ewFaD0xyL+_!$vLKx>WLMu2rqLQxn8xQ zeii+ujL#G_iihk$p1?g8xyrF)GQ-j5C9n^inSRH;&yql};C~5!gL|K)3O{SJ{%7ue zcAx#MNCIzeVQ@ z0G%hLI-&ETW3in#Zr{E<8ok6*Ki8c1WFm)oE4{?W$7%14hTIcZL&> zNfNcK1v=dq{mV?=cHivgjg=ghOzMmiDJZ%rY)?d;6jX7=;jIhjdj8113%(l4_*hSu zummzDzQv<2Jd$c^w{Z(s7?L$FVQmc#x)5wEU%frMNL(Ut=T7nyuL6FhAe^HkT<=<) z%T$f(8}Fs@F+v_bqMpGibkG-f3{K@^L(nVRUXGgS@?{AK&1W$k>DpH3`^2S4EIZDA zos3A8$)cSScOTA>PO3b9?2Q%C*jw48i*m=EwOLv_D_%ovg39vONEKbLSYev%4!y*T zU5eN@5l?ro-5R&Lc11;hl<~$FXY&C30aU-xG6o%036I8B)e7Bhb+uWzkf~k8xp6{C z@4n~f7YS~4rDzZ;`z=QhM*5OqJPo~^&(?BB#uRa;rPyiRx^rJbE3;O zBBLe`LylXnvMCi_*M9RPK?65H{>n=Z(R=c_ud?{u)YD(p@(#uH!1=q{^9;!dmYF44 zsTfrgq<>>Z@xKR~LtGN4HT8+h)`-ekvyH+R$+PG5Bd2MpklJyfV!J`5J3ydihF4bk zLX3g<`1%+vq3PgdZn0eF2QS2X??n+5K?LVh8 zpJDbiu$7%WNt)~yyeuR0o@R&662g?Drc*1q5zH70*4!aJj*!ChKj%CL8OU`WQkc?EOuS{e0%jH9Pe)kChmf#VVrSUGt75t~BpiGVHNn!PFc3TqLuV z6;ye*Nv)RG!N5H{l(r#g-jlIksuT}D+;233sCWC-$6m60X`D-jOYua0nFCul@31Wg zI%`o>V~`OtiXny65EJ<&?yKN7r*50kn--dHqc|F@H4^=@DX!o=w z_a5WXGvaC*a+@2sMPq8)mG~4XIl-I46ZTmsT8?%9kkJ*RBUrg)WhO#RvU$-pq&>uw z>q6uu|6GAgu~$^&FP@H!TgNv<$qwy=w{g7wiY|AjADbuk4eM&ScrwStTf_?za>7*c zwCXQSa@!gV-qv*)u9Mv;BJJ4zg6cqw!fL|B3okOvL}Hw-NYTI&9hy}i>jx*CXjHsr z)RaP_B|*(%^(~3yveVqf;JQGQ0Gn|VY^7&TP24nDAKC~oc$(Ww>PttS`_634rs6zG zy=q<(bw9i=hB0m-Hav=1-sfgIjFVmRg--{Tz5>lF-o=~rG!zx|0{nvK>CvL+&8SmN zG~*Iw8s9`8XeGIMCSeALl-#9g?#+zE8Q0NpQ7x#;r$vgPE>xtp<*9m$zI=UpQBrp8 zR)Nu8QTNA zetli)8W%ocF?CMrB`NuOOcQOIps<42+X^AdG{l#;Fzmwc>@Psk4LDpn6!fQ=R3I*m zVaMqdEzo3i4b7(?fimrRnTtx4fG}+w%yk6*VkG?~OyvtHJ^U=CeQX-7hqk4ljVxO$X=6TmN|c1 zcLMIbYNYE#oP@@q@(!hw=DCB_-OvQd3YW&mZUu^d3ti8`O&N0XvPfU|miIU{XBrUL z2a$^67Cax7CX8yIxqUD%JoFA#qbCA?CQoxA@9kL4IJ~rX?t`_jcs5|ws z6aH$NFqyWOCW2(*p^%e=eBrnkiqorZXWgZ1A#~TCa3uvwuI%x%qU2ne>4j~xcu(_> zDGNMtb@$y*5}6AjP5OFpbGt3G-+$r4r<%JCkxtw=PJ%ZgGxP8n9G{ZAjl2=K9=#QO>Ss{Q3I=fBd%CS?>Fj(L=G{@Zz)9 z&$A5aX9Its2A(DHKP&z(sezurY6FA$01<-<#QqU6{xSFcg}Lv; zi1ALXBjzzL!8rIqTK_OF1B5ru%GNm+$*tM_ix&haDE-IS&*9O%fAFL@g~oU6B`?S4 zE(4zP;Tg?dPdr|))?ROFf11nm&|rGkwv}9;I@+9-oOoiWv-PTDq{^ePI0wezR{~{k zJ*p4BMvih8xw_wo{34BS7s8Z{!Pfuc{*4T#c6G7*>M|qvZf7MzmDytVi&aQ7pQDINB#Cy#^K{|Z zQ8}M$%d7X~7!B0{pV}Ygi1)x_TxR4x-?pu7Y9t|R82nmgUXsJ4$KY5xe))^oNa6NA zio}=qidP6Gp1JkBT+xL)ZzEa18u=jfP4E+@glcX{@izTwD*GFbujwz8`_oI;CkhtR zk38fWrrozg7II+oLCSeZ{mFQ>*Lxf-S>Um@qvS!X+Lbtie(=Tv?*7EJ=Q#eT^O1^pH_r9&8rL?K zsvN4jvZL`>KbgHG=x~3Z2!~qEumz6TYW_WHbm zXtrwd7kpSA`en!#=fNO{dd0 zFKRc{G|vu+AT`41z^tuWD~XfK#8J6rsPcFu)9;Nd*UYl#8|x>lDW5Kit>jJl_6Hcp zz6nCODr6R(&$q@FE?Q zSQ~H`ruXS#2{vq{lgD>(11+dl3Cth1R)OV=lCkS;;4;BbV`{4 z?{2aE1e%y>&zQW7S;MYQv#xOmk-?LT;7Zt zxz9%C6x-NkrY?1nb2voLR2bSsn2+XoTtv6#(Gu!h`^LzHk3}TIy;_*&z~zpso0GET zZq)2Dd-I)EJ7t4{?aF3vP&bb0krTsoC!2fW>|+$i{v{NW;pyeg*&sI5kL+u7p7l>x zcTDgFs*0+MhlWUnuk-Lyk$HR6Pj1L(jC6e2I8MY-tP+qPMhF^su`m8IY&X3`7f#zN zd;Vd4Jf?7(-6O4$EIbN%lcxxKm>epfX{>ht`xxa}LiImnl-Ew2*zEwLybHAQe;DOI zjPfrSlDkXDeL<@>%1?Li3*%F_X_BCFeTvU2f1Bnjr8O3gHyvIVK{WJr zH-f!KU3h8ZVtsy|WFE>T9LW(^Zm}#XrQJ4*dJ~+zjkHs>l?(2K;O98 zkdjQf%*6c~kJBA~a6XxS0OxWjrScu4FQ{*IRR)*wwKYVZ>V+@DFHLwWLIR6~h z{Bv0I*M~JVO60?1fcU%u3+L|n@c!GN8Xw^5L~+leT)_g<_Rk zNf$tk=8z%dJxNDLXZ`3pt0%K*ut4+tNB4#M3mh$jBT7YVYD%dCMK-I?<04zvh;_3< z5UY@9nG+mZ7>e_|Q+RYFlqZ`Oo=UR^N1)4$;JV!=xOH_{tj>v?CFP0sf{!a{mjv0= zRY#ZX8qLB603SD5 zSSpR|OgkAQf`Xp`&DpEIte+JR&lc-vCeD0uW?Ye^N!nRn&UFt-9 zV-AXUC3TgUvl1Khhjr|}7ZlR+c~XZlIO1YbtmJ4e`M&ZEcaXFoe%a0w0W{;ki!7d9mj6St$bND@q6o-h=0C=Z zf5_rrlf`vneL8!vXhezsCRtojAC36{e#T=m?+_(^5}!S>qXt>2a>YcKo=X{H7p5Ox zdbMgU9tmN8b9B7yrFQa{C>6Tf9T=#)3pH#@8Is!+Rc>#1u070+!SD8-+)Rv$4pZLc z+z@6HZXoq2;MRU4sH`Mc_k^Jyr(f6mIom7FaEcv;LM#MqjUdk%x;F&+Im(iuZEm|d zgx6k`$M^AFT~}^&GU(Lx73e#>@O!XG^Hsv~ns^+x!)Oz`e`_%DRIBi}YaY~2x zl@eMHqqE4QrVX^xC*6UYc%)W2%&Ifc|HU@)oVu;vhwbbsZ|-gbdN*u*u6SbYoUE8{ znao6*s4Z=sDK8ROglyp(LGAnqaChA+`OR%&z67vgux`81}HNss?-(!)6I zVuJ9q1=;pYc#&SOWu0#|_C^a_eZ*+_*CJI2yM!}cc|FlMvhrO8dQ zk{;hdX7t&h|H=p_c>nbh8|jA++^$-|{;`6H%2Nn2@%9A>RFhs$uanK0B%op6RSNtd zXR2|*OJ9=XTuzYJOxC$aBw^P=k;f2feN|NBuD$8jc4VIkA<1aE?#flOaNwJUbu^MEU~@ELc@==_^d(UZ5bL>6#78zbq-oK1VM zUL2ioLE2s@@xFQ?rV|%gR{ZlQ%QW>2=ewHwct{qd6>*y@x7$tlhHzAfbML3Uv=6b> zEus*6-G*CBtiHR}vW#T5*!Nsxl$3j=>2ogX6SYG1+D`>ifzCcjhX~70D58+8)ekrL zE-T$GX!0Fci#(w6)9S_h!i(5;yBFJ{Vs;|YswRQxIn#$}->M-}f3!(G7Khsv85dR= z7W#$j1~upM%vw=2=d4o7FiItg!nTSe1uouiU^H%%&{Qf$Q{whSTX|9M)H_CAv__d1?B2idpNY7Ert0#l{5GATs=>N?7W;JSy{CHD9vK&W ziuBtsTPGx0p2YHGz!tCQ<%mghPw!I5^XJ!idjS@tAh#qFL|4(u57T=h{=OuW)&m${ z1_!*z!fPEO@4{ZbFtBL>d3OSN49H+5MJpFdv0>_JvJvViumTp`Av8r#Y1-|E!;6IC zoiNXu^sKMj;CEEC#bw?w)`PO=)RcenMMuqN=+!)L1wc~bMwte)0 zbJe<+Ly9-mGsY$wSa#1DR?Id^cgv8?=iHj@RnjB5O=b5*pQFFn*(B~%FuJR!_)#8v z!{j})z4@0R(I4(!J$|hGoA>Gh+WHCDXqcc4F0_7v)=&Oq{iJc)zDNO>zU=+p7Y(h( zMNU<+{4d=S$6~rv<#_%0c!Pg^l6Y3-w7TlbG|kr4;VL2ZEAQN1ldj1=i&erbooS2e zvh4mEzsB6A^RMD}Xt!+OI?`t=L(&ynR8r6&d*hs0R1eE}?rG9Z8?IVhwOV##=7G^g zQkEr8?Xt;_eGh58In8sV`1B$kjVP;>n4yi~y02btP4*U2Nq!(})WcfC%By^N)53W+ z3%qyUs@ioc@^Sak0}+MJxkr<<_#4XadPOxQ^w~G5+9&J~QgG-s4J}STdc9e*cKHa; zvAiS>`8M+j6`|4w{xPf)I~RroB*@0>z2c%|7_cSyqF1t$i9XqMuc;n?pRBxU>8)I^R%nI*eP#@?UkF!vHUt$tUtv22X{Wr-kuXtvnjfG$o_3nfI_-y z@H~SK& zd~?9;_rhJpHpShI{(@SY&j>qdP%MrMwnSVbvs|>~i}VfgcTt}WFIJI%TF|Od9IZ6W}g|hJalRdPez56U3qKm&HCNOixu==)I73l>*#r} z7uzO;yBis^22+dU8L>MgU)yjY*7z;l*EZ5_CW zK+aXgyFb4qhjIs8l1LFV-yBvVd8ue;u*`zd#O!w*RW(n<+nHFGTl@1%zfRfV$?IWk z%~tw2eQVp}c8+?iPi8Ph_uBQY^=7Aj@oSiS&e8gT^oQ-kCOubfH!I}2zvDf^5_IC^ z?dJNHK#pqL8uQWO%I6gx>&Gf9_spItZ0c!mf9XVNTAHH3;(p`pZ{#v7yxexRyz>or z3wuu)D9u&e+nT8DSylO7H0BCl(d!jqs}I8T|HqpBjqlNa^NwN%OJTTOD3J-t=#GMB ze}6vvYZedN>;`v~9kAcecP)w)N0@?1Q~n2al5NVH-Tfrqii@Au6cVmxS#r6PDWKsA z`vZUbrEhU`;9 z&fQfTYhFK9>Ep;7Tj`eIVLLO(W7@)f<*7@CQ?9ghZ+O^2*`FHks^)*{xN>K;=8H;w z(~O{N_t$bNdiCmvU3YkOIjlaSQ8WK$%$6Ne{)wGt#T#=KuE@%UdI!i)A>V&o)l6Nh z<>WE=R3W4J`G96ck!ju|Z*t~|xNXX1#|I6#lw_e&)TXaaWAGa@OVLqaQcp}2JW}pc3~5Q;~u(ART-*_%5-i?b97e}@t=ubq1|Br=A_FRbFqsKPS=Mv3D|MGW$`+tlv;3pb=WeKTxaW-#h0gj z2)8uyufNGJL3jSR?GEFW9gCwru(w@#T!{Y+$QgsmAP+i&=-xqk{0C= z616BdTrhF>y!JEYRZmenHL(^ zCsQLFv=fBavgL8{v-gYKC>%I+BY&;Kk(+l4mTQ$Z57!6s9McJy-)?^5Y){5fsXoqy z?#-O9uxBfS=XdP!bBhd=E<6_$K{Bl^3tyu5fW2c^qxi${CDpG>CXS9)w*~j&;r18l zTpjMOp5;C%y=nQ2*FSM*JbvLgVTNmcl<+!zbkxOVj5`tE6zIpgV~rm% z{^lL4h<3*!!5zyRy~aUztUteFolxGCZvgL)&%p!Ecipj4!f3B?H2YbHcqjDx+h364 z$aOuGt+&KokkZXG)yY0BcCB~3(fbbNcri9DSf|S_J8~u~@|UIYi50^p850kzdtN*+ z;FLc@$Rc4;^^AjC>$ZBnp0`SNN~Yq{hWQh{mX8fsyn7VWG(Xc-V217Kb@u{{<+9VI zz-qSd9^0RUhOVXE_Fa3$%XBU89j%<_1y%|}Tgzj(I=V-t2VFDPGvC>gcBw31KR?cQ zZLgnpmh8nW!}7=nD;FsZ@6$@#*Z5p@w0<7jpzpQ^p8B^7v~_mIBp#+57n)IK!D%;J zy6MoX=OS`GXPW)oWUlupb==b!8dsyF2%}vNY%zWvWZLe3vYjXVcit2 zYv=ZwWGpt5o}^u~Mj~6SYth_fzd32=hrGnH1tnrQctW2zO*1| zR!Kgo?+LMKoT4(~85cRCrX_D!rs305IcsFe!%Iw7b$a$mYUb9I_}LO2dC6jm1uH+U z;7edN&n{zg=@5&oTFk<8h24!`UOSu1aHsIDdG9!U5|$^YsU7h4lsMo!lD*-hOYf!3 zz+D&XDx-p)6&4&^X1r~8VDeKfCs)Uo=^a#658W0k)!NKEEd8a8Jh64mZ5K5~oO@eP zip+|%9+MrG$??{AOObRpn!P;MtFqrKTUCY`R-+V~qRhL^AG_?y8u++dLZ{@taCXNv zU(B~uJc>=&(rSipcGcDJcisAnm^wB^{hV}o4TZ-}a}0AW$`d=DXrUuKdBC&x*AWNG z&vW}SE?t{H_5NY0`$%7ShI*RAaR-^77(-(fmzkw~Maw%VRr~`#R2?;xcX2 zRDTh<;pj15qpWotNlVOnll|Ys=+CPQGk)32BKSO@(@7)pUD*2RC4Slcn?h!3nr>lB zWs^(P+_XynlvwmC+mKt}TyHM(-z0Z+ex`m!mvxtzGTEZ&R^-q8uoO=#*XI3PdB5!cgKFoRV_IQ-?S zwifOalI|+KfqKVxaQt%5^g*I|1f_gg_^wH-l_zhVQ(6CVXhzRKsa&RizlyJqhDox6 zeT%|*-}dVok1AeGPf>ZZ1FNjfb=YN=`hr9EuGUMni0w-vtJ!MmE2kO9UzoZ0_)qOz zugvEJoGr|Fv+`NHpP>CqtL;5K zPsO*K6&Vx>e?7oHN5^2P@~o|5KD$qJO) zMtJm|yUU6CHmgU_TQG0AR~Ni|{jqK?<2(1?yt%m29`j*4 zL7G_;xRqigu(ymGIyAs`!arNsZ5X$7vk|j_^KKActes^WY?buMAR@jWEW>dKcjJGk zfm`*t4O`scR(-C)x%4-yJ}@w0xB+O~s!ufS`gdCOfjD?!aeFL0P|#1iA~S3pt$VVp**~npKRcKw*SLu=SP+GDpM(c4Lfe_2H%_!!}2(xXwZDd#(2Tn4eUHh zV+=)wI&gPt<3TXO@(tYA;kd{<9X<^$cJBfEKIsqyZDF1OAqh>W!LHNY%{u?`__7?&PUe1u4=SNYWM53NT;eY{$u;W0S_q!*})x zSE0N!mFw;MpyAbNQCIbaqPolcX6;gsNDLX0YuPT^{&<0sbF_=*Bb!s*NA`>~jI^9f ztuCf;g;I*DA{}o!X5`)t6D|uLHaCg2xO8&&!-g_d9ut|!(rA^%KbM=U%+zP&)+%Y) ztlhDx?TPRDLHFyKx|@_%wCEZhnQv_NI>Ffc^W&H#?QzpJnJXKz>u1Hh# zxy`QHb7A?QqIF{GjB6rMk5@mP#jZ@+5)ok-uV5ad+qzulwQLlZUqo)~(FZoJay+%O z?oAN)J#&@vYhB%$cYHeq1}3ulS2-F;D>UW$r5Qvf)nyh9KC@ZGBq%B>A&?;_(rTyE zb-(^u)OsaRbrRWD>TP0oVz?@6@VbeiPF_vC!4KSK2PP?N51nn`Iks|%-NOaU1F{2C z*nSp>v)EvK@yNjO@;S#-d%`oc%Xv4ZL=P$Wln*p6w25_WTYNF}+3Ml5OZ|hn#HKgJ z|017gzZRAwi}WKZ&H3do^d!$`nOhNF^d#daix*|GBfTd3+xE)5>%SfREJNn`{;nHI zqh%F2neBVE26~^L&oS(?5DhhTxpblB^>TH8aU(LYAxn<7FWw|I-RL;&^E_3}*V#(aVrPUn5XRIPOOc7e$Q5nA1i%(j5P|WLO5UWzG zmCcz-HQdfjV1u?vP-o|J#gF=v?w!|a)@CcOs?kZ?o$M4fGaa+S#uSSb4VC6)P^#RK`y$^RWEqJQD zLiScvX4s6{+WS5W45)=}ALdsau`Te4betz67&L`1-{%>(F~{u>*Zq{(MS~Tug=^)8 zsiYWRU!tQ+X>&J-(73qj=v9ODYCow*XumyihHL0l+c8UHlU=g;Z{{Zb)Hm6|L`f?o zNuhF&=f$)*J-vd#&fWa>BR%33-L1|`%5Hf+(sq8-X_hpc^V*$hb}8RSFkIBN*zI7` z!nsd5MAXQl6>)YwA_qtpNZFcCZ6-PO!XWgur@`^JGT^~*e8*qdjyEmvIrg7e${0U1 zevbG(o1~9d-sjl&;YkZ0X1`%6qmX!L`OQ*B@Fa5<($rVnUwiuDV|e<(pZ@TtpLkkc z#M2M{REIzPh`}dV@^dD^f7nxzBg6S#F2OpaAYrxnL^u%-XNz0> zK*wJs@DbkXurd)1h%pIVDa_AGo<%MY<_nEr$7JRWrs8VJgbRd{h(~2y0l^^foPu2i zfe{nC34-^Od=R|R6@%c4#*GW%W?E`MU>1Zmg1}@GYX!kKvF`!F(;flARXPFk!W%Oe zobl$)4`*l-*fu!hC2oYwaPyY5shh)mXGgwfciLK7lQ!a; z*VC%}2QwZnNC_v0*9s@H+R?$qnPlW_ZAB|2UTORi9)w5>uLfQP+!se=i0|x3+K8J= zb*4qZFMjJd3>UpYj({8m@d5D#@dLr9LjEAfLGXSU0CEx}5F`jB7~~X42uLUh86*q@ z5MvP_r$K%NIRkPQBoZVFBpT!#NDN3U$a#=Bka&;;kVKFRAQwTBK$1Z&fuw+321y0E z0&*234Fu-6SO!QY2nFOC$aRn#AXy;UAUPm-ySxQ*8{`hiU65RmdmtZS%KAz0>FfW> z@vZ*<%IDmNK?57UOQ)d!OJ=-~1x}guL?6W4l?@0p$Q}^9A>!=??*}m;>>#*4@c#Y~ zWC}<*2;T1pK=6Ky_iwz>^1&G&KW4&tGMvTWjHmmlfAfL+Q-@i%kysnR8$9m6(c0Ms zcJ-xsl3;BD_s7%L$E^sf?{l(*LjI8-URH=gyFL@ndbXBMj?RudT}Z$6*Ut+Q*h;v5 zcl&fvI1%o7$z`}T6Wsq$z}-&VjWfXWUITLMHL(nW`>|vGe7oQR7;y$rH*s88EbWsO zT%34SY0ErZ%%#kCS#Uo#T3UD*HBJ(YpZjS{VL=J5X(5RK3DgdV zRSQYbf)QyFbRj_qL!nX`lcl?V3qvGM3rS>$H1kgpAap^Y)KVz8eyPOwj?d2DsenPt zRB%IhTJs=cLC7!l%NT%&!I%YO;zY=Qs$M7^f&fsZ)>5Hsf{H<3L{B7oB_nXcANn1= z>oMw=-haUXy*L4qqV;;nf=GlhSw=TehA&$M(#}6c095hYXiU>DW3mCzsc8c>qvyBX zpeY!NVVI`}`~F0}KO{YI#BP!novAzS#5AK*hxfEO9~SEBvUywS%$ zPk<5cS67q1>PeJ?G48iZMzpBU{kH>NEhWG!4OqPT{zSf=1-gm|AOeU0B7g`W0*C-2 zfCwN0hyWsh2p|H803v`0AOeU0B7g`W0*C-2fCwN0hyWsh2>fdZkf~!W6uW;-bx=jd z5kUGK2jqwSijk>=VR$MTgF=Ghh_7VaL_L+RN4mp~(gNP_)y~ciLV`d~Ca$)OjbU~a zB07X2s!R+1xu?^^5a~l0NRVO&d9^@Eh%(T_KvG0r^s(aGsS(AX7nQM8^z7iLJQO=9 zTMJ|0aXJ35%KAG6vm+`@BM9{++rdv#zolP#djJO!l~Db-GK|v*gdvm#Q6M6b5t&Se zMq_73A=^PqppHw2NSsLa+o=&D>EQ_nU7&X@hj0$AP9%BAJ9lE}N^SI)TON}T7 zJ^X*9-!Du4FHkE~0XSnAnXV3^QjGnV7(9U_(P4>h4(JGfqC*iRAq9?f}ZfJ(`F}v=(}E zBH%+GCc@D3BJTB|>u;wG+F9A77(f$hVb;GZ?-fVp5K%m{M^x6{`Hf5le_W5#WY(2uVK`NE4Gd{n>i{p%j| z%)#;3Q~B#L|GV?=m`|hwvD|!Hzf>l3kJ#6B;%aW@Ly} z|Ebi`q(Td6t+jS)wOYXkwpyXn(N1S=9Urw??O+ETTRU~6c3K^E`}>`Ar~Rj<|W8sSN;$qQ*-#)Pi*2zCr!DCFt z1W+v!=2eK}@+vM-KkE8}(~m#@;^E&K)A&e-L)r}PePV~$Cgs?nhy`57iGV@BHD$=B zDkZFos**)wqv#jc;a{6<`{mF=Ldrx+Qgq?I#|Lx{_%jBwIh4VtsN+>-CXg11i@>2> z$`F?pC`_J3;BU4)U;gal;SB%MFnV!uk+`qsxsnrz=EYFvn<5~79y)=m5PwD9B6czc ztm|su5n0vW*WMZV;?pWALz_VvjziXEMlqxdK+nUtmLsn44XlsrczJzDmVHuQm&us4 zM$|0%-NZ#G!SB>nffcgcx8$`}UdP~Sh{t7}*CeG$REyV9J}hphh63UjCB|xaLN`2N z8$6^-{6CfGgzqg9Pf`h4Nw3Su*(N2eb1C6$OK8LruR}*V7bgZaRxzT+Dn~4_bi@+N zM<`*4n5GY1QbV+iP(q-Dzx54#7oA$yx$vv$j}gE((!YcOFC2+WsV7EtXcA&GzRR`u z)K0IPKD}|tmU{EHIy4Pmd3>Ku!jh}6h<99LFHnsk06yMkfrdtVeLPi%rb9e@%IzgI z6j^M6m?s*A*h=Q}B2tpA^-31&G4r;zz83Gc*00!FUmdCwbH!{{w2E!9-IMMpzf9D@ zO&yFNfW}KvEOxP&#jr)p7w6j;nzb|h&8m{ERqv!6_XzRtbOgP?OvfXnGlWR`2l>(2 zk=@FB(TVC-{>w}^M1;*#DWLSsFPhZDBN=+=E~)=q`p-P*KlPwL=s`d1L4U}D{(uMl zdmi*#J?LKYc;O$FI2@Hb_49oXx{@ciypkuE{v!{ZhdtPPtrXE~Do?TU(nWe3Yd=zuKGS&yP85>MAWT_Zw|OL`F^h@}4)1!OY)bFK%y z&VxSBmCjj~#Mj~pXK0e1^?&8hB_{nPu>rT3=qY(PvyPPuMXNDP^YjKMSpu*t{Qqr?>-k;H1hCW6_icO#r8F?rS^vF#a;)U1p=56SIW^p zW4-*A;QKHJU*14&1r{l&f*RNrz=6|{f;e#QR8R$m)PgF|CIwZX(-u^LMk%NQ-MpX* z>|X^{U_dFT0((Y571;F(s=&TfPz46Rf-1}}v_f5>73vGE&`@ZF3k$8V#8H9$&mIJf zz2TKw)M!GHU^Z$0T*IAO=+I5>io3(}kqNIK>Z!X=OqC25X2LG&Ql0uakfa+;GX zI_3fyu8eMo$7#F50wJ`YFP?et_i69;&vAeZi(+?>^s{~-7dS!U9+ITr9kxkwhi1+N z04b5?q|~w4^&XO>zMBOp$ux1_zI|z$mx*R4fSp!qqv4fIqg-fv!@5w5QPwV0%w4F{ zr%&ey6^q4kgtF62p-9WfgsH9)-cHLEYOX`5kM??~+f69DRz9Dm^xn7-La9DL?dJ$( zGD{B_Sxx1(Y+kly^nWH-m%jJjd$S;>57<>}GPBe2SGV3Vmq85GG1)TM%IO2St-#zl z<1}nV&Tz);nCWyXrxizz9LaGSJI!nbX~34rbQ(J?cgTeKxUCiR1BYt&hOgB6<5E-z zWy5PuE2wui&mPpMcax@iqg%+WMJ+2@;vv__CWv?3;=tGf$&rpa4vKifE?sT}<^IZu zAgNY=5N_UCAb4Oj3 zPW(Y;iHRkNr%pJw_6C`h4@j!jAB3BAmLzy^*NH#K%zQx9rlWUrIQg|C z@ze>Y58fc$j~o#s)#?v|`J)X45AHhg2bq-*h}wkpZVo55BQ__V;0(zdg!{82f}~pg zK_U(iJh8nHR?1Sf&sAl$DW5hT^>4|1LZ1P|^yv4ac+#$k60 zle^}|nUVU)%J%knPqJw+yjBcSb(v&@s?+C)W~{5v6cJI6yb^ne?LzG!su_lX{rZwn zJn`qZ-cJ|to;?PmfSFvIAe#!EO>-`rS|2uQ4kFnU#S^FBc-@`NIGs&2m(466Hfok4 z*%ZeUe}DfCcQ)g7HZ8eq=J~MUJSK=y4-{1rPrP;VAMR`_bv6rf*);gD;dCLxCJfvB z^Iz_4Cg^My=CWz_VWWn%vNfgg#3z4y)tyZh*|hk3S`FB=r=?ooe&U!rn@Ktw7f+k*!^ZAusn%CcJ?YNoT%C=Jr_J|aWB0UFYwGxG?rbLO zY+O9;d>=M;PfN8v_QpHzY^LaJTs$r6!^ZAusn(BQe#D*4RI*vXXD~& zbv|tDp4J>aa`&_DY$7@v7f);SVPp5S=IGFKnFy`h<~*H^i>I~tu(5kubM&L*x4X4w zw5Y`-R%E}ME4AQA=W(bj63LT3lyH9 zgEncPcIylAp97b;friB#d|kz=wvNH@VyESeDe0hCh2_SM>=(F*iy~Md`9 zl5(6qz#9JQw(j=+?zUuCZ_i-(MkipPDqSYj(I6h*>ISrRT&zTnBnZmoERzA3mn4H? zoT21Pu4fofgZ(M&cq(-~4F$&HGzE4eR(Hm67;AOByL&LaPm^n6dKBd9#9*);2kRoZ zk3+g{G~1GjOHp!AXz!$^R9t^5&Pt`8OsUk9DV2H}!lLc`fna(t9C3mR2W}4x>&#&SmwE7STkcE-I*(Kam4T-w_UM_uB?H72J+;!-HBS94Xah?`ho zW@3%OIWNp0E{nHyboFeHV6LDE8Z3uqFM~kz{VoW)9RjL3f^-3Nn3~J?Dmc1g2_#d2 za40YalMEX;VxJCP;R3GWp9gq4_LJj(K|=^0wSyxD>fqyCz*QXd09QkUfCO)`gCiDd z0Ugh?m-p=Khb#0uO%|v`dw6nmCw!4cw>nxH>;9(ExH<4S zyMH+bNQg_VT|GPE9hv^WMiXWd;!>+L^bQ!k!w~_3S#Qk7A~X7MiMtqz8!aw?{9;|a zKiSuY@S+7~V=4mkIsmh!eefv;7B!=h@f4dSW_yRRqmprWxYU3^cZ@n^H3V3$gQxe& z1Gt3BXy3rCHCZji!7f0o>rKW7!`qw~fl=r$#7IIYt~GMjBSpbNwHea5$ZQ2#^<;)L z^<;)L^)wVH6N?2Fwbu71rNzIlF`WSD^->49Hn)d-Mo5RvNw6eQPo^a5$&^GrF_c|6 zPz2r0aEee=1Vd~@eN^>%|0OC>~a zk{+O~Jp|8{5LCFben>i%V|{^oH{*zEt@%V3s}RdzBeA)yuZJN^h1Zx<&_Ed?^=5GB zL%%YkmRnfmM_g+7w(wQrHrpb}?Py&E{%r!tHrd*Z5P6ThTZ^_c81m@%Vra2TTrWMy zD#0GK9beHTLghkntvn)p3tDvvx0K--8$09iWD_Y7?r55nW>S94=xS1;hr*M@A)8#v zwbc&GJve@SkL?}n?T4!yILmm#2qOzI?Oj8Bj8MsK9A@mxZ;J0qM&i5MYmVhgr%jv=3eMzD(pV1TjmzCt#u9Fl%~-}^7D z-L@gNRnq54`h0o)hNKLjjG1PlW8fUWaU9R#?yWtIFUr)IeOnPXKp(6pxci?RP_w5q8C zoGPOgvL6uSV7qGzRw!$%ty3ShRi?o8xtY4a2Iv}G8qZ7jd|2~hQgnL(v z3f!9@jR)HJdp3Q!H1H{gPepQY0|VO<{o>>;cb)!leP{XocZ9|K*+*aHIOh~HeS+^d zAk%lQLZ<)hM5Yhjj7;D84)QqU2aq}b_zf~vfyML4*38Zp;)wfFVz>P;jwuq!|tc<-C zg(e~YTyIg_NGZb0T( zje4d2_9Ig#k0RUk2Q|v1+A&&Ukw8o){kIxSSeAWV4QH*}X6rU8Mx!7Z(MSZ@+}pQf z7stQ5Wc|;gH=xL5AgTm0&|t69|8|r+autVTIXO

uk;5djfUSBj!iMF9&U3Xvj3z=~~w1s2&|q$m~?6)X@Vid|Gh>>?xz z7Ho(DHpB{OB8b>QF&at`_nmX$MzWD;^4|NtI0-e-Q(#^ zd?(!&MtM`c&HraogU${TI{|}F+Vg!*Dna~Ph(}4s7l0897}l-r`MxB}yJ9JXh|5u6 zhXs1a_DX$?G=%i;Gzm$Ej2pBGNrrF;EcT z*r23&rX^iI9i}CnzcWdv6PNUOq-AIMX+2#&9qvqumqUkXp6PIBlD13tuekhDymbF(~5pqsi7G89I=G*O2u{-QAMpU;2`o5N>w1j48gZUj4$ z!w(PRvIB(y(R{8TO4&mg#pXu`gs_DIHlM3ZrKKa;1C{^ztz&BVMF!v*PX?d_FaZn$ z;B()HCiweeW+uVEjR6_0kll;+L7!`dRE|FflQr~p4*>Q(_Iqo`26Z0jn2PcLI~l+y zR7n$JnH(a~E4$R3on2+uJ3CEUA7GH2CT$2X$|j^+_C=O9Kq>hmE@v3WFu*XtFu*Xt zFu*XtFu*XtFu*XtFu*XtFu*XtFu*YIuVNrbN|mU?DGo&mRU!*#K441-Acfn4WHVsL z7hnwsM81SMuy6DwbY^1&_ zhV32*fCCTYJcLUDRe*W`3`L>_U;``wBLQB3nSgLW93UCcSw6ID3}dJq_hlD{IJcXkks39RiG%|`|G>mrDqU>=%qRo!>(B>!SNF3Ndi*^x5 zqSXFYQVq_aI1(-i0^8AGJ&Lf27x*Ip!PGUJgn;fFsDS`t(RmXdc_%swQmIFqZ3`JC z;tM(a!2%aj|GvI@q+0_F(LwiQh=hVyx{EHn=DN{-St=S=>f-h$jEQBP!I+0WoP)#3+F~oGmGJe z9bS7iw7^2msWIW>veMl0h*QRU%1hE+=Ej=bQq`{c-ZXSg{2=+um2+!Pc%70njWSU4 zFWItS{E;<}(^Rxm-ub>5KRqNNF!u5OL+@K&_sc8mZ|NnutncCX@+s5H$|gQ}tzpq` z%U<6XJBAF`P6=CMkny9e;XGcf-jXLe!@8bdG;+n$T;tc@{&LYd_3g#d=;r>4j%8`{ zmlc~^Bo<|-)weV&8OCi^oOGzjiZdnsmfD3XlWa!|+0aGLttxX%{2$jX(%_9))~)=y zl-0SZGk>vvY5q*cuUz$T?wA+VQx{+C-D>*4dzM*B#b>-}JYe_nNK*5o_0QN^TMx<q|_pO~h zqpa8F9o?&}$KL)$%e%~G=8-k~FN=;ASX|rTnZG#8W z9=y}DH0MO~z1Gh*bk@9$TFan;i2%Is;JrPcYu@4N&Jl2exe+)xl&-le6tLAsK8oEn zH@U(lAkWyz|A(tb@*2qKR2_$+v|BqLls$R8%%-GLt-vD*Do~L zr@Q~Yv)(0>ut!CjPhZ4nUp}_FYo$wZOj9VHCt zJ4Z)0ISN@>Xpu_evjm%OzI#{^K}_f>WFon&tcz9KR)6<$GENRSXU5 zQJR%K#(UkRNz>O^mnUY9FjQ}T+#>4P>%gJ1*F{P_)O+{yyg$7);`(UAxAR7(WY_)F zv%x%bo^$_Hsm*WWkDcka_F>NI#>%|Jvhj}oOJ~OFm(6~VwBEIB)5Z+df=Sb#_H&sj zxaRb&=IO-nerio}&kMtNCnxw#OSE(!zP?Jk_@U041D>T`DetW#s_kU5R;`SUh^E~|(Cy@oi?^J|vZoc&p?z&qdZ!J#cXj~|;IEuR&fw0TN)?y)1n zMHQ#Q9Ky51ViLoBEixN*GY9xd$4br&?OFEfms4lvJKP}IZt#fVCIbRmqec|$@A;#%$N44KM znkMFGS3XWxCCY)5Zb}{CxfYhMFn(PfV`zL&seWkwp6lq8w&{LoN)IVo#IYir&Z&3gAGW4KMpg^ualYUJwPX=_+b zm~GV8VD?$f0=e5iCtf#PZ=1i>O}ceQqTc)K{erg4)f+POVop^Li6^@iVqzn1bcs=0 zwJKdRb#8jO#OsKXp;LXQaK^mrzh$1S%Z1RV{@#Uk0ShNx%1i26bnc9cLbR2t+nBck zM?K3%Z4V6E7ZOAepw#9>DQ%hBPKjIbLug6fcwAD(YA+f%}>%h|Y<{tUcyTob%+IryEJEn@457*Z2K@I(v2R_emOwJ$-MUUNXeo;CPdR&4t-h5_*&x z_7AX6mQ_pFuA4nxy7Gx&`SZE;k{(*8T2zd_%k#{VInH~&a*(2$omH3no4gKgSJ1m% z^X7`>Zm%_brKwYgEN3-UzbevP`%A7?wR?HW!GW9>$L4AA!zM@NO_h3Imvz!FW?gL; zxp&R0pG~_QJ2B#nXyN5)>u&^`9y@wpfjhBLIk%s+X~gO5(LH?%WkRnMEAzGn%C|U{ zu5dV0lB(h|+uzk7=Gx0s%M_)pXC+s?G&q><5bqO`{c1-a^()^-8IQYSq*r?_+=#z= zMW1OE0UV!R+F^Fdlj?pxuafor(TAyC$(DKUAu2nE?ACOzI(%)ykw8a>x-!m$vQgW& z`2Dmp$aQ-`rdRicwplt#TKD2*q#PcwCQMIwcQQy>w(B+Lv^qiK!yiox6}!FA@BSz* zaKx?oH(K@!Qr8zHo|KO(KTyARM9p^p9QETH`?SdXSW=xaFt3m`=Varu-A12Px32Yc4@!ArCCrVu z^rPYag24$nEvXkgdN?Qe`c3-AdeAjrEtbj6)WaXHx?8+*>NnG%b#TU{$;)Oom1U4& zr;ZpswtPFjqGC@M{;-y<8@xx1b5u&Nl3QKwSQ`+2PGx*)-!%0jea1SKnuo91o5|n% zV|A+0wC08@RkgN3y!fLLhkORz2voG0H??@?L)Yphf(<|DJ}JpcbZJ)f-lJD2vKs$> z5z9t;z>$u_Kh69=l9986XU+SDV*f>Yk zN$us{t%2P0RUU;qTXt|ujqkX745>`j@vc2%E&K6BNl_mw<0tnxw@Ygp%pDJxkFT45 zba>^0tBKE7P2P65_$X`hhTNqSHa2ASyD;SV6umLr}uV!bXN9- zeYR-aBdZqfDB=FmXH|1F^H<2YD_xLD|8*UIc(PgYoN%etDLszmXShth9h8}pJLT-; z8R7f<>g_mTrWKPv#CimDyT0XW$>mE)gXRQritfz`+jSuSXkQwYZ}nds zUA=oj)pOGml{+nr+%58LjF#;BMQ`))xSHd7*Ke)HL-Bun-cY`oyfYVKbm2$3uh`FU z+p`Dt+t%U7xcyngUEzX-MttMaxpG3`?Ne%N`~0-BH1m#Re9d5GYkR|SwROrzOytZ~ zaL#VwxP=*f4u*KL14RcO$*EJXTc<3(TIm^gE$Voo4V_H)Hoc zhTg_zmYX9~`nsm1mL~c(#~rcVy=Fp<{_edF#d)R9jnT1bZ?{P-ykvOBUv0r%(tV@X zR?*Q`Tb)(G=DoD0eH`ZyS&<-ZoL+dX%3#~Uu~Jw3PMx|~`CHQ^Sf+4BxwGd|NY=r9 z<|)<7?e_-6pVmI*9sqoHcy<%dDE{>GDWe8FBmd!Xq67Wnmc$=LK3Tf?IZM=oiMS2% zLGa1OHu>Mz=1+!%mzy*^5#g~}X)+C3zfl20!|mZgh&_iJ5y=w@?DQ?oEcDr2L4Yuj zCkVFFAMg8(sjWUcGKwPz=<5y}d~IYR@&BHTIQY%m~*9LllN4~dEj zA8KwM832!poJccaI9C91LBa?=CklcQ!RCPxoVj3_A7(z#!ou2|&*2I5+5W+ncKTsa zmip|d81Mzo0-t~IK-3LH9ryxgfsYdq0BaIR(e9x&5Z|WxEsYhev7*xqqBVnP&0tzH znATX+8f$%aNElBr3tEIipB*F&b8b`6K7I2M6nk)iRRDaN(*79;tf%mB8}&6wyB|r1 z&r#}aF%gle$IS;8#6j=FcGxFicqHlh7LV??eNZAIadB~^5l{205?1{>h)^SP^^mtM zBdm8-iDW&V% zbZ8Ba4B~M?boiAI#WF~Y6OELNlc21iB_el;g>|9)5TqrGZa!w8gsm8fe4+taG9H%T zvj9Re7p|zq3ec`CRU7*(x)0#f9@>w@jp>;TrdTW)Nogr*mZa2*{)7$cINAqF*29)HM*8y8k) zROyN`QY>_xmhJ!>4?HLd^VqcIQI*CFk}Rn=ERwc>jjXh}o$Ycom7WJ>VO~NU+FB|l z4K0;v&-aQ=aMVz)V?L~5TZwGq4tAno%YzVo=;F6>E44{|DfBmPMiLV0cX4kR0R58G zFhJ%80on$Z6p_RxQvLEtOJxOZZ%IN8Z#oPr#(gydY0_!Z$H+0VWJv_h866znJoF9J zLH(D!(8aVHxU38IlN|Yg%k$4WIcG17kgpf1O2`?4zXs+5_+({qXP~A9NHg%W_Il%N zBIeX!-{O-x24WGkOM}~4Bx?Wm4z|U7VBGRac>4yNBiwNTgbk&2B@Wb#fn%Brqns_4 z(wDl++cx$T;9loJzFClJ6l@1ZfIozMUQ5^GKO#TEL<+OrA6kn8q$*+O&&{48YKPX! zkpX>=R^aHwSpYutp=SPMkeG8b05&{HHUK;J8UQEdDgge>)&g)QZ35u5q69YZSBni2 zJK6*!KJ|88OQHl3SRgLg zu>roks4y;N7LzlMVSr(PVSr(PVSr(PVSr(PVSr(PVSr(PVc=iS04{KG>5FSIGck{S@$F(`Go$;MKzK_RvT<7CEd|c0K0PsH*BK<7;x`ISTqnpJj*d`@SZxcp4QbAMYW&XTG+4+ykTkd+$VGKY|3p zw~BbMDVjQ*NPmwgUe@QrI#50`j`!`?mQUHiN`RAwV^dfv9)QHYcY#q5MAZp3QE+Su zzmM$P8UGFbsgEmvD_^|jf2}^YP(IFE*miWC*Ys125qjIpmms5|g?PZs6Anv;eoFL} zK6RKq+e&V`er2}5c$fXT)xT3dZ4t*VGkfS=X869tCOWqIpVKzPJ82OK3;C}!r3&{=u diff --git a/src/testcases/org/apache/poi/poifs/data/source-files/sample2.ppt b/src/testcases/org/apache/poi/poifs/data/source-files/sample2.ppt deleted file mode 100644 index 40227fdca5478a9b26f3284ac1809fe2ca356347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101888 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 diff --git a/src/testcases/org/apache/poi/poifs/data/source-files/sample2.xls b/src/testcases/org/apache/poi/poifs/data/source-files/sample2.xls deleted file mode 100644 index 66a1b1124d2634bc868159028abc7614d252e601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16896 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 delta 328 zcmXxfKTE@45C-t)-Xt|ut5xgYYRx;i3HAdxbdV}k99+7H(jh~!R%m1AU@eXs1ZP3e z4lcD|){d@z0tdf&x!QF8OcYe1c{!>S;^Ev!S8t_S2|Hg4VY%2tN=cd7| z-?P`{S=CgsaQJd^eDx~b{+VivY_}upGO~me8D!G1m!J`{DM_O=M&p#C37VudP0=*X zP=;n{j^=5B7HNsHv`j0Mqg8Uk$kO*)*6`}b-rI%*pZSMfZ6@HNfo7<8oOijoQ`y_1 zzSvyjHyJt_1Rw4KSI HzW$LvNdj#) diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/data/attachment_test_msg.msg b/test-data/hsmf/attachment_test_msg.msg similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hsmf/data/attachment_test_msg.msg rename to test-data/hsmf/attachment_test_msg.msg diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/data/blank.msg b/test-data/hsmf/blank.msg similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hsmf/data/blank.msg rename to test-data/hsmf/blank.msg diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/data/outlook_30_msg.msg b/test-data/hsmf/outlook_30_msg.msg similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hsmf/data/outlook_30_msg.msg rename to test-data/hsmf/outlook_30_msg.msg diff --git a/src/scratchpad/testcases/org/apache/poi/hsmf/data/simple_test_msg.msg b/test-data/hsmf/simple_test_msg.msg similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hsmf/data/simple_test_msg.msg rename to test-data/hsmf/simple_test_msg.msg diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/ExcelWithHyperlinks.xlsx b/test-data/openxml4j/ExcelWithHyperlinks.xlsx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/ExcelWithHyperlinks.xlsx rename to test-data/openxml4j/ExcelWithHyperlinks.xlsx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_DCTermsNamespaceLimitedUseFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_DCTermsNamespaceLimitedUseFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_DCTermsNamespaceLimitedUseFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_DCTermsNamespaceLimitedUseFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_DoNotUseCompatibilityMarkupFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_DoNotUseCompatibilityMarkupFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_DoNotUseCompatibilityMarkupFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_DoNotUseCompatibilityMarkupFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_NotPresentFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_NotPresentFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_NotPresentFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_NotPresentFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_LimitedXSITypeAttribute_PresentWithUnauthorizedValueFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPart.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPartFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPartFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPartFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_OnlyOneCorePropertiesPartFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_SUCCESS.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_SUCCESS.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_SUCCESS.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_SUCCESS.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_UnauthorizedXMLLangAttributeFAIL.docx b/test-data/openxml4j/OPCCompliance_CoreProperties_UnauthorizedXMLLangAttributeFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_CoreProperties_UnauthorizedXMLLangAttributeFAIL.docx rename to test-data/openxml4j/OPCCompliance_CoreProperties_UnauthorizedXMLLangAttributeFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_DerivedPartNameFAIL.docx b/test-data/openxml4j/OPCCompliance_DerivedPartNameFAIL.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/compliance/data/OPCCompliance_DerivedPartNameFAIL.docx rename to test-data/openxml4j/OPCCompliance_DerivedPartNameFAIL.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestOpenPackageINPUT.docx b/test-data/openxml4j/TestOpenPackageINPUT.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestOpenPackageINPUT.docx rename to test-data/openxml4j/TestOpenPackageINPUT.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCommon.docx b/test-data/openxml4j/TestPackageCommon.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCommon.docx rename to test-data/openxml4j/TestPackageCommon.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCoreProperiesGetters.docx b/test-data/openxml4j/TestPackageCoreProperiesGetters.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCoreProperiesGetters.docx rename to test-data/openxml4j/TestPackageCoreProperiesGetters.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCoreProperiesSetters.docx b/test-data/openxml4j/TestPackageCoreProperiesSetters.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageCoreProperiesSetters.docx rename to test-data/openxml4j/TestPackageCoreProperiesSetters.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageThumbnail.docx b/test-data/openxml4j/TestPackageThumbnail.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/TestPackageThumbnail.docx rename to test-data/openxml4j/TestPackageThumbnail.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/sample.docx b/test-data/openxml4j/sample.docx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/sample.docx rename to test-data/openxml4j/sample.docx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/sample.xlsx b/test-data/openxml4j/sample.xlsx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/sample.xlsx rename to test-data/openxml4j/sample.xlsx diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/thumbnail.jpg b/test-data/openxml4j/thumbnail.jpg similarity index 100% rename from src/ooxml/testcases/org/apache/poi/openxml4j/opc/data/thumbnail.jpg rename to test-data/openxml4j/thumbnail.jpg diff --git a/src/testcases/org/apache/poi/poifs/data/ShortLastBlock.qwp b/test-data/poifs/ShortLastBlock.qwp similarity index 100% rename from src/testcases/org/apache/poi/poifs/data/ShortLastBlock.qwp rename to test-data/poifs/ShortLastBlock.qwp diff --git a/src/testcases/org/apache/poi/poifs/data/ShortLastBlock.wps b/test-data/poifs/ShortLastBlock.wps similarity index 100% rename from src/testcases/org/apache/poi/poifs/data/ShortLastBlock.wps rename to test-data/poifs/ShortLastBlock.wps diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt0And10.pub b/test-data/publisher/LinkAt0And10.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt0And10.pub rename to test-data/publisher/LinkAt0And10.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10.pub b/test-data/publisher/LinkAt10.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10.pub rename to test-data/publisher/LinkAt10.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10And20And30.pub b/test-data/publisher/LinkAt10And20And30.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10And20And30.pub rename to test-data/publisher/LinkAt10And20And30.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10And20And30And40.pub b/test-data/publisher/LinkAt10And20And30And40.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10And20And30And40.pub rename to test-data/publisher/LinkAt10And20And30And40.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10Longer.pub b/test-data/publisher/LinkAt10Longer.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt10Longer.pub rename to test-data/publisher/LinkAt10Longer.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt20.pub b/test-data/publisher/LinkAt20.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/LinkAt20.pub rename to test-data/publisher/LinkAt20.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample.pub b/test-data/publisher/Sample.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample.pub rename to test-data/publisher/Sample.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample.txt b/test-data/publisher/Sample.txt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample.txt rename to test-data/publisher/Sample.txt diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2.pub b/test-data/publisher/Sample2.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2.pub rename to test-data/publisher/Sample2.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2.txt b/test-data/publisher/Sample2.txt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2.txt rename to test-data/publisher/Sample2.txt diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2000.pub b/test-data/publisher/Sample2000.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample2000.pub rename to test-data/publisher/Sample2000.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample3.pub b/test-data/publisher/Sample3.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample3.pub rename to test-data/publisher/Sample3.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample3.txt b/test-data/publisher/Sample3.txt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample3.txt rename to test-data/publisher/Sample3.txt diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample4.pub b/test-data/publisher/Sample4.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample4.pub rename to test-data/publisher/Sample4.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample4.txt b/test-data/publisher/Sample4.txt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample4.txt rename to test-data/publisher/Sample4.txt diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample98.pub b/test-data/publisher/Sample98.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Sample98.pub rename to test-data/publisher/Sample98.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/SampleBrochure.pub b/test-data/publisher/SampleBrochure.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/SampleBrochure.pub rename to test-data/publisher/SampleBrochure.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/SampleNewsletter.pub b/test-data/publisher/SampleNewsletter.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/SampleNewsletter.pub rename to test-data/publisher/SampleNewsletter.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/data/Simple.pub b/test-data/publisher/Simple.pub similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hpbf/data/Simple.pub rename to test-data/publisher/Simple.pub diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/38256.ppt b/test-data/slideshow/38256.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/38256.ppt rename to test-data/slideshow/38256.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/41071.ppt b/test-data/slideshow/41071.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/41071.ppt rename to test-data/slideshow/41071.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/41384.ppt b/test-data/slideshow/41384.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/41384.ppt rename to test-data/slideshow/41384.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/42474-1.ppt b/test-data/slideshow/42474-1.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/42474-1.ppt rename to test-data/slideshow/42474-1.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/42474-2.ppt b/test-data/slideshow/42474-2.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/42474-2.ppt rename to test-data/slideshow/42474-2.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/42485.ppt b/test-data/slideshow/42485.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/42485.ppt rename to test-data/slideshow/42485.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/42486.ppt b/test-data/slideshow/42486.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/42486.ppt rename to test-data/slideshow/42486.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/42520.ppt b/test-data/slideshow/42520.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/42520.ppt rename to test-data/slideshow/42520.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/43781.ppt b/test-data/slideshow/43781.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/43781.ppt rename to test-data/slideshow/43781.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/44296.ppt b/test-data/slideshow/44296.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/44296.ppt rename to test-data/slideshow/44296.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/44770.ppt b/test-data/slideshow/44770.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/44770.ppt rename to test-data/slideshow/44770.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt b/test-data/slideshow/45537_Footer.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt rename to test-data/slideshow/45537_Footer.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt b/test-data/slideshow/45537_Header.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt rename to test-data/slideshow/45537_Header.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45541_Footer.pptx b/test-data/slideshow/45541_Footer.pptx similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45541_Footer.pptx rename to test-data/slideshow/45541_Footer.pptx diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45541_Header.pptx b/test-data/slideshow/45541_Header.pptx similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45541_Header.pptx rename to test-data/slideshow/45541_Header.pptx diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45543.ppt b/test-data/slideshow/45543.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45543.ppt rename to test-data/slideshow/45543.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45545_Comment.pptx b/test-data/slideshow/45545_Comment.pptx similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/45545_Comment.pptx rename to test-data/slideshow/45545_Comment.pptx diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/47261.ppt b/test-data/slideshow/47261.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/47261.ppt rename to test-data/slideshow/47261.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/PPT95.ppt b/test-data/slideshow/PPT95.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/PPT95.ppt rename to test-data/slideshow/PPT95.ppt diff --git a/src/ooxml/testcases/org/apache/poi/ooxml/data/PPTWithAttachments.pptm b/test-data/slideshow/PPTWithAttachments.pptm similarity index 100% rename from src/ooxml/testcases/org/apache/poi/ooxml/data/PPTWithAttachments.pptm rename to test-data/slideshow/PPTWithAttachments.pptm diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/ParagraphStylesShorterThanCharStyles.ppt b/test-data/slideshow/ParagraphStylesShorterThanCharStyles.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/ParagraphStylesShorterThanCharStyles.ppt rename to test-data/slideshow/ParagraphStylesShorterThanCharStyles.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-56-hello.ppt b/test-data/slideshow/Password_Protected-56-hello.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-56-hello.ppt rename to test-data/slideshow/Password_Protected-56-hello.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-hello.ppt b/test-data/slideshow/Password_Protected-hello.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-hello.ppt rename to test-data/slideshow/Password_Protected-hello.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-np-hello.ppt b/test-data/slideshow/Password_Protected-np-hello.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/Password_Protected-np-hello.ppt rename to test-data/slideshow/Password_Protected-np-hello.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureLengthZero.ppt b/test-data/slideshow/PictureLengthZero.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/PictureLengthZero.ppt rename to test-data/slideshow/PictureLengthZero.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureTypeZero.ppt b/test-data/slideshow/PictureTypeZero.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/PictureTypeZero.ppt rename to test-data/slideshow/PictureTypeZero.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.ppt b/test-data/slideshow/SampleShow.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.ppt rename to test-data/slideshow/SampleShow.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.pptx b/test-data/slideshow/SampleShow.pptx similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.pptx rename to test-data/slideshow/SampleShow.pptx diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.txt b/test-data/slideshow/SampleShow.txt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/SampleShow.txt rename to test-data/slideshow/SampleShow.txt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/Single_Coloured_Page.ppt b/test-data/slideshow/Single_Coloured_Page.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/Single_Coloured_Page.ppt rename to test-data/slideshow/Single_Coloured_Page.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/Single_Coloured_Page_With_Fonts_and_Alignments.ppt b/test-data/slideshow/Single_Coloured_Page_With_Fonts_and_Alignments.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/Single_Coloured_Page_With_Fonts_and_Alignments.ppt rename to test-data/slideshow/Single_Coloured_Page_With_Fonts_and_Alignments.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/WithComments.ppt b/test-data/slideshow/WithComments.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/WithComments.ppt rename to test-data/slideshow/WithComments.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/WithLinks.ppt b/test-data/slideshow/WithLinks.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/WithLinks.ppt rename to test-data/slideshow/WithLinks.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/WithMacros.ppt b/test-data/slideshow/WithMacros.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/WithMacros.ppt rename to test-data/slideshow/WithMacros.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/alterman_security.ppt b/test-data/slideshow/alterman_security.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/alterman_security.ppt rename to test-data/slideshow/alterman_security.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/backgrounds.ppt b/test-data/slideshow/backgrounds.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/backgrounds.ppt rename to test-data/slideshow/backgrounds.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/basic_test_ppt_file.ppt b/test-data/slideshow/basic_test_ppt_file.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/basic_test_ppt_file.ppt rename to test-data/slideshow/basic_test_ppt_file.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/bug-41015.ppt b/test-data/slideshow/bug-41015.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/bug-41015.ppt rename to test-data/slideshow/bug-41015.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/bullets.ppt b/test-data/slideshow/bullets.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/bullets.ppt rename to test-data/slideshow/bullets.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/clock.jpg b/test-data/slideshow/clock.jpg similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/clock.jpg rename to test-data/slideshow/clock.jpg diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/cow.pict b/test-data/slideshow/cow.pict similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/cow.pict rename to test-data/slideshow/cow.pict diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt b/test-data/slideshow/empty.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt rename to test-data/slideshow/empty.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/empty_textbox.ppt b/test-data/slideshow/empty_textbox.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/empty_textbox.ppt rename to test-data/slideshow/empty_textbox.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/headers_footers.ppt b/test-data/slideshow/headers_footers.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/headers_footers.ppt rename to test-data/slideshow/headers_footers.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/headers_footers_2007.ppt b/test-data/slideshow/headers_footers_2007.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/headers_footers_2007.ppt rename to test-data/slideshow/headers_footers_2007.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/iisd_report.ppt b/test-data/slideshow/iisd_report.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/iisd_report.ppt rename to test-data/slideshow/iisd_report.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/incorrect_slide_order.ppt b/test-data/slideshow/incorrect_slide_order.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/incorrect_slide_order.ppt rename to test-data/slideshow/incorrect_slide_order.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/missing_core_records.ppt b/test-data/slideshow/missing_core_records.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/missing_core_records.ppt rename to test-data/slideshow/missing_core_records.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/next_test_ppt_file.ppt b/test-data/slideshow/next_test_ppt_file.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/next_test_ppt_file.ppt rename to test-data/slideshow/next_test_ppt_file.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/ole2-embedding-2003.ppt b/test-data/slideshow/ole2-embedding-2003.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/ole2-embedding-2003.ppt rename to test-data/slideshow/ole2-embedding-2003.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/painting.png b/test-data/slideshow/painting.png similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/painting.png rename to test-data/slideshow/painting.png diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/pictures.ppt b/test-data/slideshow/pictures.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/pictures.ppt rename to test-data/slideshow/pictures.ppt diff --git a/src/testcases/org/apache/poi/poifs/data/ppt_with_embeded.ppt b/test-data/slideshow/ppt_with_embeded.ppt similarity index 100% rename from src/testcases/org/apache/poi/poifs/data/ppt_with_embeded.ppt rename to test-data/slideshow/ppt_with_embeded.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/ppt_with_png.ppt b/test-data/slideshow/ppt_with_png.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/ppt_with_png.ppt rename to test-data/slideshow/ppt_with_png.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/ringin.wav b/test-data/slideshow/ringin.wav similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/ringin.wav rename to test-data/slideshow/ringin.wav diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/sample.pptx b/test-data/slideshow/sample.pptx similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/sample.pptx rename to test-data/slideshow/sample.pptx diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/santa.wmf b/test-data/slideshow/santa.wmf similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/santa.wmf rename to test-data/slideshow/santa.wmf diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/sci_cec.dib b/test-data/slideshow/sci_cec.dib similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/sci_cec.dib rename to test-data/slideshow/sci_cec.dib diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/slide_master.ppt b/test-data/slideshow/slide_master.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/slide_master.ppt rename to test-data/slideshow/slide_master.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/sound.ppt b/test-data/slideshow/sound.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/sound.ppt rename to test-data/slideshow/sound.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/text-margins.ppt b/test-data/slideshow/text-margins.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/text-margins.ppt rename to test-data/slideshow/text-margins.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/text_shapes.ppt b/test-data/slideshow/text_shapes.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/text_shapes.ppt rename to test-data/slideshow/text_shapes.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/tomcat.png b/test-data/slideshow/tomcat.png similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/tomcat.png rename to test-data/slideshow/tomcat.png diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/with_textbox.ppt b/test-data/slideshow/with_textbox.ppt similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/with_textbox.ppt rename to test-data/slideshow/with_textbox.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/wrench.emf b/test-data/slideshow/wrench.emf similarity index 100% rename from src/scratchpad/testcases/org/apache/poi/hslf/data/wrench.emf rename to test-data/slideshow/wrench.emf diff --git a/src/testcases/org/apache/poi/hssf/data/12561-1.xls b/test-data/spreadsheet/12561-1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/12561-1.xls rename to test-data/spreadsheet/12561-1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/12561-2.xls b/test-data/spreadsheet/12561-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/12561-2.xls rename to test-data/spreadsheet/12561-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/12843-1.xls b/test-data/spreadsheet/12843-1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/12843-1.xls rename to test-data/spreadsheet/12843-1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/12843-2.xls b/test-data/spreadsheet/12843-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/12843-2.xls rename to test-data/spreadsheet/12843-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/13224.xls b/test-data/spreadsheet/13224.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/13224.xls rename to test-data/spreadsheet/13224.xls diff --git a/src/testcases/org/apache/poi/hssf/data/13796.xls b/test-data/spreadsheet/13796.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/13796.xls rename to test-data/spreadsheet/13796.xls diff --git a/src/testcases/org/apache/poi/hssf/data/14330-1.xls b/test-data/spreadsheet/14330-1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/14330-1.xls rename to test-data/spreadsheet/14330-1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/14330-2.xls b/test-data/spreadsheet/14330-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/14330-2.xls rename to test-data/spreadsheet/14330-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/14460.xls b/test-data/spreadsheet/14460.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/14460.xls rename to test-data/spreadsheet/14460.xls diff --git a/src/testcases/org/apache/poi/hssf/data/15228.xls b/test-data/spreadsheet/15228.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/15228.xls rename to test-data/spreadsheet/15228.xls diff --git a/src/testcases/org/apache/poi/hssf/data/15375.xls b/test-data/spreadsheet/15375.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/15375.xls rename to test-data/spreadsheet/15375.xls diff --git a/src/testcases/org/apache/poi/hssf/data/15556.xls b/test-data/spreadsheet/15556.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/15556.xls rename to test-data/spreadsheet/15556.xls diff --git a/src/testcases/org/apache/poi/hssf/data/15573.xls b/test-data/spreadsheet/15573.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/15573.xls rename to test-data/spreadsheet/15573.xls diff --git a/src/testcases/org/apache/poi/hssf/data/1900DateWindowing.xls b/test-data/spreadsheet/1900DateWindowing.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/1900DateWindowing.xls rename to test-data/spreadsheet/1900DateWindowing.xls diff --git a/src/testcases/org/apache/poi/hssf/data/1904DateWindowing.xls b/test-data/spreadsheet/1904DateWindowing.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/1904DateWindowing.xls rename to test-data/spreadsheet/1904DateWindowing.xls diff --git a/src/testcases/org/apache/poi/hssf/data/19599-1.xls b/test-data/spreadsheet/19599-1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/19599-1.xls rename to test-data/spreadsheet/19599-1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/19599-2.xls b/test-data/spreadsheet/19599-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/19599-2.xls rename to test-data/spreadsheet/19599-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/22742.xls b/test-data/spreadsheet/22742.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/22742.xls rename to test-data/spreadsheet/22742.xls diff --git a/src/testcases/org/apache/poi/hssf/data/24207.xls b/test-data/spreadsheet/24207.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/24207.xls rename to test-data/spreadsheet/24207.xls diff --git a/src/testcases/org/apache/poi/hssf/data/24215.xls b/test-data/spreadsheet/24215.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/24215.xls rename to test-data/spreadsheet/24215.xls diff --git a/src/testcases/org/apache/poi/hssf/data/25183.xls b/test-data/spreadsheet/25183.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/25183.xls rename to test-data/spreadsheet/25183.xls diff --git a/src/testcases/org/apache/poi/hssf/data/25695.xls b/test-data/spreadsheet/25695.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/25695.xls rename to test-data/spreadsheet/25695.xls diff --git a/src/testcases/org/apache/poi/hssf/data/26100.xls b/test-data/spreadsheet/26100.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/26100.xls rename to test-data/spreadsheet/26100.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27272_1.xls b/test-data/spreadsheet/27272_1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27272_1.xls rename to test-data/spreadsheet/27272_1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27272_2.xls b/test-data/spreadsheet/27272_2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27272_2.xls rename to test-data/spreadsheet/27272_2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27349-vlookupAcrossSheets.xls b/test-data/spreadsheet/27349-vlookupAcrossSheets.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27349-vlookupAcrossSheets.xls rename to test-data/spreadsheet/27349-vlookupAcrossSheets.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27364.xls b/test-data/spreadsheet/27364.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27364.xls rename to test-data/spreadsheet/27364.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27394.xls b/test-data/spreadsheet/27394.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27394.xls rename to test-data/spreadsheet/27394.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27852.xls b/test-data/spreadsheet/27852.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27852.xls rename to test-data/spreadsheet/27852.xls diff --git a/src/testcases/org/apache/poi/hssf/data/27933.xls b/test-data/spreadsheet/27933.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/27933.xls rename to test-data/spreadsheet/27933.xls diff --git a/src/testcases/org/apache/poi/hssf/data/28772.xls b/test-data/spreadsheet/28772.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/28772.xls rename to test-data/spreadsheet/28772.xls diff --git a/src/testcases/org/apache/poi/hssf/data/28774.xls b/test-data/spreadsheet/28774.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/28774.xls rename to test-data/spreadsheet/28774.xls diff --git a/src/testcases/org/apache/poi/hssf/data/29675.xls b/test-data/spreadsheet/29675.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/29675.xls rename to test-data/spreadsheet/29675.xls diff --git a/src/testcases/org/apache/poi/hssf/data/29942.xls b/test-data/spreadsheet/29942.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/29942.xls rename to test-data/spreadsheet/29942.xls diff --git a/src/testcases/org/apache/poi/hssf/data/29982.xls b/test-data/spreadsheet/29982.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/29982.xls rename to test-data/spreadsheet/29982.xls diff --git a/src/testcases/org/apache/poi/hssf/data/30070.xls b/test-data/spreadsheet/30070.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/30070.xls rename to test-data/spreadsheet/30070.xls diff --git a/src/testcases/org/apache/poi/hssf/data/30540.xls b/test-data/spreadsheet/30540.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/30540.xls rename to test-data/spreadsheet/30540.xls diff --git a/src/testcases/org/apache/poi/hssf/data/30978-alt.xls b/test-data/spreadsheet/30978-alt.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/30978-alt.xls rename to test-data/spreadsheet/30978-alt.xls diff --git a/src/testcases/org/apache/poi/hssf/data/30978-deleted.xls b/test-data/spreadsheet/30978-deleted.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/30978-deleted.xls rename to test-data/spreadsheet/30978-deleted.xls diff --git a/src/testcases/org/apache/poi/hssf/data/31661.xls b/test-data/spreadsheet/31661.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/31661.xls rename to test-data/spreadsheet/31661.xls diff --git a/src/testcases/org/apache/poi/hssf/data/31749.xls b/test-data/spreadsheet/31749.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/31749.xls rename to test-data/spreadsheet/31749.xls diff --git a/src/testcases/org/apache/poi/hssf/data/31979.xls b/test-data/spreadsheet/31979.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/31979.xls rename to test-data/spreadsheet/31979.xls diff --git a/src/testcases/org/apache/poi/hssf/data/32822.xls b/test-data/spreadsheet/32822.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/32822.xls rename to test-data/spreadsheet/32822.xls diff --git a/src/testcases/org/apache/poi/hssf/data/33082.xls b/test-data/spreadsheet/33082.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/33082.xls rename to test-data/spreadsheet/33082.xls diff --git a/src/testcases/org/apache/poi/hssf/data/34775.xls b/test-data/spreadsheet/34775.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/34775.xls rename to test-data/spreadsheet/34775.xls diff --git a/src/testcases/org/apache/poi/hssf/data/35564.xls b/test-data/spreadsheet/35564.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/35564.xls rename to test-data/spreadsheet/35564.xls diff --git a/src/testcases/org/apache/poi/hssf/data/35565.xls b/test-data/spreadsheet/35565.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/35565.xls rename to test-data/spreadsheet/35565.xls diff --git a/src/testcases/org/apache/poi/hssf/data/36947.xls b/test-data/spreadsheet/36947.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/36947.xls rename to test-data/spreadsheet/36947.xls diff --git a/src/testcases/org/apache/poi/hssf/data/37376.xls b/test-data/spreadsheet/37376.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/37376.xls rename to test-data/spreadsheet/37376.xls diff --git a/src/testcases/org/apache/poi/hssf/data/37630.xls b/test-data/spreadsheet/37630.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/37630.xls rename to test-data/spreadsheet/37630.xls diff --git a/src/testcases/org/apache/poi/hssf/data/37684-1.xls b/test-data/spreadsheet/37684-1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/37684-1.xls rename to test-data/spreadsheet/37684-1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/37684-2.xls b/test-data/spreadsheet/37684-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/37684-2.xls rename to test-data/spreadsheet/37684-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/37684.xls b/test-data/spreadsheet/37684.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/37684.xls rename to test-data/spreadsheet/37684.xls diff --git a/src/testcases/org/apache/poi/hssf/data/39234.xls b/test-data/spreadsheet/39234.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/39234.xls rename to test-data/spreadsheet/39234.xls diff --git a/src/testcases/org/apache/poi/hssf/data/39512.xls b/test-data/spreadsheet/39512.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/39512.xls rename to test-data/spreadsheet/39512.xls diff --git a/src/testcases/org/apache/poi/hssf/data/39634.xls b/test-data/spreadsheet/39634.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/39634.xls rename to test-data/spreadsheet/39634.xls diff --git a/src/testcases/org/apache/poi/hssf/data/3dFormulas.xls b/test-data/spreadsheet/3dFormulas.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/3dFormulas.xls rename to test-data/spreadsheet/3dFormulas.xls diff --git a/src/testcases/org/apache/poi/hssf/data/40285.xls b/test-data/spreadsheet/40285.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/40285.xls rename to test-data/spreadsheet/40285.xls diff --git a/src/testcases/org/apache/poi/hssf/data/41139.xls b/test-data/spreadsheet/41139.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/41139.xls rename to test-data/spreadsheet/41139.xls diff --git a/src/testcases/org/apache/poi/hssf/data/41546.xls b/test-data/spreadsheet/41546.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/41546.xls rename to test-data/spreadsheet/41546.xls diff --git a/src/testcases/org/apache/poi/hssf/data/42464-ExpPtg-bad.xls b/test-data/spreadsheet/42464-ExpPtg-bad.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/42464-ExpPtg-bad.xls rename to test-data/spreadsheet/42464-ExpPtg-bad.xls diff --git a/src/testcases/org/apache/poi/hssf/data/42464-ExpPtg-ok.xls b/test-data/spreadsheet/42464-ExpPtg-ok.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/42464-ExpPtg-ok.xls rename to test-data/spreadsheet/42464-ExpPtg-ok.xls diff --git a/src/testcases/org/apache/poi/hssf/data/42726.xls b/test-data/spreadsheet/42726.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/42726.xls rename to test-data/spreadsheet/42726.xls diff --git a/src/testcases/org/apache/poi/hssf/data/42844.xls b/test-data/spreadsheet/42844.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/42844.xls rename to test-data/spreadsheet/42844.xls diff --git a/src/testcases/org/apache/poi/hssf/data/43251.xls b/test-data/spreadsheet/43251.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/43251.xls rename to test-data/spreadsheet/43251.xls diff --git a/src/testcases/org/apache/poi/hssf/data/43493.xls b/test-data/spreadsheet/43493.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/43493.xls rename to test-data/spreadsheet/43493.xls diff --git a/src/testcases/org/apache/poi/hssf/data/43623.xls b/test-data/spreadsheet/43623.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/43623.xls rename to test-data/spreadsheet/43623.xls diff --git a/src/testcases/org/apache/poi/hssf/data/43902.xls b/test-data/spreadsheet/43902.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/43902.xls rename to test-data/spreadsheet/43902.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44010-SingleChart.xls b/test-data/spreadsheet/44010-SingleChart.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44010-SingleChart.xls rename to test-data/spreadsheet/44010-SingleChart.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44010-TwoCharts.xls b/test-data/spreadsheet/44010-TwoCharts.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44010-TwoCharts.xls rename to test-data/spreadsheet/44010-TwoCharts.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44167.xls b/test-data/spreadsheet/44167.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44167.xls rename to test-data/spreadsheet/44167.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44200.xls b/test-data/spreadsheet/44200.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44200.xls rename to test-data/spreadsheet/44200.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44201.xls b/test-data/spreadsheet/44201.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44201.xls rename to test-data/spreadsheet/44201.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44235.xls b/test-data/spreadsheet/44235.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44235.xls rename to test-data/spreadsheet/44235.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44297.xls b/test-data/spreadsheet/44297.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44297.xls rename to test-data/spreadsheet/44297.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44593.xls b/test-data/spreadsheet/44593.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44593.xls rename to test-data/spreadsheet/44593.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44636.xls b/test-data/spreadsheet/44636.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44636.xls rename to test-data/spreadsheet/44636.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44643.xls b/test-data/spreadsheet/44643.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44643.xls rename to test-data/spreadsheet/44643.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44693.xls b/test-data/spreadsheet/44693.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44693.xls rename to test-data/spreadsheet/44693.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44840.xls b/test-data/spreadsheet/44840.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44840.xls rename to test-data/spreadsheet/44840.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44861.xls b/test-data/spreadsheet/44861.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44861.xls rename to test-data/spreadsheet/44861.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44891.xls b/test-data/spreadsheet/44891.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44891.xls rename to test-data/spreadsheet/44891.xls diff --git a/src/testcases/org/apache/poi/hssf/data/44958.xls b/test-data/spreadsheet/44958.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/44958.xls rename to test-data/spreadsheet/44958.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45290.xls b/test-data/spreadsheet/45290.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45290.xls rename to test-data/spreadsheet/45290.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45322.xls b/test-data/spreadsheet/45322.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45322.xls rename to test-data/spreadsheet/45322.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45365-2.xls b/test-data/spreadsheet/45365-2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45365-2.xls rename to test-data/spreadsheet/45365-2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45365.xls b/test-data/spreadsheet/45365.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45365.xls rename to test-data/spreadsheet/45365.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45430.xlsx b/test-data/spreadsheet/45430.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45430.xlsx rename to test-data/spreadsheet/45430.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45431.xlsm b/test-data/spreadsheet/45431.xlsm similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45431.xlsm rename to test-data/spreadsheet/45431.xlsm diff --git a/src/testcases/org/apache/poi/hssf/data/45492.xls b/test-data/spreadsheet/45492.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45492.xls rename to test-data/spreadsheet/45492.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xls b/test-data/spreadsheet/45538_classic_Footer.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45538_classic_Footer.xls rename to test-data/spreadsheet/45538_classic_Footer.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xls b/test-data/spreadsheet/45538_classic_Header.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45538_classic_Header.xls rename to test-data/spreadsheet/45538_classic_Header.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xls b/test-data/spreadsheet/45538_form_Footer.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45538_form_Footer.xls rename to test-data/spreadsheet/45538_form_Footer.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45538_form_Header.xls b/test-data/spreadsheet/45538_form_Header.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45538_form_Header.xls rename to test-data/spreadsheet/45538_form_Header.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45540_classic_Footer.xlsx b/test-data/spreadsheet/45540_classic_Footer.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45540_classic_Footer.xlsx rename to test-data/spreadsheet/45540_classic_Footer.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45540_classic_Header.xlsx b/test-data/spreadsheet/45540_classic_Header.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45540_classic_Header.xlsx rename to test-data/spreadsheet/45540_classic_Header.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45540_form_Footer.xlsx b/test-data/spreadsheet/45540_form_Footer.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45540_form_Footer.xlsx rename to test-data/spreadsheet/45540_form_Footer.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45540_form_Header.xlsx b/test-data/spreadsheet/45540_form_Header.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45540_form_Header.xlsx rename to test-data/spreadsheet/45540_form_Header.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45544.xlsx b/test-data/spreadsheet/45544.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45544.xlsx rename to test-data/spreadsheet/45544.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/45720.xls b/test-data/spreadsheet/45720.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45720.xls rename to test-data/spreadsheet/45720.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45761.xls b/test-data/spreadsheet/45761.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45761.xls rename to test-data/spreadsheet/45761.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45784.xls b/test-data/spreadsheet/45784.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45784.xls rename to test-data/spreadsheet/45784.xls diff --git a/src/testcases/org/apache/poi/hssf/data/45829.png b/test-data/spreadsheet/45829.png similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/45829.png rename to test-data/spreadsheet/45829.png diff --git a/src/testcases/org/apache/poi/hssf/data/46137.xls b/test-data/spreadsheet/46137.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/46137.xls rename to test-data/spreadsheet/46137.xls diff --git a/src/testcases/org/apache/poi/hssf/data/46445.xls b/test-data/spreadsheet/46445.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/46445.xls rename to test-data/spreadsheet/46445.xls diff --git a/src/testcases/org/apache/poi/hssf/data/46535.xlsx b/test-data/spreadsheet/46535.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/46535.xlsx rename to test-data/spreadsheet/46535.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/46536.xlsx b/test-data/spreadsheet/46536.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/46536.xlsx rename to test-data/spreadsheet/46536.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/46904.xls b/test-data/spreadsheet/46904.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/46904.xls rename to test-data/spreadsheet/46904.xls diff --git a/src/testcases/org/apache/poi/hssf/data/47026.xlsm b/test-data/spreadsheet/47026.xlsm similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47026.xlsm rename to test-data/spreadsheet/47026.xlsm diff --git a/src/testcases/org/apache/poi/hssf/data/47034.xls b/test-data/spreadsheet/47034.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47034.xls rename to test-data/spreadsheet/47034.xls diff --git a/src/testcases/org/apache/poi/hssf/data/47089.xlsm b/test-data/spreadsheet/47089.xlsm similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47089.xlsm rename to test-data/spreadsheet/47089.xlsm diff --git a/src/testcases/org/apache/poi/hssf/data/47154.xls b/test-data/spreadsheet/47154.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47154.xls rename to test-data/spreadsheet/47154.xls diff --git a/src/testcases/org/apache/poi/hssf/data/47504.xlsx b/test-data/spreadsheet/47504.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47504.xlsx rename to test-data/spreadsheet/47504.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/47668.xlsx b/test-data/spreadsheet/47668.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/47668.xlsx rename to test-data/spreadsheet/47668.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/AbnormalSharedFormulaFlag.xls b/test-data/spreadsheet/AbnormalSharedFormulaFlag.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/AbnormalSharedFormulaFlag.xls rename to test-data/spreadsheet/AbnormalSharedFormulaFlag.xls diff --git a/src/testcases/org/apache/poi/hssf/data/AreaErrPtg.xls b/test-data/spreadsheet/AreaErrPtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/AreaErrPtg.xls rename to test-data/spreadsheet/AreaErrPtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/AverageTaxRates.xlsx b/test-data/spreadsheet/AverageTaxRates.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/AverageTaxRates.xlsx rename to test-data/spreadsheet/AverageTaxRates.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord b/test-data/spreadsheet/BigSSTRecord similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord rename to test-data/spreadsheet/BigSSTRecord diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2 b/test-data/spreadsheet/BigSSTRecord2 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2 rename to test-data/spreadsheet/BigSSTRecord2 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR1 b/test-data/spreadsheet/BigSSTRecord2CR1 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR1 rename to test-data/spreadsheet/BigSSTRecord2CR1 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR2 b/test-data/spreadsheet/BigSSTRecord2CR2 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR2 rename to test-data/spreadsheet/BigSSTRecord2CR2 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR3 b/test-data/spreadsheet/BigSSTRecord2CR3 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR3 rename to test-data/spreadsheet/BigSSTRecord2CR3 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR4 b/test-data/spreadsheet/BigSSTRecord2CR4 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR4 rename to test-data/spreadsheet/BigSSTRecord2CR4 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR5 b/test-data/spreadsheet/BigSSTRecord2CR5 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR5 rename to test-data/spreadsheet/BigSSTRecord2CR5 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR6 b/test-data/spreadsheet/BigSSTRecord2CR6 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR6 rename to test-data/spreadsheet/BigSSTRecord2CR6 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR7 b/test-data/spreadsheet/BigSSTRecord2CR7 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecord2CR7 rename to test-data/spreadsheet/BigSSTRecord2CR7 diff --git a/src/testcases/org/apache/poi/hssf/data/BigSSTRecordCR b/test-data/spreadsheet/BigSSTRecordCR similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/BigSSTRecordCR rename to test-data/spreadsheet/BigSSTRecordCR diff --git a/src/testcases/org/apache/poi/hssf/data/Booleans.xlsx b/test-data/spreadsheet/Booleans.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Booleans.xlsx rename to test-data/spreadsheet/Booleans.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/ColumnStyle1dp.xls b/test-data/spreadsheet/ColumnStyle1dp.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ColumnStyle1dp.xls rename to test-data/spreadsheet/ColumnStyle1dp.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ColumnStyle1dpColoured.xls b/test-data/spreadsheet/ColumnStyle1dpColoured.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ColumnStyle1dpColoured.xls rename to test-data/spreadsheet/ColumnStyle1dpColoured.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ColumnStyleNone.xls b/test-data/spreadsheet/ColumnStyleNone.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ColumnStyleNone.xls rename to test-data/spreadsheet/ColumnStyleNone.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ContinueRecordProblem.xls b/test-data/spreadsheet/ContinueRecordProblem.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ContinueRecordProblem.xls rename to test-data/spreadsheet/ContinueRecordProblem.xls diff --git a/src/testcases/org/apache/poi/hssf/data/CustomXMLMapping-singleattributenamespace.xlsx b/test-data/spreadsheet/CustomXMLMapping-singleattributenamespace.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/CustomXMLMapping-singleattributenamespace.xlsx rename to test-data/spreadsheet/CustomXMLMapping-singleattributenamespace.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/CustomXMLMappings-complex-type.xlsx b/test-data/spreadsheet/CustomXMLMappings-complex-type.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/CustomXMLMappings-complex-type.xlsx rename to test-data/spreadsheet/CustomXMLMappings-complex-type.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/CustomXMLMappings.xlsx b/test-data/spreadsheet/CustomXMLMappings.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/CustomXMLMappings.xlsx rename to test-data/spreadsheet/CustomXMLMappings.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/CustomXmlMappings-inverse-order.xlsx b/test-data/spreadsheet/CustomXmlMappings-inverse-order.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/CustomXmlMappings-inverse-order.xlsx rename to test-data/spreadsheet/CustomXmlMappings-inverse-order.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/DBCSHeader.xls b/test-data/spreadsheet/DBCSHeader.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/DBCSHeader.xls rename to test-data/spreadsheet/DBCSHeader.xls diff --git a/src/testcases/org/apache/poi/hssf/data/DBCSSheetName.xls b/test-data/spreadsheet/DBCSSheetName.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/DBCSSheetName.xls rename to test-data/spreadsheet/DBCSSheetName.xls diff --git a/src/testcases/org/apache/poi/hssf/data/DateFormats.xls b/test-data/spreadsheet/DateFormats.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/DateFormats.xls rename to test-data/spreadsheet/DateFormats.xls diff --git a/src/testcases/org/apache/poi/hssf/data/EmbeddedChartHeaderTest.xls b/test-data/spreadsheet/EmbeddedChartHeaderTest.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/EmbeddedChartHeaderTest.xls rename to test-data/spreadsheet/EmbeddedChartHeaderTest.xls diff --git a/src/testcases/org/apache/poi/hssf/data/Employee.xls b/test-data/spreadsheet/Employee.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Employee.xls rename to test-data/spreadsheet/Employee.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ErrPtg.xls b/test-data/spreadsheet/ErrPtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ErrPtg.xls rename to test-data/spreadsheet/ErrPtg.xls diff --git a/src/ooxml/testcases/org/apache/poi/ooxml/data/ExcelWithAttachments.xlsm b/test-data/spreadsheet/ExcelWithAttachments.xlsm similarity index 100% rename from src/ooxml/testcases/org/apache/poi/ooxml/data/ExcelWithAttachments.xlsm rename to test-data/spreadsheet/ExcelWithAttachments.xlsm diff --git a/src/testcases/org/apache/poi/hssf/data/ForShifting.xls b/test-data/spreadsheet/ForShifting.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ForShifting.xls rename to test-data/spreadsheet/ForShifting.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ForShifting.xlsx b/test-data/spreadsheet/ForShifting.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ForShifting.xlsx rename to test-data/spreadsheet/ForShifting.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/Formatting.xls b/test-data/spreadsheet/Formatting.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Formatting.xls rename to test-data/spreadsheet/Formatting.xls diff --git a/src/testcases/org/apache/poi/hssf/data/Formatting.xlsx b/test-data/spreadsheet/Formatting.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Formatting.xlsx rename to test-data/spreadsheet/Formatting.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData.xls b/test-data/spreadsheet/FormulaEvalTestData.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData.xls rename to test-data/spreadsheet/FormulaEvalTestData.xls diff --git a/src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData_Copy.xlsx b/test-data/spreadsheet/FormulaEvalTestData_Copy.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/FormulaEvalTestData_Copy.xlsx rename to test-data/spreadsheet/FormulaEvalTestData_Copy.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/HyperlinksOnManySheets.xls b/test-data/spreadsheet/HyperlinksOnManySheets.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/HyperlinksOnManySheets.xls rename to test-data/spreadsheet/HyperlinksOnManySheets.xls diff --git a/src/testcases/org/apache/poi/hssf/data/IfFormulaTest.xls b/test-data/spreadsheet/IfFormulaTest.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/IfFormulaTest.xls rename to test-data/spreadsheet/IfFormulaTest.xls diff --git a/src/testcases/org/apache/poi/hssf/data/IndexFunctionTestCaseData.xls b/test-data/spreadsheet/IndexFunctionTestCaseData.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/IndexFunctionTestCaseData.xls rename to test-data/spreadsheet/IndexFunctionTestCaseData.xls diff --git a/src/testcases/org/apache/poi/hssf/data/IntersectionPtg.xls b/test-data/spreadsheet/IntersectionPtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/IntersectionPtg.xls rename to test-data/spreadsheet/IntersectionPtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/LookupFunctionsTestCaseData.xls b/test-data/spreadsheet/LookupFunctionsTestCaseData.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/LookupFunctionsTestCaseData.xls rename to test-data/spreadsheet/LookupFunctionsTestCaseData.xls diff --git a/src/testcases/org/apache/poi/hssf/data/MRExtraLines.xls b/test-data/spreadsheet/MRExtraLines.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/MRExtraLines.xls rename to test-data/spreadsheet/MRExtraLines.xls diff --git a/src/testcases/org/apache/poi/hssf/data/MissingBits.xls b/test-data/spreadsheet/MissingBits.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/MissingBits.xls rename to test-data/spreadsheet/MissingBits.xls diff --git a/src/testcases/org/apache/poi/hssf/data/NoGutsRecords.xls b/test-data/spreadsheet/NoGutsRecords.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/NoGutsRecords.xls rename to test-data/spreadsheet/NoGutsRecords.xls diff --git a/src/testcases/org/apache/poi/hssf/data/OddStyleRecord.xls b/test-data/spreadsheet/OddStyleRecord.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/OddStyleRecord.xls rename to test-data/spreadsheet/OddStyleRecord.xls diff --git a/src/testcases/org/apache/poi/hssf/data/PercentPtg.xls b/test-data/spreadsheet/PercentPtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/PercentPtg.xls rename to test-data/spreadsheet/PercentPtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/RangePtg.xls b/test-data/spreadsheet/RangePtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/RangePtg.xls rename to test-data/spreadsheet/RangePtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ReadOnlyRecommended.xls b/test-data/spreadsheet/ReadOnlyRecommended.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ReadOnlyRecommended.xls rename to test-data/spreadsheet/ReadOnlyRecommended.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ReferencePtg.xls b/test-data/spreadsheet/ReferencePtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ReferencePtg.xls rename to test-data/spreadsheet/ReferencePtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SampleSS.txt b/test-data/spreadsheet/SampleSS.txt similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SampleSS.txt rename to test-data/spreadsheet/SampleSS.txt diff --git a/src/testcases/org/apache/poi/hssf/data/SampleSS.xls b/test-data/spreadsheet/SampleSS.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SampleSS.xls rename to test-data/spreadsheet/SampleSS.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SampleSS.xlsx b/test-data/spreadsheet/SampleSS.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SampleSS.xlsx rename to test-data/spreadsheet/SampleSS.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/SharedFormulaTest.xls b/test-data/spreadsheet/SharedFormulaTest.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SharedFormulaTest.xls rename to test-data/spreadsheet/SharedFormulaTest.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SheetWithDrawing.xls b/test-data/spreadsheet/SheetWithDrawing.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SheetWithDrawing.xls rename to test-data/spreadsheet/SheetWithDrawing.xls diff --git a/src/testcases/org/apache/poi/hssf/data/Simple.xls b/test-data/spreadsheet/Simple.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Simple.xls rename to test-data/spreadsheet/Simple.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleChart.xls b/test-data/spreadsheet/SimpleChart.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleChart.xls rename to test-data/spreadsheet/SimpleChart.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleMultiCell.xls b/test-data/spreadsheet/SimpleMultiCell.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleMultiCell.xls rename to test-data/spreadsheet/SimpleMultiCell.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleMultiCell.xlsx b/test-data/spreadsheet/SimpleMultiCell.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleMultiCell.xlsx rename to test-data/spreadsheet/SimpleMultiCell.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithAutofilter.xls b/test-data/spreadsheet/SimpleWithAutofilter.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithAutofilter.xls rename to test-data/spreadsheet/SimpleWithAutofilter.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithChoose.xls b/test-data/spreadsheet/SimpleWithChoose.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithChoose.xls rename to test-data/spreadsheet/SimpleWithChoose.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithColours.xls b/test-data/spreadsheet/SimpleWithColours.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithColours.xls rename to test-data/spreadsheet/SimpleWithColours.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithComments.xls b/test-data/spreadsheet/SimpleWithComments.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithComments.xls rename to test-data/spreadsheet/SimpleWithComments.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithDataFormat.xls b/test-data/spreadsheet/SimpleWithDataFormat.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithDataFormat.xls rename to test-data/spreadsheet/SimpleWithDataFormat.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithFormula.xls b/test-data/spreadsheet/SimpleWithFormula.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithFormula.xls rename to test-data/spreadsheet/SimpleWithFormula.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithImages-mac.xls b/test-data/spreadsheet/SimpleWithImages-mac.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithImages-mac.xls rename to test-data/spreadsheet/SimpleWithImages-mac.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithImages.xls b/test-data/spreadsheet/SimpleWithImages.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithImages.xls rename to test-data/spreadsheet/SimpleWithImages.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithPageBreaks.xls b/test-data/spreadsheet/SimpleWithPageBreaks.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithPageBreaks.xls rename to test-data/spreadsheet/SimpleWithPageBreaks.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithPrintArea.xls b/test-data/spreadsheet/SimpleWithPrintArea.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithPrintArea.xls rename to test-data/spreadsheet/SimpleWithPrintArea.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithSkip.xls b/test-data/spreadsheet/SimpleWithSkip.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithSkip.xls rename to test-data/spreadsheet/SimpleWithSkip.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SimpleWithStyling.xls b/test-data/spreadsheet/SimpleWithStyling.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SimpleWithStyling.xls rename to test-data/spreadsheet/SimpleWithStyling.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SingleLetterRanges.xls b/test-data/spreadsheet/SingleLetterRanges.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SingleLetterRanges.xls rename to test-data/spreadsheet/SingleLetterRanges.xls diff --git a/src/testcases/org/apache/poi/hssf/data/SquareMacro.xls b/test-data/spreadsheet/SquareMacro.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/SquareMacro.xls rename to test-data/spreadsheet/SquareMacro.xls diff --git a/src/testcases/org/apache/poi/hssf/data/StringContinueRecords.xls b/test-data/spreadsheet/StringContinueRecords.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/StringContinueRecords.xls rename to test-data/spreadsheet/StringContinueRecords.xls diff --git a/src/testcases/org/apache/poi/hssf/data/StringFormulas.xls b/test-data/spreadsheet/StringFormulas.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/StringFormulas.xls rename to test-data/spreadsheet/StringFormulas.xls diff --git a/src/testcases/org/apache/poi/hssf/data/Tables.xlsx b/test-data/spreadsheet/Tables.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/Tables.xlsx rename to test-data/spreadsheet/Tables.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/TwoSheetsNoneHidden.xls b/test-data/spreadsheet/TwoSheetsNoneHidden.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/TwoSheetsNoneHidden.xls rename to test-data/spreadsheet/TwoSheetsNoneHidden.xls diff --git a/src/testcases/org/apache/poi/hssf/data/TwoSheetsNoneHidden.xlsx b/test-data/spreadsheet/TwoSheetsNoneHidden.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/TwoSheetsNoneHidden.xlsx rename to test-data/spreadsheet/TwoSheetsNoneHidden.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/TwoSheetsOneHidden.xls b/test-data/spreadsheet/TwoSheetsOneHidden.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/TwoSheetsOneHidden.xls rename to test-data/spreadsheet/TwoSheetsOneHidden.xls diff --git a/src/testcases/org/apache/poi/hssf/data/TwoSheetsOneHidden.xlsx b/test-data/spreadsheet/TwoSheetsOneHidden.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/TwoSheetsOneHidden.xlsx rename to test-data/spreadsheet/TwoSheetsOneHidden.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/UncalcedRecord.xls b/test-data/spreadsheet/UncalcedRecord.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/UncalcedRecord.xls rename to test-data/spreadsheet/UncalcedRecord.xls diff --git a/src/testcases/org/apache/poi/hssf/data/UnionPtg.xls b/test-data/spreadsheet/UnionPtg.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/UnionPtg.xls rename to test-data/spreadsheet/UnionPtg.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WORKBOOK_in_capitals.xls b/test-data/spreadsheet/WORKBOOK_in_capitals.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WORKBOOK_in_capitals.xls rename to test-data/spreadsheet/WORKBOOK_in_capitals.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithChart.xls b/test-data/spreadsheet/WithChart.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithChart.xls rename to test-data/spreadsheet/WithChart.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithChart.xlsx b/test-data/spreadsheet/WithChart.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithChart.xlsx rename to test-data/spreadsheet/WithChart.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithCheckBoxes.xls b/test-data/spreadsheet/WithCheckBoxes.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithCheckBoxes.xls rename to test-data/spreadsheet/WithCheckBoxes.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithDrawing.xlsx b/test-data/spreadsheet/WithDrawing.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithDrawing.xlsx rename to test-data/spreadsheet/WithDrawing.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithEmbeded.xlsx b/test-data/spreadsheet/WithEmbeded.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithEmbeded.xlsx rename to test-data/spreadsheet/WithEmbeded.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithExtendedStyles.xls b/test-data/spreadsheet/WithExtendedStyles.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithExtendedStyles.xls rename to test-data/spreadsheet/WithExtendedStyles.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithFormattedGraphTitle.xls b/test-data/spreadsheet/WithFormattedGraphTitle.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithFormattedGraphTitle.xls rename to test-data/spreadsheet/WithFormattedGraphTitle.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithHyperlink.xls b/test-data/spreadsheet/WithHyperlink.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithHyperlink.xls rename to test-data/spreadsheet/WithHyperlink.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithMoreVariousData.xlsx b/test-data/spreadsheet/WithMoreVariousData.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithMoreVariousData.xlsx rename to test-data/spreadsheet/WithMoreVariousData.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithThreeCharts.xls b/test-data/spreadsheet/WithThreeCharts.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithThreeCharts.xls rename to test-data/spreadsheet/WithThreeCharts.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithThreeCharts.xlsx b/test-data/spreadsheet/WithThreeCharts.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithThreeCharts.xlsx rename to test-data/spreadsheet/WithThreeCharts.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithTwoCharts.xls b/test-data/spreadsheet/WithTwoCharts.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithTwoCharts.xls rename to test-data/spreadsheet/WithTwoCharts.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithTwoCharts.xlsx b/test-data/spreadsheet/WithTwoCharts.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithTwoCharts.xlsx rename to test-data/spreadsheet/WithTwoCharts.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WithTwoHyperLinks.xls b/test-data/spreadsheet/WithTwoHyperLinks.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithTwoHyperLinks.xls rename to test-data/spreadsheet/WithTwoHyperLinks.xls diff --git a/src/testcases/org/apache/poi/hssf/data/WithVariousData.xlsx b/test-data/spreadsheet/WithVariousData.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WithVariousData.xlsx rename to test-data/spreadsheet/WithVariousData.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/WrongFormulaRecordType.xls b/test-data/spreadsheet/WrongFormulaRecordType.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/WrongFormulaRecordType.xls rename to test-data/spreadsheet/WrongFormulaRecordType.xls diff --git a/src/testcases/org/apache/poi/hssf/data/blankworkbook.xls b/test-data/spreadsheet/blankworkbook.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/blankworkbook.xls rename to test-data/spreadsheet/blankworkbook.xls diff --git a/src/testcases/org/apache/poi/hssf/data/bug_42794.mdb b/test-data/spreadsheet/bug_42794.mdb similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/bug_42794.mdb rename to test-data/spreadsheet/bug_42794.mdb diff --git a/src/testcases/org/apache/poi/hssf/data/bug_42794.xls b/test-data/spreadsheet/bug_42794.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/bug_42794.xls rename to test-data/spreadsheet/bug_42794.xls diff --git a/src/testcases/org/apache/poi/hssf/data/colwidth.xls b/test-data/spreadsheet/colwidth.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/colwidth.xls rename to test-data/spreadsheet/colwidth.xls diff --git a/src/testcases/org/apache/poi/hssf/data/comments.xls b/test-data/spreadsheet/comments.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/comments.xls rename to test-data/spreadsheet/comments.xls diff --git a/src/testcases/org/apache/poi/hssf/data/comments.xlsx b/test-data/spreadsheet/comments.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/comments.xlsx rename to test-data/spreadsheet/comments.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/countifExamples.xls b/test-data/spreadsheet/countifExamples.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/countifExamples.xls rename to test-data/spreadsheet/countifExamples.xls diff --git a/src/testcases/org/apache/poi/hssf/data/duprich1.xls b/test-data/spreadsheet/duprich1.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/duprich1.xls rename to test-data/spreadsheet/duprich1.xls diff --git a/src/testcases/org/apache/poi/hssf/data/duprich2.xls b/test-data/spreadsheet/duprich2.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/duprich2.xls rename to test-data/spreadsheet/duprich2.xls diff --git a/src/testcases/org/apache/poi/hssf/data/dvEmpty.xls b/test-data/spreadsheet/dvEmpty.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/dvEmpty.xls rename to test-data/spreadsheet/dvEmpty.xls diff --git a/src/testcases/org/apache/poi/hssf/data/evencontinuation.txt b/test-data/spreadsheet/evencontinuation.txt similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/evencontinuation.txt rename to test-data/spreadsheet/evencontinuation.txt diff --git a/src/testcases/org/apache/poi/hssf/data/ex41187-19267.xls b/test-data/spreadsheet/ex41187-19267.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex41187-19267.xls rename to test-data/spreadsheet/ex41187-19267.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex42564-21435.xls b/test-data/spreadsheet/ex42564-21435.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex42564-21435.xls rename to test-data/spreadsheet/ex42564-21435.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex42564-21503.xls b/test-data/spreadsheet/ex42564-21503.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex42564-21503.xls rename to test-data/spreadsheet/ex42564-21503.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex42564-elementOrder.xls b/test-data/spreadsheet/ex42564-elementOrder.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex42564-elementOrder.xls rename to test-data/spreadsheet/ex42564-elementOrder.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex42570-20305.xls b/test-data/spreadsheet/ex42570-20305.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex42570-20305.xls rename to test-data/spreadsheet/ex42570-20305.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex44921-21902.xls b/test-data/spreadsheet/ex44921-21902.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex44921-21902.xls rename to test-data/spreadsheet/ex44921-21902.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex45046-21984.xls b/test-data/spreadsheet/ex45046-21984.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex45046-21984.xls rename to test-data/spreadsheet/ex45046-21984.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex45582-22397.xls b/test-data/spreadsheet/ex45582-22397.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex45582-22397.xls rename to test-data/spreadsheet/ex45582-22397.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex45672.xls b/test-data/spreadsheet/ex45672.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex45672.xls rename to test-data/spreadsheet/ex45672.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex45698-22488.xls b/test-data/spreadsheet/ex45698-22488.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex45698-22488.xls rename to test-data/spreadsheet/ex45698-22488.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex45978-extraLinkTableSheets.xls b/test-data/spreadsheet/ex45978-extraLinkTableSheets.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex45978-extraLinkTableSheets.xls rename to test-data/spreadsheet/ex45978-extraLinkTableSheets.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ex46548-23133.xls b/test-data/spreadsheet/ex46548-23133.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ex46548-23133.xls rename to test-data/spreadsheet/ex46548-23133.xls diff --git a/src/testcases/org/apache/poi/poifs/data/excel_with_embeded.xls b/test-data/spreadsheet/excel_with_embeded.xls similarity index 100% rename from src/testcases/org/apache/poi/poifs/data/excel_with_embeded.xls rename to test-data/spreadsheet/excel_with_embeded.xls diff --git a/src/testcases/org/apache/poi/hssf/data/extendedtextstrings.txt b/test-data/spreadsheet/extendedtextstrings.txt similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/extendedtextstrings.txt rename to test-data/spreadsheet/extendedtextstrings.txt diff --git a/src/testcases/org/apache/poi/hssf/data/externalFunctionExample.xls b/test-data/spreadsheet/externalFunctionExample.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/externalFunctionExample.xls rename to test-data/spreadsheet/externalFunctionExample.xls diff --git a/src/testcases/org/apache/poi/hssf/data/logoKarmokar4.png b/test-data/spreadsheet/logoKarmokar4.png similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/logoKarmokar4.png rename to test-data/spreadsheet/logoKarmokar4.png diff --git a/src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls b/test-data/spreadsheet/missingFuncs44675.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/missingFuncs44675.xls rename to test-data/spreadsheet/missingFuncs44675.xls diff --git a/src/testcases/org/apache/poi/hssf/data/multibookFormulaA.xls b/test-data/spreadsheet/multibookFormulaA.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/multibookFormulaA.xls rename to test-data/spreadsheet/multibookFormulaA.xls diff --git a/src/testcases/org/apache/poi/hssf/data/multibookFormulaB.xls b/test-data/spreadsheet/multibookFormulaB.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/multibookFormulaB.xls rename to test-data/spreadsheet/multibookFormulaB.xls diff --git a/src/testcases/org/apache/poi/hssf/data/namedinput.xls b/test-data/spreadsheet/namedinput.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/namedinput.xls rename to test-data/spreadsheet/namedinput.xls diff --git a/src/testcases/org/apache/poi/hssf/data/noHeaderFooter47244.xls b/test-data/spreadsheet/noHeaderFooter47244.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/noHeaderFooter47244.xls rename to test-data/spreadsheet/noHeaderFooter47244.xls diff --git a/src/testcases/org/apache/poi/hssf/data/ole2-embedding.xls b/test-data/spreadsheet/ole2-embedding.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/ole2-embedding.xls rename to test-data/spreadsheet/ole2-embedding.xls diff --git a/src/testcases/org/apache/poi/hssf/data/overlapSharedFormula.xls b/test-data/spreadsheet/overlapSharedFormula.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/overlapSharedFormula.xls rename to test-data/spreadsheet/overlapSharedFormula.xls diff --git a/src/testcases/org/apache/poi/hssf/data/password.xls b/test-data/spreadsheet/password.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/password.xls rename to test-data/spreadsheet/password.xls diff --git a/src/ooxml/testcases/org/apache/poi/xssf/data/picture.xlsx b/test-data/spreadsheet/picture.xlsx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/xssf/data/picture.xlsx rename to test-data/spreadsheet/picture.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/reordered_sheets.xlsx b/test-data/spreadsheet/reordered_sheets.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/reordered_sheets.xlsx rename to test-data/spreadsheet/reordered_sheets.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/richtextdata.txt b/test-data/spreadsheet/richtextdata.txt similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/richtextdata.txt rename to test-data/spreadsheet/richtextdata.txt diff --git a/src/testcases/org/apache/poi/hssf/data/rk.xls b/test-data/spreadsheet/rk.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/rk.xls rename to test-data/spreadsheet/rk.xls diff --git a/src/testcases/org/apache/poi/hssf/data/sample-beta.xlsx b/test-data/spreadsheet/sample-beta.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/sample-beta.xlsx rename to test-data/spreadsheet/sample-beta.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/sample.xlsx b/test-data/spreadsheet/sample.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/sample.xlsx rename to test-data/spreadsheet/sample.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/shared_formulas.xlsx b/test-data/spreadsheet/shared_formulas.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/shared_formulas.xlsx rename to test-data/spreadsheet/shared_formulas.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/stringacross2continuations.txt b/test-data/spreadsheet/stringacross2continuations.txt similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/stringacross2continuations.txt rename to test-data/spreadsheet/stringacross2continuations.txt diff --git a/src/ooxml/testcases/org/apache/poi/xssf/data/styles.xlsx b/test-data/spreadsheet/styles.xlsx similarity index 100% rename from src/ooxml/testcases/org/apache/poi/xssf/data/styles.xlsx rename to test-data/spreadsheet/styles.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/sumifformula.xls b/test-data/spreadsheet/sumifformula.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/sumifformula.xls rename to test-data/spreadsheet/sumifformula.xls diff --git a/src/testcases/org/apache/poi/hssf/data/templateExcelWithAutofilter.xls b/test-data/spreadsheet/templateExcelWithAutofilter.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/templateExcelWithAutofilter.xls rename to test-data/spreadsheet/templateExcelWithAutofilter.xls diff --git a/src/testcases/org/apache/poi/hssf/data/test.xltx b/test-data/spreadsheet/test.xltx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/test.xltx rename to test-data/spreadsheet/test.xltx diff --git a/src/testcases/org/apache/poi/hssf/data/testArraysAndTables.xls b/test-data/spreadsheet/testArraysAndTables.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/testArraysAndTables.xls rename to test-data/spreadsheet/testArraysAndTables.xls diff --git a/src/testcases/org/apache/poi/hssf/data/testNames.xls b/test-data/spreadsheet/testNames.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/testNames.xls rename to test-data/spreadsheet/testNames.xls diff --git a/src/testcases/org/apache/poi/hssf/data/testRRaC.xls b/test-data/spreadsheet/testRRaC.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/testRRaC.xls rename to test-data/spreadsheet/testRRaC.xls diff --git a/src/testcases/org/apache/poi/hssf/data/testRVA.xls b/test-data/spreadsheet/testRVA.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/testRVA.xls rename to test-data/spreadsheet/testRVA.xls diff --git a/src/testcases/org/apache/poi/hssf/data/test_properties1 b/test-data/spreadsheet/test_properties1 similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/test_properties1 rename to test-data/spreadsheet/test_properties1 diff --git a/src/testcases/org/apache/poi/hssf/data/unicodeNameRecord.xls b/test-data/spreadsheet/unicodeNameRecord.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/unicodeNameRecord.xls rename to test-data/spreadsheet/unicodeNameRecord.xls diff --git a/src/testcases/org/apache/poi/hssf/data/xlsx-jdbc.xlsx b/test-data/spreadsheet/xlsx-jdbc.xlsx similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/xlsx-jdbc.xlsx rename to test-data/spreadsheet/xlsx-jdbc.xlsx diff --git a/src/testcases/org/apache/poi/hssf/data/yearfracExamples.xls b/test-data/spreadsheet/yearfracExamples.xls similarity index 100% rename from src/testcases/org/apache/poi/hssf/data/yearfracExamples.xls rename to test-data/spreadsheet/yearfracExamples.xls -- 2.39.5