コード例 #1
0
 public function test_time_limit_and_overdue()
 {
     $quiz = new stdClass();
     $quiz->attempts = 5;
     $quiz->timelimit = 100;
     $quiz->delay1 = 2000;
     $quiz->delay2 = 1000;
     $quiz->timeclose = 0;
     $quiz->questions = '';
     $cm = new stdClass();
     $cm->id = 0;
     $quizobj = new quiz($quiz, $cm, null);
     $attempt = new stdClass();
     $attempt->timestart = 9900;
     $attempt->timefinish = 10100;
     $rule = new inter_attempt_delay_access_rule($quizobj, 10000);
     $this->assertFalse($rule->description());
     $this->assertFalse($rule->prevent_access());
     $this->assertFalse($rule->is_finished(0, $attempt));
     $this->assertFalse($rule->time_left($attempt, 0));
     $this->assertFalse($rule->prevent_new_attempt(0, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(5, $attempt));
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(12000)));
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youmustwait', 'quiz', userdate(11000)));
     $this->assertEqual($rule->prevent_new_attempt(3, $attempt), get_string('youmustwait', 'quiz', userdate(11000)));
     $attempt->timestart = 7950;
     $attempt->timefinish = 8000;
     $this->assertFalse($rule->prevent_new_attempt(1, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(3, $attempt));
     $attempt->timestart = 7950;
     $attempt->timefinish = 8001;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(10001)));
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(4, $attempt));
     $attempt->timestart = 8950;
     $attempt->timefinish = 9000;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(11000)));
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(3, $attempt));
     $attempt->timestart = 8950;
     $attempt->timefinish = 9001;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(11001)));
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youmustwait', 'quiz', userdate(10001)));
     $this->assertEqual($rule->prevent_new_attempt(4, $attempt), get_string('youmustwait', 'quiz', userdate(10001)));
     $attempt->timestart = 8900;
     $attempt->timefinish = 9100;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(11000)));
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $this->assertFalse($rule->prevent_new_attempt(3, $attempt));
     $attempt->timestart = 8901;
     $attempt->timefinish = 9100;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(11001)));
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youmustwait', 'quiz', userdate(10001)));
     $this->assertEqual($rule->prevent_new_attempt(4, $attempt), get_string('youmustwait', 'quiz', userdate(10001)));
 }
コード例 #2
0
 function test_with_close_date()
 {
     $quiz = new stdClass();
     $quiz->attempts = 5;
     $quiz->delay1 = 2000;
     $quiz->delay2 = 1000;
     $quiz->timeclose = 15000;
     $quiz->questions = '';
     $cm = new stdClass();
     $cm->id = 0;
     $quizobj = new quiz($quiz, $cm, null);
     $attempt = new stdClass();
     $attempt->timefinish = 13000;
     $rule = new inter_attempt_delay_access_rule($quizobj, 10000);
     $this->assertFalse($rule->description());
     $this->assertFalse($rule->prevent_access());
     $this->assertFalse($rule->is_finished(0, $attempt));
     $this->assertFalse($rule->time_left($attempt, 0));
     $attempt->timefinish = 13000;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youmustwait', 'quiz', userdate(15000)));
     $attempt->timefinish = 13001;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youcannotwait', 'quiz'));
     $attempt->timefinish = 14000;
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youmustwait', 'quiz', userdate(15000)));
     $attempt->timefinish = 14001;
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youcannotwait', 'quiz'));
     $rule = new inter_attempt_delay_access_rule($quizobj, 15000);
     $attempt->timefinish = 13000;
     $this->assertFalse($rule->prevent_new_attempt(1, $attempt));
     $attempt->timefinish = 13001;
     $this->assertEqual($rule->prevent_new_attempt(1, $attempt), get_string('youcannotwait', 'quiz'));
     $attempt->timefinish = 14000;
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $attempt->timefinish = 14001;
     $this->assertEqual($rule->prevent_new_attempt(2, $attempt), get_string('youcannotwait', 'quiz'));
     $rule = new inter_attempt_delay_access_rule($quizobj, 15001);
     $attempt->timefinish = 13000;
     $this->assertFalse($rule->prevent_new_attempt(1, $attempt));
     $attempt->timefinish = 13001;
     $this->assertFalse($rule->prevent_new_attempt(1, $attempt));
     $attempt->timefinish = 14000;
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
     $attempt->timefinish = 14001;
     $this->assertFalse($rule->prevent_new_attempt(2, $attempt));
 }