Fixes failing assertions in ResourceOracle tests. Review by: kjin@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8682 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplRealClasspathTest.java b/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplRealClasspathTest.java index e322887..d623069 100644 --- a/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplRealClasspathTest.java +++ b/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplRealClasspathTest.java
@@ -29,33 +29,32 @@ public class ResourceOracleImplRealClasspathTest extends AbstractResourceOrientedTestBase { - private static final PathPrefix JUNIT_PREFIX = new PathPrefix( - "junit/framework/", new ResourceFilter() { - public boolean allows(String path) { - return path.endsWith("TestCase.class"); - } - }); - private static final PathPrefix JUNIT_PREFIX_DUP = new PathPrefix( - "junit/framework/", new ResourceFilter() { - public boolean allows(String path) { - return path.endsWith("TestCase.class"); - } - }); + private static PathPrefix makeJunitPrefix() { + return new PathPrefix("junit/framework/", new ResourceFilter() { + public boolean allows(String path) { + return path.endsWith("TestCase.class"); + } + }); + } - private static final PathPrefix THIS_CLASS_PREFIX = new PathPrefix( - "com/google/gwt/dev/resource/impl/", new ResourceFilter() { - public boolean allows(String path) { - return path.endsWith("ResourceOracleImplRealClasspathTest.class"); - } - }); + private static PathPrefix makeThisClassPrefix() { + return new PathPrefix("com/google/gwt/dev/resource/impl/", + new ResourceFilter() { + public boolean allows(String path) { + return path.endsWith("ResourceOracleImplRealClasspathTest.class"); + } + }); + } - private static final PathPrefix THIS_CLASS_PREFIX_PLUS = new PathPrefix( - "com/google/gwt/dev/resource/impl/", new ResourceFilter() { - public boolean allows(String path) { - return path.endsWith("ResourceOracleImpl.class") - || path.endsWith("ResourceOracleImplRealClasspathTest.class"); - } - }); + private static PathPrefix makeThisClassPrefixPlus() { + return new PathPrefix("com/google/gwt/dev/resource/impl/", + new ResourceFilter() { + public boolean allows(String path) { + return path.endsWith("ResourceOracleImpl.class") + || path.endsWith("ResourceOracleImplRealClasspathTest.class"); + } + }); + } private final TreeLogger logger = createTestTreeLogger(); @@ -64,8 +63,8 @@ public void testBasic() { PathPrefixSet pathPrefixSet = new PathPrefixSet(); - pathPrefixSet.add(JUNIT_PREFIX); - pathPrefixSet.add(THIS_CLASS_PREFIX); + pathPrefixSet.add(makeJunitPrefix()); + pathPrefixSet.add(makeThisClassPrefix()); resourceOracle.setPathPrefixes(pathPrefixSet); resourceOracle.refresh(logger); Map<String, Resource> resourceMap = resourceOracle.getResourceMap(); @@ -74,8 +73,8 @@ public void testRefresh() { PathPrefixSet pathPrefixSet = new PathPrefixSet(); - pathPrefixSet.add(JUNIT_PREFIX); - pathPrefixSet.add(THIS_CLASS_PREFIX); + pathPrefixSet.add(makeJunitPrefix()); + pathPrefixSet.add(makeThisClassPrefix()); resourceOracle.setPathPrefixes(pathPrefixSet); resourceOracle.refresh(logger); Map<String, Resource> resourceMap = resourceOracle.getResourceMap(); @@ -92,19 +91,19 @@ // Setting identical path entries should have no effect. pathPrefixSet = new PathPrefixSet(); - pathPrefixSet.add(JUNIT_PREFIX); - pathPrefixSet.add(THIS_CLASS_PREFIX); + pathPrefixSet.add(makeJunitPrefix()); + pathPrefixSet.add(makeThisClassPrefix()); resourceOracle.setPathPrefixes(pathPrefixSet); resourceOracle.refresh(logger); assertResourcesEqual(resourceMap, resourceOracle.getResourceMap()); // Setting identical result should have no effect. - pathPrefixSet.add(JUNIT_PREFIX_DUP); + pathPrefixSet.add(makeJunitPrefix()); resourceOracle.refresh(logger); assertResourcesEqual(resourceMap, resourceOracle.getResourceMap()); // Actually change the working set. - pathPrefixSet.add(THIS_CLASS_PREFIX_PLUS); + pathPrefixSet.add(makeThisClassPrefixPlus()); resourceOracle.refresh(logger); assertEquals(3, resourceOracle.getResourceMap().size()); }
diff --git a/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplTest.java b/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplTest.java index 3360424..12b257f 100644 --- a/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplTest.java +++ b/dev/core/test/com/google/gwt/dev/resource/impl/ResourceOracleImplTest.java
@@ -25,7 +25,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; @@ -36,7 +35,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.jar.JarFile; /** * Tests {@link ResourceOracleImpl}. @@ -134,12 +132,13 @@ } return null; } - + + @SuppressWarnings("deprecation") public void assertResourcesGetURL() { for (Resource resource : resources) { URL url = resource.getURL(); assertNotNull("Resource " + resource + " had a null getURL()", url); - + InputStream is = resource.openContents(); assertNotNull(is); @@ -170,6 +169,26 @@ assertResourcesEqual(expected.values(), actual.values()); } + private static PathPrefix makeJavaLangPrefix() { + return new PathPrefix("java/lang/", null, false); + } + + private static PathPrefix makeBarPrefix() { + return new PathPrefix("org/example/bar/client/", null, false); + } + + private static PathPrefix makeRerootBarPrefix() { + return new PathPrefix("org/example/bar/client/", null, true); + } + + private static PathPrefix makeRerootFooPrefix() { + return new PathPrefix("org/example/foo/client/", null, true); + } + + private static PathPrefix makeTranslatablePrefix() { + return new PathPrefix("translatable/", null, true); + } + public void testCachingOfJarResources() throws IOException, URISyntaxException { TreeLogger logger = createTestTreeLogger(); @@ -178,19 +197,19 @@ // test basic caching PathPrefixSet pps1 = new PathPrefixSet(); - pps1.add(new PathPrefix("com/google/gwt", null, false)); + pps1.add(new PathPrefix("com/google/gwt/", null, false)); Map<AbstractResource, PathPrefix> resourceMap1 = cpe1jar.findApplicableResources( logger, pps1); assertSame(resourceMap1, cpe1jar.findApplicableResources(logger, pps1)); // test that cache is invalidated if PathPrefixSet is modified. - pps1.add(new PathPrefix("com/google/gwt/user", null, false)); + pps1.add(new PathPrefix("com/google/gwt/user/", null, false)); Map<AbstractResource, PathPrefix> resourceMap2 = cpe1jar.findApplicableResources( logger, pps1); assertNotSame(resourceMap1, resourceMap2); PathPrefixSet pps2 = new PathPrefixSet(); - pps2.add(new PathPrefix("org/example/bar", null, false)); + pps2.add(new PathPrefix("org/example/bar/", null, false)); Map<AbstractResource, PathPrefix> resourceMap3 = cpe1jar.findApplicableResources( logger, pps2); // check that the entry did go in the cache @@ -200,7 +219,7 @@ assertSame(resourceMap2, cpe1jar.findApplicableResources(logger, pps1)); assertSame(resourceMap3, cpe1jar.findApplicableResources(logger, pps2)); } - + public void testGetUrlOnResources() throws URISyntaxException, IOException { ClassPathEntry cpe1jar = getClassPathEntry1AsJar(); ClassPathEntry cpe1dir = getClassPathEntry1AsDirectory(); @@ -209,7 +228,7 @@ ClassPathEntry cpe2jar = getClassPathEntry2AsJar(); ClassPathEntry cpe2dir = getClassPathEntry2AsDirectory(); ClassPathEntry cpe2zip = getClassPathEntry2AsZip(); - + testGetURLOnResourcesInCPE(cpe1jar); testGetURLOnResourcesInCPE(cpe1dir); testGetURLOnResourcesInCPE(cpe1zip); @@ -217,10 +236,10 @@ testGetURLOnResourcesInCPE(cpe2dir); testGetURLOnResourcesInCPE(cpe2zip); } - + private void testGetURLOnResourcesInCPE(ClassPathEntry cpe) { TreeLogger logger = createTestTreeLogger(); - + ResourceOracleImpl oracle = createResourceOracle(cpe); ResourceOracleSnapshot s = refreshAndSnapshot(logger, oracle); s.assertResourcesGetURL(); @@ -242,16 +261,13 @@ ClassPathEntry[] cp12 = new ClassPathEntry[]{cpe1jar, cpe2jar}; ClassPathEntry[] cp21 = new ClassPathEntry[]{cpe2jar, cpe1jar}; String resKeyNormal = "org/example/bar/client/BarClient2.txt"; - String resKeyReroot = "/BarClient2.txt"; - PathPrefix pathPrefixNormal = new PathPrefix("org/example/bar/client", - null, false); - PathPrefix pathPrefixReroot = new PathPrefix("org/example/bar/client", - null, true); - - testResourceInCPE(logger, resKeyNormal, cpe1jar, cp12, pathPrefixNormal); - testResourceInCPE(logger, resKeyReroot, cpe1jar, cp12, pathPrefixReroot); - testResourceInCPE(logger, resKeyNormal, cpe2jar, cp21, pathPrefixNormal); - testResourceInCPE(logger, resKeyReroot, cpe2jar, cp21, pathPrefixReroot); + String resKeyReroot = "BarClient2.txt"; + testResourceInCPE(logger, resKeyNormal, cpe1jar, cp12, makeBarPrefix()); + testResourceInCPE(logger, resKeyReroot, cpe1jar, cp12, + makeRerootBarPrefix()); + testResourceInCPE(logger, resKeyNormal, cpe2jar, cp21, makeBarPrefix()); + testResourceInCPE(logger, resKeyReroot, cpe2jar, cp21, + makeRerootBarPrefix()); } public void testNoClassPathEntries() { @@ -280,20 +296,21 @@ ClassPathEntry[] cp12 = new ClassPathEntry[]{cpe1jar, cpe2jar}; ClassPathEntry[] cp21 = new ClassPathEntry[]{cpe2jar, cpe1jar}; - String keyReroot = "/BarClient1.txt"; - - PathPrefix pp1 = new PathPrefix("org/example/bar/client", null, true); - PathPrefix pp2 = new PathPrefix("org/example/foo/client", null, true); + String keyReroot = "BarClient1.txt"; // Resource in cpe2 wins because pp2 comes later. - testResourceInCPE(logger, keyReroot, cpe2jar, cp12, pp1, pp2); + testResourceInCPE(logger, keyReroot, cpe2jar, cp12, makeRerootBarPrefix(), + makeRerootFooPrefix()); // Order of specifying classpath is reversed, it still matches cpe2. - testResourceInCPE(logger, keyReroot, cpe2jar, cp21, pp1, pp2); + testResourceInCPE(logger, keyReroot, cpe2jar, cp21, makeRerootBarPrefix(), + makeRerootFooPrefix()); // Resource in cpe1 wins because pp1 comes later. - testResourceInCPE(logger, keyReroot, cpe1jar, cp12, pp2, pp1); + testResourceInCPE(logger, keyReroot, cpe1jar, cp12, makeRerootFooPrefix(), + makeRerootBarPrefix()); // Order of specifying classpath is reversed, it still matches cpe1. - testResourceInCPE(logger, keyReroot, cpe1jar, cp21, pp2, pp1); + testResourceInCPE(logger, keyReroot, cpe1jar, cp21, makeRerootFooPrefix(), + makeRerootBarPrefix()); } /** @@ -314,11 +331,11 @@ testReadingResource(cpe1jar, cpe2jar); testReadingResource(cpe1dir, cpe2jar); testReadingResource(cpe1zip, cpe2jar); - + testReadingResource(cpe1jar, cpe2dir); testReadingResource(cpe1dir, cpe2dir); testReadingResource(cpe1zip, cpe2dir); - + testReadingResource(cpe1jar, cpe2zip); testReadingResource(cpe1dir, cpe2zip); testReadingResource(cpe1zip, cpe2zip); @@ -331,7 +348,7 @@ * * @throws MalformedURLException */ - public void testRemoveDuplicates() throws MalformedURLException { + public void testRemoveDuplicates() { TreeLogger logger = createTestTreeLogger(); URL cpe1 = findUrl("com/google/gwt/dev/resource/impl/testdata/cpe1.jar"); URL cpe2 = findUrl("com/google/gwt/dev/resource/impl/testdata/cpe2.zip"); @@ -375,7 +392,7 @@ testResourceAddition(cpe1dir, cpe2mock); testResourceAddition(cpe1mock, cpe2mock); testResourceAddition(cpe1zip, cpe2mock); - + testResourceAddition(cpe1jar, cpe2zip); testResourceAddition(cpe1dir, cpe2zip); testResourceAddition(cpe1mock, cpe2zip); @@ -407,7 +424,7 @@ testResourceDeletion(cpe1dir, cpe2mock); testResourceDeletion(cpe1mock, cpe2mock); testResourceDeletion(cpe1zip, cpe2mock); - + testResourceDeletion(cpe1jar, cpe2zip); testResourceDeletion(cpe1dir, cpe2zip); testResourceDeletion(cpe1mock, cpe2zip); @@ -439,7 +456,7 @@ testResourceModification(cpe1dir, cpe2mock); testResourceModification(cpe1mock, cpe2mock); testResourceModification(cpe1zip, cpe2mock); - + testResourceModification(cpe1jar, cpe2zip); testResourceModification(cpe1dir, cpe2zip); testResourceModification(cpe1mock, cpe2zip); @@ -459,10 +476,9 @@ TreeLogger logger = createTestTreeLogger(); ClassPathEntry cpe1 = getClassPathEntry1AsMock(); ClassPathEntry cpe2 = getClassPathEntry2AsMock(); - PathPrefix pp1 = new PathPrefix("org/example/bar/client", null, false); - PathPrefix pp2 = new PathPrefix("org/example/bar", null, false); testResourceInCPE(logger, "org/example/bar/client/BarClient2.txt", cpe1, - new ClassPathEntry[]{cpe1, cpe2}, pp1, pp2); + new ClassPathEntry[]{cpe1, cpe2}, makeBarPrefix(), new PathPrefix( + "org/example/bar/", null, false)); } /** @@ -478,20 +494,21 @@ MockClassPathEntry cpe2 = new MockClassPathEntry("/cpe2/"); cpe2.addResource("translatable/java/lang/Object.java"); - PathPrefix pp1 = new PathPrefix("java/lang/", null, false); - PathPrefix pp2 = new PathPrefix("translatable/", null, true); - // Ensure the translatable overrides the basic despite swapping CPE order. testResourceInCPE(logger, "java/lang/Object.java", cpe2, - new ClassPathEntry[]{cpe1, cpe2}, pp1, pp2); + new ClassPathEntry[]{cpe1, cpe2}, makeJavaLangPrefix(), + makeTranslatablePrefix()); testResourceInCPE(logger, "java/lang/Object.java", cpe2, - new ClassPathEntry[]{cpe2, cpe1}, pp1, pp2); + new ClassPathEntry[]{cpe2, cpe1}, makeJavaLangPrefix(), + makeTranslatablePrefix()); // Ensure the translatable overrides the basic despite swapping PPS order. testResourceInCPE(logger, "java/lang/Object.java", cpe2, - new ClassPathEntry[]{cpe1, cpe2}, pp2, pp1); + new ClassPathEntry[]{cpe1, cpe2}, makeTranslatablePrefix(), + makeJavaLangPrefix()); testResourceInCPE(logger, "java/lang/Object.java", cpe2, - new ClassPathEntry[]{cpe2, cpe1}, pp2, pp1); + new ClassPathEntry[]{cpe2, cpe1}, makeTranslatablePrefix(), + makeJavaLangPrefix()); } /**