From 1f8e05676e29083dbaa5c0fc23084ede39b6e944 Mon Sep 17 00:00:00 2001 From: "liana.bakradze" Date: Tue, 23 Aug 2016 16:34:02 +0300 Subject: [PATCH] tests for task file actions --- .../actions/taskFileActions/nonTaskFile.txt | 1 + .../actions/taskFileActions/taskFile.txt | 1 + .../edu/coursecreator/CCTestCase.java | 7 ++- .../actions/CCTaskFileActionTest.java | 57 +++++++++++++++++++ 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 python/educational-core/course-creator/testData/actions/taskFileActions/nonTaskFile.txt create mode 100644 python/educational-core/course-creator/testData/actions/taskFileActions/taskFile.txt create mode 100644 python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/actions/CCTaskFileActionTest.java diff --git a/python/educational-core/course-creator/testData/actions/taskFileActions/nonTaskFile.txt b/python/educational-core/course-creator/testData/actions/taskFileActions/nonTaskFile.txt new file mode 100644 index 000000000000..57f41b7baafc --- /dev/null +++ b/python/educational-core/course-creator/testData/actions/taskFileActions/nonTaskFile.txt @@ -0,0 +1 @@ +non task file \ No newline at end of file diff --git a/python/educational-core/course-creator/testData/actions/taskFileActions/taskFile.txt b/python/educational-core/course-creator/testData/actions/taskFileActions/taskFile.txt new file mode 100644 index 000000000000..03f277cc111c --- /dev/null +++ b/python/educational-core/course-creator/testData/actions/taskFileActions/taskFile.txt @@ -0,0 +1 @@ +test task file with placeholder \ No newline at end of file diff --git a/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/CCTestCase.java b/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/CCTestCase.java index 4cfa08c91328..8a16347581ff 100644 --- a/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/CCTestCase.java +++ b/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/CCTestCase.java @@ -106,13 +106,16 @@ public abstract class CCTestCase extends CodeInsightFixtureTestCase { }); } + 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)) { diff --git a/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/actions/CCTaskFileActionTest.java b/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/actions/CCTaskFileActionTest.java new file mode 100644 index 000000000000..c8c12a9d075d --- /dev/null +++ b/python/educational-core/course-creator/testSrc/com/jetbrains/edu/coursecreator/actions/CCTaskFileActionTest.java @@ -0,0 +1,57 @@ +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"; + } +} -- 2.23.3