Skip to content

Commit

Permalink
update unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alexo committed Jun 5, 2012
1 parent 6dc6bb6 commit 1034805
Show file tree
Hide file tree
Showing 29 changed files with 117 additions and 34 deletions.
4 changes: 2 additions & 2 deletions wro4j-core/src/main/java/ro/isdc/wro/manager/WroManager.java
Expand Up @@ -208,13 +208,13 @@ private void serveProcessedBundle()
if (cacheValue.getRawContent() != null) {
// use gziped response if supported & Set content length based on gzip flag
if (isGzipAllowed()) {
response.setContentLength(cacheValue.getGzippedContent().length);
// response.setContentLength(cacheValue.getGzippedContent().length);
// add gzip header and gzip response
response.setHeader(HttpHeader.CONTENT_ENCODING.toString(), "gzip");
response.setHeader("Vary", "Accept-Encoding");
IOUtils.write(cacheValue.getGzippedContent(), os);
} else {
response.setContentLength(cacheValue.getRawContent().length());
// response.setContentLength(cacheValue.getRawContent().length());
IOUtils.write(cacheValue.getRawContent(), os, configuration.getEncoding());
}
}
Expand Down
Expand Up @@ -19,6 +19,7 @@ public class PerformanceLoggerCallback
extends LifecycleCallbackSupport {
private static final Logger LOG = LoggerFactory.getLogger(PerformanceLoggerCallback.class);
private static final String SHORT_SUMMARY = "=====Performance Logger Statistics==============";
// TODO use ThreadLocal to store watch in order to be threadSafe.
private StopWatch watch;

/**
Expand Down
Expand Up @@ -50,8 +50,7 @@ public abstract class AbstractCssUrlRewritingProcessor
/**
* Pattern used to identify the placeholders where the url rewriting will be performed.
*/
//(.*:\\s*
private static final String PATTERN_PATH = "(background.*?:\\s*url\\s*\\((\\s*['\"]?((?:.*?|\\s*?))['\"]?\\s*)\\)|src\\s*=\\s*['\"]((?:.|\\s)*?)['\"])";
private static final String PATTERN_PATH = "(?ims)(background.*?url\\s*\\((\\s*['\"]?((?:.*?|\\s*?))['\"]?\\s*)\\)|.*?:.*?src\\s*=\\s*['\"]((?:.|\\s)*?)['\"])";
/**
* Compiled pattern.
*/
Expand Down
Expand Up @@ -91,7 +91,11 @@ private boolean isImageUrlChangeRequired(final String imageUrl) {
return !(imageUrl.startsWith("http") || (isProxyResource(imageUrl)));
}

private DataUriGenerator getDataUriGenerator() {
/**
* @return the DataUriGenerator class responsible for transforming streams into base64 encoded strings.
* @VisibleForTesting
*/
protected DataUriGenerator getDataUriGenerator() {
if (dataUriGenerator == null) {
dataUriGenerator = new DataUriGenerator();
}
Expand Down
Expand Up @@ -240,7 +240,10 @@ private String computeNewImageLocation(final String cssUri, final String imageUr
// remove '/' from imageUrl if it starts with one.
final String processedImageUrl = cleanImageUrl.startsWith(ServletContextUriLocator.PREFIX) ? cleanImageUrl.substring(1)
: cleanImageUrl;
// remove redundant part of the path
// remove redundant part of the path, but skip protected resources (ex: located inside /WEB-INF/ folder). -> Not
// sure if this is a problem yet.
// final String computedImageLocation = ServletContextUriLocator.isProtectedResource(cssUriFolder) ? cssUriFolder
// + processedImageUrl : cleanPath(cssUriFolder + processedImageUrl);
final String computedImageLocation = cleanPath(cssUriFolder + processedImageUrl);
LOG.debug("computedImageLocation: {}", computedImageLocation);
return computedImageLocation;
Expand Down
Expand Up @@ -10,6 +10,7 @@

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;

import ro.isdc.wro.config.Context;
import ro.isdc.wro.manager.factory.BaseWroManagerFactory;
Expand All @@ -23,6 +24,7 @@
import ro.isdc.wro.model.resource.locator.factory.UriLocatorFactory;
import ro.isdc.wro.model.resource.processor.factory.SimpleProcessorsFactory;
import ro.isdc.wro.model.resource.processor.impl.css.CssDataUriPreProcessor;
import ro.isdc.wro.model.resource.processor.support.DataUriGenerator;
import ro.isdc.wro.util.WroTestUtils;


Expand All @@ -36,10 +38,27 @@ public class TestCssDataUriPreProcessor {
private final String PROXY_RESOURCE_PATH = "classpath:ro/isdc/wro/model/resource/processor/dataUri/proxyImage/";
private ResourcePreProcessor processor;

protected DataUriGenerator createMockDataUriGenerator() {
try {
DataUriGenerator uriGenerator = Mockito.mock(DataUriGenerator.class);
Mockito.when(uriGenerator.generateDataURI(Mockito.any(InputStream.class), Mockito.anyString())).thenReturn(
"data:image/png;base64,iVBORw0KG");
return uriGenerator;
} catch (Exception e) {
throw new RuntimeException("Cannot create DataUriGenerator mock", e);
}
}

@Before
public void init() {
public void init()
throws Exception {
Context.set(Context.standaloneContext());
processor = new CssDataUriPreProcessor();
processor = new CssDataUriPreProcessor() {
@Override
protected DataUriGenerator getDataUriGenerator() {
return createMockDataUriGenerator();
}
};
initProcessor(processor);
}

Expand Down Expand Up @@ -82,7 +101,7 @@ public InputStream locate(final String uri)
}

@Test
public void testFromFolder()
public void shouldTransformResourcesFromFolder()
throws Exception {
final URL url = getClass().getResource("dataUri");

Expand All @@ -91,6 +110,19 @@ public void testFromFolder()
WroTestUtils.compareFromDifferentFoldersByExtension(testFolder, expectedFolder, "css", processor);
}

@Test
public void shouldTransformLargeResources()
throws Exception {
processor = new CssDataUriPreProcessor();
initProcessor(processor);

final URL url = getClass().getResource("dataUri");

final File testFolder = new File(url.getFile(), "test");
final File expectedFolder = new File(url.getFile(), "expectedLarge");
WroTestUtils.compareFromDifferentFoldersByExtension(testFolder, expectedFolder, "css", processor);
}

@Test
public void shouldSupportOnlyCssResources() {
WroTestUtils.assertProcessorSupportResourceTypes(processor, ResourceType.CSS);
Expand Down
Expand Up @@ -13,6 +13,7 @@
import ro.isdc.wro.model.resource.ResourceType;
import ro.isdc.wro.model.resource.processor.impl.css.CssDataUriPreProcessor;
import ro.isdc.wro.model.resource.processor.impl.css.FallbackCssDataUriProcessor;
import ro.isdc.wro.model.resource.processor.support.DataUriGenerator;
import ro.isdc.wro.util.WroTestUtils;


Expand All @@ -30,19 +31,38 @@ public class TestFallbackCssDataUriProcessor
@Before
public void init() {
Context.set(Context.standaloneContext());
processor = new FallbackCssDataUriProcessor();
processor = new FallbackCssDataUriProcessor() {
@Override
protected DataUriGenerator getDataUriGenerator() {
return createMockDataUriGenerator();
}
};
//find a way to use a custom uriLocator
initProcessor(processor);
}

@Override
@Test
public void testFromFolder()
public void shouldTransformResourcesFromFolder()
throws Exception {
final URL url = getClass().getResource("dataUri");

final File testFolder = new File(url.getFile(), "test");
final File expectedFolder = new File(url.getFile(), "fallbackExpected");
final File expectedFolder = new File(url.getFile(), "expectedFallback");
WroTestUtils.compareFromDifferentFoldersByExtension(testFolder, expectedFolder, "css", processor);
}

@Override
@Test
public void shouldTransformLargeResources()
throws Exception {
processor = new CssDataUriPreProcessor();
initProcessor(processor);

final URL url = getClass().getResource("dataUri");

final File testFolder = new File(url.getFile(), "test");
final File expectedFolder = new File(url.getFile(), "expectedFallbackLarge");
WroTestUtils.compareFromDifferentFoldersByExtension(testFolder, expectedFolder, "css", processor);
}

Expand Down
@@ -1,3 +1,5 @@
input.button {
background: url(data:image/png;base64,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);
background: url(data:image/png;base64,iVBORw0KG);
background-image: url("data:image/png;base64,iVBORw0KG");
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='data:image/png;base64,iVBORw0KG', sizingMethod='scale');
}

This file was deleted.

0 comments on commit 1034805

Please sign in to comment.