You are here

function LocaleTranslatedSchemaDefinitionTest::testTranslatedUpdate in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/locale/src/Tests/LocaleTranslatedSchemaDefinitionTest.php \Drupal\locale\Tests\LocaleTranslatedSchemaDefinitionTest::testTranslatedUpdate()

Tests that translations do not affect the update system.

File

core/modules/locale/src/Tests/LocaleTranslatedSchemaDefinitionTest.php, line 68
Contains \Drupal\locale\Tests\LocaleTranslatedSchemaDefinitionTest.

Class

LocaleTranslatedSchemaDefinitionTest
Adds and configures languages to check field schema definition.

Namespace

Drupal\locale\Tests

Code

function testTranslatedUpdate() {

  // Visit the update page to collect any strings that may be translatable.
  $user = $this
    ->drupalCreateUser(array(
    'administer software updates',
  ));
  $this
    ->drupalLogin($user);
  $update_url = $GLOBALS['base_url'] . '/update.php';
  $this
    ->drupalGet($update_url, array(
    'external' => TRUE,
  ));

  /** @var \Drupal\locale\StringDatabaseStorage $stringStorage */
  $stringStorage = \Drupal::service('locale.storage');
  $sources = $stringStorage
    ->getStrings();

  // Translate all source strings found.
  foreach ($sources as $source) {
    $stringStorage
      ->createTranslation(array(
      'lid' => $source->lid,
      'language' => 'fr',
      'translation' => $this
        ->randomMachineName(100),
    ))
      ->save();
  }

  // Ensure that there are no updates just due to translations. Check for
  // markup and a link instead of specific text because text may be
  // translated.
  $this
    ->drupalGet($update_url . '/selection', array(
    'external' => TRUE,
  ));
  $this
    ->assertRaw('messages--status', 'No pending updates.');
  $this
    ->assertNoLinkByHref('fr/update.php/run', 'No link to run updates.');
}