/** * get_participant should return group details if a group submission was * submitted. */ public function test_get_participant_group_submission() { global $DB, $CFG; require_once $CFG->dirroot . '/mod/assign/tests/base_test.php'; $this->resetAfterTest(true); $result = $this->create_assign_with_student_and_teacher(array('assignsubmission_onlinetext_enabled' => 1, 'teamsubmission' => 1)); $assignmodule = $result['assign']; $student = $result['student']; $teacher = $result['teacher']; $course = $result['course']; $context = context_course::instance($course->id); $teacherrole = $DB->get_record('role', array('shortname' => 'teacher')); $group = $this->getDataGenerator()->create_group(array('courseid' => $course->id)); $cm = get_coursemodule_from_instance('assign', $assignmodule->id); $context = context_module::instance($cm->id); $assign = new testable_assign($context, $cm, $course); groups_add_member($group, $student); $this->setUser($student); $submission = $assign->get_group_submission($student->id, $group->id, true); $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED; $assign->testable_update_submission($submission, $student->id, true, false); $data = new stdClass(); $data->onlinetext_editor = array('itemid' => file_get_unused_draft_itemid(), 'text' => 'Submission text', 'format' => FORMAT_MOODLE); $plugin = $assign->get_submission_plugin_by_type('onlinetext'); $plugin->save($submission, $data); $this->setUser($teacher); $result = mod_assign_external::get_participant($assignmodule->id, $student->id, false); // Check some of the extended properties we get when not requesting a summary. $this->assertEquals($student->id, $result['id']); $this->assertEquals($group->id, $result['groupid']); $this->assertEquals($group->name, $result['groupname']); }