123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- /**
- * Test menu links depending on user permissions.
- */
- class CtoolsPluginsGetInfoTestCase extends DrupalWebTestCase {
- /**
- * {@inheritdoc}
- */
- public static function getInfo() {
- return array(
- 'name' => 'Get plugin info',
- 'description' => 'Verify that plugin type definitions can properly set and overide values.',
- 'group' => 'ctools',
- 'dependencies' => array('ctools'),
- );
- }
- /**
- * {@inheritdoc}
- */
- public function setUp(array $modules = array()) {
- $modules[] = 'ctools';
- $modules[] = 'ctools_plugin_test';
- parent::setUp($modules);
- }
- /**
- * Assert helper to check that a specific plugin function exists.
- *
- * @param $module
- * The module that owns the plugin.
- * @param $type
- * The type of plugin.
- * @param $id
- * The id of the specific plugin to load.
- * @param $function
- * The identifier of the function. For example, 'settings form'.
- */
- protected function assertPluginFunction($module, $type, $id, $function = 'function') {
- $func = ctools_plugin_load_function($module, $type, $id, $function);
- $this->assertTrue(function_exists($func), t('Plugin @plugin of plugin type @module:@type successfully retrieved @retrieved for @function.', array(
- '@plugin' => $id,
- '@module' => $module,
- '@type' => $type,
- '@function' => $function,
- '@retrieved' => $func,
- )));
- }
- /**
- * Assert helper to check that a specific plugin function does NOT exist.
- *
- * @param $module
- * The module that owns the plugin.
- * @param $type
- * The type of plugin.
- * @param $id
- * The id of the specific plugin to load.
- * @param $function
- * The identifier of the function. For example, 'settings form'.
- */
- protected function assertPluginMissingFunction($module, $type, $id, $function = 'function') {
- $func = ctools_plugin_load_function($module, $type, $id, $function);
- $this->assertEqual($func, NULL, t('Plugin @plugin of plugin type @module:@type for @function with missing function successfully failed.', array(
- '@plugin' => $id,
- '@module' => $module,
- '@type' => $type,
- '@function' => $func,
- )));
- }
- /**
- * Assert helper to check that a plugin can be loaded using a named class.
- *
- * @param $module
- * The module that owns the plugin.
- * @param $type
- * The type of plugin.
- * @param $id
- * The id of the specific plugin to load.
- * @param string $class
- * The name of the PHP class to load.
- */
- protected function assertPluginClass($module, $type, $id, $class = 'handler') {
- $class_name = ctools_plugin_load_class($module, $type, $id, $class);
- $this->assertTrue(class_exists($class_name), t('Plugin @plugin of plugin type @module:@type successfully retrieved @retrieved for @class.', array(
- '@plugin' => $id,
- '@module' => $module,
- '@type' => $type,
- '@class' => $class,
- '@retrieved' => $class_name,
- )));
- }
- /**
- * Assert helper to check that a plugin DOES NOT contain the named class.
- *
- * @param $module
- * The module that owns the plugin.
- * @param $type
- * The type of plugin.
- * @param $id
- * The id of the specific plugin to load.
- * @param string $class
- * The name of the PHP class to load.
- */
- protected function assertPluginMissingClass($module, $type, $id, $class = 'handler') {
- $class_name = ctools_plugin_load_class($module, $type, $id, $class);
- $this->assertEqual($class_name, NULL, t('Plugin @plugin of plugin type @module:@type for @class with missing class successfully failed.', array(
- '@plugin' => $id,
- '@module' => $module,
- '@type' => $type,
- '@class' => $class,
- )));
- }
- /**
- * Test that plugins are loaded correctly.
- */
- public function testPluginLoading() {
- ctools_include('plugins');
- $module = 'ctools_plugin_test';
- $type = 'not_cached';
- // Test function retrieval for plugins using different definition methods.
- $this->assertPluginFunction($module, $type, 'plugin_array', 'function');
- $this->assertPluginFunction($module, $type, 'plugin_array2', 'function');
- $this->assertPluginMissingFunction($module, $type, 'plugin_array_dne', 'function');
- $this->assertPluginFunction($module, "big_hook_$type", 'test1', 'function');
- // Test class retrieval for plugins using different definition methods.
- $this->assertPluginClass($module, $type, 'plugin_array', 'handler');
- $this->assertPluginClass($module, $type, 'plugin_array2', 'handler');
- $this->assertPluginMissingClass($module, $type, 'plugin_array_dne', 'handler');
- // @todo Test big hook plugins.
- $type = 'cached';
- // Test function retrieval for plugins using different definition methods.
- $this->assertPluginFunction($module, $type, 'plugin_array', 'function');
- $this->assertPluginFunction($module, $type, 'plugin_array2', 'function');
- $this->assertPluginMissingFunction($module, $type, 'plugin_array_dne', 'function');
- $this->assertPluginFunction($module, "big_hook_$type", 'test1', 'function');
- // Test class retrieval for plugins using different definition methods.
- $this->assertPluginClass($module, $type, 'plugin_array', 'handler');
- $this->assertPluginClass($module, $type, 'plugin_array2', 'handler');
- $this->assertPluginMissingClass($module, $type, 'plugin_array_dne', 'handler');
- // @todo Test big hook plugins.
- }
- }
|