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());
-  }
 }