diff --git a/core/modules/language/src/Tests/LanguageSelectWidgetTest.php b/core/modules/language/src/Tests/LanguageSelectWidgetTest.php
new file mode 100644
index 0000000..7eb4c9d
--- /dev/null
+++ b/core/modules/language/src/Tests/LanguageSelectWidgetTest.php
@@ -0,0 +1,134 @@
+<?php
+
+namespace Drupal\language\Tests;
+
+use Drupal\entity_test\Entity\EntityTest;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Tests\FieldTestBase;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\Core\Language\LanguageInterface;
+
+/**
+ * Tests the Language Select widgets.
+ *
+ * @group language
+ */
+class LanguageSelectWidgetTest extends FieldTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array(
+    'language',
+    'language_test',
+    'node',
+    'entity_test',
+    'field_ui',
+  );
+
+  /**
+   * A field storage with include_locked.
+   *
+   * @var \Drupal\field\Entity\FieldStorageConfig
+   */
+  protected $fieldLanguageLocked;
+
+  /**
+   * A field storage without include_locked.
+   *
+   * @var \Drupal\field\Entity\FieldStorageConfig
+   */
+  protected $fieldLanguageUnlocked;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    // Install Portuguese, Brazil language.
+    $edit = array();
+    $edit['predefined_langcode'] = 'pt-br';
+
+    $this->drupalPostForm(
+      'admin/config/regional/language/add',
+      $edit,
+      t('Add language')
+    );
+
+    $this->fieldLanguageLocked = FieldStorageConfig::create([
+      'field_name' => 'language_locked',
+      'entity_type' => 'entity_test',
+      'type' => 'language_select',
+      'languages' => LanguageInterface::STATE_ALL,
+    ]);
+
+    $this->fieldLanguageLocked->save();
+
+    $this->fieldLanguageUnlocked = FieldStorageConfig::create([
+      'field_name' => 'language_unlocked',
+      'entity_type' => 'entity_test',
+      'type' => 'language_select',
+      'languages' => LanguageInterface::STATE_CONFIGURABLE,
+    ]);
+
+    $this->fieldLanguageUnlocked->save();
+  }
+
+  /**
+   * Check that default settings with include_locked languages TRUE.
+   */
+  public function testWithIncludedLockedLanguage() {
+
+    // Create an instance of the 'single value' field.
+    $field = FieldConfig::create([
+      'field_storage' => $this->fieldLanguageLocked,
+      'bundle' => 'entity_test',
+    ]);
+
+    $field->save();
+
+    // Create an entity.
+    $entity = EntityTest::create(array(
+      'user_id' => 1,
+      'name' => $this->randomMachineName(),
+    ));
+    $entity->save();
+
+    // Display form.
+    $this->drupalGet('entity_test/manage/' . $entity->id() . '/edit');
+    $this->assertOptionSelected('edit-language-locked', LanguageInterface::LANGCODE_NOT_APPLICABLE);
+    $this->assertOptionSelected('edit-language-locked', LanguageInterface::LANGCODE_NOT_SPECIFIED);
+    $this->assertOptionSelected('edit-language-locked', 'pt-br');
+  }
+
+  /**
+   * Check the settings with include_locked languages FALSE.
+   */
+  public function testWithoutIncludedLockedLanguage() {
+
+    // Create an instance of the 'single value' field.
+    $field = FieldConfig::create([
+      'field_storage' => $this->fieldLanguageUnlocked,
+      'bundle' => 'entity_test',
+    ]);
+
+    $field->save();
+
+    // Create an entity.
+    $entity = EntityTest::create(array(
+      'user_id' => 1,
+      'name' => $this->randomMachineName(),
+    ));
+    $entity->save();
+
+    // Display form.
+    $this->drupalGet('entity_test/manage/' . $entity->id() . '/edit');
+    $this->assertNoOptionSelected('edit-language-locked', LanguageInterface::LANGCODE_NOT_APPLICABLE);
+    $this->assertNoOptionSelected('edit-language-locked', LanguageInterface::LANGCODE_NOT_SPECIFIED);
+    $this->assertOptionSelected('edit-language-locked', 'pt-br');
+  }
+
+}
