You are here

public function GatherContentUploadTestBase::getMultilangNode in GatherContent 8.5

Returns the Node for the multilang ProcessPane test.

Return value

\Drupal\node\Entity\Node Node object.

1 call to GatherContentUploadTestBase::getMultilangNode()
GatherContentUploadTest::testProcessGroupsMultilang in gathercontent_upload/tests/src/Kernel/GatherContentUploadTest.php
Tests field manipulation for multilingual content.

File

gathercontent_upload/tests/src/Kernel/GatherContentUploadTestBase.php, line 161

Class

GatherContentUploadTestBase
Class GatherContentUploadTestBase.

Namespace

Drupal\Tests\gathercontent_upload\Kernel

Code

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;
}