locale_override-8.x-1.1/tests/src/Functional/LocaleOverrideTest.php

tests/src/Functional/LocaleOverrideTest.php
<?php

namespace Drupal\Tests\locale_override\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Tests for locale override.
 *
 * @group locale_override
 */
class LocaleOverrideTest extends BrowserTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = ['locale_override', 'locale_override_test'];

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * Tests locale override.
   */
  public function testLocaleOverride() {
    $assert_session = $this->assertSession();

    $user = $this->createUser(['administer locale override', 'translate configuration']);

    /* ********************************************************************** */

    // Check that access is denied to users with
    // 'administer locale override' permission.
    $this->drupalGet('/admin/config/regional/translate_override');
    $assert_session->statusCodeEquals(403);

    // Login user with 'administer locale override' permission.
    $this->drupalLogin($user);

    // Check that access is allowed to users with
    // 'administer locale override' permission.
    $this->drupalGet('/admin/config/regional/translate_override');
    $assert_session->responseNotContains('"locale_override":');
    $assert_session->responseNotContains('Context [English]');
    $assert_session->responseNotContains('JavaScript [English]');

    $assert_session->statusCodeEquals(200);

    // Import 'Context' and 'JavaScript' strings which are the column headers.
    $edit = ['strings' => implode(PHP_EOL, ['Context', 'JavaScript'])];
    $this->drupalGet('/admin/config/regional/translate_override/import');
    $this->submitForm($edit, 'Import strings');
    $assert_session->responseContains('The strings have been imported.');

    // Update the 'Context' and 'JavaScript' strings and append [English].
    $edit = [
      'strings[items][0][translation]' => 'Context [English]',
      'strings[items][1][translation]' => 'JavaScript [English]',
      'strings[items][1][javascript]' => TRUE,
    ];
    $this->drupalGet('/admin/config/regional/translate_override');
    $this->submitForm($edit, 'Save translations');
    $assert_session->responseContains('The strings have been saved.');

    // Check that the locale override English strings are being
    // used as expected.
    $assert_session->responseContains('"locale_override":{"strings":{"":{"JavaScript":"JavaScript [English]"}}}');
    $assert_session->responseContains('Context [English]');
    $assert_session->responseContains('JavaScript [English]');

    // Append [Spanish] to  'Context' and 'JavaScript' strings.
    $edit = [
      'translation[config_names][locale_override.settings][strings][ad4e206408c1c59bfb8a057ba7857446][translation]' => 'Context [Spanish]',
      'translation[config_names][locale_override.settings][strings][686155af75a60a0f6e9d80c1f7edd3e9][translation]' => 'JavaScript [Spanish]',
    ];
    $this->drupalGet('/admin/config/regional/translate_override/translate/es/add');
    $this->submitForm($edit, 'Save translation');
    $assert_session->responseContains('Successfully saved Spanish translation.');

    // Check that the locale override Spanish strings are being
    // used as expected.
    $this->drupalGet('/es/admin/config/regional/translate_override/translate/es/edit');
    $assert_session->responseContains('"locale_override":{"strings":{"":{"JavaScript":"JavaScript [Spanish]"}}}');
    $assert_session->responseContains('Context [Spanish]');
  }

}

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

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