/** * Test the report viewed event. * * It's not possible to use the moodle API to simulate the viewing of log report, so here we * simply create the event and trigger it. */ public function test_report_viewed() { $course = $this->getDataGenerator()->create_course(); $context = context_course::instance($course->id); // Trigger event for log report viewed. $event = \report_log\event\report_viewed::create(array('context' => $context, 'relateduserid' => 0, 'other' => array('groupid' => 0, 'date' => 0, 'modid' => 0, 'modaction' => '', 'logformat' => 'showashtml'))); // Trigger and capture the event. $sink = $this->redirectEvents(); $event->trigger(); $events = $sink->get_events(); $event = reset($events); $this->assertInstanceOf('\\report_log\\event\\report_viewed', $event); $this->assertEquals($context, $event->get_context()); $expected = array($course->id, "course", "report log", "report/log/index.php?id={$course->id}", $course->id); $this->assertEventLegacyLogData($expected, $event); $this->assertEventContextNotUsed($event); $url = new moodle_url('/report/log/index.php', array('id' => $event->courseid)); $this->assertEquals($url, $event->get_url()); }
// Get course details. $course = null; if ($id) { $course = $DB->get_record('course', array('id' => $id), '*', MUST_EXIST); require_login($course); $context = context_course::instance($course->id); } else { require_login(); $context = context_system::instance(); $PAGE->set_context($context); } require_capability('report/log:view', $context); // When user choose to view logs then only trigger event. if ($chooselog) { // Trigger a report viewed event. $event = \report_log\event\report_viewed::create(array('context' => $context, 'relateduserid' => $user, 'other' => array('groupid' => $group, 'date' => $date, 'modid' => $modid, 'modaction' => $modaction, 'logformat' => $logformat))); $event->trigger(); } if (!empty($page)) { $strlogs = get_string('logs') . ": " . get_string('page', 'report_log', $page + 1); } else { $strlogs = get_string('logs'); } $stradministration = get_string('administration'); $strreports = get_string('reports'); // Before we close session, make sure we have editing information in session. $adminediting = optional_param('adminedit', -1, PARAM_BOOL); if ($PAGE->user_allowed_editing() && $adminediting != -1) { $USER->editing = $adminediting; } if (empty($course) || $course->id == $SITE->id) {