From 76cea3002b0851f14895d0fb269fdc20d29b111a Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Thu, 8 May 2008 10:46:36 +0000 Subject: [PATCH] Merged V2.9 to HEAD 8960: Stop tests running if image transformer not available 8991: Fix AR-2099 8993: Fix AR-2099 - fix test fallout git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9031 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/repo-admin-context.xml | 4 +- .../repo/dictionary/DictionaryComponent.java | 5 +- .../repo/dictionary/DictionaryDAOTest.java | 23 +- .../DictionaryRepositoryBootstrap.java | 83 +++-- .../DictionaryRepositoryBootstrapTest.java | 2 +- .../thumbnail/ThumbnailServiceImplTest.java | 292 +++++++++--------- 6 files changed, 205 insertions(+), 204 deletions(-) diff --git a/config/alfresco/repo-admin-context.xml b/config/alfresco/repo-admin-context.xml index 5c88aefced..e86b4f7a70 100755 --- a/config/alfresco/repo-admin-context.xml +++ b/config/alfresco/repo-admin-context.xml @@ -45,7 +45,7 @@ /app:company_home/app:dictionary/app:models - lucene + xpath @@ -55,7 +55,7 @@ /app:company_home/app:dictionary/app:messages - lucene + xpath diff --git a/source/java/org/alfresco/repo/dictionary/DictionaryComponent.java b/source/java/org/alfresco/repo/dictionary/DictionaryComponent.java index e9a2f22022..8aa908a603 100644 --- a/source/java/org/alfresco/repo/dictionary/DictionaryComponent.java +++ b/source/java/org/alfresco/repo/dictionary/DictionaryComponent.java @@ -35,7 +35,6 @@ import org.alfresco.service.cmr.dictionary.AssociationDefinition; import org.alfresco.service.cmr.dictionary.ClassDefinition; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; -import org.alfresco.service.cmr.dictionary.InvalidTypeException; import org.alfresco.service.cmr.dictionary.ModelDefinition; import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition; @@ -199,12 +198,12 @@ public class DictionaryComponent implements DictionaryService, TenantDeployer ClassDefinition classDef = getClass(className); if (classDef == null) { - throw new InvalidTypeException(className); + return false; } ClassDefinition ofClassDef = getClass(ofClassName); if (ofClassDef == null) { - throw new InvalidTypeException(ofClassName); + return false; } // Only check if both ends are either a type or an aspect diff --git a/source/java/org/alfresco/repo/dictionary/DictionaryDAOTest.java b/source/java/org/alfresco/repo/dictionary/DictionaryDAOTest.java index 7fa24f1714..44c91eb724 100644 --- a/source/java/org/alfresco/repo/dictionary/DictionaryDAOTest.java +++ b/source/java/org/alfresco/repo/dictionary/DictionaryDAOTest.java @@ -44,7 +44,6 @@ import org.alfresco.service.cmr.dictionary.Constraint; import org.alfresco.service.cmr.dictionary.ConstraintDefinition; import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; -import org.alfresco.service.cmr.dictionary.InvalidTypeException; import org.alfresco.service.cmr.dictionary.ModelDefinition; import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition; @@ -311,19 +310,15 @@ public class DictionaryDAOTest extends TestCase QName referenceable = QName.createQName(TEST_URL, "referenceable"); // Test invalid args - try - { - service.isSubClass(invalid, referenceable); - fail("Failed to catch invalid class parameter"); - } - catch(InvalidTypeException e) {} - - try - { - service.isSubClass(referenceable, invalid); - fail("Failed to catch invalid class parameter"); - } - catch(InvalidTypeException e) {} + boolean testI1 = service.isSubClass(invalid, referenceable); + + assertFalse(testI1); + + boolean testI2 = service.isSubClass(referenceable, invalid); + assertFalse(testI2); + + boolean testI3 = service.isSubClass(invalid, invalid); + assertFalse(testI3); // Test various flavours of subclassof boolean test1 = service.isSubClass(file, referenceable); // type vs aspect diff --git a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java index 8ac7b43b54..7012c2405f 100644 --- a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java +++ b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java @@ -43,7 +43,6 @@ import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.StoreRef; -import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.transaction.TransactionService; @@ -236,28 +235,31 @@ public class DictionaryRepositoryBootstrap extends AbstractLifecycleBean impleme continue; // skip this location } - if (repositoryLocation.getQueryLanguage().equals(SearchService.LANGUAGE_LUCENE)) + if (repositoryLocation.getQueryLanguage().equals(SearchService.LANGUAGE_XPATH)) { - ResultSet rs = searchService.query(storeRef, - SearchService.LANGUAGE_LUCENE, - repositoryLocation.getLuceneQueryStatement(ContentModel.TYPE_DICTIONARY_MODEL.getPrefixedQName(namespaceService))); - if (rs.length() > 0) - { - for (NodeRef dictionaryModel : rs.getNodeRefs()) + NodeRef rootNode = nodeService.getRootNode(storeRef); + + List nodeRefs = searchService.selectNodes(rootNode, + repositoryLocation.getXPathQueryStatement(ContentModel.TYPE_DICTIONARY_MODEL.getPrefixedQName(namespaceService)), + null, + namespaceService, + false); + + for (NodeRef dictionaryModel : nodeRefs) + { + // Ignore if the node is a working copy or if its inactive + if (nodeService.hasAspect(dictionaryModel, ContentModel.ASPECT_WORKING_COPY) == false) { - // Ignore if the node is a working copy or if its inactive - if (nodeService.hasAspect(dictionaryModel, ContentModel.ASPECT_WORKING_COPY) == false) + Boolean isActive = (Boolean)nodeService.getProperty(dictionaryModel, ContentModel.PROP_MODEL_ACTIVE); + + if ((isActive != null) && (isActive.booleanValue() == true)) { - Boolean isActive = (Boolean)nodeService.getProperty(dictionaryModel, ContentModel.PROP_MODEL_ACTIVE); - if ((isActive != null) && (isActive.booleanValue() == true)) + M2Model model = createM2Model(dictionaryModel); + if (model != null) { - M2Model model = createM2Model(dictionaryModel); - if (model != null) + for (M2Namespace namespace : model.getNamespaces()) { - for (M2Namespace namespace : model.getNamespaces()) - { - modelMap.put(namespace.getUri(), model); - } + modelMap.put(namespace.getUri(), model); } } } @@ -287,7 +289,6 @@ public class DictionaryRepositoryBootstrap extends AbstractLifecycleBean impleme for (RepositoryLocation repositoryLocation : this.repositoryMessagesLocations) { StoreRef storeRef = repositoryLocation.getStoreRef(); - String path = repositoryLocation.getPath(); if (! nodeService.exists(storeRef)) { @@ -295,34 +296,28 @@ public class DictionaryRepositoryBootstrap extends AbstractLifecycleBean impleme continue; // skip this location } - if (repositoryLocation.getQueryLanguage().equals(SearchService.LANGUAGE_LUCENE)) + if (repositoryLocation.getQueryLanguage().equals(SearchService.LANGUAGE_XPATH)) { - ResultSet rs = searchService.query(storeRef, - SearchService.LANGUAGE_LUCENE, - repositoryLocation.getLuceneQueryStatement(ContentModel.TYPE_CONTENT.getPrefixedQName(namespaceService))); - if (rs.length() > 0) - { - List resourceBundleBaseNames = new ArrayList(); - for (NodeRef messageResource : rs.getNodeRefs()) - { - String resourceName = (String) nodeService.getProperty( - messageResource, ContentModel.PROP_NAME); - - String bundleBaseName = messageService.getBaseBundleName(resourceName); - - if (!resourceBundleBaseNames.contains(bundleBaseName)) - { - resourceBundleBaseNames.add(bundleBaseName); - } - } + NodeRef rootNode = nodeService.getRootNode(storeRef); + + List nodeRefs = searchService.selectNodes(rootNode, + repositoryLocation.getXPathQueryStatement(ContentModel.TYPE_CONTENT.getPrefixedQName(namespaceService)), + null, + namespaceService, + false); + + List resourceBundleBaseNames = new ArrayList(); + + for (NodeRef messageResource : nodeRefs) + { + String resourceName = (String) nodeService.getProperty( + messageResource, ContentModel.PROP_NAME); - // Only need to register resource bundle names - for (String resourceBundleBaseName : resourceBundleBaseNames) + String bundleBaseName = messageService.getBaseBundleName(resourceName); + + if (!resourceBundleBaseNames.contains(bundleBaseName)) { - logger.info("Register bundle: " + resourceBundleBaseName); - - messageService.registerResourceBundle(storeRef.toString() + path + "/cm:" + resourceBundleBaseName); - + resourceBundleBaseNames.add(bundleBaseName); } } } diff --git a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrapTest.java b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrapTest.java index 5481365a96..da0646a7e8 100644 --- a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrapTest.java +++ b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrapTest.java @@ -110,7 +110,7 @@ public class DictionaryRepositoryBootstrapTest extends BaseAlfrescoSpringTest RepositoryLocation location = new RepositoryLocation(); location.setStoreProtocol(this.storeRef.getProtocol()); location.setStoreId(this.storeRef.getIdentifier()); - location.setQueryLanguage(SearchService.LANGUAGE_LUCENE); + location.setQueryLanguage(SearchService.LANGUAGE_XPATH); // NOTE: we are not setting the path for now .. in doing so we are searching the whole dictionary List locations = new ArrayList(); diff --git a/source/java/org/alfresco/repo/thumbnail/ThumbnailServiceImplTest.java b/source/java/org/alfresco/repo/thumbnail/ThumbnailServiceImplTest.java index b74bba0b0c..8f011bd520 100644 --- a/source/java/org/alfresco/repo/thumbnail/ThumbnailServiceImplTest.java +++ b/source/java/org/alfresco/repo/thumbnail/ThumbnailServiceImplTest.java @@ -83,164 +83,176 @@ public class ThumbnailServiceImplTest extends BaseAlfrescoSpringTest public void testCreateThumbnailFromImage() throws Exception { - NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); - NodeRef gifOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_GIF); - - // ===== small: 64x64, marked as thumbnail ==== - - ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); - imageResizeOptions.setWidth(64); - imageResizeOptions.setHeight(64); - imageResizeOptions.setResizeToThumbnail(true); - ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); - imageTransformationOptions.setResizeOptions(imageResizeOptions); - CreateOptions createOptions = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions, - "small"); - NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); - assertNotNull(thumbnail1); - checkThumbnailed(jpgOrig, "small"); - checkThumbnail(thumbnail1, imageTransformationOptions); - outputThumbnailTempContentLocation(thumbnail1, "jpg", "small - 64x64, marked as thumbnail"); - - // ===== small2: 64x64, aspect not maintained ==== - - ImageResizeOptions imageResizeOptions2 = new ImageResizeOptions(); - imageResizeOptions2.setWidth(64); - imageResizeOptions2.setHeight(64); - imageResizeOptions2.setMaintainAspectRatio(false); - ImageTransformationOptions imageTransformationOptions2 = new ImageTransformationOptions(); - imageTransformationOptions2.setResizeOptions(imageResizeOptions2); - CreateOptions createOptions2 = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions2, - "small2"); - NodeRef thumbnail2 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions2); - checkThumbnailed(jpgOrig, "small2"); - checkThumbnail(thumbnail2, imageTransformationOptions2); - outputThumbnailTempContentLocation(thumbnail2, "jpg", "small2 - 64x64, aspect not maintained"); - - // ===== half: 50%x50 ===== - - ImageResizeOptions imageResizeOptions3 = new ImageResizeOptions(); - imageResizeOptions3.setWidth(50); - imageResizeOptions3.setHeight(50); - imageResizeOptions3.setPercentResize(true); - ImageTransformationOptions imageTransformationOptions3 = new ImageTransformationOptions(); - imageTransformationOptions3.setResizeOptions(imageResizeOptions3); - CreateOptions createOptions3 = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions3, - "half"); - NodeRef thumbnail3 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions3); - checkThumbnailed(jpgOrig, "half"); - checkThumbnail(thumbnail3, imageTransformationOptions3); - outputThumbnailTempContentLocation(thumbnail3, "jpg", "half - 50%x50%"); - - - // ===== half2: 50%x50 from gif ===== - - ImageResizeOptions imageResizeOptions4 = new ImageResizeOptions(); - imageResizeOptions4.setWidth(50); - imageResizeOptions4.setHeight(50); - imageResizeOptions4.setPercentResize(true); - ImageTransformationOptions imageTransformationOptions4 = new ImageTransformationOptions(); - imageTransformationOptions4.setResizeOptions(imageResizeOptions4); - CreateOptions createOptions4 = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions4, - "half2"); - NodeRef thumbnail4 = this.thumbnailService.createThumbnail(gifOrig, ContentModel.PROP_CONTENT, createOptions4); - checkThumbnailed(gifOrig, "half2"); - checkThumbnail(thumbnail4, imageTransformationOptions4); - outputThumbnailTempContentLocation(thumbnail4, "jpg", "half2 - 50%x50%, from gif"); - + // Check that the image transformations are available + if (this.contentService.getImageTransformer() != null) + { + NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); + NodeRef gifOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_GIF); + + // ===== small: 64x64, marked as thumbnail ==== + + ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); + imageResizeOptions.setWidth(64); + imageResizeOptions.setHeight(64); + imageResizeOptions.setResizeToThumbnail(true); + ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); + imageTransformationOptions.setResizeOptions(imageResizeOptions); + CreateOptions createOptions = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions, + "small"); + + NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); + assertNotNull(thumbnail1); + checkThumbnailed(jpgOrig, "small"); + checkThumbnail(thumbnail1, imageTransformationOptions); + outputThumbnailTempContentLocation(thumbnail1, "jpg", "small - 64x64, marked as thumbnail"); + + // ===== small2: 64x64, aspect not maintained ==== + + ImageResizeOptions imageResizeOptions2 = new ImageResizeOptions(); + imageResizeOptions2.setWidth(64); + imageResizeOptions2.setHeight(64); + imageResizeOptions2.setMaintainAspectRatio(false); + ImageTransformationOptions imageTransformationOptions2 = new ImageTransformationOptions(); + imageTransformationOptions2.setResizeOptions(imageResizeOptions2); + CreateOptions createOptions2 = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions2, + "small2"); + NodeRef thumbnail2 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions2); + checkThumbnailed(jpgOrig, "small2"); + checkThumbnail(thumbnail2, imageTransformationOptions2); + outputThumbnailTempContentLocation(thumbnail2, "jpg", "small2 - 64x64, aspect not maintained"); + + // ===== half: 50%x50 ===== + + ImageResizeOptions imageResizeOptions3 = new ImageResizeOptions(); + imageResizeOptions3.setWidth(50); + imageResizeOptions3.setHeight(50); + imageResizeOptions3.setPercentResize(true); + ImageTransformationOptions imageTransformationOptions3 = new ImageTransformationOptions(); + imageTransformationOptions3.setResizeOptions(imageResizeOptions3); + CreateOptions createOptions3 = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions3, + "half"); + NodeRef thumbnail3 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions3); + checkThumbnailed(jpgOrig, "half"); + checkThumbnail(thumbnail3, imageTransformationOptions3); + outputThumbnailTempContentLocation(thumbnail3, "jpg", "half - 50%x50%"); + + + // ===== half2: 50%x50 from gif ===== + + ImageResizeOptions imageResizeOptions4 = new ImageResizeOptions(); + imageResizeOptions4.setWidth(50); + imageResizeOptions4.setHeight(50); + imageResizeOptions4.setPercentResize(true); + ImageTransformationOptions imageTransformationOptions4 = new ImageTransformationOptions(); + imageTransformationOptions4.setResizeOptions(imageResizeOptions4); + CreateOptions createOptions4 = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions4, + "half2"); + NodeRef thumbnail4 = this.thumbnailService.createThumbnail(gifOrig, ContentModel.PROP_CONTENT, createOptions4); + checkThumbnailed(gifOrig, "half2"); + checkThumbnail(thumbnail4, imageTransformationOptions4); + outputThumbnailTempContentLocation(thumbnail4, "jpg", "half2 - 50%x50%, from gif"); + } } public void testDuplicationNames() throws Exception { - NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); - ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); - imageResizeOptions.setWidth(64); - imageResizeOptions.setHeight(64); - imageResizeOptions.setResizeToThumbnail(true); - ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); - imageTransformationOptions.setResizeOptions(imageResizeOptions); - CreateOptions createOptions = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions, - "small"); - NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); - assertNotNull(thumbnail1); - checkThumbnailed(jpgOrig, "small"); - checkThumbnail(thumbnail1, imageTransformationOptions); - - try + if (contentService.getImageTransformer() != null) { - this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); - fail("A duplicate exception should have been raised"); - } - catch (ThumbnailException exception) - { - // OK since this should have been thrown + NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); + ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); + imageResizeOptions.setWidth(64); + imageResizeOptions.setHeight(64); + imageResizeOptions.setResizeToThumbnail(true); + ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); + imageTransformationOptions.setResizeOptions(imageResizeOptions); + CreateOptions createOptions = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions, + "small"); + NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); + assertNotNull(thumbnail1); + checkThumbnailed(jpgOrig, "small"); + checkThumbnail(thumbnail1, imageTransformationOptions); + + try + { + this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); + fail("A duplicate exception should have been raised"); + } + catch (ThumbnailException exception) + { + // OK since this should have been thrown + } } } public void testThumbnailUpdate() throws Exception { - // First create a thumbnail - NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); - ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); - imageResizeOptions.setWidth(64); - imageResizeOptions.setHeight(64); - imageResizeOptions.setResizeToThumbnail(true); - ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); - imageTransformationOptions.setResizeOptions(imageResizeOptions); - CreateOptions createOptions = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions, - "small"); - NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); - - // Update the thumbnail - this.thumbnailService.updateThumbnail(thumbnail1); - + if (contentService.getImageTransformer() != null) + { + // First create a thumbnail + NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); + ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); + imageResizeOptions.setWidth(64); + imageResizeOptions.setHeight(64); + imageResizeOptions.setResizeToThumbnail(true); + ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); + imageTransformationOptions.setResizeOptions(imageResizeOptions); + CreateOptions createOptions = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions, + "small"); + NodeRef thumbnail1 = this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); + + // Update the thumbnail + this.thumbnailService.updateThumbnail(thumbnail1); + } } public void testGetThumbnailByName() throws Exception { - NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); - - // Check for missing thumbnail - NodeRef result1 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "small"); - assertNull("The thumbnail 'small' should have been missing", result1); - - // Create the thumbnail - ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); - imageResizeOptions.setWidth(64); - imageResizeOptions.setHeight(64); - imageResizeOptions.setResizeToThumbnail(true); - ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); - imageTransformationOptions.setResizeOptions(imageResizeOptions); - CreateOptions createOptions = new CreateOptions( - MimetypeMap.MIMETYPE_IMAGE_JPEG, - imageTransformationOptions, - "small"); - this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); - - // Try and retrieve the thumbnail - NodeRef result2 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "small"); - assertNotNull(result2); - checkThumbnail(result2, imageTransformationOptions); - - // Check for an other thumbnail that doesn't exist - NodeRef result3 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "anotherone"); - assertNull("The thumbnail 'anotherone' should have been missing", result3); + if (contentService.getImageTransformer() != null) + { + NodeRef jpgOrig = createOrigionalContent(this.folder, MimetypeMap.MIMETYPE_IMAGE_JPEG); + + // Check for missing thumbnail + NodeRef result1 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "small"); + assertNull("The thumbnail 'small' should have been missing", result1); + + // Create the thumbnail + ImageResizeOptions imageResizeOptions = new ImageResizeOptions(); + imageResizeOptions.setWidth(64); + imageResizeOptions.setHeight(64); + imageResizeOptions.setResizeToThumbnail(true); + ImageTransformationOptions imageTransformationOptions = new ImageTransformationOptions(); + imageTransformationOptions.setResizeOptions(imageResizeOptions); + CreateOptions createOptions = new CreateOptions( + MimetypeMap.MIMETYPE_IMAGE_JPEG, + imageTransformationOptions, + "small"); + this.thumbnailService.createThumbnail(jpgOrig, ContentModel.PROP_CONTENT, createOptions); + + // Try and retrieve the thumbnail + NodeRef result2 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "small"); + assertNotNull(result2); + checkThumbnail(result2, imageTransformationOptions); + + // Check for an other thumbnail that doesn't exist + NodeRef result3 = this.thumbnailService.getThumbnailByName(jpgOrig, ContentModel.PROP_CONTENT, "anotherone"); + assertNull("The thumbnail 'anotherone' should have been missing", result3); + } } // TODO test getThumbnails