MDL-43736 Events: Updated unit test to test context not used in event
This commit is contained in:
@@ -343,6 +343,34 @@ abstract class advanced_testcase extends PHPUnit_Framework_TestCase {
|
||||
$this->assertEquals($expected, $legacydata, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert that an event is not using event->contxet.
|
||||
* While restoring context might not be valid and it should not be used by event url
|
||||
* or description methods.
|
||||
*
|
||||
* @param \core\event\base $event the event object.
|
||||
* @param string $message
|
||||
* @return void
|
||||
*/
|
||||
public function assertEventContextNotUsed(\core\event\base $event, $message = '') {
|
||||
// Save current event->context and set it to false.
|
||||
$eventcontext = phpunit_event_mock::testable_get_event_context($event);
|
||||
phpunit_event_mock::testable_set_event_context($event, false);
|
||||
if ($message === '') {
|
||||
$message = 'Event should not use context property of event in any method.';
|
||||
}
|
||||
|
||||
// Test event methods should not use event->context.
|
||||
$event->get_url();
|
||||
$event->get_description();
|
||||
$event->get_legacy_eventname();
|
||||
phpunit_event_mock::testable_get_legacy_eventdata($event);
|
||||
phpunit_event_mock::testable_get_legacy_logdata($event);
|
||||
|
||||
// Restore event->context.
|
||||
phpunit_event_mock::testable_set_event_context($event, $eventcontext);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores current time as the base for assertTimeCurrent().
|
||||
*
|
||||
|
||||
@@ -37,6 +37,8 @@ abstract class phpunit_event_mock extends \core\event\base {
|
||||
|
||||
/**
|
||||
* Returns the log data of the event.
|
||||
*
|
||||
* @param \core\event\base $event event to get legacy eventdata from.
|
||||
* @return array
|
||||
*/
|
||||
public static function testable_get_legacy_eventdata($event) {
|
||||
@@ -45,10 +47,31 @@ abstract class phpunit_event_mock extends \core\event\base {
|
||||
|
||||
/**
|
||||
* Returns the log data of the event.
|
||||
*
|
||||
* @param \core\event\base $event event to get legacy logdata from.
|
||||
* @return array
|
||||
*/
|
||||
public static function testable_get_legacy_logdata($event) {
|
||||
return $event->get_legacy_logdata();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns event context.
|
||||
*
|
||||
* @param \core\event\base $event event to get context for.
|
||||
* @return context event context
|
||||
*/
|
||||
public static function testable_get_event_context($event) {
|
||||
return $event->context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets event context.
|
||||
*
|
||||
* @param \core\event\base $event event to set context for.
|
||||
* @param context $context context to set.
|
||||
*/
|
||||
public static function testable_set_event_context($event, $context) {
|
||||
$event->context = $context;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user