aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/refactorings/renamepackage/ApplicationPackageNameRefactoringTest.java
diff options
context:
space:
mode:
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.java128
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);
+ }
+}