diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
index ffdac5a..4871739 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
@@ -360,6 +360,31 @@ public function testGetCacheMaxAge() {
   }
 
   /**
+   * @covers ::findDefinitions
+   */
+  public function testProviderExists() {
+    $definitions = [];
+    $definitions['array_based_found'] = ['provider' => 'module_found'];
+    $definitions['array_based_missing'] = ['provider' => 'module_missing'];
+    $definitions['stdclass_based_found'] = (object) ['provider' => 'module_found'];
+    $definitions['stdclass_based_missing'] = (object) ['provider' => 'module_missing'];
+    $definitions['classed_object_found'] = new ObjectDefinition(['provider' => 'module_found']);
+    $definitions['classed_object_missing'] = new ObjectDefinition(['provider' => 'module_missing']);
+
+    $expected = [];
+    $expected['array_based_found'] = $definitions['array_based_found'];
+    $expected['stdclass_based_found'] = $definitions['stdclass_based_found'];
+    $expected['classed_object_found'] = $definitions['classed_object_found'];
+
+    $module_handler = $this->prophesize(ModuleHandlerInterface::class);
+    $module_handler->moduleExists('module_found')->willReturn(TRUE)->shouldBeCalled();
+    $module_handler->moduleExists('module_missing')->willReturn(FALSE)->shouldBeCalled();
+    $plugin_manager = new TestPluginManager($this->namespaces, $definitions, $module_handler->reveal());
+    $result = $plugin_manager->getDefinitions();
+    $this->assertEquals($expected, $result);
+  }
+
+  /**
    * @covers ::processDefinition
    * @dataProvider providerTestProcessDefinition
    */
@@ -453,3 +478,49 @@ public function submitConfigurationForm(array &$form, FormStateInterface $form_s
   }
 
 }
+class ObjectDefinition {
+
+  /**
+   * @var string
+   */
+  protected $class;
+
+  /**
+   * @var string
+   */
+  protected $provider;
+
+  /**
+   * ObjectDefinition constructor.
+   *
+   * @param array $definition
+   */
+  public function __construct(array $definition) {
+    foreach ($definition as $property => $value) {
+      $this->{$property} = $value;
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setClass($class) {
+    $this->class = $class;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getClass() {
+    return $this->class;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getProvider() {
+    return $this->provider;
+  }
+
+}
