From ffdfab24399ca071866ccef8492ca4c5c11caed0 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Tue, 31 Mar 2015 16:19:26 +0100
Subject: [PATCH] =?UTF-8?q?Issue=20#2457703=20by=20G=C3=A1bor=20Hojtsy:=20?=
 =?UTF-8?q?Default=20translatable=20site=20name=20is=20"Drupal"=20(incorre?=
 =?UTF-8?q?ctly)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../config/src/Tests/ConfigSchemaTest.php     |  8 +------
 .../src/Tests/LocaleConfigTranslationTest.php | 22 +++++++++----------
 .../system/config/install/system.site.yml     |  2 +-
 .../src/Tests/System/TokenReplaceUnitTest.php |  9 ++++++++
 core/modules/system/system.install            | 11 ++++++----
 5 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/core/modules/config/src/Tests/ConfigSchemaTest.php b/core/modules/config/src/Tests/ConfigSchemaTest.php
index 4082dfa96c4a..8a8f649873f2 100644
--- a/core/modules/config/src/Tests/ConfigSchemaTest.php
+++ b/core/modules/config/src/Tests/ConfigSchemaTest.php
@@ -288,14 +288,8 @@ function testSchemaMappingWithParents() {
    * Tests metadata applied to configuration objects.
    */
   function testSchemaData() {
-    // Try some simple properties.
+    // Try a simple property.
     $meta = \Drupal::service('config.typed')->get('system.site');
-    $property = $meta->get('name');
-    $this->assertTrue($property instanceof StringInterface, 'Got the right wrapper fo the site name property.');
-    $this->assertEqual($property->getValue(), 'Drupal', 'Got the right string value for site name data.');
-    $definition = $property->getDataDefinition();
-    $this->assertTrue($definition['translatable'], 'Got the right translatability setting for site name data.');
-
     $property = $meta->get('page')->get('front');
     $this->assertTrue($property instanceof StringInterface, 'Got the right wrapper fo the page.front property.');
     $this->assertEqual($property->getValue(), 'user/login', 'Got the right value for page.front data.');
diff --git a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
index d5a7c2102634..4535b9b3dae2 100644
--- a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
+++ b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\locale\Tests;
 
+use Drupal\Component\Utility\SafeMarkup;
 use Drupal\simpletest\WebTestBase;
 use Drupal\core\language\languageInterface;
 
@@ -45,7 +46,7 @@ protected function setUp() {
   public function testConfigTranslation() {
     // Add custom language.
     $langcode = 'xx';
-    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'translate interface', 'administer modules', 'access site-wide contact form', 'administer contact forms'));
+    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'translate interface', 'administer modules', 'access site-wide contact form', 'administer contact forms', 'administer site configuration'));
     $this->drupalLogin($admin_user);
     $name = $this->randomMachineName(16);
     $edit = array(
@@ -59,12 +60,13 @@ public function testConfigTranslation() {
     $edit = array("prefix[$langcode]" => $langcode);
     $this->drupalPostForm('admin/config/regional/language/detection/url', $edit, t('Save configuration'));
 
-    // Check site name string exists and create translation for it.
-    $string = $this->storage->findString(array('source' => 'Drupal', 'context' => '', 'type' => 'configuration'));
+    // Check that the maintenance message exists and create translation for it.
+    $source = '@site is currently under maintenance. We should be back shortly. Thank you for your patience.';
+    $string = $this->storage->findString(array('source' => $source, 'context' => '', 'type' => 'configuration'));
     $this->assertTrue($string, 'Configuration strings have been created upon installation.');
 
     // Translate using the UI so configuration is refreshed.
-    $site_name = $this->randomMachineName(20);
+    $message = $this->randomMachineName(20);
     $search = array(
       'string' => $string->source,
       'langcode' => $langcode,
@@ -75,18 +77,14 @@ public function testConfigTranslation() {
     $textarea = current($textareas);
     $lid = (string) $textarea[0]['name'];
     $edit = array(
-      $lid => $site_name,
+      $lid => $message,
     );
     $this->drupalPostForm('admin/config/regional/translate', $edit, t('Save translations'));
 
-    // Get translation and check we've only got the site name.
-    $translation = \Drupal::languageManager()->getLanguageConfigOverride($langcode, 'system.site')->get();
+    // Get translation and check we've only got the message.
+    $translation = \Drupal::languageManager()->getLanguageConfigOverride($langcode, 'system.maintenance')->get();
     $this->assertEqual(count($translation), 1, 'Got the right number of properties after translation.');
-    $this->assertEqual($translation['name'], $site_name, 'Got the right translation for the site name.');
-
-    // Check the translated site name is displayed.
-    $this->drupalGet($langcode);
-    $this->assertText($site_name, 'The translated site name is displayed after translations refreshed.');
+    $this->assertEqual($translation['message'], $message);
 
     // Check default medium date format exists and create a translation for it.
     $string = $this->storage->findString(array('source' => 'D, m/d/Y - H:i', 'context' => 'PHP date format', 'type' => 'configuration'));
diff --git a/core/modules/system/config/install/system.site.yml b/core/modules/system/config/install/system.site.yml
index 403e46409676..9eb22f3e05f1 100644
--- a/core/modules/system/config/install/system.site.yml
+++ b/core/modules/system/config/install/system.site.yml
@@ -1,5 +1,5 @@
 uuid: ''
-name: Drupal
+name: ''
 mail: ''
 slogan: ''
 page:
diff --git a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
index a5bbe745d347..6cf92efc1313 100644
--- a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
+++ b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
@@ -18,6 +18,15 @@
  */
 class TokenReplaceUnitTest extends TokenReplaceUnitTestBase {
 
+  /**
+   * @inheritdoc
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Set the site name to something other than an empty string.
+    $this->config('system.site')->set('name', 'Drupal')->save();
+  }
+
   /**
    * Test whether token-replacement works in various contexts.
    */
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 4a8683eaae8a..94c8e33b6fb7 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -644,10 +644,13 @@ function system_install() {
   $cron_key = Crypt::randomBytesBase64(55);
   \Drupal::state()->set('system.cron_key', $cron_key);
 
-  // Populate the site UUID.
-  \Drupal::configFactory()->getEditable('system.site')
-    ->set('uuid', \Drupal::service('uuid')->generate())
-    ->save();
+  // Populate the site UUID and default name (if not set).
+  $site = \Drupal::configFactory()->getEditable('system.site');
+  $site->set('uuid', \Drupal::service('uuid')->generate());
+  if (!$site->get('name')) {
+    $site->set('name', 'Drupal');
+  }
+  $site->save();
 }
 
 /**
-- 
GitLab