class ContentLanguageBaseFieldSyncWidgetTest

Same name and namespace in other branches
  1. main core/modules/content_translation/tests/src/Functional/ContentLanguageBaseFieldSyncWidgetTest.php \Drupal\Tests\content_translation\Functional\ContentLanguageBaseFieldSyncWidgetTest

Tests base-field translation sync options on content language settings form.

Attributes

#[RunTestsInSeparateProcesses] #[Group('content_translation')]

Hierarchy

Expanded class hierarchy of ContentLanguageBaseFieldSyncWidgetTest

File

core/modules/content_translation/tests/src/Functional/ContentLanguageBaseFieldSyncWidgetTest.php, line 15

Namespace

Drupal\Tests\content_translation\Functional
View source
final class ContentLanguageBaseFieldSyncWidgetTest extends BrowserTestBase {
  use MediaTypeCreationTrait;
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'content_translation',
    'language',
    'media',
    'media_test_source',
  ];
  
  /**
   * Tests translation sync options appear for translatable base fields.
   */
  public function testBaseFieldSyncOptionsVisibleOnFirstLoad() : void {
    $account = $this->drupalCreateUser([
      'administer languages',
      'administer content translation',
      'administer media',
      'administer media types',
    ]);
    $this->drupalLogin($account);
    $media_type = $this->createMediaType('test');
    $this->drupalGet('admin/config/regional/content-language');
    $assert_session = $this->assertSession();
    $assert_session->statusCodeEquals(200);
    // Regression test: before any save/create of a base field override, the
    // column-group sync options for a translatable base field must be present.
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][fields][thumbnail]"]');
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][file]"]');
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][alt]"]');
    $assert_session->elementExists('css', 'input[name="settings[media][' . $media_type->id() . '][columns][thumbnail][title]"]');
    // Ensure the form can be saved without config schema errors.
    $this->getSession()
      ->getPage()
      ->pressButton('Save configuration');
    $this->assertSession()
      ->pageTextContains('Settings successfully updated.');
  }

}

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