MDL-43736 Events: Updated unit test to test context not used in event

This commit is contained in:
Rajesh Taneja
2014-01-29 11:39:50 +08:00
parent fdc729ea57
commit 623a32e50d
36 changed files with 210 additions and 13 deletions
+28
View File
@@ -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().
*