Beispiel #1
0
    public function test_ipaddress_access_rule() {
        $quiz = new stdClass();
        $attempt = new stdClass();
        $cm = new stdClass();
        $cm->id = 0;

        // Test the allowed case by getting the user's IP address. However, this
        // does not always work, for example using the mac install package on my laptop.
        $quiz->subnet = getremoteaddr(null);
        if (!empty($quiz->subnet)) {
            $quiz->questions = '';
            $quizobj = new quiz($quiz, $cm, null);
            $rule = new quizaccess_ipaddress($quizobj, 0);

            $this->assertFalse($rule->prevent_access());
            $this->assertFalse($rule->description());
            $this->assertFalse($rule->prevent_new_attempt(0, $attempt));
            $this->assertFalse($rule->is_finished(0, $attempt));
            $this->assertFalse($rule->time_left($attempt, 1));
        }

        $quiz->subnet = '0.0.0.0';
        $quiz->questions = '';
        $quizobj = new quiz($quiz, $cm, null);
        $rule = new quizaccess_ipaddress($quizobj, 0);

        $this->assertNotEmpty($rule->prevent_access());
        $this->assertEmpty($rule->description());
        $this->assertFalse($rule->prevent_new_attempt(0, $attempt));
        $this->assertFalse($rule->is_finished(0, $attempt));
        $this->assertFalse($rule->time_left($attempt, 1));
    }