Package ro.isdc.wro.model.resource.locator.wildcard

Source Code of ro.isdc.wro.model.resource.locator.wildcard.TestDefaultWildcardStreamLocator

/**
* Copyright Alex Objelean
*/
package ro.isdc.wro.model.resource.locator.wildcard;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import ro.isdc.wro.config.Context;
import ro.isdc.wro.model.resource.locator.ClasspathUriLocator;
import ro.isdc.wro.model.resource.locator.UriLocator;
import ro.isdc.wro.util.WroUtil;


/**
* @author Alex Objelean
*/
public class TestDefaultWildcardStreamLocator {
  private WildcardStreamLocator locator;
 
  @BeforeClass
  public static void onBeforeClass() {
    assertEquals(0, Context.countActive());
  }
 
  @Before
  public void setUp() {
    locator = new DefaultWildcardStreamLocator();
  }
 
  @Test
  public void testNoWildcardPresent1() {
    assertFalse(locator.hasWildcard("test/resource.css"));
  }
 
  @Test
  public void testNoWildcardPresent2() {
    assertFalse(locator.hasWildcard("test/resource[a].css"));
  }
 
  @Test
  public void testWildcardPresent1() {
    assertTrue(locator.hasWildcard("test/*.css"));
  }
 
  @Test
  public void testWildcardPresent2() {
    assertTrue(locator.hasWildcard("test/test.?ss"));
  }
 
  @Test
  public void testWildcardPresent3() {
    assertTrue(locator.hasWildcard("test/**.???"));
  }
 
  @Test
  public void testWildcardPresent4() {
    assertFalse(locator.hasWildcard("http://yui.yahooapis.com/combo?2.7.0/build/reset-fonts-grids/reset-fonts-grids.css&2.7.0/build/base/base-min.css&2.7.0/build/assets/skins/sam/skin.css"));
  }
 
  @Test(expected = IOException.class)
  public void cannotPassNullArgument()
      throws IOException {
    locator.locateStream(null, null);
  }
 
  @Test(expected = IOException.class)
  public void cannotPassNullFolder()
      throws IOException {
    locator.locateStream("/resource/*.css", null);
  }
 
  @Test(expected = IOException.class)
  public void cannotProcessUriWithoutWildcard()
      throws IOException {
    final File folder = new File(ClassLoader.getSystemResource("").getFile());
    locator.locateStream("/resource/noWildcard.css", folder);
  }
 
  @Test
  public void testWithValidFolder()
      throws IOException {
    final File folder = new File(ClassLoader.getSystemResource("").getFile());
    locator.locateStream("/resource/*.css", folder);
  }
 
  @Test(expected = IOException.class)
  public void testWithInvalidFolder()
      throws IOException {
    final File folder = new File(ClassLoader.getSystemResource("1.css").getFile());
    locator.locateStream("/resource/*.css", folder);
  }
 
  @Test
  public void testWildcardResourcesOrderedAlphabetically()
      throws IOException {
    locator = new DefaultWildcardStreamLocator() {
      @Override
      void triggerWildcardExpander(final Collection<File> allFiles, final WildcardContext wildcardContext)
          throws IOException {
        final Collection<String> filenameList = new ArrayList<String>();
        for (final File file : allFiles) {
          filenameList.add(file.getName());
        }
        assertEquals(
            Arrays.toString(new String[] {
              "tools.expose-1.0.5.js", "tools.overlay-1.1.2.js", "tools.overlay.apple-1.0.1.js",
              "tools.overlay.gallery-1.0.0.js"
            }), Arrays.toString(filenameList.toArray()));
      };
    };
    final UriLocator uriLocator = new ClasspathUriLocator() {
      @Override
      public WildcardStreamLocator newWildcardStreamLocator() {
        return locator;
      }
    };
    uriLocator.locate("classpath:" + WroUtil.toPackageAsFolder(getClass()) + "/*.js");
  }
 
  @Test
  public void testWildcardLocator()
      throws IOException {
    locator = new DefaultWildcardStreamLocator() {
      @Override
      void triggerWildcardExpander(final Collection<File> allFiles, final WildcardContext wildcardContext)
          throws IOException {
        assertEquals(2, allFiles.size());
      };
    };
    final UriLocator uriLocator = new ClasspathUriLocator() {
      @Override
      public WildcardStreamLocator newWildcardStreamLocator() {
        return locator;
      }
    };
    uriLocator.locate("classpath:" + WroUtil.toPackageAsFolder(getClass()) + "/*.css");
  }
}
TOP

Related Classes of ro.isdc.wro.model.resource.locator.wildcard.TestDefaultWildcardStreamLocator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.