Issue #2453891 by Dragooon, Wim Leers: Renderer::getCacheableRenderArray() does not include max-age
parent
c393119b77
commit
cc54a481db
|
@ -754,6 +754,7 @@ class Renderer implements RendererInterface {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => $elements['#cache']['contexts'],
|
'contexts' => $elements['#cache']['contexts'],
|
||||||
'tags' => $elements['#cache']['tags'],
|
'tags' => $elements['#cache']['tags'],
|
||||||
|
'max-age' => $elements['#cache']['max-age'],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ namespace Drupal\Tests\Core\Render;
|
||||||
use Drupal\Core\KeyValueStore\KeyValueMemoryFactory;
|
use Drupal\Core\KeyValueStore\KeyValueMemoryFactory;
|
||||||
use Drupal\Core\Render\Element;
|
use Drupal\Core\Render\Element;
|
||||||
use Drupal\Core\State\State;
|
use Drupal\Core\State\State;
|
||||||
|
use Drupal\Core\Cache\Cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @coversDefaultClass \Drupal\Core\Render\Renderer
|
* @coversDefaultClass \Drupal\Core\Render\Renderer
|
||||||
|
@ -114,6 +115,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['foo'],
|
'contexts' => ['foo'],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -142,6 +144,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -165,6 +168,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => '',
|
'#markup' => '',
|
||||||
|
@ -196,6 +200,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'child' => [
|
'child' => [
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['foo', 'baz'],
|
'contexts' => ['foo', 'baz'],
|
||||||
|
'max-age' => 3600,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
@ -205,6 +210,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['bar', 'baz', 'foo'],
|
'contexts' => ['bar', 'baz', 'foo'],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => 3600,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -251,6 +257,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['bar', 'foo'],
|
'contexts' => ['bar', 'foo'],
|
||||||
'tags' => ['dee', 'fiddle', 'har', 'yar'],
|
'tags' => ['dee', 'fiddle', 'har', 'yar'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -339,6 +346,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['user.roles'],
|
'contexts' => ['user.roles'],
|
||||||
'tags' => ['a', 'b'],
|
'tags' => ['a', 'b'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -362,6 +370,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['foo', 'user.roles'],
|
'contexts' => ['foo', 'user.roles'],
|
||||||
'tags' => ['a', 'b', 'c'],
|
'tags' => ['a', 'b', 'c'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -393,6 +402,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['foo', 'user.roles'],
|
'contexts' => ['foo', 'user.roles'],
|
||||||
'tags' => ['a', 'b'],
|
'tags' => ['a', 'b'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -417,6 +427,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['bar', 'foo', 'user.roles'],
|
'contexts' => ['bar', 'foo', 'user.roles'],
|
||||||
'tags' => ['a', 'b', 'c', 'd'],
|
'tags' => ['a', 'b', 'c', 'd'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -432,6 +443,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['bar', 'foo', 'user.roles'],
|
'contexts' => ['bar', 'foo', 'user.roles'],
|
||||||
'tags' => ['a', 'b'],
|
'tags' => ['a', 'b'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
@ -447,6 +459,7 @@ class RendererBubblingTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => ['bar', 'foo', 'user.roles'],
|
'contexts' => ['bar', 'foo', 'user.roles'],
|
||||||
'tags' => ['a', 'b', 'c'],
|
'tags' => ['a', 'b', 'c'],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
'#post_render_cache' => [],
|
'#post_render_cache' => [],
|
||||||
'#markup' => 'parent',
|
'#markup' => 'parent',
|
||||||
|
|
|
@ -9,6 +9,7 @@ namespace Drupal\Tests\Core\Render;
|
||||||
|
|
||||||
use Drupal\Component\Utility\Html;
|
use Drupal\Component\Utility\Html;
|
||||||
use Drupal\Core\Render\Element;
|
use Drupal\Core\Render\Element;
|
||||||
|
use Drupal\Core\Cache\Cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @coversDefaultClass \Drupal\Core\Render\Renderer
|
* @coversDefaultClass \Drupal\Core\Render\Renderer
|
||||||
|
@ -92,6 +93,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'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.');
|
$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' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -323,6 +326,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -349,6 +353,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'tags' => [],
|
||||||
|
'max-age' => Cache::PERMANENT,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -463,6 +468,7 @@ class RendererPostRenderCacheTest extends RendererTestBase {
|
||||||
'#cache' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'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.');
|
$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' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'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.');
|
$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' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'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.');
|
$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' => [
|
'#cache' => [
|
||||||
'contexts' => [],
|
'contexts' => [],
|
||||||
'tags' => [],
|
'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.');
|
$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.');
|
||||||
|
|
Loading…
Reference in New Issue