Beispiel #1
0
 /**
  * Test the highscore added event.
  *
  * There is no external API for adding a highscore, so the unit test will simply create
  * and trigger the event and ensure the legacy log data is returned as expected.
  */
 public function test_highscore_added()
 {
     global $DB;
     // Create a highscore.
     $newhighscore = new stdClass();
     $newhighscore->lessonid = $this->lesson->id;
     $newhighscore->userid = 3;
     $newhighscore->gradeid = 70;
     $newhighscore->nickname = 'noob';
     $newhighscore->id = $DB->insert_record('lesson_high_scores', $newhighscore);
     // Create a highscore added event.
     $event = \mod_lesson\event\highscore_added::create(array('objectid' => $newhighscore->id, 'context' => context_module::instance($this->lesson->properties()->cmid), 'courseid' => $this->course->id, 'other' => array('lessonid' => $this->lesson->id, 'nickname' => 'noob')));
     // Trigger and capture the event.
     $sink = $this->redirectEvents();
     $event->trigger();
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\mod_lesson\\event\\highscore_added', $event);
     $this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context());
     $expected = array($this->course->id, 'lesson', 'update highscores', 'highscores.php?id=' . $this->lesson->properties()->cmid, 'noob', $this->lesson->properties()->cmid);
     $this->assertEventLegacyLogData($expected, $event);
     $this->assertEventContextNotUsed($event);
 }
Beispiel #2
0
                    }
                }
            }

            $newhighscore = new stdClass;
            $newhighscore->lessonid = $lesson->id;
            $newhighscore->userid = $USER->id;
            $newhighscore->gradeid = $newgrade->id;
            $newhighscore->nickname = $name;

            $newhighscore->id = $DB->insert_record('lesson_high_scores', $newhighscore);

            // Trigger highscore updated event.
            $event = \mod_lesson\event\highscore_added::create(array(
                'objectid' => $newhighscore->id,
                'context' => $context,
                'courseid' => $course->id,
            ));
            $event->trigger();

            $lesson->add_message(get_string('postsuccess', 'lesson'), 'notifysuccess');
            redirect("$CFG->wwwroot/mod/lesson/highscores.php?id=$cm->id&link=1");
        } else {
            print_error('invalidformdata');
        }
        break;
}

// Trigger highscore viewed event.
$event = \mod_lesson\event\highscores_viewed::create(array(
    'objectid' => $lesson->properties()->id,
                        foreach ($highscores as $highscore) {
                            if ($highscore->grade == $lowscore) {
                                $DB->delete_records('lesson_high_scores', array('id' => $highscore->id));
                            }
                        }
                    }
                }
            }
            $newhighscore = new stdClass();
            $newhighscore->lessonid = $lesson->id;
            $newhighscore->userid = $USER->id;
            $newhighscore->gradeid = $newgrade->id;
            $newhighscore->nickname = $name;
            $newhighscore->id = $DB->insert_record('lesson_high_scores', $newhighscore);
            // Trigger highscore updated event.
            $event = \mod_lesson\event\highscore_added::create(array('objectid' => $newhighscore->id, 'context' => $context, 'courseid' => $course->id, 'other' => array('lessonid' => $lesson->id, 'nickname' => $newhighscore->nickname)));
            $event->trigger();
            $lesson->add_message(get_string('postsuccess', 'lesson'), 'notifysuccess');
            redirect("{$CFG->wwwroot}/mod/lesson/highscores.php?id={$cm->id}&link=1");
        } else {
            print_error('invalidformdata');
        }
        break;
}
// Trigger highscore viewed event.
$event = \mod_lesson\event\highscores_viewed::create(array('objectid' => $lesson->properties()->id, 'context' => $context, 'courseid' => $course->id));
$event->trigger();
$lessonoutput = $PAGE->get_renderer('mod_lesson');
echo $lessonoutput->header($lesson, $cm, 'highscores', false, null, get_string('viewhighscores', 'lesson'));
switch ($mode) {
    case 'add':