
| Current Path : /var/www/html/dataninja.cn/core/tests/Drupal/Tests/Core/Render/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/dataninja.cn/core/tests/Drupal/Tests/Core/Render/MetadataBubblingUrlGeneratorTest.php |
<?php
namespace Drupal\Tests\Core\Render;
use Drupal\Core\Render\MetadataBubblingUrlGenerator;
use Drupal\Core\Url;
use Drupal\Tests\Core\Routing\UrlGeneratorTest;
/**
* Confirm that the MetadataBubblingUrlGenerator is functioning properly.
*
* @coversDefaultClass \Drupal\Core\Render\MetadataBubblingUrlGenerator
*
* @group Render
*/
class MetadataBubblingUrlGeneratorTest extends UrlGeneratorTest {
/**
* The renderer.
*
* @var \Drupal\Core\Render\RendererInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $renderer;
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->renderer = $this->getMock('\Drupal\Core\Render\RendererInterface');
$this->renderer->expects($this->any())
->method('hasRenderContext')
->willReturn(TRUE);
$this->generator = new MetadataBubblingUrlGenerator($this->generator, $this->renderer);
}
/**
* Tests bubbling of cacheable metadata for URLs.
*
* @param bool $collect_bubbleable_metadata
* Whether bubbleable metadata should be collected.
* @param int $invocations
* The expected amount of invocations for the ::bubble() method.
* @param array $options
* The URL options.
*
* @covers ::bubble
*
* @dataProvider providerUrlBubbleableMetadataBubbling
*/
public function testUrlBubbleableMetadataBubbling($collect_bubbleable_metadata, $invocations, array $options) {
$self = $this;
$this->renderer->expects($this->exactly($invocations))
->method('render')
->willReturnCallback(function ($build) use ($self) {
$self->assertTrue(!empty($build['#cache']));
});
$url = new Url('test_1', [], $options);
$url->setUrlGenerator($this->generator);
$url->toString($collect_bubbleable_metadata);
}
/**
* Data provider for ::testUrlBubbleableMetadataBubbling().
*/
public function providerUrlBubbleableMetadataBubbling() {
return [
// No bubbling when bubbleable metadata is collected.
[TRUE, 0, []],
// Bubbling when bubbleable metadata is not collected.
[FALSE, 1, []],
];
}
}