package com.intellij.flex.intentions; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.flex.util.FlexTestUtils; import com.intellij.testFramework.fixtures.CodeInsightTestUtil; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; import org.intellij.idea.lang.javascript.intention.JSIntentionBundle; import org.junit.Assert; public class ActionScriptIntentionActionTest extends LightCodeInsightFixtureTestCase { @Override protected void setUp() throws Exception { super.setUp(); myFixture.setTestDataPath(FlexTestUtils.getTestDataPath("js2_intentions")); } @Override protected String getBasePath() { return super.getBasePath(); } public void testSplitDeclarationAndInitialization() throws Throwable { final String dirName = "splitDeclarationAndInitialization"; final String intentionActionName = JSIntentionBundle.message("initialization.split-declaration-and-initialization.display-name"); doIntentionTest(dirName, "", intentionActionName); doIntentionTest(dirName, "2", intentionActionName); doTestNoIntention(dirName, "3", intentionActionName); doIntentionTest(dirName, "4", intentionActionName); } public void testMergeDeclarationAndInitialization() throws Throwable { final String dirName = "mergeDeclarationAndInitialization/"; final String intentionActionName = JSIntentionBundle.message("initialization.merge-declaration-and-initialization.display-name"); doIntentionTest(dirName, "", intentionActionName); } public void testJoinConcatenatedStringLiterals() throws Throwable { String actionName = JSIntentionBundle.message("string.join-concatenated-string-literals.display-name"); String directory = "JoinConcatenatedStringLiterals/"; doIntentionTest(directory, "", actionName); } @SuppressWarnings("SameParameterValue") private void doTestNoIntention(String directory, String fileSuffix, String intentionActionName) { String before = String.format("%s/before%s.js2", directory, fileSuffix); myFixture.configureByFile(before); IntentionAction intentionAction = CodeInsightTestUtil.findIntentionByText(myFixture.getAvailableIntentions(), intentionActionName); Assert.assertNull(String.format("Expected no intention by text %s but was %s", intentionActionName, intentionAction), intentionAction); } private void doIntentionTest(String baseDir, String fileSuffix, String intentionActionName) { String before = String.format("%s/before%s.js2", baseDir, fileSuffix); String after = String.format("%s/after%s.js2", baseDir, fileSuffix); CodeInsightTestUtil.doIntentionTest(myFixture, intentionActionName, before, after); } }