View source
<?php
namespace Drupal\Tests\migrate_plus\Unit\process;
use Drupal\Component\Utility\Html;
use Drupal\migrate\MigrateException;
use Drupal\migrate_plus\Plugin\migrate\process\Dom;
use Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase;
class DomTest extends MigrateProcessTestCase {
public function testConfigMethodEmpty() {
$configuration = [];
$value = '<p>A simple paragraph.</p>';
$this
->setExpectedException(\InvalidArgumentException::class, 'The "method" must be set.');
(new Dom($configuration, 'dom', []))
->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
}
public function testConfigMethodInvalid() {
$configuration['method'] = 'invalid';
$value = '<p>A simple paragraph.</p>';
$this
->setExpectedException(\InvalidArgumentException::class, 'The "method" must be "import" or "export".');
(new Dom($configuration, 'dom', []))
->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
}
public function testImportNonRoot() {
$configuration['method'] = 'import';
$value = '<p>A simple paragraph.</p>';
$document = (new Dom($configuration, 'dom', []))
->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
$this
->assertTrue($document instanceof \DOMDocument);
}
public function testImportNonRootInvalidInput() {
$configuration['method'] = 'import';
$value = [
1,
1,
];
$this
->setExpectedException(MigrateException::class, 'Cannot import a non-string value.');
(new Dom($configuration, 'dom', []))
->transform($value, $this->migrateExecutable, $this->row, 'destinationproperty');
}
public function testExportNonRoot() {
$configuration['method'] = 'export';
$partial = '<p>A simple paragraph.</p>';
$document = Html::load($partial);
$value = (new Dom($configuration, 'dom', []))
->transform($document, $this->migrateExecutable, $this->row, 'destinationproperty');
$this
->assertEquals($value, $partial);
}
public function testExportNonRootInvalidInput() {
$configuration['method'] = 'export';
$this
->setExpectedException(MigrateException::class, 'Cannot export a "string".');
(new Dom($configuration, 'dom', []))
->transform('string is not DOMDocument', $this->migrateExecutable, $this->row, 'destinationproperty');
}
}