ConfigTranslationListUiTest.php

Namespace

Drupal\Tests\contact\Functional

File

core/modules/contact/tests/src/Functional/ConfigTranslationListUiTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\contact\Functional;

use Drupal\contact\Entity\ContactForm;
use Drupal\Tests\BrowserTestBase;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;

/**
 * Ensure the "translate" link is added to contact forms.
 *
 * @see \Drupal\Tests\config_translation\Functional\ConfigTranslationListUiTest
 */
class ConfigTranslationListUiTest extends BrowserTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'block',
    'config_translation',
    'contact',
    'toolbar',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Admin user with all needed permissions.
   *
   * @var \Drupal\user\Entity\User
   */
  protected $adminUser;
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $permissions = [
      'access site-wide contact form',
      'administer contact forms',
      'translate configuration',
    ];
    // Create and log in user.
    $this->adminUser = $this->drupalCreateUser($permissions);
    $this->drupalLogin($this->adminUser);
    // Enable import of translations. By default this is disabled for automated
    // tests.
    $this->config('locale.settings')
      ->set('translation.import_enabled', TRUE)
      ->set('translation.use_source', LOCALE_TRANSLATION_USE_SOURCE_LOCAL)
      ->save();
    $this->drupalPlaceBlock('local_tasks_block');
  }
  
  /**
   * Tests the contact forms listing for the translate operation.
   */
  public function testContactFormsList() : void {
    // Create a test contact form to decouple looking for translate operations
    // link so this does not test more than necessary.
    $contact_form = ContactForm::create([
      'id' => $this->randomMachineName(16),
      'label' => $this->randomMachineName(),
    ]);
    $contact_form->save();
    // Get the contact form listing.
    $this->drupalGet('admin/structure/contact');
    $translate_link = 'admin/structure/contact/manage/' . $contact_form->id() . '/translate';
    // Test if the link to translate the contact form is on the page.
    $this->assertSession()
      ->linkByHrefExists($translate_link);
    // Test if the link to translate actually goes to the translate page.
    $this->drupalGet($translate_link);
    $this->assertSession()
      ->responseContains('<th>Language</th>');
  }

}

Classes

Title Deprecated Summary
ConfigTranslationListUiTest Ensure the "translate" link is added to contact forms.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.