| /* |
| * Copyright 2009 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.util; |
| |
| import com.google.gwt.dev.util.Name.BinaryName; |
| import com.google.gwt.dev.util.Name.SourceOrBinaryName; |
| import com.google.gwt.dev.util.Name.InternalName; |
| import com.google.gwt.dev.util.Name.SourceName; |
| |
| import junit.framework.TestCase; |
| |
| /** |
| * Tests for {@link Name}. |
| */ |
| public class NameTest extends TestCase { |
| |
| /** |
| * Used to test getting names from a Class instance. |
| */ |
| private static class Inner { |
| } |
| |
| public void testBinaryName() { |
| assertEquals("org.test.Foo", BinaryName.toSourceName("org.test.Foo")); |
| assertEquals("org.test.Foo.Bar", |
| BinaryName.toSourceName("org.test.Foo$Bar")); |
| assertEquals("org.test.Foo.Bar.Baz", |
| BinaryName.toSourceName("org.test.Foo$Bar$Baz")); |
| assertEquals("org.test.Foo.Bar.Baz$", |
| BinaryName.toSourceName("org.test.Foo$Bar$Baz$")); |
| assertEquals("org/test/Foo", BinaryName.toInternalName("org.test.Foo")); |
| assertEquals("org/test/Foo$Bar", |
| BinaryName.toInternalName("org.test.Foo$Bar")); |
| assertEquals("org/test/Foo$Bar$Baz", |
| BinaryName.toInternalName("org.test.Foo$Bar$Baz")); |
| assertEquals("org/test/Foo$Bar$Baz$", |
| BinaryName.toInternalName("org.test.Foo$Bar$Baz$")); |
| assertEquals("org/test/Foo$Bar$Baz$1", |
| BinaryName.toInternalName("org.test.Foo$Bar$Baz$1")); |
| assertEquals("org.test.Foo$Bar", |
| BinaryName.getInnerClassName("org.test.Foo", "Bar")); |
| assertEquals("org.test.Foo", |
| BinaryName.getOuterClassName("org.test.Foo$Bar")); |
| assertEquals("org.test", |
| BinaryName.getPackageName("org.test.Foo$Bar")); |
| assertEquals("Foo$Bar", BinaryName.getClassName("org.test.Foo$Bar")); |
| assertEquals("Bar", BinaryName.getShortClassName("org.test.Foo$Bar")); |
| } |
| |
| public void testSourceOrBinaryName() { |
| assertEquals("org.test.Foo.Bar", |
| SourceOrBinaryName.toSourceName("org.test.Foo.Bar")); |
| assertEquals("org.test.Foo.Bar", |
| SourceOrBinaryName.toSourceName("org.test.Foo$Bar")); |
| assertEquals("org.test.Foo.Bar$", |
| SourceOrBinaryName.toSourceName("org.test.Foo.Bar$")); |
| assertEquals("org.test.Foo.Bar$", |
| SourceOrBinaryName.toSourceName("org.test.Foo$Bar$")); |
| } |
| |
| public void testGetBinaryNameForClass() { |
| assertEquals("com.google.gwt.dev.util.NameTest$Inner", |
| Name.getBinaryNameForClass(Inner.class)); |
| } |
| |
| public void testGetInternalNameForClass() { |
| assertEquals("com/google/gwt/dev/util/NameTest$Inner", |
| Name.getInternalNameForClass(Inner.class)); |
| } |
| |
| public void testGetSourceNameForClass() { |
| assertEquals("com.google.gwt.dev.util.NameTest.Inner", |
| Name.getSourceNameForClass(Inner.class)); |
| } |
| |
| public void testInternalName() { |
| assertEquals("org.test.Foo", InternalName.toSourceName("org/test/Foo")); |
| assertEquals("org.test.Foo.Bar", |
| InternalName.toSourceName("org/test/Foo$Bar")); |
| assertEquals("org.test.Foo.Bar.Baz", |
| InternalName.toSourceName("org/test/Foo$Bar$Baz")); |
| assertEquals("org.test.Foo.Bar.Baz$", |
| InternalName.toSourceName("org/test/Foo$Bar$Baz$")); |
| assertEquals("org.test.Foo", InternalName.toBinaryName("org/test/Foo")); |
| assertEquals("org.test.Foo$Bar", |
| InternalName.toBinaryName("org/test/Foo$Bar")); |
| assertEquals("org.test.Foo$Bar$Baz", |
| InternalName.toBinaryName("org/test/Foo$Bar$Baz")); |
| assertEquals("org.test.Foo$Bar$Baz$", |
| InternalName.toBinaryName("org/test/Foo$Bar$Baz$")); |
| assertEquals("org.test.Foo$Bar$Baz$1", |
| InternalName.toBinaryName("org/test/Foo$Bar$Baz$1")); |
| assertEquals("org/test/Foo$Bar", |
| InternalName.getInnerClassName("org/test/Foo", "Bar")); |
| assertEquals("org/test/Foo", |
| InternalName.getOuterClassName("org/test/Foo$Bar")); |
| assertEquals("org/test", |
| InternalName.getPackageName("org/test/Foo$Bar")); |
| assertEquals("Foo$Bar", InternalName.getClassName("org/test/Foo$Bar")); |
| assertEquals("Bar", InternalName.getShortClassName("org/test/Foo$Bar")); |
| } |
| |
| public void testIsBinaryName() { |
| assertTrue(Name.isBinaryName("org.test.Foo")); |
| assertTrue(Name.isBinaryName("org.test.Foo$Bar")); |
| assertTrue(Name.isBinaryName("org.test.Foo$Bar$Baz")); |
| assertTrue(Name.isBinaryName("org.test.Foo$Bar$Baz$")); |
| assertTrue(Name.isBinaryName("org.test.Foo$Bar$Baz$1")); |
| assertFalse(Name.isBinaryName("org/test/Foo")); |
| assertFalse(Name.isBinaryName("org/test/Foo$Bar")); |
| assertFalse(Name.isBinaryName("org/test/Foo$Bar$Baz")); |
| assertFalse(Name.isBinaryName("org/test/Foo$Bar$Baz$")); |
| assertFalse(Name.isBinaryName("org/test/Foo$Bar$Baz$1")); |
| assertTrue(Name.isBinaryName("org.test.Foo.Bar")); |
| // We can't tell these aren't binary names without being able to tell |
| // what the name of the top-level class is, but don't want to encode |
| // bad behavior in the test. |
| // assertTrue(Name.isBinaryName("org.test.Foo.Bar.Baz")); |
| // assertTrue(Name.isBinaryName("org.test.Foo.Bar.Baz$")); |
| } |
| |
| public void testIsInternalName() { |
| assertFalse(Name.isInternalName("org.test.Foo")); |
| assertFalse(Name.isInternalName("org.test.Foo$Bar")); |
| assertFalse(Name.isInternalName("org.test.Foo$Bar$Baz")); |
| assertFalse(Name.isInternalName("org.test.Foo$Bar$Baz$")); |
| assertFalse(Name.isInternalName("org.test.Foo$Bar$Baz$1")); |
| assertTrue(Name.isInternalName("org/test/Foo")); |
| assertTrue(Name.isInternalName("org/test/Foo$Bar")); |
| assertTrue(Name.isInternalName("org/test/Foo$Bar$Baz")); |
| assertTrue(Name.isInternalName("org/test/Foo$Bar$Baz$")); |
| assertTrue(Name.isInternalName("org/test/Foo$Bar$Baz$1")); |
| assertFalse(Name.isInternalName("org.test.Foo.Bar")); |
| assertFalse(Name.isInternalName("org.test.Foo.Bar.Baz")); |
| assertFalse(Name.isInternalName("org.test.Foo.Bar.Baz$")); |
| } |
| |
| public void testIsSourceName() { |
| assertTrue(Name.isSourceName("org.test.Foo")); |
| assertFalse(Name.isSourceName("org.test.Foo$Bar")); |
| assertFalse(Name.isSourceName("org.test.Foo$Bar$Baz")); |
| assertFalse(Name.isSourceName("org.test.Foo$Bar$Baz$")); |
| assertFalse(Name.isSourceName("org.test.Foo$Bar$Baz$1")); |
| assertFalse(Name.isSourceName("org/test/Foo")); |
| assertFalse(Name.isSourceName("org/test/Foo$Bar")); |
| assertFalse(Name.isSourceName("org/test/Foo$Bar$Baz")); |
| assertFalse(Name.isSourceName("org/test/Foo$Bar$Baz$")); |
| assertFalse(Name.isSourceName("org/test/Foo$Bar$Baz$1")); |
| assertTrue(Name.isSourceName("org.test.Foo.Bar")); |
| assertTrue(Name.isSourceName("org.test.Foo.Bar.Baz")); |
| assertTrue(Name.isSourceName("org.test.Foo.Bar.Baz$")); |
| } |
| |
| public void testIsSourceOrBinaryName() { |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz$")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz$1")); |
| assertFalse(Name.isSourceOrBinaryName("org/test/Foo")); |
| assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar")); |
| assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz")); |
| assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz$")); |
| assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz$1")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar.Baz")); |
| assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar.Baz$")); |
| } |
| |
| public void testSourceName() { |
| assertEquals("org.test.Foo.Bar", |
| SourceName.getInnerClassName("org.test.Foo", "Bar")); |
| assertEquals("Bar", SourceName.getShortClassName("org.test.Foo.Bar")); |
| } |
| } |