MDL-52471 completion: fix deprecated use of 'object'
authorDan Poltawski <dan@moodle.com>
Thu, 10 Dec 2015 14:45:57 +0000 (14:45 +0000)
committerDan Poltawski <dan@moodle.com>
Thu, 10 Dec 2015 15:47:11 +0000 (15:47 +0000)
And add a unit test covering completion_can_view_data() without
full course object passed.

lib/completionlib.php
lib/tests/completionlib_test.php

index 262c1e8..de9b8a4 100644 (file)
@@ -158,7 +158,7 @@ function completion_can_view_data($userid, $course = null) {
 
     if (!is_object($course)) {
         $cid = $course;
-        $course = new object();
+        $course = new stdClass();
         $course->id = $cid;
     }
 
index f126735..b0625f1 100644 (file)
@@ -858,6 +858,17 @@ class core_completionlib_testcase extends advanced_testcase {
         $expectedlegacylog = array($this->course->id, 'course', 'completion updated', 'completion.php?id='.$this->course->id);
         $this->assertEventLegacyLogData($expectedlegacylog, $event);
     }
+
+    public function test_completion_can_view_data() {
+        $this->setup_data();
+
+        $student = $this->getDataGenerator()->create_user();
+        $this->getDataGenerator()->enrol_user($student->id, $this->course->id);
+
+        $this->setUser($student);
+        $this->assertTrue(completion_can_view_data($student->id, $this->course->id));
+        $this->assertFalse(completion_can_view_data($this->user->id, $this->course->id));
+    }
 }
 
 class core_completionlib_fake_recordset implements Iterator {