blob: c0b062fa9f192e25a0cf5ed3920575e3676a709b [file] [log] [blame]
/*
* 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"));
}
}