diff --git a/libraries.info b/libraries.info index c01fa0a..439cb3c 100644 --- a/libraries.info +++ b/libraries.info @@ -1,4 +1,6 @@ name = Libraries description = Allows version-dependent and shared usage of external libraries. core = 7.x +; We use hook_system_theme_info() which was added in Drupal 7.11 +dependencies[] = system (>=7.11) files[] = tests/libraries.test diff --git a/tests/libraries.test b/tests/libraries.test index 4274062..ab1d9b8 100644 --- a/tests/libraries.test +++ b/tests/libraries.test @@ -73,6 +73,7 @@ class LibrariesTestCase extends DrupalWebTestCase { function setUp() { parent::setUp('libraries', 'libraries_test_module'); + theme_enable(array('libraries_test_theme')); } /** @@ -171,6 +172,21 @@ class LibrariesTestCase extends DrupalWebTestCase { * Tests libraries_info(). */ function testLibrariesInfo() { + // Test that modules can provide and alter library information. + $info = libraries_info(); + $this->assertTrue(isset($info['example_module'])); + $this->verbose('Library:
' . var_export($info['example_module'], TRUE) . ''); + $this->assertEqual($info['example_module']['info type'], 'module'); + $this->assertEqual($info['example_module']['module'], 'libraries_test_module'); + $this->assertTrue($info['example_module']['module_altered']); + + // Test that themes can provide and alter library information. + $this->assertTrue(isset($info['example_theme'])); + $this->verbose('Library:
' . var_export($info['example_theme'], TRUE) . ''); + $this->assertEqual($info['example_theme']['info type'], 'theme'); + $this->assertEqual($info['example_theme']['theme'], 'libraries_test_theme'); + $this->assertTrue($info['example_theme']['theme_altered']); + // Test that library information is found correctly. $expected = array( 'name' => 'Example files', diff --git a/tests/modules/libraries_test_module/libraries_test_module.info b/tests/modules/libraries_test_module/libraries_test_module.info index 4a850b5..60e6422 100644 --- a/tests/modules/libraries_test_module/libraries_test_module.info +++ b/tests/modules/libraries_test_module/libraries_test_module.info @@ -1,5 +1,6 @@ name = Libraries test module description = Tests library detection and loading. core = 7.x +package = Testing dependencies[] = libraries hidden = TRUE diff --git a/tests/modules/libraries_test_module/libraries_test_module.module b/tests/modules/libraries_test_module/libraries_test_module.module index c02a025..614e30e 100644 --- a/tests/modules/libraries_test_module/libraries_test_module.module +++ b/tests/modules/libraries_test_module/libraries_test_module.module @@ -9,6 +9,12 @@ * Implements hook_libraries_info(). */ function libraries_test_module_libraries_info() { + // Test library information gathering. + $libraries['example_module'] = array( + 'name' => 'Example module', + 'module_altered' => FALSE, + ); + // Test library detection. $libraries['example_missing'] = array( 'name' => 'Example missing', @@ -29,7 +35,6 @@ function libraries_test_module_libraries_info() { '2' => array(), ), ); - $libraries['example_supported_version'] = array( 'name' => 'Example supported version', 'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example', @@ -300,6 +305,13 @@ function libraries_test_module_libraries_info() { } /** + * Implements hook_libraries_info_alter(). + */ +function libraries_test_module_libraries_info_alter(&$libraries) { + $libraries['example_module']['module_altered'] = TRUE; +} + +/** * Implements hook_libraries_info_file_paths() */ function libraries_test_module_libraries_info_file_paths() { @@ -576,3 +588,12 @@ function _libraries_test_module_load($library, $variant = NULL) { return $output; } + +/** + * Implements hook_system_theme_info(). + */ +function libraries_test_module_system_theme_info() { + $themes = array(); + $themes['libraries_test_theme'] = drupal_get_path('module', 'libraries') . '/tests/themes/libraries_test_theme/libraries_test_theme.info'; + return $themes; +} diff --git a/tests/themes/libraries_test_theme/libraries_test_theme.info b/tests/themes/libraries_test_theme/libraries_test_theme.info new file mode 100644 index 0000000..32cee7a --- /dev/null +++ b/tests/themes/libraries_test_theme/libraries_test_theme.info @@ -0,0 +1,4 @@ +name = Libraries test theme +description = Tests that themes can provide and alter library information. +core = 7.x +hidden = TRUE diff --git a/tests/themes/libraries_test_theme/template.php b/tests/themes/libraries_test_theme/template.php new file mode 100644 index 0000000..1f3b4cf --- /dev/null +++ b/tests/themes/libraries_test_theme/template.php @@ -0,0 +1,24 @@ + 'Example theme', + 'theme_altered' => FALSE, + ); + return $libraries; +} + +/** + * Implements hook_libraries_info_alter(). + */ +function libraries_test_theme_libraries_info_alter(&$libraries) { + $libraries['example_theme']['theme_altered'] = TRUE; +}