diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 4035f42..369fdfc 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -3264,16 +3264,3 @@ function _drupal_shutdown_function() {
     }
   }
 }
-
-/**
- * Returns a previously created or new object of the specified class.
- */
-function drupal_object($class) {
-  $objects = &drupal_static(__FUNCTION__);
-
-  if (!isset($objects[$class])) {
-    $objects[$class] = new $class();
-  }
-
-  return $objects[$class];
-}
diff --git a/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/TestPluginInstanceClass.php b/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/TestPluginInstanceClass.php
index 7ab975a..0febf83 100644
--- a/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/TestPluginInstanceClass.php
+++ b/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/TestPluginInstanceClass.php
@@ -1,8 +1,8 @@
 <?php
 
 /**
- * @todo Move each of these classes to PSR-0 locations when tests allow for
- *   that (http://drupal.org/node/1477218).
+ * @file
+ * Definition of Drupal\plugin_test\Plugin\TestPluginInstanceClass.
  */
 
 namespace Drupal\plugin_test\Plugin;
diff --git a/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/Type/TestPluginType.php b/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/Type/TestPluginType.php
index 439618b..74799db 100644
--- a/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/Type/TestPluginType.php
+++ b/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/Type/TestPluginType.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- *
+ * Definition of Drupal\plugin_test\Plugin\Type\TestPluginType.
  */
 
 namespace Drupal\plugin_test\Plugin\Type;
diff --git a/core/modules/system/tests/modules/plugin_test/plugin_test.module b/core/modules/system/tests/modules/plugin_test/plugin_test.module
index dc6986d..118d3f0 100644
--- a/core/modules/system/tests/modules/plugin_test/plugin_test.module
+++ b/core/modules/system/tests/modules/plugin_test/plugin_test.module
@@ -4,3 +4,15 @@
  * @file
  * Helper module for the plugin tests.
  */
+use Drupal\plugin_test\Plugin\Type\TestPluginType;
+
+/**
+ * Returns a Drupal\plugin_test\Plugin\Type\TestPluginType object.
+ */
+function plugin_test_get_test_plugin_type() {
+  $object = &drupal_static(__FUNCTION__);
+  if (!isset($object)) {
+    $object = new TestPluginType;
+  }
+  return $object;
+}
diff --git a/core/modules/system/tests/plugins.test b/core/modules/system/tests/plugins.test
index 3c093d8..a7e69c0 100644
--- a/core/modules/system/tests/plugins.test
+++ b/core/modules/system/tests/plugins.test
@@ -1,40 +1,6 @@
 <?php
-use Symfony\Component\ClassLoader\UniversalClassLoader;
 
-abstract class PluginUnitTestCase extends DrupalUnitTestCase {
-  protected $loader;
-
-  public function setUp() {
-    parent::setUp();
-    // We're a unit test using classes... don't let the db registry blow up.
-    spl_autoload_unregister('drupal_autoload_class');
-    spl_autoload_unregister('drupal_autoload_interface');
-
-    // Setup our own classloader.
-    // Make sure the Symfony classloader file is included. This is just good
-    // measure since the Core class loader almost has to have been registered
-    // by this point.
-    drupal_classloader();
-    $this->loader = new UniversalClassLoader();
-    $this->loader->registerNamespace('Drupal\\plugin_test', dirname(__FILE__) . '/modules/plugin_test/lib');
-    $this->loader->register();
-  }
-
-  public function tearDown() {
-    // Re-register autoloaders before tearDown begins.
-    spl_autoload_register('drupal_autoload_interface');
-    spl_autoload_register('drupal_autoload_class');
-
-    // Be as reentrant as simpletest will allow. The classes loaded will still
-    // avaiable to php but hopefully we're not leaking dead autoloaders.
-    spl_autoload_unregister(array($this->loader, 'loadClass'));
-
-    // Let simpletest finish tearing down the test.
-    parent::tearDown();
-  }
-}
-
-class PluginBaseTestCase extends PluginUnitTestCase {
+class PluginBaseTestCase extends DrupalWebTestCase {
   public static function getInfo() {
     return array(
       'name' => 'Plugin wrapper',
@@ -43,21 +9,17 @@ class PluginBaseTestCase extends PluginUnitTestCase {
     );
   }
 
+  public function setUp() {
+    parent::setUp(array('plugin_test'));
+  }
+
   function testPluginDefintionFetching() {
-    $plugin_definition = drupal_object('Drupal\plugin_test\Plugin\Type\TestPluginType')->getPluginDefinition('coolaid');
+    $plugin_definition = plugin_test_get_test_plugin_type()->getPluginDefinition('coolaid');
     $this->assertEqual($plugin_definition['string'], 'oh yeah', 'Plugin definition retrievable by the test plugin type.');
   }
 
   function testPluginInstanceFetching() {
-    $plugin = drupal_object('Drupal\plugin_test\Plugin\Type\TestPluginType')->createPluginInstance('coolaid');
+    $plugin = plugin_test_get_test_plugin_type()->createPluginInstance('coolaid');
     $this->assertEqual(get_class($plugin), 'Drupal\plugin_test\Plugin\TestPluginInstanceClass', 'Correct plugin instance implementation returned by the test plugin type.');
   }
-
-  function testPluginDefinitionDefaults() {
-    $plugin_definition = drupal_object('Drupal\plugin_test\Plugin\Type\TestPluginTypeDefaults')->getPluginDefinition('lois');
-    $this->assertEqual($plugin_definition['string'], 'oh no', 'Plugin definition with default retrieved.');
-
-    $plugin_definition = drupal_object('Drupal\plugin_test\Plugin\Type\TestPluginTypeDefaults')->getPluginDefinition('coolaid');
-    $this->assertEqual($plugin_definition['string'], 'oh yeah', 'Plugin definition overiding a default retrieved.');
-  }
 }
