Minor re-factoring. Sort & format
Patch by: amitmanjhi
git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4482 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java b/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
index 8bba24c..90deed9 100644
--- a/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
+++ b/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
@@ -91,18 +91,6 @@
return sb.toString();
}
- private static String getSourceForNewObject() {
- StringBuffer sb = new StringBuffer();
- sb.append("package java.lang;\n");
- sb.append("public class Object {\n");
- sb.append("\tpublic static class Foo extends Object{\n");
- sb.append("\t}\n");
- sb.append("}\n");
- sb.append("class Temp {\n");
- sb.append("}");
- return sb.toString();
- }
-
private static String getSourceForNonApiClass() {
StringBuffer sb = new StringBuffer();
sb.append("package test.apicontainer;\n");
@@ -163,7 +151,7 @@
}
ApiContainer apiCheck = null;
- ApiContainer apiCheckLoop = null;
+ AbstractTreeLogger logger = new PrintWriterTreeLogger();
/**
* Class hierarchy. public java.lang.Object -- test.apicontainer.NonApiClass
@@ -172,24 +160,43 @@
*/
@Override
public void setUp() throws UnableToCompleteException {
- AbstractTreeLogger logger = new PrintWriterTreeLogger();
logger.setMaxDetail(com.google.gwt.core.ext.TreeLogger.ERROR);
- apiCheckLoop = new ApiContainer(
- "ApiClassTest",
- new HashSet<CompilationUnit>(
- Arrays.asList(new StaticCompilationUnit[] {new StaticCompilationUnit(
- "java.lang.Object", getSourceForNewObject()),})),
- new HashSet<String>(), logger);
+
apiCheck = new ApiContainer("ApiContainerTest",
new HashSet<CompilationUnit>(Arrays.asList(getScuArray())),
new HashSet<String>(), logger);
}
+ /*
+ * Test if ApiContainer correctly creates an ApiContainer (for example, avoids
+ * an infinite loop) when a nested class extends an outer class.
+ */
+ public void testApiContainerLoop() throws UnableToCompleteException {
+ StringBuffer sb = new StringBuffer();
+ sb.append("package java.lang;\n");
+ sb.append("public class Object {\n");
+ sb.append("\tpublic static class Foo extends Object{\n");
+ sb.append("\t}\n");
+ sb.append("}\n");
+ sb.append("class Temp {\n");
+ sb.append("}");
+
+ ApiContainer apiCheckLoop = new ApiContainer(
+ "ApiClassTest",
+ new HashSet<CompilationUnit>(
+ Arrays.asList(new StaticCompilationUnit[] {new StaticCompilationUnit(
+ "java.lang.Object", sb.toString())})), new HashSet<String>(),
+ logger);
+ ApiPackage javaLangPackage = apiCheckLoop.getApiPackage("java.lang");
+ assertNotNull(javaLangPackage);
+ assertNotNull(javaLangPackage.getApiClass("java.lang.Object"));
+ assertEquals(2, javaLangPackage.getApiClassNames().size());
+ }
+
public void testEverything() {
checkApiClass();
checkApiMembers();
checkApiPackages();
- checkInfiniteLoopInApiClass();
}
/**
@@ -271,11 +278,4 @@
assertNotNull(apiCheck.getApiPackage("test.apicontainer"));
assertEquals(3, apiCheck.getApiPackageNames().size());
}
-
- void checkInfiniteLoopInApiClass() {
- ApiPackage tempPackage = apiCheckLoop.getApiPackage("java.lang");
- assertNotNull(tempPackage);
- assertNotNull(tempPackage.getApiClass("java.lang.Object"));
- assertEquals(2, tempPackage.getApiClassNames().size());
- }
}