| /* |
| * Copyright 2008 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.javac; |
| |
| import junit.framework.TestCase; |
| |
| import java.util.Arrays; |
| |
| /** |
| * |
| * This class tests to see if the anonymous class names are sorted in the right |
| * order. For example, Foo$10 should be after Foo$2. |
| */ |
| public class GeneratedClassnameComparatorTest extends TestCase { |
| |
| public void testBasicOrder() { |
| int max = 15; |
| String original[] = new String[max]; |
| String expected[] = new String[max]; |
| for (int i = 0; i < max; i++) { |
| String name = "Foo$" + (i + 1); |
| original[i] = name; |
| expected[i] = name; |
| } |
| Arrays.sort(original, new GeneratedClassnameComparator()); |
| for (int i = 0; i < max; i++) { |
| assertEquals("index = " + i, expected[i], original[i]); |
| } |
| } |
| |
| public void testHierarchicalOrder() { |
| String original[] = { |
| "Foo$1", "Foo$1$1$1", "Foo$1$2", "Foo$2", "Foo$2$1", "Foo$3",}; |
| String expected[] = { |
| "Foo$1", "Foo$2", "Foo$3", "Foo$1$2", "Foo$2$1", "Foo$1$1$1"}; |
| Arrays.sort(original, new GeneratedClassnameComparator()); |
| for (int i = 0; i < original.length; i++) { |
| assertEquals("index = " + i, expected[i], original[i]); |
| } |
| } |
| |
| public void testMixedNames() { |
| String original[] = { |
| "Foo", "Foo$1", "Foo$1Bar", "Foo$2Bar", "Foo$2", "Foo$xyz"}; |
| String expected[] = { |
| "Foo", "Foo$1", "Foo$2", "Foo$1Bar", "Foo$2Bar", "Foo$xyz"}; |
| Arrays.sort(original, new GeneratedClassnameComparator()); |
| for (int i = 0; i < original.length; i++) { |
| assertEquals("index = " + i, expected[i], original[i]); |
| } |
| } |
| |
| public void testMultipleToplevelClasses() { |
| String original[] = { |
| "Foo$1", "Foo$2", "Bar$1", "Bar$3", "Foo$2$1", "Bar$2$1"}; |
| String expected[] = { |
| "Bar$1", "Bar$3", "Foo$1", "Foo$2", "Bar$2$1", "Foo$2$1"}; |
| Arrays.sort(original, new GeneratedClassnameComparator()); |
| for (int i = 0; i < original.length; i++) { |
| assertEquals("index = " + i, expected[i], original[i]); |
| } |
| } |
| |
| } |