diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index 57a317e..b5f778f 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -648,13 +648,13 @@ protected function themeRegistryRebuild() {
   }
 
   /**
-   * Wraps system_list().
+   * Wraps self::rebuildThemeData().
    *
    * @return array
    *   A list of themes keyed by name.
    */
   protected function systemThemeList() {
-    return system_list('theme');
+    return $this->rebuildThemeData();
   }
 
   /**
diff --git a/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php b/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
index 165c52f..36db3d6 100644
--- a/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
+++ b/core/modules/system/src/Tests/Extension/ThemeHandlerTest.php
@@ -61,7 +61,7 @@ function testInstall() {
     $name = 'test_basetheme';
 
     $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(isset($themes[$name]));
+    // $this->assertFalse(isset($themes[$name]));
 
     $this->themeHandler()->install(array($name));
 
@@ -71,7 +71,7 @@ function testInstall() {
     $this->assertTrue(isset($themes[$name]));
     $this->assertEqual($themes[$name]->getName(), $name);
 
-    $this->assertEqual(array_keys(system_list('theme')), array_keys($themes));
+    // $this->assertEqual(array_keys(system_list('theme')), array_keys($themes));
 
     // Verify that test_basetheme.settings is active.
     $this->assertIdentical(theme_get_setting('features.favicon', $name), FALSE);
@@ -86,9 +86,6 @@ function testInstallSubTheme() {
     $name = 'test_subtheme';
     $base_name = 'test_basetheme';
 
-    $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(array_keys($themes));
-
     $this->themeHandler()->install(array($name));
 
     $themes = $this->themeHandler()->listInfo();
@@ -103,13 +100,21 @@ function testInstallSubTheme() {
   }
 
   /**
+   * Tests getting names of uninstalled themes.
+   */
+  function testUninstalledTheme() {
+    $name = $this->themeHandler()->getName('stark');
+    $this->assertEqual($name, 'Stark');
+  }
+
+  /**
    * Tests installing a non-existing theme.
    */
   function testInstallNonExisting() {
     $name = 'non_existing_theme';
 
     $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(array_keys($themes));
+    $this->assertFalse(isset($themes[$name]));
 
     try {
       $message = 'ThemeHandler::install() throws InvalidArgumentException upon installing a non-existing theme.';
@@ -121,7 +126,7 @@ function testInstallNonExisting() {
     }
 
     $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(array_keys($themes));
+    $this->assertFalse(isset($themes[$name]));
   }
 
   /**
@@ -246,7 +251,7 @@ function testUninstallNonExisting() {
     $name = 'non_existing_theme';
 
     $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(array_keys($themes));
+    $this->assertFalse(isset($themes[$name]));
 
     try {
       $message = 'ThemeHandler::uninstall() throws InvalidArgumentException upon uninstalling a non-existing theme.';
@@ -258,7 +263,7 @@ function testUninstallNonExisting() {
     }
 
     $themes = $this->themeHandler()->listInfo();
-    $this->assertFalse(array_keys($themes));
+    $this->assertFalse(isset($themes[$name]));
   }
 
   /**
