annotate modules/contrib/migrate_plus/tests/src/Unit/process/DomTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents
children
rev   line source
Chris@5 1 <?php
Chris@5 2
Chris@5 3 namespace Drupal\Tests\migrate_plus\Unit\process;
Chris@5 4
Chris@5 5 use Drupal\Component\Utility\Html;
Chris@5 6 use Drupal\migrate\MigrateException;
Chris@5 7 use Drupal\migrate_plus\Plugin\migrate\process\Dom;
Chris@5 8 use Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase;
Chris@5 9
Chris@5 10 /**
Chris@5 11 * Tests the dom process plugin.
Chris@5 12 *
Chris@5 13 * @group migrate
Chris@5 14 * @coversDefaultClass \Drupal\migrate_plus\Plugin\migrate\process\Dom
Chris@5 15 */
Chris@5 16 class DomTest extends MigrateProcessTestCase {
Chris@5 17
Chris@5 18 /**
Chris@5 19 * @covers ::__construct
Chris@5 20 */
Chris@5 21 public function testConfigMethodEmpty() {
Chris@5 22 $configuration = [];
Chris@5 23 $value = '<p>A simple paragraph.</p>';
Chris@5 24 $this->setExpectedException(\InvalidArgumentException::class, 'The "method" must be set.');
Chris@5 25 (new Dom($configuration, 'dom', []))
Chris@5 26 ->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 27 }
Chris@5 28
Chris@5 29 /**
Chris@5 30 * @covers ::__construct
Chris@5 31 */
Chris@5 32 public function testConfigMethodInvalid() {
Chris@5 33 $configuration['method'] = 'invalid';
Chris@5 34 $value = '<p>A simple paragraph.</p>';
Chris@5 35 $this->setExpectedException(\InvalidArgumentException::class, 'The "method" must be "import" or "export".');
Chris@5 36 (new Dom($configuration, 'dom', []))
Chris@5 37 ->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 38 }
Chris@5 39
Chris@5 40 /**
Chris@5 41 * @covers ::import
Chris@5 42 */
Chris@5 43 public function testImportNonRoot() {
Chris@5 44 $configuration['method'] = 'import';
Chris@5 45 $value = '<p>A simple paragraph.</p>';
Chris@5 46 $document = (new Dom($configuration, 'dom', []))
Chris@5 47 ->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 48 $this->assertTrue($document instanceof \DOMDocument);
Chris@5 49 }
Chris@5 50
Chris@5 51 /**
Chris@5 52 * @covers ::import
Chris@5 53 */
Chris@5 54 public function testImportNonRootInvalidInput() {
Chris@5 55 $configuration['method'] = 'import';
Chris@5 56 $value = [1, 1];
Chris@5 57 $this->setExpectedException(MigrateException::class, 'Cannot import a non-string value.');
Chris@5 58 (new Dom($configuration, 'dom', []))
Chris@5 59 ->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 60 }
Chris@5 61
Chris@5 62 /**
Chris@5 63 * @covers ::export
Chris@5 64 */
Chris@5 65 public function testExportNonRoot() {
Chris@5 66 $configuration['method'] = 'export';
Chris@5 67 $partial = '<p>A simple paragraph.</p>';
Chris@5 68 $document = Html::load($partial);
Chris@5 69 $value = (new Dom($configuration, 'dom', []))
Chris@5 70 ->transform($document, $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 71 $this->assertEquals($value, $partial);
Chris@5 72 }
Chris@5 73
Chris@5 74 /**
Chris@5 75 * @covers ::export
Chris@5 76 */
Chris@5 77 public function testExportNonRootInvalidInput() {
Chris@5 78 $configuration['method'] = 'export';
Chris@5 79 $this->setExpectedException(MigrateException::class, 'Cannot export a "string".');
Chris@5 80 (new Dom($configuration, 'dom', []))
Chris@5 81 ->transform('string is not DOMDocument', $this->migrateExecutable, $this->row, 'destinationproperty');
Chris@5 82 }
Chris@5 83
Chris@5 84 }