diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java index ef4633d396a9..a23abc13b326 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyNoArtifactTest.java @@ -1,6 +1,12 @@ package org.jetbrains.plugins.javaFX; import com.intellij.codeInsight.intention.IntentionAction; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.util.Ref; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VirtualFile; + +import java.io.IOException; /** * Same as the base test, but detects the presence of JavaFX using imports and FXMLs, not artifacts @@ -9,11 +15,45 @@ import com.intellij.codeInsight.intention.IntentionAction; public class JavaFxFieldToPropertyNoArtifactTest extends JavaFxFieldToPropertyTest { public void testArtifactPresenceFieldToProperty() throws Exception { - final IntentionAction intentionAction = getIntentionAction(getTestName(false) + ".java"); + configureByFiles(null, getTestName(false) + ".java"); + final IntentionAction intentionAction = getIntentionAction(); // no artifact, no fxml, no javafx.* imports: the intention shoudn't be available assertNull(intentionAction); } + public void testAddRemoveFxmlFile() throws Exception { + final VirtualFile sourceRootDir = configureByFiles(null, getTestName(false) + ".java"); + IntentionAction intentionAction = getIntentionAction(); + assertNull(intentionAction); + + final Ref fileRef = new Ref<>(); + ApplicationManager.getApplication().runWriteAction(() -> { + try { + VirtualFile file = sourceRootDir.createChildData(JavaFxFieldToPropertyNoArtifactTest.this, "sample.fxml"); + VfsUtil.saveText(file, "\n"); + fileRef.set(file); + } + catch (IOException e) { + fail(e.toString()); + } + }); + + intentionAction = getIntentionAction(); + assertNotNull("when created", intentionAction); + + ApplicationManager.getApplication().runWriteAction(() -> { + try { + fileRef.get().delete(JavaFxFieldToPropertyNoArtifactTest.this); + } + catch (IOException e) { + fail(e.toString()); + } + }); + + intentionAction = getIntentionAction(); + assertNull("when deleted", intentionAction); + } + @Override protected boolean isArtifactNeeded() { return false; diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java index f236692eba8f..4136e70b1767 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxFieldToPropertyTest.java @@ -82,7 +82,8 @@ public class JavaFxFieldToPropertyTest extends DaemonAnalyzerTestCase { private void doTest(String... fileNames) throws Exception { LanguageLevelProjectExtension.getInstance(myProject).setLanguageLevel(LanguageLevel.JDK_1_7); - final IntentionAction intentionAction = getIntentionAction(fileNames); + configureByFiles(null, fileNames); + final IntentionAction intentionAction = getIntentionAction(); assertNotNull(intentionAction); Editor editor = getEditor(); @@ -92,8 +93,7 @@ public class JavaFxFieldToPropertyTest extends DaemonAnalyzerTestCase { checkResultByFile(getTestName(false) + "_after.java"); } - protected IntentionAction getIntentionAction(String... fileNames) throws Exception { - configureByFiles(null, fileNames); + protected IntentionAction getIntentionAction() throws Exception { final List infos = doHighlighting(); final Editor editor = getEditor(); final PsiFile file = getFile(); diff --git a/plugins/javaFX/testData/intentions/fieldToProperty/AddRemoveFxmlFile.java b/plugins/javaFX/testData/intentions/fieldToProperty/AddRemoveFxmlFile.java new file mode 100644 index 000000000000..0c8060c9bed3 --- /dev/null +++ b/plugins/javaFX/testData/intentions/fieldToProperty/AddRemoveFxmlFile.java @@ -0,0 +1,3 @@ +class FloatDemo { + float f; +} \ No newline at end of file