芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/.trash/cepali/mod/assign/feedback/file/tests/file_test.php
. /** * Unit tests for assignfeedback_file * * @package assignfeedback_file * @copyright 2016 Adrian Greeve
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->dirroot . '/mod/assign/tests/generator.php'); /** * Unit tests for assignfeedback_file * * @copyright 2016 Adrian Greeve
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class assignfeedback_file_testcase extends advanced_testcase { // Use the generator helper. use mod_assign_test_generator; /** * Test the is_feedback_modified() method for the file feedback. */ public function test_is_feedback_modified() { $this->resetAfterTest(); $course = $this->getDataGenerator()->create_course(); $teacher = $this->getDataGenerator()->create_and_enrol($course, 'teacher'); $student = $this->getDataGenerator()->create_and_enrol($course, 'student'); $assign = $this->create_instance($course, [ 'assignsubmission_onlinetext_enabled' => 1, 'assignfeedback_comments_enabled' => 1, ]); // Create an online text submission. $this->add_submission($student, $assign); $this->setUser($teacher); $fs = get_file_storage(); $context = context_user::instance($teacher->id); $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy = array( 'contextid' => $context->id, 'component' => 'user', 'filearea' => 'draft', 'itemid' => $draftitemid, 'filepath' => '/', 'filename' => 'feedback1.txt' ); $file = $fs->create_file_from_string($dummy, 'This is the first feedback file'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $grade = $assign->get_user_grade($student->id, true); // This is the first time that we are submitting feedback, so it is modified. $plugin = $assign->get_feedback_plugin_by_type('file'); $this->assertTrue($plugin->is_feedback_modified($grade, $data)); // Save the feedback. $plugin->save($grade, $data); // Try again with the same data. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $file = $fs->create_file_from_string($dummy, 'This is the first feedback file'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertFalse($plugin->is_feedback_modified($grade, $data)); // Same name for the file but different content. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $file = $fs->create_file_from_string($dummy, 'This is different feedback'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertTrue($plugin->is_feedback_modified($grade, $data)); $plugin->save($grade, $data); // Add another file. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $file = $fs->create_file_from_string($dummy, 'This is different feedback'); $dummy['filename'] = 'feedback2.txt'; $file = $fs->create_file_from_string($dummy, 'A second feedback file'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertTrue($plugin->is_feedback_modified($grade, $data)); $plugin->save($grade, $data); // Deleting a file. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $file = $fs->create_file_from_string($dummy, 'This is different feedback'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertTrue($plugin->is_feedback_modified($grade, $data)); $plugin->save($grade, $data); // The file was moved to a folder. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $dummy['filepath'] = '/testdir/'; $file = $fs->create_file_from_string($dummy, 'This is different feedback'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertTrue($plugin->is_feedback_modified($grade, $data)); $plugin->save($grade, $data); // No modification to the file in the folder. $draftitemid = file_get_unused_draft_itemid(); file_prepare_draft_area($draftitemid, $context->id, 'assignfeedback_file', 'feedback_files', 1); $dummy['itemid'] = $draftitemid; $dummy['filepath'] = '/testdir/'; $file = $fs->create_file_from_string($dummy, 'This is different feedback'); // Create formdata. $data = new stdClass(); $data->{'files_' . $student->id . '_filemanager'} = $draftitemid; $this->assertFalse($plugin->is_feedback_modified($grade, $data)); } }