add/delete answer placeholder tests
[idea/community.git] / python / educational-core / course-creator / testSrc / com / jetbrains / edu / coursecreator / actions / CCShowPreviewTest.java
index c105652d44e1d4a7734fb6fc03508d2b1913a243..b5f57febac055dbc255cc4d6337aacd821af5f4c 100644 (file)
@@ -6,16 +6,14 @@ import com.intellij.openapi.actionSystem.LangDataKeys;
 import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.editor.EditorFactory;
-import com.intellij.openapi.editor.markup.MarkupModel;
-import com.intellij.openapi.editor.markup.RangeHighlighter;
 import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiFile;
 import com.intellij.testFramework.MapDataContext;
 import com.intellij.testFramework.TestActionEvent;
 import com.jetbrains.edu.coursecreator.CCTestCase;
+import com.jetbrains.edu.coursecreator.CCTestsUtil;
 import com.jetbrains.edu.learning.courseFormat.AnswerPlaceholder;
-import org.jetbrains.annotations.Nullable;
 
 import java.util.List;
 
@@ -36,50 +34,34 @@ public class CCShowPreviewTest extends CCTestCase {
   }
 
   public void testOnePlaceholder() {
-    doTest("test_before.txt", "test_after.txt");
+    doTest("test");
   }
 
   public void testSeveralPlaceholders() {
-    doTest("several_before.txt", "several_after.txt");
+    doTest("several");
   }
 
-  private void doTest(String beforeName, String afterName) {
-    VirtualFile file = configureByTaskFile(beforeName);
+  private void doTest(String name) {
+    VirtualFile file = configureByTaskFile(name + CCTestsUtil.BEFORE_POSTFIX);
     CCShowPreview action = new CCShowPreview();
     TestActionEvent e = getActionEvent(action, getPsiManager().findFile(file));
     action.beforeActionPerformedUpdate(e);
     assertTrue(e.getPresentation().isEnabled() && e.getPresentation().isVisible());
     action.actionPerformed(e);
     Editor editor = EditorFactory.getInstance().getAllEditors()[1];
-    Pair<Document, List<AnswerPlaceholder>> pair = getPlaceholders(afterName);
+    Pair<Document, List<AnswerPlaceholder>> pair = getPlaceholders(name + CCTestsUtil.AFTER_POSTFIX);
     assertEquals("Files don't match", editor.getDocument().getText(), pair.getFirst().getText());
     for (AnswerPlaceholder placeholder : pair.getSecond()) {
-      assertNotNull("No highlighter for placeholder", getHighlighter(editor.getMarkupModel(), placeholder));
+      assertNotNull("No highlighter for placeholder:" + CCTestsUtil.getPlaceholderPresentation(placeholder), getHighlighter(editor.getMarkupModel(), placeholder));
     }
     EditorFactory.getInstance().releaseEditor(editor);
   }
 
-  @Nullable
-  private static RangeHighlighter getHighlighter(MarkupModel model, AnswerPlaceholder placeholder) {
-    for (RangeHighlighter highlighter : model.getAllHighlighters()) {
-      int endOffset = placeholder.getOffset() + placeholder.getRealLength();
-      if (highlighter.getStartOffset() == placeholder.getOffset() && highlighter.getEndOffset() == endOffset) {
-        return highlighter;
-      }
-    }
-    return null;
-  }
-
   @Override
   protected String getTestDataPath() {
     return super.getTestDataPath() + "/actions/preview";
   }
 
-  @Override
-  protected boolean shouldContainTempFiles() {
-    return false;
-  }
-
   TestActionEvent getActionEvent(AnAction action, PsiFile psiFile) {
     MapDataContext context = new MapDataContext();
     context.put(CommonDataKeys.PSI_FILE, psiFile);