You are here

public function LingotekNodeBulkFormTest::testTargetStatusFilterPagination in Lingotek Translation 3.4.x

Same name and namespace in other branches
  1. 4.0.x tests/src/Functional/Form/LingotekNodeBulkFormTest.php \Drupal\Tests\lingotek\Functional\Form\LingotekNodeBulkFormTest::testTargetStatusFilterPagination()
  2. 3.5.x tests/src/Functional/Form/LingotekNodeBulkFormTest.php \Drupal\Tests\lingotek\Functional\Form\LingotekNodeBulkFormTest::testTargetStatusFilterPagination()
  3. 3.6.x tests/src/Functional/Form/LingotekNodeBulkFormTest.php \Drupal\Tests\lingotek\Functional\Form\LingotekNodeBulkFormTest::testTargetStatusFilterPagination()
  4. 3.7.x tests/src/Functional/Form/LingotekNodeBulkFormTest.php \Drupal\Tests\lingotek\Functional\Form\LingotekNodeBulkFormTest::testTargetStatusFilterPagination()
  5. 3.8.x tests/src/Functional/Form/LingotekNodeBulkFormTest.php \Drupal\Tests\lingotek\Functional\Form\LingotekNodeBulkFormTest::testTargetStatusFilterPagination()

File

tests/src/Functional/Form/LingotekNodeBulkFormTest.php, line 2517

Class

LingotekNodeBulkFormTest
Tests the bulk management form.

Namespace

Drupal\Tests\lingotek\Functional\Form

Code

public function testTargetStatusFilterPagination() {

  // Add a language.
  ConfigurableLanguage::createFromLangcode('de')
    ->setThirdPartySetting('lingotek', 'locale', 'de_DE')
    ->save();
  $this
    ->saveLingotekContentTranslationSettingsForNodeTypes([
    'article',
    'custom_type',
  ], 'manual');
  $node_defaults = [
    'type' => 'article',
    'langcode' => 'en',
  ];

  /** @var \Drupal\node\Entity\Node[] $nodes */
  $nodes = [
    Node::create([
      'title' => 'Article 1',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 2',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 3',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 4',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 5',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 6',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 7',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 8',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 9',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 10',
    ] + $node_defaults),
    Node::create([
      'title' => 'Article 11',
    ] + $node_defaults),
  ];
  foreach ($nodes as $node) {
    $node
      ->save();
  }
  $metadata_data = [
    'profile' => 'automatic',
    'translation_source' => 'en',
    'translation_status' => [
      [
        'language' => 'en',
        'value' => 'current',
      ],
      [
        'language' => 'de',
        'value' => 'cancelled',
      ],
      [
        'language' => 'es',
        'value' => 'cancelled',
      ],
    ],
  ];
  $index = 0;
  while ($index < 11) {
    ++$index;
    $metadata = LingotekContentMetadata::loadByTargetId('node', $index);
    $metadata
      ->setDocumentId('document_id_' . $index);
    $metadata
      ->set('translation_status', $metadata_data['translation_status']);
    $metadata
      ->set('profile', $metadata_data['profile']);
    $metadata
      ->set('translation_source', $metadata_data['translation_source']);
    $metadata
      ->save();
  }
  $this
    ->goToContentBulkManagementForm();
  $edit = [
    'filters[advanced_options][target_status]' => Lingotek::STATUS_CANCELLED,
  ];
  $this
    ->drupalPostForm(NULL, $edit, 'edit-filters-actions-submit');

  // This ensures that pagination is working correctly with the Target Status filter.
  // If it isn't, there will be fewer than 10 nodes on the content bulk management form
  $this
    ->assertText('Article 10');
}