Issue #2453891 by Dragooon, Wim Leers: Renderer::getCacheableRenderArray() does not include max-age

8.0.x
Alex Pott 2015-03-20 14:28:45 +00:00
parent c393119b77
commit cc54a481db
3 changed files with 23 additions and 0 deletions

View File

@ -754,6 +754,7 @@ class Renderer implements RendererInterface {
'#cache' => [
'contexts' => $elements['#cache']['contexts'],
'tags' => $elements['#cache']['tags'],
'max-age' => $elements['#cache']['max-age'],
],
];
}

View File

@ -10,6 +10,7 @@ namespace Drupal\Tests\Core\Render;
use Drupal\Core\KeyValueStore\KeyValueMemoryFactory;
use Drupal\Core\Render\Element;
use Drupal\Core\State\State;
use Drupal\Core\Cache\Cache;
/**
* @coversDefaultClass \Drupal\Core\Render\Renderer
@ -114,6 +115,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['foo'],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -142,6 +144,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -165,6 +168,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => '',
@ -196,6 +200,7 @@ class RendererBubblingTest extends RendererTestBase {
'child' => [
'#cache' => [
'contexts' => ['foo', 'baz'],
'max-age' => 3600,
],
],
];
@ -205,6 +210,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['bar', 'baz', 'foo'],
'tags' => [],
'max-age' => 3600,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -251,6 +257,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['bar', 'foo'],
'tags' => ['dee', 'fiddle', 'har', 'yar'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -339,6 +346,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['user.roles'],
'tags' => ['a', 'b'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -362,6 +370,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['foo', 'user.roles'],
'tags' => ['a', 'b', 'c'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -393,6 +402,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['foo', 'user.roles'],
'tags' => ['a', 'b'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -417,6 +427,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['bar', 'foo', 'user.roles'],
'tags' => ['a', 'b', 'c', 'd'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -432,6 +443,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['bar', 'foo', 'user.roles'],
'tags' => ['a', 'b'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',
@ -447,6 +459,7 @@ class RendererBubblingTest extends RendererTestBase {
'#cache' => [
'contexts' => ['bar', 'foo', 'user.roles'],
'tags' => ['a', 'b', 'c'],
'max-age' => Cache::PERMANENT,
],
'#post_render_cache' => [],
'#markup' => 'parent',

View File

@ -9,6 +9,7 @@ namespace Drupal\Tests\Core\Render;
use Drupal\Component\Utility\Html;
use Drupal\Core\Render\Element;
use Drupal\Core\Cache\Cache;
/**
* @coversDefaultClass \Drupal\Core\Render\Renderer
@ -92,6 +93,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
$this->assertSame($cached_element, $expected_element, 'The correct data is cached: the stored #markup and #attached properties are not affected by #post_render_cache callbacks.');
@ -228,6 +230,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
@ -323,6 +326,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
@ -349,6 +353,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
@ -463,6 +468,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
$this->assertSame($cached_element, $expected_element, 'The correct data is cached: the stored #markup and #attached properties are not affected by #post_render_cache callbacks.');
@ -561,6 +567,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
$this->assertSame($cached_element, $expected_element, 'The correct data is cached for the child element: the stored #markup and #attached properties are not affected by #post_render_cache callbacks.');
@ -589,6 +596,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
$this->assertSame($cached_element, $expected_element, 'The correct data is cached for the parent element: the stored #markup and #attached properties are not affected by #post_render_cache callbacks.');
@ -620,6 +628,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
'#cache' => [
'contexts' => [],
'tags' => [],
'max-age' => Cache::PERMANENT,
],
];
$this->assertSame($cached_element, $expected_element, 'The correct data is cached for the child element: the stored #markup and #attached properties are not affected by #post_render_cache callbacks.');