* Definition of Drupal\views\Tests\Plugin\PluginInstanceTest.
*/
namespaceDrupal\views\Tests\Plugin;
useDrupal\simpletest\UnitTestBase;
useDrupal\views\Plugin\Type\ViewsPluginManager;
/**
* Checks general plugin data and instances for all plugin types.
*/
classPluginInstanceTestextendsUnitTestBase{
/**
* All views plugin types.
*
* @var array
*/
protected$plugin_types=array(
'access',
'area',
'argument',
'argument_default',
'argument_validator',
'cache',
'display_extender',
'display',
'exposed_form',
'field',
'filter',
'join',
'localization',
'pager',
'query',
'relationship',
'row',
'sort',
'style',
'wizard',
);
publicstaticfunctiongetInfo(){
returnarray(
'name'=>'Plugin instance unit tests',
'description'=>'Tests that an instance of all views plugins can be created.',
'group'=>'Views Plugins',
);
}
/**
* Confirms that there is plugin data for all views plugin types.
*/
publicfunctiontestPluginData(){
$plugin_data=$this->getViewsPluginData();
// Check we have an array of data.
$this->assertTrue(is_array($plugin_data),'Plugin data is an array.');
// Check all plugin types.
foreach($this->plugin_typesas$type){
$this->assertTrue(array_key_exists($type,$plugin_data),format_string('Key for plugin type @type found.',array('@type'=>$type)));
$this->assertTrue(is_array($plugin_data[$type])&&!empty($plugin_data[$type]),format_string('Plugin type @type has an array of plugins.',array('@type'=>$type)));
}
// Tests that the plugin list has not missed any types.
$this->assertTrue($instanceinstanceof$definition['class'],format_string('Instance of @type:@id created',array('@type'=>$type,'@id'=>$definition['id'])));
}
}
}
}
/**
* Gets all views plugin definition data.
*
* @return array
* A nested array of plugin data, keyed by plugin type.