class MenuLinkContentTranslationUITest in Drupal 10
Same name and namespace in other branches
- 8 core/modules/menu_link_content/tests/src/Functional/MenuLinkContentTranslationUITest.php \Drupal\Tests\menu_link_content\Functional\MenuLinkContentTranslationUITest
- 9 core/modules/menu_link_content/tests/src/Functional/MenuLinkContentTranslationUITest.php \Drupal\Tests\menu_link_content\Functional\MenuLinkContentTranslationUITest
Tests the menu link content translation UI.
@group Menu
Hierarchy
- class \Drupal\Tests\BrowserTestBase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, FunctionalTestSetupTrait, TestSetupTrait, BlockCreationTrait, ConfigTestTrait, ExtensionListTestTrait, ContentTypeCreationTrait, NodeCreationTrait, RandomGeneratorTrait, TestRequirementsTrait, PhpUnitWarnings, UiHelperTrait, UserCreationTrait, XdebugRequestTrait
- class \Drupal\Tests\content_translation\Functional\ContentTranslationTestBase
- class \Drupal\Tests\content_translation\Functional\ContentTranslationUITestBase uses AssertPageCacheContextsAndTagsTrait
- class \Drupal\Tests\menu_link_content\Functional\MenuLinkContentTranslationUITest
- class \Drupal\Tests\content_translation\Functional\ContentTranslationUITestBase uses AssertPageCacheContextsAndTagsTrait
- class \Drupal\Tests\content_translation\Functional\ContentTranslationTestBase
Expanded class hierarchy of MenuLinkContentTranslationUITest
File
- core/
modules/ menu_link_content/ tests/ src/ Functional/ MenuLinkContentTranslationUITest.php, line 13
Namespace
Drupal\Tests\menu_link_content\FunctionalView source
class MenuLinkContentTranslationUITest extends ContentTranslationUITestBase {
/**
* {@inheritdoc}
*/
protected $defaultCacheContexts = [
'languages:language_interface',
'session',
'theme',
'url.path',
'url.query_args',
'user.permissions',
'user.roles:authenticated',
];
/**
* Modules to enable.
*
* @var array
*/
protected static $modules = [
'language',
'content_translation',
'menu_link_content',
'menu_ui',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp() : void {
$this->entityTypeId = 'menu_link_content';
$this->bundle = 'menu_link_content';
parent::setUp();
}
/**
* {@inheritdoc}
*/
protected function getTranslatorPermissions() {
return array_merge(parent::getTranslatorPermissions(), [
'administer menu',
]);
}
/**
* {@inheritdoc}
*/
protected function getAdministratorPermissions() {
return array_merge(parent::getAdministratorPermissions(), [
'administer themes',
'view the administration theme',
]);
}
/**
* {@inheritdoc}
*/
protected function createEntity($values, $langcode, $bundle_name = NULL) {
$values['menu_name'] = 'tools';
$values['link']['uri'] = 'internal:/admin/structure/menu';
$values['title'] = 'Test title';
return parent::createEntity($values, $langcode, $bundle_name);
}
/**
* Ensure that a translate link can be found on the menu edit form.
*/
public function testTranslationLinkOnMenuEditForm() {
$this
->drupalGet('admin/structure/menu/manage/tools');
$this
->assertSession()
->linkNotExists('Translate');
$menu_link_content = MenuLinkContent::create([
'menu_name' => 'tools',
'link' => [
'uri' => 'internal:/admin/structure/menu',
],
'title' => 'Link test',
]);
$menu_link_content
->save();
$this
->drupalGet('admin/structure/menu/manage/tools');
$this
->assertSession()
->linkExists('Translate');
}
/**
* Tests that translation page inherits admin status of edit page.
*/
public function testTranslationLinkTheme() {
$this
->drupalLogin($this->administrator);
$entityId = $this
->createEntity([], 'en');
// Set up the default admin theme to test.
$this->container
->get('theme_installer')
->install([
'claro',
]);
$edit = [];
$edit['admin_theme'] = 'claro';
$this
->drupalGet('admin/appearance');
$this
->submitForm($edit, 'Save configuration');
// Check that edit uses the admin theme.
$this
->drupalGet('admin/structure/menu/item/' . $entityId . '/edit');
$this
->assertSession()
->responseContains('core/themes/claro/css/base/elements.css');
// Check that translation uses admin theme as well.
$this
->drupalGet('admin/structure/menu/item/' . $entityId . '/edit/translations');
$this
->assertSession()
->responseContains('core/themes/claro/css/base/elements.css');
}
/**
* {@inheritdoc}
*/
protected function doTestTranslationEdit() {
$storage = $this->container
->get('entity_type.manager')
->getStorage($this->entityTypeId);
$storage
->resetCache([
$this->entityId,
]);
$entity = $storage
->load($this->entityId);
$languages = $this->container
->get('language_manager')
->getLanguages();
foreach ($this->langcodes as $langcode) {
// We only want to test the title for non-english translations.
if ($langcode != 'en') {
$options = [
'language' => $languages[$langcode],
];
$url = $entity
->toUrl('edit-form', $options);
$this
->drupalGet($url);
$this
->assertSession()
->pageTextContains("{$entity->getTranslation($langcode)->label()} [{$languages[$langcode]->getName()} translation]");
}
}
}
}