class CKEditorLinkFileToLinkitFilterTest in Media Migration 8
Tests the CKEditorLinkFileToLinkitFilter migration process plugin.
@coversDefaultClass \Drupal\media_migration\Plugin\migrate\process\CKEditorLinkFileToLinkitFilter @group media_migration
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses PhpunitCompatibilityTrait
- class \Drupal\Tests\migrate\Unit\MigrateTestCase
- class \Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase
- class \Drupal\Tests\media_migration\Unit\Plugin\migrate\process\ProcessTestBase
- class \Drupal\Tests\media_migration\Unit\Plugin\migrate\process\CKEditorLinkFileToLinkitFilterTest
- class \Drupal\Tests\media_migration\Unit\Plugin\migrate\process\ProcessTestBase
- class \Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase
- class \Drupal\Tests\migrate\Unit\MigrateTestCase
Expanded class hierarchy of CKEditorLinkFileToLinkitFilterTest
File
- tests/
src/ Unit/ Plugin/ migrate/ process/ CKEditorLinkFileToLinkitFilterTest.php, line 13
Namespace
Drupal\Tests\media_migration\Unit\Plugin\migrate\processView source
class CKEditorLinkFileToLinkitFilterTest extends ProcessTestBase {
/**
* Tests transform to linkit anchor tags.
*
* @dataProvider providerTestTransform
*/
public function testTransform($input_value, $expected_value) {
$plugin = new CKEditorLinkFileToLinkitFilter([], 'ckeditor_link_file_to_linkit', [], $this->migration, $this->uuidOracle
->reveal());
$this
->assertEquals($expected_value, $plugin
->transform($input_value, $this->migrateExecutable, $this->row, 'destination_property'));
}
/**
* Data provider for ::testTransform.
*
* @return array
* The test cases.
*/
public function providerTestTransform() : array {
return [
'Plain text only' => [
'Input' => 'Lorem ipsum dolor sit amet.',
'Expected' => 'Lorem ipsum dolor sit amet.',
],
'Plain text with unrelated tokens and JSONs (before MediaWysiwyg)' => [
'Input' => <<<END
Sed hendrerit.
[[{"nid":"1"}]]
Nam scelerisque viverra.
[[nid:1]] Curabitur.
END
,
'Expected' => <<<END
Sed hendrerit.
[[{"nid":"1"}]]
Nam scelerisque viverra.
[[nid:1]] Curabitur.
END
,
],
'Plain text with a single anchor tag' => [
'Input' => <<<END
Nulla est rhoncus est?
Eleifend <a target="_blank" href="/file/1" title="Pellentesque alt text"> non nulla</a>!
Mauris efficitur metus.
END
,
'Expected' => <<<END
Nulla est rhoncus est?
Eleifend <a target="_blank" href="/file/1" title="Pellentesque alt text" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="jpeg1-uuid"> non nulla</a>!
Mauris efficitur metus.
END
,
],
'Plain text with multiple anchor- and other kind of tags' => [
'Input' => <<<END
Fusce semper rutrum blandit. Sed nec <a href="/node">semper</a> eros.
Quisque <a href='/file/1'>molestie</a>.
This is a file in a real <a href='/file/in/a/subdirectory.txt'>subdirectory</a>.
<drupal-media data-entity-type="media" data-entity-uuid="png2-uuid" data-view-mode="default" data-align="right"></drupal-media>
<drupal-media data-entity-type="media" data-entity-uuid="svg3-uuid" data-view-mode="default" alt="Suspendisse alt text"></drupal-media>
<a href='/file/3'>Aliquam lacus</a> arcu!
<a href='/file/2'>Duis egestas</a>.
END
,
'Expected' => <<<END
Fusce semper rutrum blandit. Sed nec <a href="/node">semper</a> eros.
Quisque <a href="/file/1" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="jpeg1-uuid">molestie</a>.
This is a file in a real <a href="/file/in/a/subdirectory.txt">subdirectory</a>.
<drupal-media data-entity-type="media" data-entity-uuid="png2-uuid" data-view-mode="default" data-align="right"></drupal-media>
<drupal-media data-entity-type="media" data-entity-uuid="svg3-uuid" data-view-mode="default" alt="Suspendisse alt text"></drupal-media>
<a href="/file/3" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="svg3-uuid">Aliquam lacus</a> arcu!
<a href="/file/2" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="png2-uuid">Duis egestas</a>.
END
,
],
'HTML text with JSON tokens and with embed code' => [
'Input' => <<<END
<p class="lead">Some text. [[{"foo":"bar"}]]</p>
Lorem ipsum dolor sit amet.
[[{"fid":"3","view_mode":"default","type":"media"}]]
Nam finibus elit nec ipsum feugiat convallis.
<drupal-entity data-embed-button="media" data-entity-type="media" data-entity-id="1" data-entity-embed-display="view_mode:media.wysiwyg"></drupal-entity>
Aliquam tellus nisi.
[[nid:1]]
<p>Lorem ipsum dolor sit amet.</p>
<drupal-entity data-embed-button="media" data-entity-type="media" data-entity-id="453" data-entity-embed-display="view_mode:media.default"></drupal-entity>
<p>Nam finibus elit nec ipsum feugiat convallis.</p>
<p>[[{"fid":"154","view_mode":"wysiwyg","type":"media"}]]</p>
<ul>
<li>Aliquam tellus nisi.</li>
</ul>
[[tid:15]]
<p></p>
END
,
'Expected' => <<<END
<p class="lead">Some text. [[{"foo":"bar"}]]</p>
Lorem ipsum dolor sit amet.
[[{"fid":"3","view_mode":"default","type":"media"}]]
Nam finibus elit nec ipsum feugiat convallis.
<drupal-entity data-embed-button="media" data-entity-type="media" data-entity-id="1" data-entity-embed-display="view_mode:media.wysiwyg"></drupal-entity>
Aliquam tellus nisi.
[[nid:1]]
<p>Lorem ipsum dolor sit amet.</p>
<drupal-entity data-embed-button="media" data-entity-type="media" data-entity-id="453" data-entity-embed-display="view_mode:media.default"></drupal-entity>
<p>Nam finibus elit nec ipsum feugiat convallis.</p>
<p>[[{"fid":"154","view_mode":"wysiwyg","type":"media"}]]</p>
<ul>
<li>Aliquam tellus nisi.</li>
</ul>
[[tid:15]]
<p></p>
END
,
],
'HTML with a single anchor tag' => [
'Input' => <<<END
<p>Nulla est rhoncus est?</p>
<p>Eleifend <a target='_blank' href='/file/1' title='Pellentesque alt text'> non nulla</a>!</p>
<p>Mauris efficitur metus.</p>
END
,
'Expected' => <<<END
<p>Nulla est rhoncus est?</p>
<p>Eleifend <a target="_blank" href="/file/1" title="Pellentesque alt text" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="jpeg1-uuid"> non nulla</a>!</p>
<p>Mauris efficitur metus.</p>
END
,
],
'HTML with multiple anchor- and other kind of tags' => [
'Input' => <<<END
<p>Fusce semper rutrum blandit. Sed nec <a href="/node">semper</a> eros.</p>
<p>Quisque <a href='/file/1'>molestie</a>.</p>
<p>This is a file in a real <a href='/file/in/a/subdirectory.txt'>subdirectory</a>.</p>
<drupal-media data-entity-type="media" data-entity-uuid="png2-uuid" data-view-mode="default" data-align="right"></drupal-media>
<drupal-media data-entity-type="media" data-entity-uuid="svg3-uuid" data-view-mode="default" alt="Suspendisse alt text"></drupal-media>
<p><a href='/file/3'>Aliquam lacus</a> arcu!</p>
<p><a href="/file/2">Duis egestas</a>.</p>
END
,
'Expected' => <<<END
<p>Fusce semper rutrum blandit. Sed nec <a href="/node">semper</a> eros.</p>
<p>Quisque <a href="/file/1" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="jpeg1-uuid">molestie</a>.</p>
<p>This is a file in a real <a href="/file/in/a/subdirectory.txt">subdirectory</a>.</p>
<drupal-media data-entity-type="media" data-entity-uuid="png2-uuid" data-view-mode="default" data-align="right"></drupal-media>
<drupal-media data-entity-type="media" data-entity-uuid="svg3-uuid" data-view-mode="default" alt="Suspendisse alt text"></drupal-media>
<p><a href="/file/3" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="svg3-uuid">Aliquam lacus</a> arcu!</p>
<p><a href="/file/2" data-entity-substitution="media" data-entity-type="media" data-entity-uuid="png2-uuid">Duis egestas</a>.</p>
END
,
],
];
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CKEditorLinkFileToLinkitFilterTest:: |
public | function | Data provider for ::testTransform. | |
CKEditorLinkFileToLinkitFilterTest:: |
public | function | Tests transform to linkit anchor tags. | |
MigrateProcessTestCase:: |
protected | property | ||
MigrateProcessTestCase:: |
protected | property | ||
MigrateTestCase:: |
protected | property | The migration ID map. | |
MigrateTestCase:: |
protected | property | Local store for mocking setStatus()/getStatus(). | |
MigrateTestCase:: |
protected | function | Generates a table schema from a row. | |
MigrateTestCase:: |
protected | function | Gets an SQLite database connection object for use in tests. | |
MigrateTestCase:: |
protected | function | Retrieves a mocked migration. | 1 |
MigrateTestCase:: |
protected | function | Gets the value on a row for a given key. | 1 |
MigrateTestCase:: |
public | function | Tests a query. | |
MigrateTestCase:: |
protected | function | Asserts tested values during test retrieval. | |
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. | |
ProcessTestBase:: |
protected | property | A logger channel object prophecy. | |
ProcessTestBase:: |
protected | property | The migration the process plugin is tested with. | |
ProcessTestBase:: |
protected | property |
An array of migration configuration values. Overrides MigrateTestCase:: |
|
ProcessTestBase:: |
protected | property |
The process plugin we test. Overrides MigrateProcessTestCase:: |
|
ProcessTestBase:: |
protected | property | A SqlBase migration source plugin object prophecy. | |
ProcessTestBase:: |
protected | property | A source database to test with. | 1 |
ProcessTestBase:: |
protected | property | A media migration UUID oracle object prophecy. | |
ProcessTestBase:: |
protected | function | Sets an in-memory Settings variable. | |
ProcessTestBase:: |
protected | function |
Overrides MigrateProcessTestCase:: |
2 |
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. |