View source
<?php
namespace Drupal\Tests\gathercontent_upload\Kernel;
use Cheppers\GatherContent\DataTypes\Item;
use Drupal\file\Entity\File;
use Drupal\gathercontent\MappingLoader;
use Drupal\gathercontent_upload\Export\Exporter;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
use Drupal\node\Entity\Node;
use Drupal\paragraphs\Entity\Paragraph;
use Drupal\taxonomy\Entity\Term;
class GatherContentUploadTestBase extends EntityKernelTestBase {
public $exporter;
public static $modules = [
'node',
'field',
'image',
'file',
'taxonomy',
'language',
'content_translation',
'entity_reference_revisions',
'paragraphs',
'migrate',
'migrate_tools',
'migrate_plus',
'token',
'metatag',
'gathercontent',
'gathercontent_upload',
'gathercontent_upload_test_config',
];
protected function setUp() {
parent::setUp();
$this
->installSchema('node', 'node_access');
$this
->installEntitySchema('node');
$this
->installConfig([
'gathercontent_upload_test_config',
]);
$this
->installEntitySchema('file');
$this
->installSchema('file', [
'file_usage',
]);
$this
->installEntitySchema('paragraph');
$this
->installEntitySchema('taxonomy_term');
$container = \Drupal::getContainer();
$this->exporter = Exporter::create($container);
}
public function getMapping(Item $gcItem) {
return MappingLoader::load($gcItem);
}
public function getSimpleNode() {
$image = File::create([
'uri' => 'public://example1.png',
]);
$image
->save();
$paragraph_1 = Paragraph::create([
'type' => 'para',
'field_text' => 'Test paragraph field',
'field_image' => [
[
'target_id' => $image
->id(),
],
],
]);
$paragraph_1
->save();
$paragraph_2 = Paragraph::create([
'type' => 'para_2',
'field_text' => 'Test paragraph 2 field',
]);
$paragraph_2
->save();
$term_1 = Term::create([
'vid' => 'tags',
'name' => 'First choice',
'gathercontent_option_ids' => 'ad10caf0-239b-473f-b106-6f615a35f574',
]);
$term_1
->save();
$term_2 = Term::create([
'vid' => 'tags',
'name' => 'Choice1',
'gathercontent_option_ids' => 'd009aae5-a91d-4a57-bc00-e8888b738c8d',
]);
$term_2
->save();
return Node::create([
'title' => 'Test node',
'type' => 'page',
'body' => 'Test body',
'field_guidodo' => 'Test guide',
'field_image' => [
[
'target_id' => $image
->id(),
],
],
'field_radio' => [
[
'target_id' => $term_1
->id(),
],
],
'field_tags_alt' => [
[
'target_id' => $term_2
->id(),
],
],
'field_para' => [
[
'target_id' => $paragraph_1
->id(),
'target_revision_id' => $paragraph_1
->getRevisionId(),
],
[
'target_id' => $paragraph_2
->id(),
'target_revision_id' => $paragraph_2
->getRevisionId(),
],
],
]);
}
public function getSimpleItem() {
return new Item([
'project_id' => 86701,
'template_id' => 791717,
]);
}
public function getMultilangNode() {
$manager = \Drupal::service('content_translation.manager');
$image = File::create([
'uri' => 'public://example1.png',
]);
$image
->save();
$image2 = File::create([
'uri' => 'public://example2.png',
]);
$image2
->save();
$paragraph_1 = Paragraph::create([
'type' => 'para',
'langcode' => 'en',
'field_text' => 'Test paragraph field',
'field_image' => [
[
'target_id' => $image
->id(),
],
],
]);
$paragraph_1
->save();
$paragraph_1_hu = $paragraph_1
->addTranslation('hu');
$paragraph_1_hu->field_text
->setValue('Test multilang paragraph HU');
$paragraph_1_hu->field_image
->setValue([
[
'target_id' => $image2
->id(),
],
]);
$paragraph_1_hu
->save();
$paragraph_2 = Paragraph::create([
'type' => 'para_2',
'langcode' => 'en',
'field_text' => 'Test paragraph 2 field',
]);
$paragraph_2
->save();
$paragraph_2_hu = $paragraph_2
->addTranslation('hu');
$paragraph_2_hu->field_text
->setValue('Test multilang paragraph 2 HU');
$paragraph_2_hu
->save();
$term_1 = Term::create([
'vid' => 'tags',
'langcode' => 'en',
'name' => 'First choice',
'gathercontent_option_ids' => '1d4674fa-764e-40e9-839e-67093c1398f0',
]);
$term_1
->save();
$term_1_hu = Term::create([
'vid' => 'tags',
'langcode' => 'en',
'name' => 'Second choice',
'gathercontent_option_ids' => '35961a8e-7f64-4ba7-8a12-07e4bb3e1361',
]);
$term_1_hu
->save();
$term_2 = Term::create([
'vid' => 'tags',
'langcode' => 'en',
'name' => 'Choice1',
'gathercontent_option_ids' => 'f61122ad-bada-47d2-8481-0e8c72448c3f',
]);
$term_2
->save();
$term_2_hu = Term::create([
'vid' => 'tags',
'langcode' => 'en',
'name' => 'Choice2',
'gathercontent_option_ids' => '9c304ce9-0619-48eb-8a8e-b7e2ec157b28',
]);
$term_2_hu
->save();
$node = Node::create([
'title' => 'Test multilang node',
'langcode' => 'en',
'type' => 'test_content',
'body' => 'Test multilang body',
'field_guidodo' => 'Test guide',
'field_image' => [
[
'target_id' => $image
->id(),
],
],
'field_radio' => [
[
'target_id' => $term_1
->id(),
],
],
'field_tags' => [
[
'target_id' => $term_2
->id(),
],
],
'field_para' => [
[
'target_id' => $paragraph_1
->id(),
'target_revision_id' => $paragraph_1
->getRevisionId(),
],
[
'target_id' => $paragraph_2
->id(),
'target_revision_id' => $paragraph_2
->getRevisionId(),
],
],
]);
$node
->save();
$node_hu = $node
->addTranslation('hu');
$node_hu
->setTitle('Test multilang node HU');
$node_hu->body
->setValue('Test multilang body HU');
$node_hu->field_guidodo
->setValue('Test multilang guide HU');
$node_hu->field_image
->setValue([
[
'target_id' => $image2
->id(),
],
]);
$node_hu->field_radio
->setValue([
[
'target_id' => $term_1_hu
->id(),
],
]);
$node_hu->field_tags
->setValue([
[
'target_id' => $term_2_hu
->id(),
],
]);
$node_hu->field_para
->setValue([
[
'target_id' => $paragraph_1
->id(),
'target_revision_id' => $paragraph_1
->getRevisionId(),
],
[
'target_id' => $paragraph_2
->id(),
'target_revision_id' => $paragraph_2
->getRevisionId(),
],
]);
$manager
->getTranslationMetadata($node_hu)
->setSource('en');
$node_hu
->save();
return $node;
}
public function getMultilangItem() {
return new Item([
'project_id' => 86701,
'template_id' => 821317,
]);
}
public function getMetatagNode() {
$node = Node::create([
'title' => 'Test metatag node',
'type' => 'test_content_meta',
'body' => 'Test metatag body',
]);
$node
->get('field_meta_test')
->setValue(serialize([
'title' => 'Test meta title',
'description' => 'Test meta description',
]));
return $node;
}
public function getMetatagItem() {
return new Item([
'project_id' => 86701,
'template_id' => 823399,
]);
}
public function getMetatagMultilangNode() {
$node = Node::create([
'title' => 'Test metatag node',
'type' => 'test_content',
'body' => 'Test metatag body',
]);
$node
->get('field_meta_alt')
->setValue(serialize([
'title' => 'Test meta title',
'description' => 'Test meta description',
]));
return $node;
}
public function getMetatagMultilangItem() {
return new Item([
'project_id' => 86701,
'template_id' => 429623,
]);
}
}