class TrustedRedirectResponseTest
Same name and namespace in other branches
- 10 core/tests/Drupal/Tests/Core/Routing/TrustedRedirectResponseTest.php \Drupal\Tests\Core\Routing\TrustedRedirectResponseTest
- 9 core/tests/Drupal/Tests/Core/Routing/TrustedRedirectResponseTest.php \Drupal\Tests\Core\Routing\TrustedRedirectResponseTest
- 8.9.x core/tests/Drupal/Tests/Core/Routing/TrustedRedirectResponseTest.php \Drupal\Tests\Core\Routing\TrustedRedirectResponseTest
- main core/tests/Drupal/Tests/Core/Routing/TrustedRedirectResponseTest.php \Drupal\Tests\Core\Routing\TrustedRedirectResponseTest
Tests Drupal\Core\Routing\TrustedRedirectResponse.
Attributes
#[CoversClass(TrustedRedirectResponse::class)]
#[Group('Routing')]
Hierarchy
- class \Drupal\Tests\UnitTestCase uses \Drupal\Tests\DrupalTestCaseTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\Core\Routing\TrustedRedirectResponseTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of TrustedRedirectResponseTest
File
-
core/
tests/ Drupal/ Tests/ Core/ Routing/ TrustedRedirectResponseTest.php, line 22
Namespace
Drupal\Tests\Core\RoutingView source
class TrustedRedirectResponseTest extends UnitTestCase {
/**
* Tests set target url with internal url.
*/
public function testSetTargetUrlWithInternalUrl() : void {
$redirect_response = new TrustedRedirectResponse('/example');
$redirect_response->setTargetUrl('/example2');
$this->assertEquals('/example2', $redirect_response->getTargetUrl());
}
/**
* Tests set target url with untrusted url.
*/
public function testSetTargetUrlWithUntrustedUrl() : void {
$request_context = new RequestContext();
$request_context->setCompleteBaseUrl('https://www.drupal.org');
$container = new ContainerBuilder();
$container->set('router.request_context', $request_context);
\Drupal::setContainer($container);
$redirect_response = new TrustedRedirectResponse('/example');
$this->expectException(\InvalidArgumentException::class);
$redirect_response->setTargetUrl('http://evil-url.com/example');
}
/**
* Tests set target url with trusted url.
*/
public function testSetTargetUrlWithTrustedUrl() : void {
$redirect_response = new TrustedRedirectResponse('/example');
$redirect_response->setTrustedTargetUrl('http://good-external-url.com/example');
$this->assertEquals('http://good-external-url.com/example', $redirect_response->getTargetUrl());
}
/**
* Tests create from redirect response.
*/
public function testCreateFromRedirectResponse($redirect_response) : void {
$trusted_redirect_response = TrustedRedirectResponse::createFromRedirectResponse($redirect_response);
// The trusted redirect response is always a CacheableResponseInterface
// instance.
$this->assertInstanceOf(CacheableResponseInterface::class, $trusted_redirect_response);
// But it is only actually cacheable (non-zero max-age) if the redirect
// response passed to TrustedRedirectResponse::createFromRedirectResponse()
// is itself cacheable.
$expected_cacheability = $redirect_response instanceof CacheableResponseInterface ? $redirect_response->getCacheableMetadata() : (new CacheableMetadata())->setCacheMaxAge(0);
$this->assertEquals($expected_cacheability, $trusted_redirect_response->getCacheableMetadata());
}
/**
* @return array
* An array of test cases, each containing a redirect response instance.
*/
public static function providerCreateFromRedirectResponse() : array {
return [
'cacheable-with-tags' => [
(new CacheableRedirectResponse('/example'))->addCacheableDependency((new CacheableMetadata())->addCacheTags([
'foo',
])),
],
'cacheable-with-max-age-0' => [
(new CacheableRedirectResponse('/example'))->addCacheableDependency((new CacheableMetadata())->setCacheMaxAge(0)),
],
'uncacheable' => [
new RedirectResponse('/example'),
],
];
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overrides |
|---|---|---|---|---|---|
| DrupalTestCaseTrait::checkErrorHandlerOnTearDown | public | function | Checks the test error handler after test execution. | 1 | |
| ExpectDeprecationTrait::expectDeprecation | Deprecated | public | function | Adds an expected deprecation. | |
| ExpectDeprecationTrait::regularExpressionForFormatDescription | private | function | |||
| RandomGeneratorTrait::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | ||
| RandomGeneratorTrait::randomMachineName | protected | function | Generates a unique random string containing letters and numbers. | ||
| RandomGeneratorTrait::randomObject | public | function | Generates a random PHP object. | ||
| RandomGeneratorTrait::randomString | public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | ||
| TrustedRedirectResponseTest::providerCreateFromRedirectResponse | public static | function | |||
| TrustedRedirectResponseTest::testCreateFromRedirectResponse | public | function | Tests create from redirect response. | ||
| TrustedRedirectResponseTest::testSetTargetUrlWithInternalUrl | public | function | Tests set target url with internal url. | ||
| TrustedRedirectResponseTest::testSetTargetUrlWithTrustedUrl | public | function | Tests set target url with trusted url. | ||
| TrustedRedirectResponseTest::testSetTargetUrlWithUntrustedUrl | public | function | Tests set target url with untrusted url. | ||
| UnitTestCase::$root | protected | property | The app root. | ||
| UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | ||
| UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | ||
| UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | ||
| UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | ||
| UnitTestCase::setDebugDumpHandler | public static | function | Registers the dumper CLI handler when the DebugDump extension is enabled. | ||
| UnitTestCase::setUp | protected | function | 371 | ||
| UnitTestCase::setupMockIterator | protected | function | Set up a traversable class mock to return specific items when iterated. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.