diff --git a/plugins/android/testData/refactoring/findPossibleUsages/1.xml b/plugins/android/testData/refactoring/findPossibleUsages/1.xml
new file mode 100644
index 000000000000..b53ae1b97c9e
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/1.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/1_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/1_layout.xml
new file mode 100644
index 000000000000..cc1b93089401
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/1_layout.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/1_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/1_layout_after.xml
new file mode 100644
index 000000000000..33efeeb47642
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/1_layout_after.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/2.xml b/plugins/android/testData/refactoring/findPossibleUsages/2.xml
new file mode 100644
index 000000000000..b659c899963e
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/2.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/2_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/2_layout.xml
new file mode 100644
index 000000000000..cc1b93089401
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/2_layout.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/2_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/2_layout_after.xml
new file mode 100644
index 000000000000..7a699b78fa7d
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/2_layout_after.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/3.xml b/plugins/android/testData/refactoring/findPossibleUsages/3.xml
new file mode 100644
index 000000000000..99a0e7fec8c4
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ le name="style1" parent="style2">
+ - @android:color/black
+ - @android:color/white
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/3_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/3_layout.xml
new file mode 100644
index 000000000000..5f5022a2eafc
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/3_layout.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/3_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/3_layout_after.xml
new file mode 100644
index 000000000000..f3017ec09242
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/3_layout_after.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/4.xml b/plugins/android/testData/refactoring/findPossibleUsages/4.xml
new file mode 100644
index 000000000000..ba18600e3b4c
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ le name="style1" parent="style2.style3">
+ - @android:color/black
+ - @android:color/white
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/4_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/4_layout.xml
new file mode 100644
index 000000000000..6a4e1009048e
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/4_layout.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/4_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/4_layout_after.xml
new file mode 100644
index 000000000000..f3017ec09242
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/4_layout_after.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/5.xml b/plugins/android/testData/refactoring/findPossibleUsages/5.xml
new file mode 100644
index 000000000000..d934dc114f13
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ le name="style1" parent="style2">
+ - @android:color/black
+ - @android:color/white
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/5_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/5_layout.xml
new file mode 100644
index 000000000000..5f5022a2eafc
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/5_layout.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/5_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/5_layout_after.xml
new file mode 100644
index 000000000000..f3017ec09242
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/5_layout_after.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/6.xml b/plugins/android/testData/refactoring/findPossibleUsages/6.xml
new file mode 100644
index 000000000000..b53ae1b97c9e
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/6.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/6_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/6_layout.xml
new file mode 100644
index 000000000000..cc1b93089401
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/6_layout.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/6_layout_after.xml b/plugins/android/testData/refactoring/findPossibleUsages/6_layout_after.xml
new file mode 100644
index 000000000000..33efeeb47642
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/6_layout_after.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/7.xml b/plugins/android/testData/refactoring/findPossibleUsages/7.xml
new file mode 100644
index 000000000000..6e3bb4421ac0
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/7.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testData/refactoring/findPossibleUsages/7_layout.xml b/plugins/android/testData/refactoring/findPossibleUsages/7_layout.xml
new file mode 100644
index 000000000000..cc1b93089401
--- /dev/null
+++ b/plugins/android/testData/refactoring/findPossibleUsages/7_layout.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/android/testSrc/org/jetbrains/android/refactoring/AndroidFindStyleApplicationsTest.java b/plugins/android/testSrc/org/jetbrains/android/refactoring/AndroidFindStyleApplicationsTest.java
new file mode 100644
index 000000000000..fed81acaabc6
--- /dev/null
+++ b/plugins/android/testSrc/org/jetbrains/android/refactoring/AndroidFindStyleApplicationsTest.java
@@ -0,0 +1,70 @@
+package org.jetbrains.android.refactoring;
+
+import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.android.AndroidTestCase;
+
+/**
+ * @author Eugene.Kudelevsky
+ */
+public class AndroidFindStyleApplicationsTest extends AndroidTestCase {
+ private static final String BASE_PATH = "refactoring/findPossibleUsages/";
+
+ public void test1() throws Exception {
+ doTest();
+ }
+
+ public void test2() throws Exception {
+ doTest();
+ }
+
+ public void test3() throws Exception {
+ doTest();
+ }
+
+ public void test4() throws Exception {
+ doTest();
+ }
+
+ public void test5() throws Exception {
+ doTest();
+ }
+
+ public void test6() throws Exception {
+ final String testName = getTestName(true);
+ myFixture.copyFileToProject(BASE_PATH + testName + "_layout.xml", "res/layout/layout1.xml");
+ myFixture.copyFileToProject(BASE_PATH + testName + "_layout.xml", "res/layout/layout2.xml");
+
+ doTest1();
+
+ myFixture.checkResultByFile("res/layout/layout1.xml", BASE_PATH + testName + "_layout_after.xml", true);
+ myFixture.checkResultByFile("res/layout/layout2.xml", BASE_PATH + testName + "_layout_after.xml", true);
+ }
+
+ public void test7() throws Exception {
+ try {
+ doTest();
+ fail();
+ }
+ catch (RuntimeException e) {
+ assertEquals("IDEA has not found any possible applications of style 'style1'", e.getMessage());
+ }
+ }
+
+ private void doTest() {
+ final String testName = getTestName(true);
+ myFixture.copyFileToProject(BASE_PATH + testName + "_layout.xml", "res/layout/layout.xml");
+
+ doTest1();
+
+ myFixture.checkResultByFile("res/layout/layout.xml", BASE_PATH + testName + "_layout_after.xml", true);
+ }
+
+ private void doTest1() {
+ final String testName = getTestName(true);
+ final VirtualFile f = myFixture.copyFileToProject(BASE_PATH + testName + ".xml", "res/values/styles.xml");
+ myFixture.configureFromExistingVirtualFile(f);
+ myFixture.testAction(new AndroidFindStyleApplicationsAction(new AndroidFindStyleApplicationsAction.MyTestConfig(
+ AndroidFindStyleApplicationsProcessor.MyScope.PROJECT)));
+ myFixture.checkResultByFile(BASE_PATH + testName + ".xml");
+ }
+}