diff --git a/core/tests/Drupal/Tests/Core/Composer/ExtensionDependencyCheckerTest.php b/core/tests/Drupal/Tests/Core/Composer/ExtensionDependencyCheckerTest.php
index 0022e78..a3bf532 100644
--- a/core/tests/Drupal/Tests/Core/Composer/ExtensionDependencyCheckerTest.php
+++ b/core/tests/Drupal/Tests/Core/Composer/ExtensionDependencyCheckerTest.php
@@ -128,4 +128,36 @@ public function testDependenciesAreMet($expected, $composer_json, $installed_jso
     $this->assertEquals($expected, $sut->dependenciesAreMet($extension));
   }
 
+  /**
+   * Determine that the installed.json schema hasn't changed.
+   *
+   * This test exists to fail when or if Composer changes the schema of
+   * installed.json.
+   *
+   * @covers ::getInstalledPackages
+   */
+  public function testGetInstalledPackages() {
+    // We need an app root for ExtensionDependencyChecker.
+    $app_root = __DIR__ . '/../../../../../..';
+
+    // Verify that installed.json will be found by getInstalledPackages().
+    $installed_json_path = $app_root . '/vendor/composer/installed.json';
+    $this->assertTrue(file_exists($installed_json_path));
+
+    // Create an ExtensionDependencyChecker to test.
+    $checker = new ExtensionDependencyChecker($app_root);
+
+    // Set getInstalledPackages() to be accessible.
+    $ref_get_installed = new \ReflectionMethod($checker, 'getInstalledPackages');
+    $ref_get_installed->setAccessible(TRUE);
+
+    // Call getInstalledPackages().
+    $installed = $ref_get_installed->invoke($checker);
+    // Verify that we got an array back. This assertion is almost a throw-away,
+    // since the behavior we want is for getInstalledPackages() to break and
+    // throw an error when we call it, if the schema of installed.json has
+    // changed.
+    $this->assertInternalType('array', $installed);
+  }
+
 }
