
| Current Path : /var/www/html/german-vocational.cn/core/tests/Drupal/Tests/Core/Form/ |
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/german-vocational.cn/core/tests/Drupal/Tests/Core/Form/ConfirmFormHelperTest.php |
<?php
namespace Drupal\Tests\Core\Form;
use Drupal\Core\Form\ConfirmFormHelper;
use Drupal\Core\Url;
use Drupal\Tests\UnitTestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpFoundation\Request;
/**
* @coversDefaultClass \Drupal\Core\Form\ConfirmFormHelper
* @group Form
*/
class ConfirmFormHelperTest extends UnitTestCase {
/**
* @covers ::buildCancelLink
*
* Tests the cancel link title.
*/
public function testCancelLinkTitle() {
$cancel_text = 'Cancel text';
$form = $this->getMock('Drupal\Core\Form\ConfirmFormInterface');
$form->expects($this->any())
->method('getCancelText')
->will($this->returnValue($cancel_text));
$link = ConfirmFormHelper::buildCancelLink($form, new Request());
$this->assertSame($cancel_text, $link['#title']);
$this->assertSame(['contexts' => ['url.query_args:destination']], $link['#cache']);
}
/**
* @covers ::buildCancelLink
*
* Tests a cancel link route.
*/
public function testCancelLinkRoute() {
$route_name = 'foo_bar';
$cancel_route = new Url($route_name);
$form = $this->getMock('Drupal\Core\Form\ConfirmFormInterface');
$form->expects($this->any())
->method('getCancelUrl')
->will($this->returnValue($cancel_route));
$link = ConfirmFormHelper::buildCancelLink($form, new Request());
$this->assertEquals(Url::fromRoute($route_name), $link['#url']);
$this->assertSame(['contexts' => ['url.query_args:destination']], $link['#cache']);
}
/**
* @covers ::buildCancelLink
*
* Tests a cancel link route with parameters.
*/
public function testCancelLinkRouteWithParams() {
$expected = Url::fromRoute('foo_bar.baz', ['baz' => 'banana'], ['absolute' => TRUE]);
$form = $this->getMock('Drupal\Core\Form\ConfirmFormInterface');
$form->expects($this->any())
->method('getCancelUrl')
->will($this->returnValue($expected));
$link = ConfirmFormHelper::buildCancelLink($form, new Request());
$this->assertEquals($expected, $link['#url']);
$this->assertSame(['contexts' => ['url.query_args:destination']], $link['#cache']);
}
/**
* @covers ::buildCancelLink
*
* Tests a cancel link route with a URL object.
*/
public function testCancelLinkRouteWithUrl() {
$cancel_route = new Url(
'foo_bar.baz', [
'baz' => 'banana',
],
[
'absolute' => TRUE,
]
);
$form = $this->getMock('Drupal\Core\Form\ConfirmFormInterface');
$form->expects($this->any())
->method('getCancelUrl')
->will($this->returnValue($cancel_route));
$link = ConfirmFormHelper::buildCancelLink($form, new Request());
$this->assertSame($cancel_route, $link['#url']);
$this->assertSame(['contexts' => ['url.query_args:destination']], $link['#cache']);
}
/**
* @covers ::buildCancelLink
*
* Tests a cancel link provided by the destination.
*
* @dataProvider providerTestCancelLinkDestination
*/
public function testCancelLinkDestination($destination) {
$query = ['destination' => $destination];
$form = $this->getMock('Drupal\Core\Form\ConfirmFormInterface');
$path_validator = $this->getMock('Drupal\Core\Path\PathValidatorInterface');
$container_builder = new ContainerBuilder();
$container_builder->set('path.validator', $path_validator);
\Drupal::setContainer($container_builder);
$url = Url::fromRoute('test_route');
$path_validator->expects($this->atLeastOnce())
->method('getUrlIfValidWithoutAccessCheck')
->with('baz')
->willReturn($url);
$link = ConfirmFormHelper::buildCancelLink($form, new Request($query));
$this->assertSame($url, $link['#url']);
$this->assertSame(['contexts' => ['url.query_args:destination']], $link['#cache']);
}
/**
* Provides test data for testCancelLinkDestination().
*/
public function providerTestCancelLinkDestination() {
$data = [];
$data[] = ['baz'];
$data[] = ['/baz'];
return $data;
}
}