diff --git a/source/test-java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java b/source/test-java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java index 485929147c..ee5f972466 100644 --- a/source/test-java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java +++ b/source/test-java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java @@ -104,8 +104,8 @@ public abstract class AbstractMetadataExtracterTest extends TestCase Map properties = extractFromMimetype(mimetype); // check we got something - assertFalse("extractFromMimetype should return at least some properties, none found for " + mimetype, - properties.isEmpty()); + assertFalse("extractFromMimetype should return at least some properties, none found for " + mimetype, + properties.isEmpty()); // check common metadata testCommonMetadata(mimetype, properties); @@ -184,10 +184,10 @@ public abstract class AbstractMetadataExtracterTest extends TestCase DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_TITLE))); if (!skipDescriptionCheck(mimetype)) { - assertEquals( - "Property " + ContentModel.PROP_DESCRIPTION + " not found for mimetype " + mimetype, - QUICK_DESCRIPTION, - DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_DESCRIPTION))); + assertEquals( + "Property " + ContentModel.PROP_DESCRIPTION + " not found for mimetype " + mimetype, + QUICK_DESCRIPTION, + DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_DESCRIPTION))); } } protected abstract void testFileSpecificMetadata(String mimetype, Map properties); @@ -201,7 +201,7 @@ public abstract class AbstractMetadataExtracterTest extends TestCase */ protected boolean skipAuthorCheck(String mimetype) { - return false; + return false; } /** @@ -213,7 +213,7 @@ public abstract class AbstractMetadataExtracterTest extends TestCase */ protected boolean skipDescriptionCheck(String mimetype) { - return false; + return false; } diff --git a/source/test-java/org/alfresco/repo/content/metadata/PoiMetadataExtracterTest.java b/source/test-java/org/alfresco/repo/content/metadata/PoiMetadataExtracterTest.java index c09e39cbcf..4545c7c713 100644 --- a/source/test-java/org/alfresco/repo/content/metadata/PoiMetadataExtracterTest.java +++ b/source/test-java/org/alfresco/repo/content/metadata/PoiMetadataExtracterTest.java @@ -20,7 +20,6 @@ package org.alfresco.repo.content.metadata; import java.io.File; import java.io.Serializable; -import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -69,15 +68,15 @@ public class PoiMetadataExtracterTest extends AbstractMetadataExtracterTest { for (String mimetype : PoiMetadataExtracter.SUPPORTED_MIMETYPES) { - testExtractFromMimetype(mimetype); + testExtractFromMimetype(mimetype); } } @Override protected boolean skipDescriptionCheck(String mimetype) { - // Our 3 OpenOffice 07 quick files have no description properties. - return true; + // Our 3 OpenOffice 07 quick files have no description properties. + return true; } @@ -85,63 +84,64 @@ public class PoiMetadataExtracterTest extends AbstractMetadataExtracterTest protected void testFileSpecificMetadata(String mimetype, Map properties) { - // This test class is testing 3 files: quick.docx, quick.xlsx & quick.pptx. - // Their created times are hard-coded here for checking. - // Of course this means that if the files are updated, the test will break - // but those files are rarely modified - only added to. - if (MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING.equals(mimetype)) - { - checkFileCreationDate(mimetype, properties, "2010-01-06T17:32:00.000Z"); - } - else if (MimetypeMap.MIMETYPE_OPENXML_SPREADSHEET.equals(mimetype)) - { - checkFileCreationDate(mimetype, properties, "1996-10-15T00:33:28.000+01:00"); - } - else if (MimetypeMap.MIMETYPE_OPENXML_PRESENTATION.equals(mimetype)) - { - // Extraordinary! This document predates Isaac Newton's Principia Mathematica by almost a century. ;) - checkFileCreationDate(mimetype, properties, "1601-01-01T00:00:00.000Z"); - } + // This test class is testing 3 files: quick.docx, quick.xlsx & quick.pptx. + // Their created times are hard-coded here for checking. + // Of course this means that if the files are updated, the test will break + // but those files are rarely modified - only added to. + if (MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING.equals(mimetype)) + { + checkFileCreationDate(mimetype, properties, "2010-01-06T17:32:00.000Z"); + } + else if (MimetypeMap.MIMETYPE_OPENXML_SPREADSHEET.equals(mimetype)) + { + checkFileCreationDate(mimetype, properties, "1996-10-15T00:33:28.000+01:00"); + } + else if (MimetypeMap.MIMETYPE_OPENXML_PRESENTATION.equals(mimetype)) + { + // Extraordinary! This document predates Isaac Newton's Principia Mathematica by almost a century. ;) + checkFileCreationDate(mimetype, properties, "1601-01-01T00:00:00.000Z"); + } } - private void checkFileCreationDate(String mimetype, Map properties, String date) - { - assertEquals("Property " + ContentModel.PROP_CREATED + " not found for mimetype " + mimetype, date, - DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_CREATED))); - } - - /** - * Tests that metadata extraction from a somewhat corrupt file with several - * thousand footnotes times out properly. - * - * @throws Exception - */ - public void testProblemFootnotes() throws Exception - { - long timeoutMs = 2000; - - MetadataExtracterLimits limits = new MetadataExtracterLimits(); + private void checkFileCreationDate(String mimetype, Map properties, String date) + { + assertEquals("Property " + ContentModel.PROP_CREATED + " not found for mimetype " + mimetype, date, + DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_CREATED))); + } + + /** + * Tests that metadata extraction from a somewhat corrupt file with several + * thousand footnotes times out properly. + * + * @throws Exception + */ + public void testProblemFootnotes() throws Exception + { + long timeoutMs = 2000; + + MetadataExtracterLimits limits = new MetadataExtracterLimits(); limits.setTimeoutMs(timeoutMs); HashMap mimetypeLimits = new HashMap(1); mimetypeLimits.put("*", limits); ((PoiMetadataExtracter) getExtracter()).setMimetypeLimits(mimetypeLimits); - - File sourceFile = AbstractContentTransformerTest.loadNamedQuickTestFile("problemFootnotes.docx"); - - long startTime = (new Date()).getTime(); - - Map properties = new HashMap(); + + File sourceFile = AbstractContentTransformerTest.loadNamedQuickTestFile("problemFootnotes.docx"); + + Map properties = new HashMap(); // construct a reader onto the source file ContentReader sourceReader = new FileContentReader(sourceFile); sourceReader.setMimetype(MimetypeMap.MIMETYPE_OPENXML_WORDPROCESSING); + + long startTime = System.currentTimeMillis(); + getExtracter().extract(sourceReader, properties); - - long extractionTime = (new Date()).getTime() - startTime; - - assertTrue("Metadata extraction took (" + extractionTime + "ms) " + - "but should have failed with a timeout at " + timeoutMs + "ms", - extractionTime < (timeoutMs + 50)); // bit of wiggle room for logging, cleanup, etc. - assertFalse("Reader was not closed", sourceReader.isChannelOpen()); - } + + long extractionTime = System.currentTimeMillis() - startTime; + + assertTrue("Metadata extraction took (" + extractionTime + "ms) " + + "but should have failed with a timeout at " + timeoutMs + "ms", + extractionTime < (timeoutMs + 100)); // bit of wiggle room for logging, cleanup, etc. + assertFalse("Reader was not closed", sourceReader.isChannelOpen()); + } }