This should have been part of r1488.
Review by: mmendez
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1493 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/test/com/google/gwt/dev/jjs/CompilerSuite.java b/user/test/com/google/gwt/dev/jjs/CompilerSuite.java
index 8ed10b9..4dde3cb 100644
--- a/user/test/com/google/gwt/dev/jjs/CompilerSuite.java
+++ b/user/test/com/google/gwt/dev/jjs/CompilerSuite.java
@@ -17,6 +17,7 @@
import com.google.gwt.dev.jjs.test.AutoboxTest;
import com.google.gwt.dev.jjs.test.ClassCastTestCase;
+import com.google.gwt.dev.jjs.test.ClassObjectTest;
import com.google.gwt.dev.jjs.test.CompilerTest;
import com.google.gwt.dev.jjs.test.Coverage;
import com.google.gwt.dev.jjs.test.EnhancedForLoopTest;
@@ -47,6 +48,7 @@
// $JUnit-BEGIN$
suite.addTestSuite(AutoboxTest.class);
suite.addTestSuite(ClassCastTestCase.class);
+ suite.addTestSuite(ClassObjectTest.class);
suite.addTestSuite(CompilerTest.class);
suite.addTestSuite(Coverage.class);
suite.addTestSuite(EnhancedForLoopTest.class);
diff --git a/user/test/com/google/gwt/dev/jjs/test/ClassObjectTest.java b/user/test/com/google/gwt/dev/jjs/test/ClassObjectTest.java
new file mode 100644
index 0000000..ce0a933
--- /dev/null
+++ b/user/test/com/google/gwt/dev/jjs/test/ClassObjectTest.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.dev.jjs.test;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+/**
+ * Tests the web mode implementation of class literals.
+ */
+public class ClassObjectTest extends GWTTestCase {
+
+ private static enum Bar {
+ BAR;
+ }
+
+ private static class Foo implements IFoo {
+ }
+
+ private static interface IFoo {
+ }
+
+ public String getModuleName() {
+ return "com.google.gwt.dev.jjs.CompilerSuite";
+ }
+
+ public void testArray() {
+ Object o = new Foo[3];
+ assertEquals("[Lcom.google.gwt.dev.jjs.test.ClassObjectTest$Foo;",
+ o.getClass().getName());
+ assertEquals("class [Lcom.google.gwt.dev.jjs.test.ClassObjectTest$Foo;",
+ o.getClass().toString());
+ assertTrue(o.getClass().isArray());
+ assertFalse(o.getClass().isEnum());
+ assertFalse(o.getClass().isInterface());
+ assertFalse(o.getClass().isPrimitive());
+ }
+
+ public void testClass() {
+ Object o = new Foo();
+ assertEquals(Foo.class, o.getClass());
+ assertEquals("com.google.gwt.dev.jjs.test.ClassObjectTest$Foo",
+ Foo.class.getName());
+ assertEquals("class com.google.gwt.dev.jjs.test.ClassObjectTest$Foo",
+ Foo.class.toString());
+ assertFalse(Foo.class.isArray());
+ assertFalse(Foo.class.isEnum());
+ assertFalse(Foo.class.isInterface());
+ assertFalse(Foo.class.isPrimitive());
+ }
+
+ public void testEnum() {
+ Object o = Bar.BAR;
+ assertEquals(Bar.class, o.getClass());
+ assertEquals("com.google.gwt.dev.jjs.test.ClassObjectTest$Bar",
+ o.getClass().getName());
+ assertEquals("class com.google.gwt.dev.jjs.test.ClassObjectTest$Bar",
+ o.getClass().toString());
+ assertFalse(o.getClass().isArray());
+ assertTrue(o.getClass().isEnum());
+ assertFalse(o.getClass().isInterface());
+ assertFalse(o.getClass().isPrimitive());
+ }
+
+ public void testInterface() {
+ assertEquals("com.google.gwt.dev.jjs.test.ClassObjectTest$IFoo",
+ IFoo.class.getName());
+ assertEquals("interface com.google.gwt.dev.jjs.test.ClassObjectTest$IFoo",
+ IFoo.class.toString());
+ assertFalse(IFoo.class.isArray());
+ assertFalse(IFoo.class.isEnum());
+ assertTrue(IFoo.class.isInterface());
+ assertFalse(IFoo.class.isPrimitive());
+ }
+
+ public void testPrimitive() {
+ assertEquals("int", int.class.getName());
+ assertEquals("int", int.class.toString());
+ assertFalse(int.class.isArray());
+ assertFalse(int.class.isEnum());
+ assertFalse(int.class.isInterface());
+ assertTrue(int.class.isPrimitive());
+ }
+
+}