示例#1
0
 /**
  * Test save_user_extensions
  */
 public function test_save_user_extensions()
 {
     global $DB, $USER;
     $this->resetAfterTest(true);
     // Create a course and assignment and users.
     $course = self::getDataGenerator()->create_course();
     $teacher = self::getDataGenerator()->create_user();
     $teacherrole = $DB->get_record('role', array('shortname' => 'teacher'));
     $this->getDataGenerator()->enrol_user($teacher->id, $course->id, $teacherrole->id);
     $this->setUser($teacher);
     $now = time();
     $yesterday = $now - 24 * 60 * 60;
     $tomorrow = $now + 24 * 60 * 60;
     set_config('submissionreceipts', 0, 'assign');
     $generator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
     $params['course'] = $course->id;
     $params['submissiondrafts'] = 1;
     $params['sendnotifications'] = 0;
     $params['duedate'] = $yesterday;
     $params['cutoffdate'] = $now - 10;
     $instance = $generator->create_instance($params);
     $cm = get_coursemodule_from_instance('assign', $instance->id);
     $context = context_module::instance($cm->id);
     $assign = new assign($context, $cm, $course);
     $student1 = self::getDataGenerator()->create_user();
     $studentrole = $DB->get_record('role', array('shortname' => 'student'));
     $this->getDataGenerator()->enrol_user($student1->id, $course->id, $studentrole->id);
     $this->setUser($student1);
     $result = mod_assign_external::submit_for_grading($instance->id, true);
     $result = external_api::clean_returnvalue(mod_assign_external::submit_for_grading_returns(), $result);
     // Check for 0 warnings.
     $this->assertEquals(1, count($result));
     $this->setUser($teacher);
     $result = mod_assign_external::save_user_extensions($instance->id, array($student1->id), array($now, $tomorrow));
     $result = external_api::clean_returnvalue(mod_assign_external::save_user_extensions_returns(), $result);
     $this->assertEquals(1, count($result));
     $this->setUser($teacher);
     $result = mod_assign_external::save_user_extensions($instance->id, array($student1->id), array($yesterday - 10));
     $result = external_api::clean_returnvalue(mod_assign_external::save_user_extensions_returns(), $result);
     $this->assertEquals(1, count($result));
     $this->setUser($teacher);
     $result = mod_assign_external::save_user_extensions($instance->id, array($student1->id), array($tomorrow));
     $result = external_api::clean_returnvalue(mod_assign_external::save_user_extensions_returns(), $result);
     $this->assertEquals(0, count($result));
     $this->setUser($student1);
     $result = mod_assign_external::submit_for_grading($instance->id, true);
     $result = external_api::clean_returnvalue(mod_assign_external::submit_for_grading_returns(), $result);
     $this->assertEquals(0, count($result));
     $this->setUser($student1);
     $result = mod_assign_external::save_user_extensions($instance->id, array($student1->id), array($now, $tomorrow));
     $result = external_api::clean_returnvalue(mod_assign_external::save_user_extensions_returns(), $result);
 }