You are here

public function LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference in Lingotek Translation 3.4.x

Same name and namespace in other branches
  1. 8.2 tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  2. 4.0.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  3. 3.0.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  4. 3.1.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  5. 3.2.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  6. 3.3.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  7. 3.5.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  8. 3.6.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  9. 3.7.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()
  10. 3.8.x tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php \Drupal\Tests\lingotek\Functional\LingotekNodeEmbeddingTagsTranslationTest::testNodeTranslationAfterDeletedReference()

Tests that previous tags are deleted when downloading a new translation.

File

tests/src/Functional/LingotekNodeEmbeddingTagsTranslationTest.php, line 381

Class

LingotekNodeEmbeddingTagsTranslationTest
Tests translating a node with multiple locales embedding another entity.

Namespace

Drupal\Tests\lingotek\Functional

Code

public function testNodeTranslationAfterDeletedReference() {
  $this
    ->testNodeTranslationWithADeletedReferenceInARevision();

  // This is a hack for avoiding writing different lingotek endpoint mocks.
  \Drupal::state()
    ->set('lingotek.uploaded_content_type', 'node+taxonomy_term_emptied+metadata');

  // Now we create a new revision, and this is removing both field tag reference.
  \Drupal::entityTypeManager()
    ->getStorage('node')
    ->resetCache();
  $this->node = Node::load(1);
  unset($this->node->field_tags[0]);
  $this->node
    ->setNewRevision();
  $this->node
    ->save();

  // Check that we removed the tags correctly.
  $this
    ->drupalGet('node/1');
  $this
    ->assertNoText('Camelid');
  $this
    ->assertNoText('Herbivorous');

  // We go back to the translations.
  $this
    ->clickLink('Translate');

  // And we reupload it.
  $this
    ->clickLink('Upload');
  $this
    ->checkForMetaRefresh();
  $this
    ->assertText('Uploaded 1 document to Lingotek.');

  // Check that only the configured fields have been uploaded, including tags
  // and image even if not set.
  $data = json_decode(\Drupal::state()
    ->get('lingotek.uploaded_content', '[]'), TRUE);
  $this
    ->assertUploadedDataFieldCount($data, 4);
  $this
    ->assertTrue(isset($data['title'][0]['value']));
  $this
    ->assertEqual(1, count($data['body'][0]));
  $this
    ->assertTrue(isset($data['body'][0]['value']));
  $this
    ->assertTrue(isset($data['field_image']));
  $this
    ->assertTrue(isset($data['field_tags']));

  // The tags are emptied.
  $this
    ->assertEmpty($data['field_tags']);

  // The image field is empty.
  $this
    ->assertEmpty($data['field_image']);

  // Check translation status.
  $this
    ->clickLink('Check translation status');
  $this
    ->assertText('The es_AR translation for node Llamas are cool is ready for download.');

  // Download translation.
  $this
    ->clickLink('Download completed translation');
  $this
    ->assertText('The translation of node Llamas are cool into es_AR has been downloaded.');

  // The content is translated and published.
  $this
    ->clickLink('Las llamas son chulas');
  $this
    ->assertText('Las llamas son chulas');
  $this
    ->assertText('Las llamas son muy chulas');

  // The tags have been removed from the content when re-downloading.
  $this
    ->assertNoText('Camélido');
  $this
    ->assertNoText('Hervíboro');
}