Version 1
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Cache / CacheCollectorTest.php
1 <?php
2
3 namespace Drupal\KernelTests\Core\Cache;
4
5 use Drupal\Core\DependencyInjection\ContainerBuilder;
6 use Drupal\KernelTests\KernelTestBase;
7 use Drupal\Tests\Core\Cache\CacheCollectorHelper;
8 use Symfony\Component\DependencyInjection\Reference;
9
10 /**
11  * Tests DatabaseBackend cache tag implementation.
12  *
13  * @group Cache
14  */
15 class CacheCollectorTest extends KernelTestBase {
16
17   /**
18    * {@inheritdoc}
19    */
20   public function register(ContainerBuilder $container) {
21     parent::register($container);
22     // Change container to database cache backends.
23     $container
24       ->register('cache_factory', 'Drupal\Core\Cache\CacheFactory')
25       ->addArgument(new Reference('settings'))
26       ->addMethodCall('setContainer', [new Reference('service_container')]);
27
28     // Change container to use database lock backends.
29     $container
30       ->register('lock', 'Drupal\Core\Lock\DatabaseLockBackend')
31       ->addArgument(new Reference('database'));
32   }
33
34   /**
35    * Tests setting and invalidating
36    *
37    * @dataProvider providerTestInvalidCharacters
38    */
39   public function testCacheCollector($cid, $key, $value) {
40     $collector = new CacheCollectorHelper($cid, $this->container->get('cache.default'), $this->container->get('lock'));
41     $this->assertNull($collector->get($key));
42     $collector->set($key, $value);
43     $this->assertEquals($value, $collector->get($key));
44     $collector->destruct();
45     // @todo Shouldn't this be empty after destruction?
46     $this->assertEquals($value, $collector->get($key));
47   }
48
49   /**
50    * Data provider for ::testCacheCollector().
51    */
52   public function providerTestInvalidCharacters() {
53     return [
54       // Nothing special.
55       ['foo', 'bar', 'baz'],
56       // Invalid characters in CID.
57       ['éøïвβ中國書۞', 'foo', 'bar'],
58       // Really long CID.
59       [$this->randomString(1024), 'foo', 'bar'],
60     ];
61   }
62
63 }