From a9bb3f412278a560428ffd2e8c8d7ed26c4d2f83 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 24 Oct 2014 10:36:19 +0200 Subject: [PATCH] make test more predictable --- .../plugins/javaFX/fxml/JavaFXQuickfixTest.java | 9 ++++++++- .../intentions/JavaFxInjectPageLanguageIntention.java | 10 +++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java index b95b12497e7b..a99c0e4da48e 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXQuickfixTest.java @@ -20,12 +20,16 @@ import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; +import com.intellij.psi.xml.XmlFile; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.javaFX.fxml.codeInsight.inspections.JavaFxUnresolvedFxIdReferenceInspection; +import org.jetbrains.plugins.javaFX.fxml.codeInsight.intentions.JavaFxInjectPageLanguageIntention; + +import java.util.Set; public class JavaFXQuickfixTest extends LightCodeInsightFixtureTestCase { public static final DefaultLightProjectDescriptor JAVA_FX_WITH_GROOVY_DESCRIPTOR = new DefaultLightProjectDescriptor() { @@ -66,7 +70,10 @@ public class JavaFXQuickfixTest extends LightCodeInsightFixtureTestCase { myFixture.configureByFile(getTestName(true) + ".fxml"); final IntentionAction intention = myFixture.findSingleIntention("Specify page language"); assertNotNull(intention); - myFixture.launchAction(intention); + Set languages = JavaFxInjectPageLanguageIntention.getAvailableLanguages(); + assertContainsElements(languages, "groovy"); + JavaFxInjectPageLanguageIntention languageIntention = (JavaFxInjectPageLanguageIntention)intention; + languageIntention.registerPageLanguage(getProject(), (XmlFile)myFixture.getFile(), "groovy"); myFixture.checkResultByFile(getTestName(true) + ".fxml", getTestName(true) + "_after.fxml", true); } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java index 0cbd61f765a9..dc62783d23fb 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/codeInsight/intentions/JavaFxInjectPageLanguageIntention.java @@ -52,7 +52,7 @@ import java.util.TreeSet; public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAction { public static final Logger LOG = Logger.getInstance("#" + JavaFxInjectPageLanguageIntention.class.getName()); - private static Set getAvailableLanguages(Project project) { + public static Set getAvailableLanguages() { final List engineFactories = new ScriptEngineManager().getEngineFactories(); final Set availableNames = new TreeSet(); @@ -68,8 +68,8 @@ public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAc if (!FileModificationService.getInstance().preparePsiElementsForWrite(element)) return; final XmlFile containingFile = (XmlFile)element.getContainingFile(); - final Set availableLanguages = getAvailableLanguages(project); - if (availableLanguages.size() == 1 || ApplicationManager.getApplication().isUnitTestMode()) { + final Set availableLanguages = getAvailableLanguages(); + if (availableLanguages.size() == 1) { registerPageLanguage(project, containingFile, availableLanguages.iterator().next()); } else { final JBList list = new JBList(availableLanguages); @@ -83,7 +83,7 @@ public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAc } } - private void registerPageLanguage(final Project project, final XmlFile containingFile, final String languageName) { + public void registerPageLanguage(final Project project, final XmlFile containingFile, final String languageName) { new WriteCommandAction.Simple(project, getFamilyName()) { @Override protected void run() { @@ -110,7 +110,7 @@ public class JavaFxInjectPageLanguageIntention extends PsiElementBaseIntentionAc @Override public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) { - if (ContainerUtil.isEmpty(getAvailableLanguages(project))) { + if (ContainerUtil.isEmpty(getAvailableLanguages())) { return false; } setText(getFamilyName());