From 7a84619f63f9eccd424e70ae212cf0f588fdf851 Mon Sep 17 00:00:00 2001
From: Dave Long <dave@longwaveconsulting.com>
Date: Fri, 10 Nov 2023 23:28:29 +0000
Subject: [PATCH] Issue #3385834 by vbouchet, joachim: MenuUiNodeTest should
 use API to set up language

---
 .../tests/src/Functional/MenuUiNodeTest.php   | 44 +++++++++++--------
 1 file changed, 26 insertions(+), 18 deletions(-)

diff --git a/core/modules/menu_ui/tests/src/Functional/MenuUiNodeTest.php b/core/modules/menu_ui/tests/src/Functional/MenuUiNodeTest.php
index 74ff25eec27e..466b75d5bfa8 100644
--- a/core/modules/menu_ui/tests/src/Functional/MenuUiNodeTest.php
+++ b/core/modules/menu_ui/tests/src/Functional/MenuUiNodeTest.php
@@ -2,7 +2,9 @@
 
 namespace Drupal\Tests\menu_ui\Functional;
 
+use Drupal\Core\Language\LanguageInterface;
 use Drupal\language\Entity\ConfigurableLanguage;
+use Drupal\language\Entity\ContentLanguageSettings;
 use Drupal\menu_link_content\Entity\MenuLinkContent;
 use Drupal\node\Entity\Node;
 use Drupal\node\Entity\NodeType;
@@ -296,30 +298,36 @@ public function testMultilingualMenuNodeFormWidget() {
     $config->set('url.prefixes.' . $langcodes[0], $langcodes[0]);
     $config->save();
 
-    $this->rebuildContainer();
-
     $languages = [];
     foreach ($langcodes as $langcode) {
       $languages[$langcode] = ConfigurableLanguage::load($langcode);
     }
 
-    // Use a UI form submission to make the node type and menu link content entity translatable.
-    $this->drupalLogout();
-    $this->drupalLogin($this->rootUser);
-    $edit = [
-      'entity_types[node]' => TRUE,
-      'entity_types[menu_link_content]' => TRUE,
-      'settings[node][page][settings][language][language_alterable]' => TRUE,
-      'settings[node][page][translatable]' => TRUE,
-      'settings[node][page][fields][title]' => TRUE,
-      'settings[menu_link_content][menu_link_content][translatable]' => TRUE,
-    ];
-    $this->drupalGet('admin/config/regional/content-language');
-    $this->submitForm($edit, 'Save configuration');
+    // Enable translation for page.
+    $config = ContentLanguageSettings::loadByEntityTypeBundle('node', 'page');
+    $config->setDefaultLangcode(LanguageInterface::LANGCODE_SITE_DEFAULT);
+    $config->setLanguageAlterable(TRUE);
+    $config->save();
 
-    // Log out and back in as normal user.
-    $this->drupalLogout();
-    $this->drupalLogin($this->editor);
+    $content_translation_manager = $this->container->get('content_translation.manager');
+    $content_translation_manager->setEnabled('node', 'page', TRUE);
+    $content_translation_manager->setBundleTranslationSettings('node', 'page', [
+      'untranslatable_fields_hide' => FALSE,
+    ]);
+
+    // Enable translation for menu_link_content.
+    $config = ContentLanguageSettings::loadByEntityTypeBundle('menu_link_content', 'menu_link_content');
+    $config->setDefaultLangcode(LanguageInterface::LANGCODE_SITE_DEFAULT);
+    $config->setLanguageAlterable(TRUE);
+    $config->save();
+
+    $content_translation_manager = $this->container->get('content_translation.manager');
+    $content_translation_manager->setEnabled('menu_link_content', 'menu_link_content', TRUE);
+    $content_translation_manager->setBundleTranslationSettings('menu_link_content', 'menu_link_content', [
+      'untranslatable_fields_hide' => FALSE,
+    ]);
+
+    $this->rebuildContainer();
 
     // Create a node.
     $node_title = $this->randomMachineName(8);
-- 
GitLab