diff --git a/cache/tests/cache_test.php b/cache/tests/cache_test.php index 7f402d56b6c..edef90db99d 100644 --- a/cache/tests/cache_test.php +++ b/cache/tests/cache_test.php @@ -627,6 +627,15 @@ class cache_phpunit_tests extends advanced_testcase { 'crazyevent' ) )); + $instance->phpunit_add_definition('phpunit/eventpurgetestpersistent', array( + 'mode' => cache_store::MODE_APPLICATION, + 'component' => 'phpunit', + 'area' => 'eventpurgetestpersistent', + 'persistent' => true, + 'invalidationevents' => array( + 'crazyevent' + ) + )); $cache = cache::make('phpunit', 'eventpurgetest'); $this->assertTrue($cache->set('testkey1', 'test data 1')); @@ -640,6 +649,71 @@ class cache_phpunit_tests extends advanced_testcase { // Check things have been removed. $this->assertFalse($cache->get('testkey1')); $this->assertFalse($cache->get('testkey2')); + + // Now test the persistent cache. + $cache = cache::make('phpunit', 'eventpurgetestpersistent'); + $this->assertTrue($cache->set('testkey1', 'test data 1')); + $this->assertEquals('test data 1', $cache->get('testkey1')); + $this->assertTrue($cache->set('testkey2', 'test data 2')); + $this->assertEquals('test data 2', $cache->get('testkey2')); + + // Purge the event. + cache_helper::purge_by_event('crazyevent'); + + // Check things have been removed. + $this->assertFalse($cache->get('testkey1')); + $this->assertFalse($cache->get('testkey2')); + } + + /** + * Tests session cache event purge + */ + public function test_session_event_purge() { + $instance = cache_config_phpunittest::instance(); + $instance->phpunit_add_definition('phpunit/eventpurgetest', array( + 'mode' => cache_store::MODE_SESSION, + 'component' => 'phpunit', + 'area' => 'eventpurgetest', + 'invalidationevents' => array( + 'crazyevent' + ) + )); + $instance->phpunit_add_definition('phpunit/eventpurgetestpersistent', array( + 'mode' => cache_store::MODE_SESSION, + 'component' => 'phpunit', + 'area' => 'eventpurgetestpersistent', + 'persistent' => true, + 'invalidationevents' => array( + 'crazyevent' + ) + )); + $cache = cache::make('phpunit', 'eventpurgetest'); + + $this->assertTrue($cache->set('testkey1', 'test data 1')); + $this->assertEquals('test data 1', $cache->get('testkey1')); + $this->assertTrue($cache->set('testkey2', 'test data 2')); + $this->assertEquals('test data 2', $cache->get('testkey2')); + + // Purge the event. + cache_helper::purge_by_event('crazyevent'); + + // Check things have been removed. + $this->assertFalse($cache->get('testkey1')); + $this->assertFalse($cache->get('testkey2')); + + // Now test the persistent cache. + $cache = cache::make('phpunit', 'eventpurgetestpersistent'); + $this->assertTrue($cache->set('testkey1', 'test data 1')); + $this->assertEquals('test data 1', $cache->get('testkey1')); + $this->assertTrue($cache->set('testkey2', 'test data 2')); + $this->assertEquals('test data 2', $cache->get('testkey2')); + + // Purge the event. + cache_helper::purge_by_event('crazyevent'); + + // Check things have been removed. + $this->assertFalse($cache->get('testkey1')); + $this->assertFalse($cache->get('testkey2')); } /** diff --git a/cache/tests/fixtures/lib.php b/cache/tests/fixtures/lib.php index 471521b2556..42ce92b13d4 100644 --- a/cache/tests/fixtures/lib.php +++ b/cache/tests/fixtures/lib.php @@ -46,7 +46,7 @@ class cache_config_phpunittest extends cache_config_writer { case cache_store::MODE_APPLICATION: $properties['overrideclass'] = 'cache_phpunit_application'; break; - case cache_store::MDOE_SESSION: + case cache_store::MODE_SESSION: $properties['overrideclass'] = 'cache_phpunit_session'; break; case cache_store::MODE_REQUEST: