From 8391e273b8ff201c351a6920d19a3e03dbddf3c5 Mon Sep 17 00:00:00 2001
From: webchick <drupal@webchick.net>
Date: Thu, 28 Aug 2014 23:46:09 -0700
Subject: [PATCH] Issue #2318429 by janoka: Fixed Language condition / block
 language visibility includes useless options.

---
 .../src/Plugin/Condition/Language.php         |  2 +-
 .../LanguageBlockSettingsVisibilityTest.php   | 31 +++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
 create mode 100644 core/modules/language/src/Tests/LanguageBlockSettingsVisibilityTest.php

diff --git a/core/modules/language/src/Plugin/Condition/Language.php b/core/modules/language/src/Plugin/Condition/Language.php
index e0bb12ba5c39..523c3df1ae20 100644
--- a/core/modules/language/src/Plugin/Condition/Language.php
+++ b/core/modules/language/src/Plugin/Condition/Language.php
@@ -31,7 +31,7 @@ class Language extends ConditionPluginBase {
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     if (\Drupal::languageManager()->isMultilingual()) {
       // Fetch languages.
-      $languages = language_list(LanguageInterface::STATE_ALL);
+      $languages = language_list(LanguageInterface::STATE_CONFIGURABLE);
       $langcodes_options = array();
       foreach ($languages as $language) {
         $langcodes_options[$language->id] = $language->getName();
diff --git a/core/modules/language/src/Tests/LanguageBlockSettingsVisibilityTest.php b/core/modules/language/src/Tests/LanguageBlockSettingsVisibilityTest.php
new file mode 100644
index 000000000000..e1f9cb9d3231
--- /dev/null
+++ b/core/modules/language/src/Tests/LanguageBlockSettingsVisibilityTest.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\language\src\Tests\LanguageBlockSettingsVisibilityTest.
+ */
+
+namespace Drupal\language\Tests;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests that the language settings on block config appears correctly.
+ *
+ * @group language
+ */
+class LanguageBlockSettingsVisibilityTest extends WebTestBase {
+
+  public static $modules = array('block', 'language');
+
+  public function testUnnecessaryLanguageSettingsVisibility() {
+    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'administer blocks'));
+    $this->drupalLogin($admin_user);
+    $this->drupalPostForm('admin/config/regional/language/add', array('predefined_langcode' => 'hu'), t('Add language'));
+    $this->drupalGet('admin/structure/block/add/system_menu_block:admin/stark');
+    $this->assertNoFieldByXPath('//input[@id="edit-settings-visibility-language-langcodes-und"]', NULL, '\'Not specified\' option does not appear at block config, language settings section.');
+    $this->assertNoFieldByXpath('//input[@id="edit-settings-visibility-language-langcodes-zxx"]', NULL, '\'Not applicable\' option does not appear at block config, language settings section.');
+    $this->assertFieldByXPath('//input[@id="edit-settings-visibility-language-langcodes-en"]', NULL, '\'English\' option appears at block config, language settings section.');
+    $this->assertFieldByXpath('//input[@id="edit-settings-visibility-language-langcodes-hu"]', NULL, '\'Hungarian\' option appears at block config, language settings section.');
+  }
+}
-- 
GitLab