/** * Copyright wro4j@2011 */ package ro.isdc.wro.model.resource.processor.decorator; import static org.junit.Assert.assertEquals; import java.io.File; import java.net.URL; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import ro.isdc.wro.config.Context; import ro.isdc.wro.model.resource.processor.ResourcePreProcessor; import ro.isdc.wro.model.resource.processor.impl.css.CssUrlRewritingProcessor; import ro.isdc.wro.model.resource.processor.impl.js.JSMinProcessor; import ro.isdc.wro.util.WroTestUtils; /** * @author Alex Objelean */ public class TestExtensionsAwareProcessorDecorator { @BeforeClass public static void onBeforeClass() { assertEquals(0, Context.countActive()); } @AfterClass public static void onAfterClass() { assertEquals(0, Context.countActive()); } @Before public void setUp() { Context.set(Context.standaloneContext()); } @After public void tearDown() { Context.unset(); } @Test public void shouldApplyProcessorOnlyOnResourcesWithExtensionJs() throws Exception { final ResourcePreProcessor decoratedProcessor = new JSMinProcessor(); final ResourcePreProcessor processor = ExtensionsAwareProcessorDecorator.decorate(decoratedProcessor).addExtension( "js"); WroTestUtils.createInjector().inject(processor); // we use test resource relative to TestProcessorsUtils class final URL url = ResourcePreProcessor.class.getResource("extensionAware"); final File testFolder = new File(url.getFile(), "test"); final File expectedFolder = new File(url.getFile(), "expected"); WroTestUtils.compareFromDifferentFolders(testFolder, expectedFolder, processor); } @Test(expected = NullPointerException.class) public void cannotAcceptNullExtension() { final ResourcePreProcessor decoratedProcessor = new JSMinProcessor(); ExtensionsAwareProcessorDecorator.decorate(decoratedProcessor).addExtension(null); } @Test public void testMinimizeAwareDecorator1() { final ResourcePreProcessor decoratedProcessor = new JSMinProcessor(); final ResourcePreProcessor processor = ExtensionsAwareProcessorDecorator.decorate(decoratedProcessor); Assert.assertTrue(new ProcessorDecorator(processor).isMinimize()); } @Test public void testMinimizeAwareDecorator2() { final ResourcePreProcessor decoratedProcessor = new CssUrlRewritingProcessor(); final ResourcePreProcessor processor = ExtensionsAwareProcessorDecorator.decorate(decoratedProcessor); Assert.assertFalse(new ProcessorDecorator(processor).isMinimize()); } }