class FieldLinkTest
Same name in other branches
- 8.9.x core/modules/link/tests/src/Unit/Plugin/migrate/process/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
- 8.9.x core/modules/link/tests/src/Unit/Plugin/migrate/process/d6/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\d6\FieldLinkTest
- 10 core/modules/link/tests/src/Unit/Plugin/migrate/process/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
- 11.x core/modules/link/tests/src/Unit/Plugin/migrate/process/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
@group Link
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait
- class \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of FieldLinkTest
File
-
core/
modules/ link/ tests/ src/ Unit/ Plugin/ migrate/ process/ FieldLinkTest.php, line 14
Namespace
Drupal\Tests\link\Unit\Plugin\migrate\processView source
class FieldLinkTest extends UnitTestCase {
/**
* Tests the url transformations in the FieldLink process plugin.
*
* @dataProvider canonicalizeUriDataProvider
*/
public function testCanonicalizeUri($url, $expected, $configuration = []) {
$link_plugin = new FieldLink($configuration, '', [], $this->createMock(MigrationInterface::class));
$transformed = $link_plugin->transform([
'url' => $url,
'title' => '',
'attributes' => serialize([]),
], $this->createMock(MigrateExecutableInterface::class), $this->getMockBuilder(Row::class)
->disableOriginalConstructor()
->getMock(), NULL);
$this->assertEquals($expected, $transformed['uri']);
}
/**
* Data provider for testCanonicalizeUri.
*/
public function canonicalizeUriDataProvider() {
return [
'Simple front-page' => [
'<front>',
'internal:/',
],
'Front page with query' => [
'<front>?query=1',
'internal:/?query=1',
],
'No leading forward slash' => [
'node/10',
'internal:/node/10',
],
'Leading forward slash' => [
'/node/10',
'internal:/node/10',
],
'Existing scheme' => [
'scheme:test',
'scheme:test',
],
'Absolute URL with protocol prefix' => [
'http://www.google.com',
'http://www.google.com',
],
'Absolute URL without protocol prefix' => [
'www.yahoo.com',
'http://www.yahoo.com',
],
'Absolute URL without protocol prefix nor www' => [
'yahoo.com',
'https://yahoo.com',
[
'uri_scheme' => 'https://',
],
],
'Absolute URL without explicit protocol (protocol-relative)' => [
'//example.com',
'http://example.com',
],
'Absolute URL with non-standard characters' => [
'http://www.ßÀÑÐ¥ƒå¢ë.com',
'http://www.ßÀÑÐ¥ƒå¢ë.com',
],
'Absolute URL with non-standard characters, without protocol prefix' => [
'www.ÐØÑ¢åþë.com',
'http://www.ÐØÑ¢åþë.com',
],
'Absolute URL with non-standard top level domain' => [
'http://www.example.xxx',
'http://www.example.xxx',
],
'Internal link with fragment' => [
'/node/10#top',
'internal:/node/10#top',
],
'External link with fragment' => [
'http://www.example.com/page#links',
'http://www.example.com/page#links',
],
'empty' => [
'',
'route:<nolink>',
],
'No link' => [
'<nolink>',
'route:<nolink>',
],
'none' => [
'<none>',
'route:<nolink>',
],
];
}
/**
* Tests the attributes that are deeply serialized are discarded.
*/
public function testCanonicalizeUriSerialized() {
$link_plugin = new FieldLink([], '', [], $this->createMock(MigrationInterface::class));
$migrate_executable = $this->createMock(MigrateExecutableInterface::class);
$row = new Row();
$transformed = $link_plugin->transform([
'url' => '',
'title' => '',
'attributes' => serialize(serialize([
'not too deep',
])),
], $migrate_executable, $row, NULL);
$this->assertEquals([
'not too deep',
], $transformed['options']['attributes']);
$transformed = $link_plugin->transform([
'url' => '',
'title' => '',
'attributes' => serialize(serialize(serialize([
'too deep',
]))),
], $migrate_executable, $row, NULL);
$this->assertEmpty($transformed['options']['attributes']);
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|---|
FieldLinkTest::canonicalizeUriDataProvider | public | function | Data provider for testCanonicalizeUri. | ||
FieldLinkTest::testCanonicalizeUri | public | function | Tests the url transformations in the FieldLink process plugin. | ||
FieldLinkTest::testCanonicalizeUriSerialized | public | function | Tests the attributes that are deeply serialized are discarded. | ||
PhpUnitWarnings::$deprecationWarnings | private static | property | Deprecation warnings from PHPUnit to raise with @trigger_error(). | ||
PhpUnitWarnings::addWarning | public | function | Converts PHPUnit deprecation warnings to E_USER_DEPRECATED. | ||
UnitTestCase::$randomGenerator | protected | property | The random generator. | ||
UnitTestCase::$root | protected | property | The app root. | 1 | |
UnitTestCase::assertArrayEquals | Deprecated | protected | function | Asserts if two arrays are equal by sorting them first. | |
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. | ||
UnitTestCase::setUp | protected | function | 338 | ||
UnitTestCase::setUpBeforeClass | public static | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.