class UnroutedUrlTest
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/UnroutedUrlTest.php \Drupal\Tests\Core\UnroutedUrlTest
- 10 core/tests/Drupal/Tests/Core/UnroutedUrlTest.php \Drupal\Tests\Core\UnroutedUrlTest
- 11.x core/tests/Drupal/Tests/Core/UnroutedUrlTest.php \Drupal\Tests\Core\UnroutedUrlTest
@coversDefaultClass \Drupal\Core\Url @group UrlTest
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpunitCompatibilityTrait
- class \Drupal\Tests\Core\UnroutedUrlTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of UnroutedUrlTest
File
-
core/
tests/ Drupal/ Tests/ Core/ UnroutedUrlTest.php, line 15
Namespace
Drupal\Tests\CoreView source
class UnroutedUrlTest extends UnitTestCase {
/**
* The URL assembler
*
* @var \Drupal\Core\Utility\UnroutedUrlAssemblerInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $urlAssembler;
/**
* The router.
*
* @var \Drupal\Tests\Core\Routing\TestRouterInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $router;
/**
* An unrouted, external URL to test.
*
* @var string
*/
protected $unroutedExternal = 'https://www.drupal.org';
/**
* An unrouted, internal URL to test.
*
* @var string
*/
protected $unroutedInternal = 'base:robots.txt';
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->urlAssembler = $this->createMock('Drupal\\Core\\Utility\\UnroutedUrlAssemblerInterface');
$this->urlAssembler
->expects($this->any())
->method('assemble')
->will($this->returnArgument(0));
$this->router = $this->createMock('Drupal\\Tests\\Core\\Routing\\TestRouterInterface');
$container = new ContainerBuilder();
$container->set('router.no_access_checks', $this->router);
$container->set('unrouted_url_assembler', $this->urlAssembler);
\Drupal::setContainer($container);
}
/**
* Tests the fromUri() method.
*
* @covers ::fromUri
*
* @dataProvider providerFromUri
*/
public function testFromUri($uri, $is_external) {
$url = Url::fromUri($uri);
$this->assertInstanceOf('Drupal\\Core\\Url', $url);
}
/**
* Data provider for testFromUri().
*/
public function providerFromUri() {
return [
// [$uri, $is_external]
// An external URI.
[
'https://www.drupal.org',
TRUE,
],
// A protocol-relative URL.
[
'//www.drupal.org',
TRUE,
],
// An internal, unrouted, base-relative URI.
[
'base:robots.txt',
FALSE,
],
// Base-relative URIs with special characters.
[
'base:AKI@&hO@',
FALSE,
],
[
'base:(:;2&+h^',
FALSE,
],
// Various token formats.
[
'base:node/[token]',
FALSE,
],
[
'base:node/%',
FALSE,
],
[
'base:node/[token:token]',
FALSE,
],
[
'base:node/{{ token }}',
FALSE,
],
];
}
/**
* Tests the fromUri() method.
*
* @covers ::fromUri
* @dataProvider providerFromInvalidUri
*/
public function testFromInvalidUri($uri) {
$this->expectException(\InvalidArgumentException::class);
$url = Url::fromUri($uri);
}
/**
* Data provider for testFromInvalidUri().
*/
public function providerFromInvalidUri() {
return [
// Schemeless paths.
[
'test',
],
[
'/test',
],
// Schemeless path with a query string.
[
'foo?bar',
],
// Only a query string.
[
'?bar',
],
// Only a fragment.
[
'#foo',
],
// Disallowed characters in the authority (host name) that are valid
// elsewhere in the path.
[
'base://(:;2&+h^',
],
];
}
/**
* Tests the createFromRequest method.
*
* @covers ::createFromRequest
*/
public function testCreateFromRequest() {
$request = Request::create('/test-path');
$this->router
->expects($this->once())
->method('matchRequest')
->with($request)
->will($this->throwException(new ResourceNotFoundException()));
$this->expectException(ResourceNotFoundException::class);
Url::createFromRequest($request);
}
/**
* Tests the isExternal() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::isExternal
*/
public function testIsExternal($uri, $is_external) {
$url = Url::fromUri($uri);
$this->assertSame($url->isExternal(), $is_external);
}
/**
* Tests the toString() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::toString
*/
public function testToString($uri) {
$url = Url::fromUri($uri);
$this->assertSame($uri, $url->toString());
}
/**
* Tests the getRouteName() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::getRouteName
*/
public function testGetRouteName($uri) {
$url = Url::fromUri($uri);
$this->expectException(\UnexpectedValueException::class);
$url->getRouteName();
}
/**
* Tests the getRouteParameters() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::getRouteParameters
*/
public function testGetRouteParameters($uri) {
$url = Url::fromUri($uri);
$this->expectException(\UnexpectedValueException::class);
$url->getRouteParameters();
}
/**
* Tests the getInternalPath() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::getInternalPath
*/
public function testGetInternalPath($uri) {
$url = Url::fromUri($uri);
$this->expectException(\Exception::class);
$url->getInternalPath();
}
/**
* Tests the getPath() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::getUri
*/
public function testGetUri($uri) {
$url = Url::fromUri($uri);
$this->assertNotNull($url->getUri());
}
/**
* Tests the getOptions() method.
*
* @depends testFromUri
* @dataProvider providerFromUri
*
* @covers ::getOptions
*/
public function testGetOptions($uri) {
$url = Url::fromUri($uri);
$this->assertIsArray($url->getOptions());
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
PhpunitCompatibilityTrait::getMock | Deprecated | public | function | Returns a mock object for the specified class using the available method. | ||
PhpunitCompatibilityTrait::setExpectedException | Deprecated | public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | ||
UnitTestCase::$randomGenerator | protected | property | The random generator. | |||
UnitTestCase::$root | protected | property | The app root. | 1 | ||
UnitTestCase::assertArrayEquals | protected | function | Asserts if two arrays are equal by sorting them first. | |||
UnitTestCase::getBlockMockWithMachineName | Deprecated | protected | function | Mocks a block with a block plugin. | 1 | |
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::getConfigStorageStub | public | function | Returns a stub config storage that returns the supplied configuration. | |||
UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | |||
UnitTestCase::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | |||
UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | |||
UnitTestCase::randomMachineName | public | function | Generates a unique random string containing letters and numbers. | |||
UnroutedUrlTest::$router | protected | property | The router. | |||
UnroutedUrlTest::$unroutedExternal | protected | property | An unrouted, external URL to test. | |||
UnroutedUrlTest::$unroutedInternal | protected | property | An unrouted, internal URL to test. | |||
UnroutedUrlTest::$urlAssembler | protected | property | The URL assembler | |||
UnroutedUrlTest::providerFromInvalidUri | public | function | Data provider for testFromInvalidUri(). | |||
UnroutedUrlTest::providerFromUri | public | function | Data provider for testFromUri(). | |||
UnroutedUrlTest::setUp | protected | function | Overrides UnitTestCase::setUp | |||
UnroutedUrlTest::testCreateFromRequest | public | function | Tests the createFromRequest method. | |||
UnroutedUrlTest::testFromInvalidUri | public | function | Tests the fromUri() method. | |||
UnroutedUrlTest::testFromUri | public | function | Tests the fromUri() method. | |||
UnroutedUrlTest::testGetInternalPath | public | function | Tests the getInternalPath() method. | |||
UnroutedUrlTest::testGetOptions | public | function | Tests the getOptions() method. | |||
UnroutedUrlTest::testGetRouteName | public | function | Tests the getRouteName() method. | |||
UnroutedUrlTest::testGetRouteParameters | public | function | Tests the getRouteParameters() method. | |||
UnroutedUrlTest::testGetUri | public | function | Tests the getPath() method. | |||
UnroutedUrlTest::testIsExternal | public | function | Tests the isExternal() method. | |||
UnroutedUrlTest::testToString | public | function | Tests the toString() method. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.