diff options
Diffstat (limited to 'platform/testFramework')
9 files changed, 44 insertions, 38 deletions
diff --git a/platform/testFramework/src/com/intellij/GroupBasedTestClassFilter.java b/platform/testFramework/src/com/intellij/GroupBasedTestClassFilter.java index b3811750841d..3fa50dec3032 100644 --- a/platform/testFramework/src/com/intellij/GroupBasedTestClassFilter.java +++ b/platform/testFramework/src/com/intellij/GroupBasedTestClassFilter.java @@ -15,7 +15,7 @@ */ package com.intellij; -import com.intellij.openapi.util.text.StringUtil; +import org.jetbrains.annotations.NotNull; import java.io.BufferedReader; import java.io.IOException; @@ -39,7 +39,7 @@ import java.util.regex.Pattern; * {@link PatternListTestClassFilter#PatternListTestClassFilter(List) PatternListTestClassFilter}; * </li> * <li> - * Read class name filters (at regexp format) from the given stream - see {@link #createOn(Reader, String)}; + * Read class name filters (at regexp format) from the given stream - see {@link #createOn(java.io.Reader, java.util.List)}; * </li> * </ul> */ @@ -54,18 +54,18 @@ public class GroupBasedTestClassFilter extends TestClassesFilter { private final Map<String, List<Pattern>> myPatterns = new HashMap<String, List<Pattern>>(); private final List<Pattern> myAllPatterns = new ArrayList<Pattern>(); private final List<Pattern> myTestGroupPatterns; - private boolean myAllExcludeDefinedGroup; + private boolean myContainsAllExcludeDefinedGroup; - private GroupBasedTestClassFilter(Map<String, List<String>> filters, String testGroupName) { + private GroupBasedTestClassFilter(Map<String, List<String>> filters, List<String> testGroupNames) { //empty group means all patterns from each defined group should be excluded - myAllExcludeDefinedGroup = isAllExcludeDefinedGroup(testGroupName); + myContainsAllExcludeDefinedGroup = containsAllExcludeDefinedGroup(testGroupNames); for (String groupName : filters.keySet()) { List<String> filterList = filters.get(groupName); addPatterns(groupName, filterList); } - myTestGroupPatterns = collectPatternsFor(testGroupName); + myTestGroupPatterns = collectPatternsFor(testGroupNames); } private void addPatterns(String groupName, List<String> filterList) { @@ -114,11 +114,12 @@ public class GroupBasedTestClassFilter extends TestClassesFilter { * * * @param reader reader that points to the target test groups config - * @param testGroupName + * @param testGroupNames * @return newly created {@link GroupBasedTestClassFilter} object with the data contained at the given reader * @see #matches(String) */ - public static TestClassesFilter createOn(Reader reader, String testGroupName) throws IOException { + @NotNull + public static TestClassesFilter createOn(@NotNull Reader reader, @NotNull List<String> testGroupNames) throws IOException { Map<String, List<String>> groupNameToPatternsMap = new HashMap<String, List<String>>(); String currentGroupName = ""; @@ -137,7 +138,7 @@ public class GroupBasedTestClassFilter extends TestClassesFilter { } } - return new GroupBasedTestClassFilter(groupNameToPatternsMap, testGroupName); + return new GroupBasedTestClassFilter(groupNameToPatternsMap, testGroupNames); } /** @@ -157,28 +158,26 @@ public class GroupBasedTestClassFilter extends TestClassesFilter { */ @Override public boolean matches(String className) { - boolean result = matchesAnyPattern(myTestGroupPatterns, className); - if (myAllExcludeDefinedGroup) { - return !result; + if (matchesAnyPattern(myTestGroupPatterns, className)) { + return true; } - else { - return result; + if (myContainsAllExcludeDefinedGroup && !matchesAnyPattern(myAllPatterns, className)) { + return true; } + return false; } - private static boolean isAllExcludeDefinedGroup(String groupName) { - return StringUtil.isEmpty(groupName) || ALL_EXCLUDE_DEFINED.equalsIgnoreCase(groupName.trim()); + private static boolean containsAllExcludeDefinedGroup(List<String> groupNames) { + return groupNames.isEmpty() || groupNames.contains(ALL_EXCLUDE_DEFINED); } - private List<Pattern> collectPatternsFor(String groupName) { - if (isAllExcludeDefinedGroup(groupName)) { - return myAllPatterns; - } - else if (myPatterns.containsKey(groupName)) { - return myPatterns.get(groupName); - } - else { - return Collections.emptyList(); + private List<Pattern> collectPatternsFor(List<String> groupNames) { + List<Pattern> patterns = new ArrayList<Pattern>(); + for (String groupName : groupNames) { + if (myPatterns.containsKey(groupName)) { + patterns.addAll(myPatterns.get(groupName)); + } } + return patterns; } } diff --git a/platform/testFramework/src/com/intellij/TestCaseLoader.java b/platform/testFramework/src/com/intellij/TestCaseLoader.java index a81a2d2a1370..5d11e48548b8 100644 --- a/platform/testFramework/src/com/intellij/TestCaseLoader.java +++ b/platform/testFramework/src/com/intellij/TestCaseLoader.java @@ -66,11 +66,11 @@ public class TestCaseLoader { if (excludedStream != null) { TestClassesFilter filter; try { - String testGroupName = System.getProperty(TARGET_TEST_GROUP, "").trim(); + List<String> testGroupNames = StringUtil.split(System.getProperty(TARGET_TEST_GROUP, "").trim(), ";"); InputStreamReader reader = new InputStreamReader(excludedStream.openStream()); try { - filter = GroupBasedTestClassFilter.createOn(reader, testGroupName); - System.out.println("Using test group: [" + testGroupName +"]"); + filter = GroupBasedTestClassFilter.createOn(reader, testGroupNames); + System.out.println("Using test groups: " + testGroupNames); } finally { reader.close(); diff --git a/platform/testFramework/src/com/intellij/openapi/application/ex/PathManagerEx.java b/platform/testFramework/src/com/intellij/openapi/application/ex/PathManagerEx.java index 4844851b81e2..4616c4f86c08 100644 --- a/platform/testFramework/src/com/intellij/openapi/application/ex/PathManagerEx.java +++ b/platform/testFramework/src/com/intellij/openapi/application/ex/PathManagerEx.java @@ -424,7 +424,7 @@ public class PathManagerEx { * @return project type implied by its file system location */ private static FileSystemLocation parseProjectLocation() { - return new File(PathManager.getHomePath(), "community").isDirectory() ? FileSystemLocation.ULTIMATE : FileSystemLocation.COMMUNITY; + return new File(PathManager.getHomePath(), "community/.idea").isDirectory() ? FileSystemLocation.ULTIMATE : FileSystemLocation.COMMUNITY; } /** diff --git a/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java index d42e639438c2..870d6d53b998 100644 --- a/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java +++ b/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java @@ -208,7 +208,7 @@ public class EditorTestUtil { return visibleWidth; } }); - applianceManager.setRepresentationHelper(new DefaultEditorTextRepresentationHelper(editor) { + model.setEditorTextRepresentationHelper(new DefaultEditorTextRepresentationHelper(editor) { @Override public int charWidth(char c, int fontType) { return charWidthInPixels; diff --git a/platform/testFramework/src/com/intellij/testFramework/FileEditorManagerTestCase.java b/platform/testFramework/src/com/intellij/testFramework/FileEditorManagerTestCase.java index 77b93ac6f88f..e3f0d0788cfb 100644 --- a/platform/testFramework/src/com/intellij/testFramework/FileEditorManagerTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/FileEditorManagerTestCase.java @@ -54,6 +54,7 @@ public abstract class FileEditorManagerTestCase extends LightPlatformCodeInsight super.setUp(); myManager = new FileEditorManagerImpl(getProject(), DockManager.getInstance(getProject()), EditorHistoryManager.getInstance(getProject())); myOldManager = ((ComponentManagerImpl)getProject()).registerComponentInstance(FileEditorManager.class, myManager); + ((FileEditorProviderManagerImpl)FileEditorProviderManager.getInstance()).clearSelectedProviders(); } @Override diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java index 90c2ca11b49a..24e4074ed4ee 100644 --- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java @@ -15,7 +15,7 @@ */ package com.intellij.testFramework; -import com.intellij.codeInsight.generation.CommentByLineCommentHandler; +import com.intellij.codeInsight.generation.actions.CommentByLineCommentAction; import com.intellij.ide.DataManager; import com.intellij.injected.editor.DocumentWindow; import com.intellij.injected.editor.EditorWindow; @@ -501,7 +501,7 @@ public abstract class LightPlatformCodeInsightTestCase extends LightPlatformTest } protected static void lineComment() { - new CommentByLineCommentHandler().invoke(getProject(), getEditor(), getFile()); + new CommentByLineCommentAction().actionPerformedImpl(getProject(), getEditor()); } protected static void executeAction(@NonNls @NotNull final String actionId) { diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestUtil.java index 37fd23da6741..0c46f14b98e0 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestUtil.java +++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestUtil.java @@ -762,7 +762,7 @@ public class PlatformTestUtil { public static String getCommunityPath() { final String homePath = PathManager.getHomePath(); - if (new File(homePath, "community").exists()) { + if (new File(homePath, "community/.idea").isDirectory()) { return homePath + File.separatorChar + "community"; } return homePath; diff --git a/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java b/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java index b5f84d33c6c4..cc8376832e36 100644 --- a/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java +++ b/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java @@ -17,11 +17,13 @@ package com.intellij.testFramework; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataProvider; +import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.impl.EditorComponentImpl; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx; +import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -51,6 +53,10 @@ public class TestDataProvider implements DataProvider { else if (CommonDataKeys.EDITOR.is(dataId) || OpenFileDescriptor.NAVIGATE_IN_EDITOR.is(dataId)) { return FileEditorManager.getInstance(myProject).getSelectedTextEditor(); } + else if (PlatformDataKeys.FILE_EDITOR.is(dataId)) { + Editor editor = FileEditorManager.getInstance(myProject).getSelectedTextEditor(); + return editor == null ? null : TextEditorProvider.getInstance().getTextEditor(editor); + } else { Editor editor = (Editor)getData(CommonDataKeys.EDITOR.getName()); if (editor != null) { diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java index ce58f3071581..4857acd2d328 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java @@ -1061,19 +1061,19 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig final CaretModel caretModel = myEditor.getCaretModel(); final List<Caret> carets = caretModel.getAllCarets(); - final Collection<Integer> originalOffsets = new ArrayList<Integer>(carets.size()); + final List<Integer> originalOffsets = new ArrayList<Integer>(carets.size()); for (final Caret caret : carets) { originalOffsets.add(caret.getOffset()); } caretModel.removeSecondaryCarets(); - int newOffset = 0; // To be incremented each time we complete something + // We do it in reverse order because completions would affect offsets + // i.e.: when you complete "spa" to "spam", next caret offset increased by 1 + Collections.reverse(originalOffsets); for (final int originalOffset : originalOffsets) { - final int realOffsetBeforeCompletion = originalOffset + newOffset; - caretModel.moveToOffset(realOffsetBeforeCompletion); + caretModel.moveToOffset(originalOffset); completeBasic(); - newOffset += (getCaretOffset() - realOffsetBeforeCompletion); } } |