class FieldLinkTest in Drupal 8
Same name in this branch
- 8 core/modules/link/tests/src/Unit/Plugin/migrate/process/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
- 8 core/modules/link/tests/src/Unit/Plugin/migrate/process/d6/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\d6\FieldLinkTest
Same name and namespace in other branches
- 9 core/modules/link/tests/src/Unit/Plugin/migrate/process/FieldLinkTest.php \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
- 10 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 PhpunitCompatibilityTrait
- class \Drupal\Tests\link\Unit\Plugin\migrate\process\FieldLinkTest
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 {
/**
* Test 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 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>',
],
];
}
/**
* Test 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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FieldLinkTest:: |
public | function | Data provider for testCanonicalizeUri. | |
FieldLinkTest:: |
public | function | Test the url transformations in the FieldLink process plugin. | |
FieldLinkTest:: |
public | function | Test the attributes that are deeply serialized are discarded. | |
PhpunitCompatibilityTrait:: |
public | function | Returns a mock object for the specified class using the available method. | |
PhpunitCompatibilityTrait:: |
public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | |
UnitTestCase:: |
protected | property | The random generator. | |
UnitTestCase:: |
protected | property | The app root. | 1 |
UnitTestCase:: |
protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase:: |
protected | function | Mocks a block with a block plugin. | 1 |
UnitTestCase:: |
protected | function | Returns a stub class resolver. | |
UnitTestCase:: |
public | function | Returns a stub config factory that behaves according to the passed array. | |
UnitTestCase:: |
public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase:: |
protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase:: |
protected | function | Gets the random generator for the utility methods. | |
UnitTestCase:: |
public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase:: |
public | function | Generates a unique random string containing letters and numbers. | |
UnitTestCase:: |
protected | function | 340 |