. /** * Unit tests for assignfeedback_comments * * @package assignfeedback_comments * @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_comments * * @copyright 2016 Adrian Greeve * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class assignfeedback_comments_testcase extends advanced_testcase { // Use the generator helper. use mod_assign_test_generator; /** * Test the is_feedback_modified() method for the comments 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); // Create formdata. $grade = $assign->get_user_grade($student->id, true); $data = (object) [ 'assignfeedbackcomments_editor' => [ 'text' => '

first comment for this test

', 'format' => 1, ] ]; // This is the first time that we are submitting feedback, so it is modified. $plugin = $assign->get_feedback_plugin_by_type('comments'); $this->assertTrue($plugin->is_feedback_modified($grade, $data)); // Save the feedback. $plugin->save($grade, $data); // Try again with the same data. $this->assertFalse($plugin->is_feedback_modified($grade, $data)); // Change the data. $data->assignfeedbackcomments_editor = [ 'text' => '

Altered comment for this test

', 'format' => 1, ]; $this->assertTrue($plugin->is_feedback_modified($grade, $data)); } }