コード例 #1
0
ファイル: CacheTagTest.php プロジェクト: sarahwillem/OD8
 /**
  * Tests the tag cache plugin.
  */
 public function testTagCaching()
 {
     /** @var \Drupal\Core\Render\RendererInterface $renderer */
     $renderer = \Drupal::service('renderer');
     $view = Views::getView('test_tag_cache');
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Saving the view should invalidate the tags.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $view->storage->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after the view is saved.');
     $this->assertFalse($this->getRenderCache($view), 'Output cache empty after the view is saved.');
     $view->destroy();
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Test invalidating the nodes in this view invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $this->nodeViewBuilder->resetCache($this->pages);
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after resetCache is called with pages.');
     $this->assertFalse($this->getRenderCache($view), 'Output cache empty after resetCache is called with pages.');
     $view->destroy();
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Test saving a node in this view invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $node = reset($this->pages);
     $node->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after a page node is saved.');
     $this->assertFalse($this->getRenderCache($view), 'Output cache empty after a page node is saved.');
     $view->destroy();
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Test saving a node not in this view invalidates the cache too.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $this->article->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after an article node is saved.');
     $this->assertFalse($this->getRenderCache($view), 'Output cache empty after an article node is saved.');
     $view->destroy();
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Test that invalidating a tag for a user, does not invalidate the cache,
     // as the user entity type will not be contained in the views cache tags.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $this->userViewBuilder->resetCache(array($this->user));
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found after a user is invalidated.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found after a user is invalidated.');
     $view->destroy();
     // Invalidate the views cache tags in order to invalidate the render
     // caching.
     \Drupal::service('cache_tags.invalidator')->invalidateTags($view->storage->getCacheTagsToInvalidate());
     $build = $view->buildRenderable();
     $renderer->renderPlain($build);
     // Test the cacheFlush method invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($this->getRenderCache($view), 'Output cache found.');
     $cache_plugin->cacheFlush();
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after the cacheFlush() method is called.');
     $this->assertFalse($this->getRenderCache($view), 'Output cache empty after the cacheFlush() method is called.');
 }
コード例 #2
0
 /**
  * Tests the tag cache plugin.
  */
 public function testTagCaching()
 {
     $view = Views::getView('test_tag_cache');
     $view->render();
     // Saving the view should invalidate the tags.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $view->storage->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after the view is saved.');
     $this->assertFalse($cache_plugin->cacheGet('output'), 'Output cache empty after the view is saved.');
     $view->destroy();
     $view->render();
     // Test invalidating the nodes in this view invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $this->nodeViewBuilder->resetCache($this->pages);
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after resetCache is called with pages.');
     $this->assertFalse($cache_plugin->cacheGet('output'), 'Output cache empty after resetCache is called with pages.');
     $view->destroy();
     $view->render();
     // Test saving a node in this view invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $node = reset($this->pages);
     $node->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after a page node is saved.');
     $this->assertFalse($cache_plugin->cacheGet('output'), 'Output cache empty after a page node is saved.');
     $view->destroy();
     $view->render();
     // Test saving a node not in this view invalidates the cache too.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $this->article->save();
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after an article node is saved.');
     $this->assertFalse($cache_plugin->cacheGet('output'), 'Output cache empty after an article node is saved.');
     $view->destroy();
     $view->render();
     // Test that invalidating a tag for a user, does not invalidate the cache,
     // as the user entity type will not be contained in the views cache tags.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $this->userViewBuilder->resetCache(array($this->user));
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found after a user is invalidated.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found after a user is invalidated.');
     $view->destroy();
     $view->render();
     // Test the cacheFlush method invalidates the cache.
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertTrue($cache_plugin->cacheGet('results'), 'Results cache found.');
     $this->assertTrue($cache_plugin->cacheGet('output'), 'Output cache found.');
     $cache_plugin->cacheFlush();
     $cache_plugin = $view->display_handler->getPlugin('cache');
     $this->assertFalse($cache_plugin->cacheGet('results'), 'Results cache empty after the cacheFlush() method is called.');
     $this->assertFalse($cache_plugin->cacheGet('output'), 'Output cache empty after the cacheFlush() method is called.');
 }