public function PluginInstanceTest::testPluginInstances

Tests creating instances of every views plugin.

This will iterate through all plugins from _views_fetch_plugin_data().

File

drupal/core/modules/views/lib/Drupal/views/Tests/PluginInstanceTest.php, line 86
Definition of Drupal\views\Tests\PluginInstanceTest.

Class

PluginInstanceTest
Checks general plugin data and instances for all plugin types.

Namespace

Drupal\views\Tests

Code

public function testPluginInstances() {
  $container = drupal_container();
  foreach ($this->definitions as $type => $plugins) {

    // Get a plugin manager for this type.
    $manager = $container
      ->get("plugin.manager.views.{$type}");
    foreach ($plugins as $id => $definition) {

      // Get a reflection class for this plugin.
      // We only want to test true plugins, i.e. They extend PluginBase.
      $reflection = new \ReflectionClass($definition['class']);
      if ($reflection
        ->isSubclassOf('Drupal\\views\\Plugin\\views\\PluginBase')) {

        // Create a plugin instance and check what it is. This is not just
        // good to check they can be created but for throwing any notices for
        // method signatures etc... too.
        $instance = $manager
          ->createInstance($id);
        $this
          ->assertTrue($instance instanceof $definition['class'], format_string('Instance of @type:@id created', array(
          '@type' => $type,
          '@id' => $id,
        )));
      }
    }
  }
}