diff --git a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
index 7abed94..aee28e4 100644
--- a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
@@ -91,4 +91,84 @@ public function testGetNegotiationMethodId() {
     $this->assertSame($method_id, $this->language->getNegotiationMethodId());
   }
 
+  /**
+   * Tests sorting an array of Language objects.
+   *
+   * @dataProvider providerTestSortArrayOfLanguages
+   *
+   * @param array $languages
+   *   An array of \Drupal\Core\Language\Language objects.
+   * @param array $expected
+   *   The expected sorted array of languages.
+   */
+  public function testSortArrayOfLanguages(array $languages, array $expected) {
+    Language::sort($languages);
+    $this->assertEquals($expected, $languages);
+  }
+
+  /**
+   * Provides data for testSortArrayOfLanguages.
+   *
+   * @return array
+   *   An array of test data.
+   */
+  public function providerTestSortArrayOfLanguages() {
+    $language9A = new Language();
+    $language9A->setName('A');
+    $language9A->setWeight(9);
+    $language10A = new Language();
+    $language10A->setName('A');
+    $language10A->setWeight(10);
+    $language10B = new Language();
+    $language10B->setName('B');
+    $language10B->setWeight(10);
+
+    return array(
+      // Set up data, already ordered by weight.
+      array(
+        array(
+          $language9A,
+          $language10B,
+        ),
+        array(
+          $language9A,
+          $language10B,
+        ),
+      ),
+      // Set up data, out of order by weight.
+      array(
+        array(
+          $language10B,
+          $language9A,
+        ),
+        array(
+          $language10B,
+          $language9A,
+        ),
+      ),
+      // Set up data, tied by weight, already ordered by name.
+      array(
+        array(
+          $language10A,
+          $language10B,
+        ),
+        array(
+          $language10A,
+          $language10B,
+        ),
+      ),
+      // Set up data, tied by weight, out of order by name.
+      array(
+        array(
+          $language10B,
+          $language10A,
+        ),
+        array(
+          $language10A,
+          $language10B,
+        ),
+      ),
+    );
+  }
+
 }
