public function JmesPathLinesParserTest::testMapCustomSource in Feeds extensible parsers 8
Tests adding a custom mapping source.
File
- tests/
src/ FunctionalJavascript/ Feeds/ Parser/ JmesPathLinesParserTest.php, line 24
Class
- JmesPathLinesParserTest
- @coversDefaultClass \Drupal\feeds_ex\Feeds\Parser\JmesPathLinesParser @group feeds_ex
Namespace
Drupal\Tests\feeds_ex\FunctionalJavascript\Feeds\ParserCode
public function testMapCustomSource() {
// Add mappings to title and body.
$this
->addMappings($this->feedType
->id(), [
[
'target' => 'title',
'map' => [
'value' => [
'value' => 'name',
'machine_name' => 'name_',
],
],
'unique' => [
'value' => TRUE,
],
],
[
'target' => 'body',
'map' => [
'value' => [
'value' => 'wins[0][1]',
'machine_name' => 'wins_0_1',
],
],
],
]);
// Create a feed and import file.
$edit = [
'title[0][value]' => 'Feed 1',
'plugin[fetcher][source]' => $this
->resourcesUrl() . '/test.jsonl',
];
// Save using a dropbutton.
$this
->drupalGet('/feed/add/' . $this->feedType
->id());
$this
->submitFormWithDropButton($edit, 'Save');
// Run import programmatically. Batches don't work well during javascript
// based tests.
// @see https://www.drupal.org/project/feeds/issues/2938500#comment-12550186
$feed = Feed::load(1);
$feed
->import();
// Assert node values.
$node1 = Node::load(1);
$this
->assertEquals('Gilbert', $node1
->getTitle());
$this
->assertEquals('7♣', $node1->body->value);
}