Example #1
0
 /**
  * Test get_activities_overview
  */
 public function test_get_activities_overview()
 {
     global $USER;
     $this->resetAfterTest();
     $course1 = self::getDataGenerator()->create_course();
     $course2 = self::getDataGenerator()->create_course();
     // Create a viewer user.
     $viewer = self::getDataGenerator()->create_user((object) array('trackforums' => 1));
     $this->getDataGenerator()->enrol_user($viewer->id, $course1->id);
     $this->getDataGenerator()->enrol_user($viewer->id, $course2->id);
     // Create two forums - one in each course.
     $record = new stdClass();
     $record->course = $course1->id;
     $forum1 = self::getDataGenerator()->create_module('forum', (object) array('course' => $course1->id));
     $forum2 = self::getDataGenerator()->create_module('forum', (object) array('course' => $course2->id));
     $this->setAdminUser();
     // A standard post in the forum.
     $record = new stdClass();
     $record->course = $course1->id;
     $record->userid = $USER->id;
     $record->forum = $forum1->id;
     $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
     $this->setUser($viewer->id);
     $courses = array($course1->id, $course2->id);
     $result = core_course_external::get_activities_overview($courses);
     $result = external_api::clean_returnvalue(core_course_external::get_activities_overview_returns(), $result);
     // There should be one entry for course1, and no others.
     $this->assertCount(1, $result['courses']);
     $this->assertEquals($course1->id, $result['courses'][0]['id']);
     // Check expected overview data for the module.
     $this->assertEquals('forum', $result['courses'][0]['overviews'][0]['module']);
     $this->assertContains('1 total unread', $result['courses'][0]['overviews'][0]['overviewtext']);
 }