From 357b600ba53d4c25d0234c7929d8c659284008b6 Mon Sep 17 00:00:00 2001
From: Lauri Eskola <lauri.eskola@acquia.com>
Date: Mon, 8 May 2023 10:03:18 +0300
Subject: [PATCH] Issue #3111550 by Primsi, Berdir, smustgrave: Test that new
 fields are translatable when re-using existing storage but not translatable
 when added from the UI

---
 .../ContentTranslationSettingsTest.php        |  3 +++
 .../Functional/ManageFieldsFunctionalTest.php | 22 +++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/core/modules/content_translation/tests/src/Functional/ContentTranslationSettingsTest.php b/core/modules/content_translation/tests/src/Functional/ContentTranslationSettingsTest.php
index a18d69076dfa..73c2ad319398 100644
--- a/core/modules/content_translation/tests/src/Functional/ContentTranslationSettingsTest.php
+++ b/core/modules/content_translation/tests/src/Functional/ContentTranslationSettingsTest.php
@@ -305,6 +305,9 @@ public function testFieldTranslatableSettingsUI() {
     $this->assertSession()->fieldDisabled('edit-translatable');
     $this->assertSession()->pageTextContains('To configure translation for this field, enable language support for this type.');
 
+    // 'Users may translate this field' should be unchecked by default.
+    $this->assertSession()->checkboxNotChecked('translatable');
+
     // Tests that field has translatable setting if bundle is translatable.
     // Note: this field is not translatable when enable bundle translatability.
     $edit = [
diff --git a/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php b/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
index 8dbf00201762..5235a3e457ca 100644
--- a/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
+++ b/core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php
@@ -1040,4 +1040,26 @@ public function entityTypesProvider() {
     ];
   }
 
+  /**
+   * Test translation defaults.
+   */
+  public function testTranslationDefaults() {
+    $this->createField();
+    $field_storage = FieldStorageConfig::loadByName('node', 'field_' . $this->fieldNameInput);
+    $this->assertTrue($field_storage->isTranslatable(), 'Field storage translatable.');
+
+    $field = FieldConfig::loadByName('node', $this->contentType, 'field_' . $this->fieldNameInput);
+    $this->assertFalse($field->isTranslatable(), 'Field instance should not be translatable by default.');
+
+    // Add a new field based on an existing field.
+    $this->drupalCreateContentType(['type' => 'additional', 'name' => 'Additional type']);
+    $this->fieldUIAddExistingField("admin/structure/types/manage/additional", $this->fieldName, 'Additional type');
+
+    $field_storage = FieldStorageConfig::loadByName('node', 'field_' . $this->fieldNameInput);
+    $this->assertTrue($field_storage->isTranslatable(), 'Field storage translatable.');
+
+    $field = FieldConfig::loadByName('node', 'additional', 'field_' . $this->fieldNameInput);
+    $this->assertFalse($field->isTranslatable(), 'Field instance should not be translatable by default.');
+  }
+
 }
-- 
GitLab