Fix AR-1464: Locale is carried into and out of the Content stack.

ApplicationContextHelper now gives out a singleton ApplicationContext and includes a 'closeApplicationContext' method.
Pulled all "org.alfresco.repo.content/**Test" classes into a single test suite.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5722 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-05-18 14:26:08 +00:00
parent 7649017ac0
commit e3223d97fb
24 changed files with 288 additions and 143 deletions

View File

@@ -32,13 +32,20 @@ import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
import junit.framework.TestCase;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.content.filestore.FileContentReader;
import org.alfresco.repo.content.filestore.FileContentWriter;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.util.BaseSpringTest;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
/**
* Provides a base set of tests for testing
@@ -47,19 +54,19 @@ import org.alfresco.util.TempFileProvider;
*
* @author Derek Hulley
*/
public abstract class AbstractContentTransformerTest extends BaseSpringTest
public abstract class AbstractContentTransformerTest extends TestCase
{
private static String QUICK_CONTENT = "The quick brown fox jumps over the lazy dog";
private static String[] QUICK_WORDS = new String[] {
"quick", "brown", "fox", "jumps", "lazy", "dog"};
protected MimetypeMap mimetypeMap;
public final void setMimetypeMap(MimetypeMap mimetypeMap)
{
this.mimetypeMap = mimetypeMap;
}
private static Log logger = LogFactory.getLog(AbstractContentTransformerTest.class);
protected static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
protected ServiceRegistry serviceRegistry;
protected MimetypeService mimetypeService;
/**
* Fetches a transformer to test for a given transformation. The transformer
* does not <b>have</b> to be reliable for the given format - if it isn't
@@ -77,8 +84,10 @@ public abstract class AbstractContentTransformerTest extends BaseSpringTest
* Ensures that the temp locations are cleaned out before the tests start
*/
@Override
protected void onSetUpInTransaction() throws Exception
protected void setUp() throws Exception
{
serviceRegistry = (ServiceRegistry) ctx.getBean(ServiceRegistry.SERVICE_REGISTRY);
mimetypeService = serviceRegistry.getMimetypeService();
// perform a little cleaning up
long now = System.currentTimeMillis();
TempFileProvider.TempFileCleanerJob.removeFiles(now);
@@ -89,7 +98,7 @@ public abstract class AbstractContentTransformerTest extends BaseSpringTest
*/
public void testSetUp() throws Exception
{
assertNotNull("MimetypeMap not present", mimetypeMap);
assertNotNull("MimetypeMap not present", mimetypeService);
// check that the quick resources are available
File sourceFile = AbstractContentTransformerTest.loadQuickTestFile("txt");
assertNotNull(sourceFile);
@@ -144,11 +153,11 @@ public abstract class AbstractContentTransformerTest extends BaseSpringTest
.append("\n");
// get all mimetypes
Set<String> mimetypes = new TreeSet<String>(mimetypeMap.getMimetypes());
Set<String> mimetypes = new TreeSet<String>(mimetypeService.getMimetypes());
for (String sourceMimetype : mimetypes)
{
// attempt to get a source file for each mimetype
String sourceExtension = mimetypeMap.getExtension(sourceMimetype);
String sourceExtension = mimetypeService.getExtension(sourceMimetype);
sb.append(" Source Extension: ").append(sourceExtension).append("\n");
@@ -157,7 +166,7 @@ public abstract class AbstractContentTransformerTest extends BaseSpringTest
{
ContentWriter targetWriter = null;
// construct a reader onto the source file
String targetExtension = mimetypeMap.getExtension(targetMimetype);
String targetExtension = mimetypeService.getExtension(targetMimetype);
// must we test the transformation?
ContentTransformer transformer = getTransformer(sourceMimetype, targetMimetype);

View File

@@ -25,8 +25,6 @@
package org.alfresco.repo.content.transform;
import org.alfresco.repo.content.MimetypeMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @see org.alfresco.repo.content.transform.BinaryPassThroughContentTransformer
@@ -35,12 +33,13 @@ import org.apache.commons.logging.LogFactory;
*/
public class BinaryPassThroughContentTransformerTest extends AbstractContentTransformerTest
{
private static final Log logger = LogFactory.getLog(BinaryPassThroughContentTransformerTest.class);
private ContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
transformer = new BinaryPassThroughContentTransformer();
}

View File

@@ -42,10 +42,13 @@ public class ComplexContentTransformerTest extends AbstractContentTransformerTes
private ComplexContentTransformer transformer;
private boolean isAvailable;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
ContentTransformer unoTransformer = (ContentTransformer) applicationContext.getBean("transformer.OpenOffice");
ContentTransformer pdfBoxTransformer = (ContentTransformer) applicationContext.getBean("transformer.PdfBox");
super.setUp();
ContentTransformer unoTransformer = (ContentTransformer) ctx.getBean("transformer.OpenOffice");
ContentTransformer pdfBoxTransformer = (ContentTransformer) ctx.getBean("transformer.PdfBox");
// make sure that they are working for this test
if (unoTransformer.getReliability(MimetypeMap.MIMETYPE_PPT, MimetypeMap.MIMETYPE_PDF) == 0.0)
{
@@ -63,7 +66,7 @@ public class ComplexContentTransformerTest extends AbstractContentTransformerTes
}
transformer = new ComplexContentTransformer();
transformer.setMimetypeService(mimetypeMap);
transformer.setMimetypeService(mimetypeService);
// set the transformer list
List<ContentTransformer> transformers = new ArrayList<ContentTransformer>(2);
transformers.add(unoTransformer);

View File

@@ -55,17 +55,13 @@ public class ContentTransformerRegistryTest extends AbstractContentTransformerTe
private ContentReader reader;
private ContentWriter writer;
/**
* Allows dependency injection
*/
public void setContentTransformerRegistry(ContentTransformerRegistry registry)
{
this.registry = registry;
}
@Override
public void onSetUpInTransaction() throws Exception
public void setUp() throws Exception
{
super.setUp();
registry = (ContentTransformerRegistry) ctx.getBean("contentTransformerRegistry");
reader = new FileContentReader(TempFileProvider.createTempFile(getName(), ".txt"));
reader.setMimetype(A);
writer = new FileContentWriter(TempFileProvider.createTempFile(getName(), ".txt"));
@@ -79,17 +75,17 @@ public class ContentTransformerRegistryTest extends AbstractContentTransformerTe
// create the dummyRegistry
dummyRegistry = new ContentTransformerRegistry();
// create some dummy transformers for reliability tests
new DummyTransformer(mimetypeMap, dummyRegistry, A, B, 0.3, 10L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, B, 0.6, 10L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, C, 0.5, 10L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, C, 1.0, 10L);
new DummyTransformer(mimetypeMap, dummyRegistry, B, C, 0.2, 10L);
new DummyTransformer(mimetypeService, dummyRegistry, A, B, 0.3, 10L);
new DummyTransformer(mimetypeService, dummyRegistry, A, B, 0.6, 10L);
new DummyTransformer(mimetypeService, dummyRegistry, A, C, 0.5, 10L);
new DummyTransformer(mimetypeService, dummyRegistry, A, C, 1.0, 10L);
new DummyTransformer(mimetypeService, dummyRegistry, B, C, 0.2, 10L);
// create some dummy transformers for speed tests
new DummyTransformer(mimetypeMap, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, D, 1.0, 10L); // the fast one
new DummyTransformer(mimetypeMap, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeMap, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeService, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeService, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeService, dummyRegistry, A, D, 1.0, 10L); // the fast one
new DummyTransformer(mimetypeService, dummyRegistry, A, D, 1.0, 20L);
new DummyTransformer(mimetypeService, dummyRegistry, A, D, 1.0, 20L);
}
/**
@@ -167,7 +163,7 @@ public class ContentTransformerRegistryTest extends AbstractContentTransformerTe
public void testExplicitTransformation()
{
AbstractContentTransformer dummyTransformer = new DummyTransformer(
mimetypeMap,
mimetypeService,
dummyRegistry,
MimetypeMap.MIMETYPE_FLASH, MimetypeMap.MIMETYPE_EXCEL,
1.0, 12345);

View File

@@ -36,8 +36,9 @@ public class HtmlParserContentTransformerTest extends AbstractContentTransformer
private ContentTransformer transformer;
@Override
public void onSetUpInTransaction() throws Exception
public void setUp() throws Exception
{
super.setUp();
transformer = new HtmlParserContentTransformer();
}

View File

@@ -46,12 +46,15 @@ public class OpenOfficeContentTransformerTest extends AbstractContentTransformer
private OpenOfficeContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
OpenOfficeConnection connection = (OpenOfficeConnection) applicationContext.getBean("openOfficeConnection");
super.setUp();
OpenOfficeConnection connection = (OpenOfficeConnection) ctx.getBean("openOfficeConnection");
transformer = new OpenOfficeContentTransformer();
transformer.setMimetypeService(mimetypeMap);
transformer.setMimetypeService(mimetypeService);
transformer.setConnection(connection);
transformer.setDocumentFormatsConfiguration("classpath:alfresco/mimetype/openoffice-document-formats.xml");
transformer.register();
@@ -68,7 +71,7 @@ public class OpenOfficeContentTransformerTest extends AbstractContentTransformer
public void testSetUp() throws Exception
{
super.testSetUp();
assertNotNull(mimetypeMap);
assertNotNull(mimetypeService);
}
public void testReliability() throws Exception

View File

@@ -25,8 +25,6 @@
package org.alfresco.repo.content.transform;
import org.alfresco.repo.content.MimetypeMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @see org.alfresco.repo.content.transform.PdfBoxContentTransformer
@@ -35,12 +33,13 @@ import org.apache.commons.logging.LogFactory;
*/
public class PdfBoxContentTransformerTest extends AbstractContentTransformerTest
{
private static final Log logger = LogFactory.getLog(PdfBoxContentTransformerTest.class);
private ContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
transformer = new PdfBoxContentTransformer();
}

View File

@@ -31,8 +31,6 @@ import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.content.filestore.FileContentWriter;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @see org.alfresco.repo.content.transform.PoiHssfContentTransformer
@@ -41,12 +39,13 @@ import org.apache.commons.logging.LogFactory;
*/
public class PoiHssfContentTransformerTest extends AbstractContentTransformerTest
{
private static final Log logger = LogFactory.getLog(PoiHssfContentTransformerTest.class);
private ContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
transformer = new PoiHssfContentTransformer();
}

View File

@@ -66,8 +66,10 @@ public class StringExtractingContentTransformerTest extends AbstractContentTrans
private ContentWriter targetWriter;
@Override
public void onSetUpInTransaction() throws Exception
public void setUp() throws Exception
{
super.setUp();
transformer = new StringExtractingContentTransformer();
targetWriter = new FileContentWriter(getTempFile());
targetWriter.setMimetype("text/plain");

View File

@@ -31,8 +31,6 @@ import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.content.filestore.FileContentWriter;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @see org.alfresco.repo.content.transform.TextMiningContentTransformer
@@ -41,12 +39,13 @@ import org.apache.commons.logging.LogFactory;
*/
public class TextMiningContentTransformerTest extends AbstractContentTransformerTest
{
private static final Log logger = LogFactory.getLog(TextMiningContentTransformerTest.class);
private ContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
transformer = new TextMiningContentTransformer();
}

View File

@@ -40,14 +40,17 @@ public class ImageMagickContentTransformerTest extends AbstractContentTransforme
{
private ImageMagickContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
RuntimeExec executer = new RuntimeExec();
executer.setCommand("imconvert.exe ${source} ${options} ${target}");
executer.setDefaultProperties(Collections.singletonMap("options", ""));
transformer = new ImageMagickContentTransformer();
transformer.setMimetypeService(mimetypeMap);
transformer.setMimetypeService(mimetypeService);
transformer.setExecuter(executer);
transformer.init();
}

View File

@@ -27,8 +27,6 @@ package org.alfresco.repo.content.transform.magick;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.content.transform.AbstractContentTransformerTest;
import org.alfresco.repo.content.transform.ContentTransformer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @see org.alfresco.repo.content.transform.magick.JMagickContentTransformer
@@ -37,14 +35,15 @@ import org.apache.commons.logging.LogFactory;
*/
public class JMagickContentTransformerTest extends AbstractContentTransformerTest
{
private static final Log logger = LogFactory.getLog(JMagickContentTransformerTest.class);
private JMagickContentTransformer transformer;
public void onSetUpInTransaction() throws Exception
@Override
public void setUp() throws Exception
{
super.setUp();
transformer = new JMagickContentTransformer();
transformer.setMimetypeService(mimetypeMap);
transformer.setMimetypeService(mimetypeService);
transformer.init();
}