});
}
+ protected VirtualFile copyFileToTask(String name) {
+ return myFixture.copyFileToProject(name, FileUtil.join(getProject().getBasePath(), "lesson1", "task1", name));
+ }
+
protected VirtualFile configureByTaskFile(String name) {
Task task = StudyTaskManager.getInstance(getProject()).getCourse().getLessons().get(0).getTaskList().get(0);
TaskFile taskFile = new TaskFile();
taskFile.setTask(task);
task.getTaskFiles().put(name, taskFile);
- VirtualFile file =
- myFixture.copyFileToProject(name, FileUtil.join(getProject().getBasePath(), "lesson1", "task1", name));
+ VirtualFile file = copyFileToTask(name);
myFixture.configureFromExistingVirtualFile(file);
Document document = FileDocumentManager.getInstance().getDocument(file);
for (AnswerPlaceholder placeholder : getPlaceholders(document, false)) {
--- /dev/null
+package com.jetbrains.edu.coursecreator.actions;
+
+import com.intellij.openapi.actionSystem.AnAction;
+import com.intellij.openapi.actionSystem.CommonDataKeys;
+import com.intellij.openapi.command.undo.UndoManager;
+import com.intellij.openapi.fileEditor.FileEditor;
+import com.intellij.openapi.fileEditor.FileEditorManager;
+import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.testFramework.MapDataContext;
+import com.intellij.testFramework.TestActionEvent;
+import com.jetbrains.edu.coursecreator.CCTestCase;
+import com.jetbrains.edu.learning.StudyUtils;
+import com.jetbrains.edu.learning.courseFormat.TaskFile;
+import org.jetbrains.annotations.NotNull;
+
+public class CCTaskFileActionTest extends CCTestCase {
+ public void testHideTaskFile() {
+ VirtualFile virtualFile = configureByTaskFile("taskFile.txt");
+ launchAction(virtualFile, new CCHideFromStudent());
+ assertNull(StudyUtils.getTaskFile(getProject(), virtualFile));
+ UndoManager.getInstance(getProject()).undo(FileEditorManager.getInstance(getProject()).getSelectedEditor(virtualFile));
+ TaskFile taskFile = StudyUtils.getTaskFile(getProject(), virtualFile);
+ assertNotNull(taskFile);
+ checkHighlighters(taskFile, myFixture.getEditor().getMarkupModel());
+ }
+
+ public void testAddTaskFile() {
+ VirtualFile virtualFile = copyFileToTask("nonTaskFile.txt");
+ myFixture.configureFromExistingVirtualFile(virtualFile);
+ launchAction(virtualFile, new CCAddAsTaskFile());
+ TaskFile taskFile = StudyUtils.getTaskFile(getProject(), virtualFile);
+ assertNotNull(taskFile);
+ FileEditor fileEditor = FileEditorManager.getInstance(getProject()).getSelectedEditor(virtualFile);
+ UndoManager.getInstance(getProject()).undo(fileEditor);
+ assertNull(StudyUtils.getTaskFile(getProject(), virtualFile));
+ }
+
+ private void launchAction(VirtualFile virtualFile, AnAction action) {
+ TestActionEvent e = getActionEvent(virtualFile, action);
+ action.beforeActionPerformedUpdate(e);
+ assertTrue(e.getPresentation().isEnabled() && e.getPresentation().isVisible());
+ action.actionPerformed(e);
+ }
+
+ @NotNull
+ private TestActionEvent getActionEvent(VirtualFile virtualFile, AnAction action) {
+ MapDataContext context = new MapDataContext();
+ context.put(CommonDataKeys.VIRTUAL_FILE, virtualFile);
+ context.put(CommonDataKeys.PROJECT, getProject());
+ return new TestActionEvent(context, action);
+ }
+
+ @Override
+ protected String getBasePath() {
+ return super.getBasePath() + "/actions/taskFileActions";
+ }
+}