Fix Android plugin rename tests

This commit is contained in:
Yan Zhulanow
2015-02-17 21:48:14 +03:00
parent c756cfef86
commit b2f323908b
@@ -37,35 +37,28 @@ public abstract class AbstractAndroidRenameTest : KotlinAndroidTestCase() {
f.copyDirectoryToProject(getResDir()!!, "res") f.copyDirectoryToProject(getResDir()!!, "res")
val virtualFile = f.copyFileToProject(path + getTestName(true) + ".kt", "src/" + getTestName(true) + ".kt"); val virtualFile = f.copyFileToProject(path + getTestName(true) + ".kt", "src/" + getTestName(true) + ".kt");
f.configureFromExistingVirtualFile(virtualFile) f.configureFromExistingVirtualFile(virtualFile)
val editor = f.getEditor() val editor = f.getEditor()
val file = f.getFile() val file = f.getFile()
val completionEditor = InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(editor, file) val completionEditor = InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(editor, file)
val element = TargetElementUtilBase.findTargetElement(completionEditor, TargetElementUtilBase.REFERENCED_ELEMENT_ACCEPTED or TargetElementUtilBase.ELEMENT_NAME_ACCEPTED) val element = TargetElementUtilBase.findTargetElement(completionEditor,
TargetElementUtilBase.REFERENCED_ELEMENT_ACCEPTED or TargetElementUtilBase.ELEMENT_NAME_ACCEPTED)
assert(element != null) assert(element != null)
assertTrue(element is JetProperty) assertTrue(element is JetProperty)
// rename xml attribute by property RenameProcessor(f.getProject(), element, NEW_NAME, false, true).run()
renameElementWithTextOccurences(element, NEW_NAME)
// Rename xml attribute by property
val resolved = GotoDeclarationAction.findTargetElement(f.getProject(), f.getEditor(), f.getCaretOffset()) val resolved = GotoDeclarationAction.findTargetElement(f.getProject(), f.getEditor(), f.getCaretOffset())
assertEquals("\"@+id/$NEW_NAME\"", resolved?.getText()) assertEquals("\"@+id/$NEW_NAME\"", resolved?.getText())
// rename property by attribute // Rename property by attribute
renameElementWithTextOccurences(resolved!!, "@+id/$OLD_NAME") val attributeElement = GotoDeclarationAction.findTargetElement(f.getProject(), f.getEditor(), f.getCaretOffset())
assertEquals(OLD_NAME, (f.getElementAtCaret() as JetProperty).getName()) RenameProcessor(f.getProject(), attributeElement, "@+id/$OLD_NAME", false, true).run()
}
private fun renameElementWithTextOccurences(element: PsiElement, newName: String) { assertEquals(OLD_NAME, (f.getElementAtCaret() as JetProperty).getName())
val f = myFixture!!
object : WriteCommandAction.Simple<Unit>(f.getProject()) {
protected override fun run() {
val editor = f.getEditor()
val substitution = RenamePsiElementProcessor.forElement(element).substituteElementToRename(element, editor)
RenameProcessor(f.getProject(), substitution, newName, false, true).run()
}
}.execute().throwException()
} }
override fun getTestDataPath() = KotlinAndroidTestCaseBase.getPluginTestDataPathBase() + "/rename/" + getTestName(true) + "/" override fun getTestDataPath() = KotlinAndroidTestCaseBase.getPluginTestDataPathBase() + "/rename/" + getTestName(true) + "/"
} }