summaryrefslogtreecommitdiff
path: root/platform/testFramework
diff options
context:
space:
mode:
Diffstat (limited to 'platform/testFramework')
-rw-r--r--platform/testFramework/src/com/intellij/GroupBasedTestClassFilter.java49
-rw-r--r--platform/testFramework/src/com/intellij/TestCaseLoader.java6
-rw-r--r--platform/testFramework/src/com/intellij/openapi/application/ex/PathManagerEx.java2
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java2
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/FileEditorManagerTestCase.java1
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java4
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/PlatformTestUtil.java2
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java6
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java10
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);
}
}