public function CacheTest::testCacheData in Drupal 8
Same name and namespace in other branches
- 9 core/modules/views/tests/src/Kernel/Plugin/CacheTest.php \Drupal\Tests\views\Kernel\Plugin\CacheTest::testCacheData()
 - 10 core/modules/views/tests/src/Kernel/Plugin/CacheTest.php \Drupal\Tests\views\Kernel\Plugin\CacheTest::testCacheData()
 
Tests the data contained in cached items.
File
- core/
modules/ views/ tests/ src/ Kernel/ Plugin/ CacheTest.php, line 319  
Class
- CacheTest
 - Tests pluggable caching for views.
 
Namespace
Drupal\Tests\views\Kernel\PluginCode
public function testCacheData() {
  for ($i = 1; $i <= 5; $i++) {
    Node::create([
      'title' => $this
        ->randomMachineName(8),
      'type' => 'page',
    ])
      ->save();
  }
  $view = Views::getView('test_display');
  $view
    ->setDisplay();
  $view->display_handler
    ->overrideOption('cache', [
    'type' => 'time',
    'options' => [
      'results_lifespan' => '3600',
      'output_lifespan' => '3600',
    ],
  ]);
  $this
    ->executeView($view);
  // Get the cache item.
  $cid = $view->display_handler
    ->getPlugin('cache')
    ->generateResultsKey();
  $cache = \Drupal::cache('data')
    ->get($cid);
  // Assert there are results, empty results would mean this test case would
  // pass otherwise.
  $this
    ->assertGreaterThan(0, count($cache->data['result']), 'Results saved in cached data.');
  // Assert each row doesn't contain '_entity' or '_relationship_entities'
  // items.
  foreach ($cache->data['result'] as $row) {
    $this
      ->assertIdentical($row->_entity, NULL, 'Cached row "_entity" property is NULL');
    $this
      ->assertIdentical($row->_relationship_entities, [], 'Cached row "_relationship_entities" property is empty');
  }
}