diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java new file mode 100644 index 000000000..0ac034430 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php + * + * 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.android.ide.eclipse.adt.internal.refactorings.renamepackage; + +import com.android.annotations.NonNull; +import com.android.ide.eclipse.adt.internal.editors.manifest.ManifestInfo; +import com.android.ide.eclipse.adt.internal.refactorings.core.RefactoringTestBase; + +import org.eclipse.core.resources.IProject; +import org.eclipse.jdt.core.dom.AST; +import org.eclipse.jdt.core.dom.Name; + +@SuppressWarnings("javadoc") +public class ApplicationPackageNameRefactoringTest extends RefactoringTestBase { + public void testRefactor1() throws Exception { + renamePackage( + TEST_PROJECT, + "my.pkg.name", + + "CHANGES:\n" + + "-------\n" + + "[x] MainActivity.java - /testRefactor1/src/com/example/refactoringtest/MainActivity.java\n" + + " @@ -7 +7\n" + + " + import my.pkg.name.R;\n" + + "\n" + + "\n" + + "[x] Make Manifest edits - /testRefactor1/AndroidManifest.xml\n" + + " @@ -3 +3\n" + + " - package=\"com.example.refactoringtest\"\n" + + " + package=\"my.pkg.name\"\n" + + " @@ -25 +25\n" + + " - android:name=\".MainActivity2\"\n" + + " + android:name=\"com.example.refactoringtest.MainActivity2\""); + } + + public void testRefactor2() throws Exception { + // Tests custom view handling + renamePackage( + TEST_PROJECT2, + "my.pkg.name", + + "CHANGES:\n" + + "-------\n" + + "[x] MainActivity.java - /testRefactor2/src/com/example/refactoringtest/MainActivity.java\n" + + " @@ -7 +7\n" + + " + import my.pkg.name.R;\n" + + "\n" + + "\n" + + "[x] Make Manifest edits - /testRefactor2/AndroidManifest.xml\n" + + " @@ -3 +3\n" + + " - package=\"com.example.refactoringtest\"\n" + + " + package=\"my.pkg.name\"\n" + + " @@ -25 +25\n" + + " - android:name=\".MainActivity2\"\n" + + " + android:name=\"com.example.refactoringtest.MainActivity2\""); + } + + public void testRefactor3() throws Exception { + // Tests BuildConfig imports and updates + renamePackage( + TEST_PROJECT3, + "my.pkg.name", + + "CHANGES:\n" + + "-------\n" + + "[x] MoreCode.java - /testRefactor3/src/com/example/refactoringtest/subpkg/MoreCode.java\n" + + " @@ -7 +7\n" + + " - import com.example.refactoringtest.BuildConfig;\n" + + " - import com.example.refactoringtest.Manifest;\n" + + " - import com.example.refactoringtest.R;\n" + + " + import my.pkg.name.BuildConfig;\n" + + " + import my.pkg.name.Manifest;\n" + + " + import my.pkg.name.R;\n" + + "\n" + + "\n" + + "[x] MainActivity.java - /testRefactor3/src/com/example/refactoringtest/MainActivity.java\n" + + " @@ -7 +7\n" + + " + import my.pkg.name.R;\n" + + "\n" + + "\n" + + "[x] Make Manifest edits - /testRefactor3/AndroidManifest.xml\n" + + " @@ -3 +3\n" + + " - package=\"com.example.refactoringtest\"\n" + + " + package=\"my.pkg.name\"\n" + + " @@ -25 +25\n" + + " - android:name=\".MainActivity2\"\n" + + " + android:name=\"com.example.refactoringtest.MainActivity2\""); + } + + // ---- Test infrastructure ---- + + protected void renamePackage( + @NonNull Object[] testData, + @NonNull String newName, + @NonNull String expected) throws Exception { + IProject project = createProject(testData); + renamePackage(project, newName, expected); + } + + protected void renamePackage( + @NonNull IProject project, + @NonNull String newName, + @NonNull String expected) throws Exception { + ManifestInfo info = ManifestInfo.get(project); + String currentPackage = info.getPackage(); + assertNotNull(currentPackage); + + final AST astValidator = AST.newAST(AST.JLS3); + Name oldPackageName = astValidator.newName(currentPackage); + Name newPackageName = astValidator.newName(newName); + ApplicationPackageNameRefactoring refactoring = + new ApplicationPackageNameRefactoring(project, oldPackageName, newPackageName); + checkRefactoring(refactoring, expected); + } +} |