You are here

function FieldTranslationsTestCase::testFieldFormTranslationRevisions in Drupal 7

Tests field translations when creating a new revision.

File

modules/field/tests/field.test, line 3378
Tests for field.module.

Class

FieldTranslationsTestCase
Unit test class for the multilanguage fields logic.

Code

function testFieldFormTranslationRevisions() {
  $web_user = $this
    ->drupalCreateUser(array(
    'access field_test content',
    'administer field_test content',
  ));
  $this
    ->drupalLogin($web_user);

  // Prepare the field translations.
  field_test_entity_info_translatable($this->entity_type, TRUE);
  $eid = 1;
  $entity = field_test_create_stub_entity($eid, $eid, $this->instance['bundle']);
  $available_languages = array_flip(field_available_languages($this->entity_type, $this->field));
  unset($available_languages[LANGUAGE_NONE]);
  $field_name = $this->field['field_name'];

  // Store the field translations.
  $entity->is_new = TRUE;
  foreach ($available_languages as $langcode => $value) {
    $entity->{$field_name}[$langcode][0]['value'] = $value + 1;
  }
  field_test_entity_save($entity);

  // Create a new revision.
  $langcode = field_valid_language(NULL);
  $edit = array(
    "{$field_name}[{$langcode}][0][value]" => $entity->{$field_name}[$langcode][0]['value'],
    'revision' => TRUE,
  );
  $this
    ->drupalPost('test-entity/manage/' . $eid . '/edit', $edit, t('Save'));

  // Check translation revisions.
  $this
    ->checkTranslationRevisions($eid, $eid, $available_languages);
  $this
    ->checkTranslationRevisions($eid, $eid + 1, $available_languages);
}