content_workflow_bynder-1.0.0/content_workflow_bynder_upload/tests/src/Kernel/ContentWorkflowBynderUploadTestBase.php

content_workflow_bynder_upload/tests/src/Kernel/ContentWorkflowBynderUploadTestBase.php
<?php

namespace Drupal\Tests\content_workflow_bynder_upload\Kernel;

use GatherContent\DataTypes\Item;
use Drupal\file\Entity\File;
use Drupal\content_workflow_bynder\MappingLoader;
use Drupal\content_workflow_bynder_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 ContentWorkflowBynderUploadTestBase.
 *
 * @package Drupal\Tests\content_workflow_bynder_upload\Kernel
 */
abstract class ContentWorkflowBynderUploadTestBase extends EntityKernelTestBase {

  /**
   * Exporter class.
   *
   * @var \Drupal\content_workflow_bynder_upload\Export\Exporter
   */
  public $exporter;

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'node',
    'field',
    'image',
    'file',
    'taxonomy',
    'language',
    'content_translation',
    'entity_reference_revisions',
    'paragraphs',
    'migrate',
    'migrate_tools',
    'migrate_plus',
    'token',
    'metatag',
    'content_workflow_bynder',
    'content_workflow_bynder_upload',
    'content_workflow_bynder_upload_test_config',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $this->installSchema('node', 'node_access');
    $this->installEntitySchema('node');
    $this->installConfig(['content_workflow_bynder_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);
  }

  /**
   * Returns mapping for a Content Workflow Item.
   *
   * @param \GatherContent\DataTypes\Item $cwbItem
   *   GatherContent Item object.
   *
   * @return mixed
   *   Mapping object.
   */
  public function getMapping(Item $cwbItem) {
    return MappingLoader::load($cwbItem);
  }

  /**
   * Returns the Node for the simple ProcessPane test.
   *
   * @return \Drupal\node\Entity\Node
   *   Node object.
   */
  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',
      'contentworkflowbynder_option_ids' => 'ad10caf0-239b-473f-b106-6f615a35f574',
    ]);
    $term_1->save();

    $term_2 = Term::create([
      'vid' => 'tags',
      'name' => 'Choice1',
      'contentworkflowbynder_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(),
        ],
      ],
    ]);
  }

  /**
   * Returns Item for the simple ProcessPane test.
   *
   * @return \GatherContent\DataTypes\Item
   *   Item object.
   */
  public function getSimpleItem() {
    return new Item([
      'project_id' => 86701,
      'template_id' => 791717,
    ]);
  }

  /**
   * Returns the Node for the multilang ProcessPane test.
   *
   * @return \Drupal\node\Entity\Node
   *   Node object.
   */
  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',
      'contentworkflowbynder_option_ids' => '1d4674fa-764e-40e9-839e-67093c1398f0',
    ]);
    $term_1->save();

    $term_1_hu = Term::create([
      'vid' => 'tags',
      'langcode' => 'en',
      'name' => 'Second choice',
      'contentworkflowbynder_option_ids' => '35961a8e-7f64-4ba7-8a12-07e4bb3e1361',
    ]);
    $term_1_hu->save();

    $term_2 = Term::create([
      'vid' => 'tags',
      'langcode' => 'en',
      'name' => 'Choice1',
      'contentworkflowbynder_option_ids' => 'f61122ad-bada-47d2-8481-0e8c72448c3f',
    ]);
    $term_2->save();

    $term_2_hu = Term::create([
      'vid' => 'tags',
      'langcode' => 'en',
      'name' => 'Choice2',
      'contentworkflowbynder_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;
  }

  /**
   * Returns Item for the multilang ProcessPane test.
   *
   * @return \GatherContent\DataTypes\Item
   *   Item object.
   */
  public function getMultilangItem() {
    return new Item([
      'project_id' => 86701,
      'template_id' => 821317,
    ]);
  }

  /**
   * Returns the Node for the meta tag ProcessPane test.
   *
   * @return \Drupal\node\Entity\Node
   *   Node object.
   */
  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;
  }

  /**
   * Returns Item for the meta tag ProcessPane test.
   *
   * @return \GatherContent\DataTypes\Item
   *   Item object.
   */
  public function getMetatagItem() {
    return new Item([
      'project_id' => 86701,
      'template_id' => 823399,
    ]);
  }

  /**
   * Returns the Node for the meta tag multilang ProcessPane test.
   *
   * @return \Drupal\node\Entity\Node
   *   Node object.
   */
  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;
  }

  /**
   * Returns Item for the meta tag multilang ProcessPane test.
   *
   * @return \GatherContent\DataTypes\Item
   *   Item object.
   */
  public function getMetatagMultilangItem() {
    return new Item([
      'project_id' => 86701,
      'template_id' => 429623,
    ]);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc