Merge branch 'wip-mdl-40917' of https://github.com/rajeshtaneja/moodle
[moodle.git] / mod / resource / tests / events_test.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Events test.
19  *
20  * @package    mod_resource
21  * @copyright  2014 Rajesh Taneja <rajesh@moodle.com>
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 defined('MOODLE_INTERNAL') || die();
27 /**
28  * Resource events test cases.
29  *
30  * @package    mod_resource
31  * @copyright  2014 Rajesh Taneja <rajesh@moodle.com>
32  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33  */
34 class mod_resource_events_testcase extends advanced_testcase {
36     /**
37      * Setup is called before calling test case.
38      */
39     public function setUp() {
40         $this->resetAfterTest();
42         // Must be a non-guest user to create resources.
43         $this->setAdminUser();
44     }
46     /**
47      * Test course_module_instance_list_viewed event.
48      */
49     public function test_course_module_instance_list_viewed() {
50         // There is no proper API to call to trigger this event, so what we are
51         // doing here is simply making sure that the events returns the right information.
53         $course = $this->getDataGenerator()->create_course();
54         $params = array(
55             'context' => context_course::instance($course->id)
56         );
57         $event = \mod_resource\event\course_module_instance_list_viewed::create($params);
59         // Triggering and capturing the event.
60         $sink = $this->redirectEvents();
61         $event->trigger();
62         $events = $sink->get_events();
63         $this->assertCount(1, $events);
64         $event = reset($events);
66         // Checking that the event contains the expected values.
67         $this->assertInstanceOf('\mod_resource\event\course_module_instance_list_viewed', $event);
68         $this->assertEquals(context_course::instance($course->id), $event->get_context());
69         $expected = array($course->id, 'resource', 'view all', 'index.php?id='.$course->id, '');
70         $this->assertEventLegacyLogData($expected, $event);
71     }
73     /**
74      * Test course_module_viewed event.
75      */
76     public function test_course_module_viewed() {
77         // There is no proper API to call to trigger this event, so what we are
78         // doing here is simply making sure that the events returns the right information.
80         $course = $this->getDataGenerator()->create_course();
81         $resource = $this->getDataGenerator()->create_module('resource', array('course' => $course->id));
83         $params = array(
84             'context' => context_module::instance($resource->cmid),
85             'objectid' => $resource->id
86         );
87         $event = \mod_resource\event\course_module_viewed::create($params);
89         // Triggering and capturing the event.
90         $sink = $this->redirectEvents();
91         $event->trigger();
92         $events = $sink->get_events();
93         $this->assertCount(1, $events);
94         $event = reset($events);
96         // Checking that the event contains the expected values.
97         $this->assertInstanceOf('\mod_resource\event\course_module_viewed', $event);
98         $this->assertEquals(context_module::instance($resource->cmid), $event->get_context());
99         $this->assertEquals($resource->id, $event->objectid);
100         $expected = array($course->id, 'resource', 'view', 'view.php?id=' . $resource->cmid, $resource->id, $resource->cmid);
101         $this->assertEventLegacyLogData($expected, $event);
102     }