non security modules update
This commit is contained in:
@@ -1,4 +1,22 @@
|
||||
|
||||
Libraries 7.x-2.2, 2014-02-09
|
||||
-----------------------------
|
||||
#2046919 by tstoeckler: Clarify 'version' docs.
|
||||
#1946110 by munroe_richard: Allow uppercase letters as library machine names.
|
||||
#1953260 by tstoeckler: Improve documentation of libraries_get_version().
|
||||
#1855918 by tstoeckler: Make integration file loading backwards-compatible.
|
||||
#1876124 by tstoeckler: Fix integration files for themes.
|
||||
#1876124 by tstoeckler: Add tests for theme-provided library information.
|
||||
#1876124 by tstoeckler: Prepare for adding a test theme.
|
||||
#1876124 by tstoeckler | whastings, fubhy: Fix hook_libraries_info() for themes.
|
||||
#2015721 by tstoeckler, CaptainHook: Protect against files overriding local variables.
|
||||
#2046919 by tstoeckler: Improve documentation around 'version callback'.
|
||||
#1844272 by tstoeckler, jweowu: Fix typos in libraries.api.php.
|
||||
#1938638 by tstoeckler: Prevent weird PHP notice on update.
|
||||
#1329388 by RobLoach, tstoeckler: Clear static caches in libraries_flush_caches().
|
||||
#1855918 by rbayliss: Load integration files after library files.
|
||||
#1938638 by Pol: Fix typo in libraries.api.php.
|
||||
|
||||
Libraries 7.x-2.1, 2013-03-09
|
||||
-----------------------------
|
||||
#1937446 by Pol, tstoeckler: Add a 'pre-dependencies-load' callback group.
|
||||
@@ -13,7 +31,6 @@ Libraries 7.x-2.0, 2012-07-29
|
||||
#1578618 by iamEAP: Fixed Fatal cache flush failure on major version upgrades.
|
||||
#1449346 by tstoeckler, sun: Clean-up libraries.test
|
||||
|
||||
|
||||
Libraries 7.x-2.0-alpha2, 2011-12-15
|
||||
------------------------------------
|
||||
#1299076 by tstoeckler: Improve testing of JS, CSS, and PHP files.
|
||||
@@ -23,7 +40,6 @@ Libraries 7.x-2.0-alpha2, 2011-12-15
|
||||
#1321372 by Rob Loach: Provide a 'post-load' callback group.
|
||||
#1205854 by tstoeckler, sun: Test library caching.
|
||||
|
||||
|
||||
Libraries 7.x-2.0-alpha1, 2011-10-01
|
||||
------------------------------------
|
||||
#1268342 by tstoeckler: Clean up drush libraries-list command.
|
||||
@@ -65,20 +81,20 @@ by sun: Fixed testbot breaks upon .info file without .module file.
|
||||
Libraries 7.x-1.x, xxxx-xx-xx
|
||||
-----------------------------
|
||||
|
||||
|
||||
Libraries 7.x-1.0, 2010-01-27
|
||||
-----------------------------
|
||||
#743522 by sun: Ported to D7.
|
||||
|
||||
|
||||
Libraries 6.x-1.x, xxxx-xx-xx
|
||||
-----------------------------
|
||||
|
||||
Libraries 6.x-1.0, 2010-01-27
|
||||
-----------------------------
|
||||
#1028744 by tstoeckler: Code clean-up.
|
||||
#496732 by tstoeckler, robphillips: Allow placing libraries in root directory.
|
||||
|
||||
|
||||
Libraries 6.x-1.0-ALPHA1, 2009-12-30
|
||||
Libraries 6.x-1.0-alpha1, 2009-12-30
|
||||
------------------------------------
|
||||
#480440 by markus_petrux: Fixed base_path() not applied to default library path.
|
||||
#320562 by sun: Added basic functions.
|
||||
|
||||
|
@@ -30,7 +30,9 @@
|
||||
* changes of implementing modules and to support different versions of a
|
||||
* library simultaneously (though only one version can be installed per
|
||||
* site). A valid use-case is an external library whose version cannot be
|
||||
* determined programatically.
|
||||
* determined programmatically. Either 'version' or 'version callback' (or
|
||||
* 'version arguments' in case libraries_get_version() is being used as a
|
||||
* version callback) must be declared.
|
||||
* - version callback: (optional) The name of a function that detects and
|
||||
* returns the full version string of the library. The first argument is
|
||||
* always $library, an array containing all library information as described
|
||||
@@ -38,18 +40,22 @@
|
||||
* arguments, either as a single $options parameter or as multiple
|
||||
* parameters, which correspond to the two ways to specify the argument
|
||||
* values (see 'version arguments'). Defaults to libraries_get_version().
|
||||
* - version arguments: A list of arguments to pass to the version callback.
|
||||
* Version arguments can be declared either as an associative array whose
|
||||
* keys are the argument names or as an indexed array without specifying
|
||||
* keys. If declared as an associative array, the arguments get passed to
|
||||
* the version callback as a single $options parameter whose keys are the
|
||||
* argument names (i.e. $options is identical to the specified array). If
|
||||
* declared as an indexed array, the array values get passed to the version
|
||||
* callback as seperate arguments in the order they were declared. The
|
||||
* default version callback libraries_get_version() expects a single,
|
||||
* associative array with named keys:
|
||||
* - file: The filename to parse for the version, relative to the library
|
||||
* path. For example: 'docs/changelog.txt'.
|
||||
* Unless 'version' is declared or libraries_get_version() is being used as
|
||||
* a version callback, 'version callback' must be declared. In the latter
|
||||
* case, however, 'version arguments' must be declared in the specified way.
|
||||
* - version arguments: (optional) A list of arguments to pass to the version
|
||||
* callback. Version arguments can be declared either as an associative
|
||||
* array whose keys are the argument names or as an indexed array without
|
||||
* specifying keys. If declared as an associative array, the arguments get
|
||||
* passed to the version callback as a single $options parameter whose keys
|
||||
* are the argument names (i.e. $options is identical to the specified
|
||||
* array). If declared as an indexed array, the array values get passed to
|
||||
* the version callback as separate arguments in the order they were
|
||||
* declared. The default version callback libraries_get_version() expects a
|
||||
* single, associative array with named keys:
|
||||
* - file: The filename to parse for the version, relative to the path
|
||||
* speficied as the 'library path' property (see above). For example:
|
||||
* 'docs/changelog.txt'.
|
||||
* - pattern: A string containing a regular expression (PCRE) to match the
|
||||
* library version. For example: '@version\s+([0-9a-zA-Z\.-]+)@'. Note
|
||||
* that the returned version is not the match of the entire pattern (i.e.
|
||||
@@ -60,6 +66,10 @@
|
||||
* - cols: (optional) The maximum number of characters per line to take into
|
||||
* account. Defaults to 200. In case of minified or compressed files, this
|
||||
* prevents reading the entire file into memory.
|
||||
* Defaults to an empty array. 'version arguments' must be specified unless
|
||||
* 'version' is declared or the specified 'version callback' does not
|
||||
* require any arguments. The latter might be the case with a
|
||||
* library-specific version callback, for example.
|
||||
* - files: An associative array of library files to load. Supported keys are:
|
||||
* - js: A list of JavaScript files to load, using the same syntax as Drupal
|
||||
* core's hook_library().
|
||||
@@ -100,10 +110,10 @@
|
||||
* available or not. The first argument is always $library, an array
|
||||
* containing all library information as described here. The second
|
||||
* argument is always a string containing the variant name. There are two
|
||||
* ways to declare the variant callback's additinal arguments, either as a
|
||||
* ways to declare the variant callback's additional arguments, either as a
|
||||
* single $options parameter or as multiple parameters, which correspond
|
||||
* to the two ways to specify the argument values (see 'variant
|
||||
* arguments'). If ommitted, the variant is expected to always be
|
||||
* arguments'). If omitted, the variant is expected to always be
|
||||
* available.
|
||||
* - variant arguments: A list of arguments to pass to the variant callback.
|
||||
* Variant arguments can be declared either as an associative array whose
|
||||
@@ -112,7 +122,7 @@
|
||||
* the variant callback as a single $options parameter whose keys are the
|
||||
* argument names (i.e. $options is identical to the specified array). If
|
||||
* declared as an indexed array, the array values get passed to the
|
||||
* variant callback as seperate arguments in the order they were declared.
|
||||
* variant callback as separate arguments in the order they were declared.
|
||||
* Variants can be version-specific (see 'versions').
|
||||
* - versions: (optional) An associative array of supported library versions.
|
||||
* Naturally, libraries evolve over time and so do their APIs. In case a
|
||||
@@ -146,9 +156,23 @@
|
||||
* Valid callback groups are:
|
||||
* - info: Callbacks registered in this group are applied after the library
|
||||
* information has been retrieved via hook_libraries_info() or info files.
|
||||
* At this point the following additional information is available:
|
||||
* - $library['info type']: How the library information was obtained. Can
|
||||
* be 'info file', 'module', or 'theme', depending on whether the
|
||||
* library information was obtained from an info file, an enabled module
|
||||
* or an enabled theme, respectively.
|
||||
* Additionally, one of the following three keys is available, depending
|
||||
* on the value of $library['info type'].
|
||||
* - $library['info file']: In case the library information was obtained
|
||||
* from an info file, the URI of the info file.
|
||||
* - $library['module']: In case the library was obtained from an enabled
|
||||
* module, the name of the providing module.
|
||||
* - $library['theme']: In case the library was obtained from an enabled
|
||||
* theme, the name of the providing theme.
|
||||
* - pre-detect: Callbacks registered in this group are applied after the
|
||||
* library path has been determined and before the version callback is
|
||||
* invoked. At this point the following additional information is available:
|
||||
* invoked. At this point the following additional information is
|
||||
* available:
|
||||
* - $library['library path']: The path on the file system to the library.
|
||||
* - post-detect: Callbacks registered in this group are applied after the
|
||||
* library has been successfully detected. At this point the library
|
||||
@@ -299,7 +323,7 @@ function hook_libraries_info() {
|
||||
'mymodule_example_libraries_postdetect_callback',
|
||||
),
|
||||
// Called before the library's dependencies are loaded.
|
||||
'pre-dependencie-load' => array(
|
||||
'pre-dependencies-load' => array(
|
||||
'mymodule_example_libraries_pre_dependencies_load_callback',
|
||||
),
|
||||
// Called before the library is loaded.
|
||||
|
@@ -1,11 +1,13 @@
|
||||
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
|
||||
|
||||
; Information added by drupal.org packaging script on 2013-03-09
|
||||
version = "7.x-2.1"
|
||||
; Information added by Drupal.org packaging script on 2014-02-09
|
||||
version = "7.x-2.2"
|
||||
core = "7.x"
|
||||
project = "libraries"
|
||||
datestamp = "1362848412"
|
||||
datestamp = "1391965716"
|
||||
|
||||
|
@@ -9,6 +9,14 @@
|
||||
* Implements hook_flush_caches().
|
||||
*/
|
||||
function libraries_flush_caches() {
|
||||
// Clear static caches.
|
||||
// We don't clear the 'libraries_load' static cache, because that could result
|
||||
// in libraries that had been loaded before the cache flushing to be loaded
|
||||
// again afterwards.
|
||||
foreach (array('libraries_get_path', 'libraries_info') as $name) {
|
||||
drupal_static_reset($name);
|
||||
}
|
||||
|
||||
// @todo When upgrading from 1.x, update.php attempts to flush caches before
|
||||
// the cache table has been created.
|
||||
// @see http://drupal.org/node/1477932
|
||||
@@ -133,7 +141,7 @@ function libraries_scan_info_files() {
|
||||
$files = array();
|
||||
foreach ($directories as $dir) {
|
||||
if (file_exists($dir)) {
|
||||
$files = array_merge($files, file_scan_directory($dir, '@^[a-z0-9._-]+\.libraries\.info$@', array(
|
||||
$files = array_merge($files, file_scan_directory($dir, '@^[A-Za-z0-9._-]+\.libraries\.info$@', array(
|
||||
'key' => 'name',
|
||||
'recurse' => FALSE,
|
||||
)));
|
||||
@@ -158,6 +166,13 @@ function libraries_scan_info_files() {
|
||||
* An array of library information, passed by reference.
|
||||
*/
|
||||
function libraries_invoke($group, &$library) {
|
||||
// When introducing new callback groups in newer versions, stale cached
|
||||
// library information somehow reaches this point during the database update
|
||||
// before clearing the library cache.
|
||||
if (empty($library['callbacks'][$group])) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($library['callbacks'][$group] as $callback) {
|
||||
libraries_traverse_library($library, $callback);
|
||||
}
|
||||
@@ -333,27 +348,31 @@ function &libraries_info($name = NULL) {
|
||||
|
||||
if (!isset($libraries)) {
|
||||
$libraries = array();
|
||||
// Gather information from hook_libraries_info().
|
||||
|
||||
// Gather information from hook_libraries_info() in enabled modules.
|
||||
foreach (module_implements('libraries_info') as $module) {
|
||||
foreach (module_invoke($module, 'libraries_info') as $machine_name => $properties) {
|
||||
$properties['info type'] = 'module';
|
||||
$properties['module'] = $module;
|
||||
$libraries[$machine_name] = $properties;
|
||||
}
|
||||
}
|
||||
|
||||
// Gather information from hook_libraries_info() in enabled themes.
|
||||
// @see drupal_alter()
|
||||
global $theme, $base_theme_info;
|
||||
if (isset($theme)) {
|
||||
$theme_keys = array();
|
||||
foreach ($base_theme_info as $base) {
|
||||
$theme_keys[] = $base->name;
|
||||
}
|
||||
$theme_keys[] = $theme;
|
||||
foreach ($theme_keys as $theme_key) {
|
||||
$function = $theme_key . '_' . 'libraries_info';
|
||||
$themes = array();
|
||||
foreach (list_themes() as $theme_name => $theme_info) {
|
||||
if ($theme_info->status && file_exists(drupal_get_path('theme', $theme_name) . '/template.php')) {
|
||||
// Collect a list of viable themes for re-use when calling the alter
|
||||
// hook.
|
||||
$themes[] = $theme_name;
|
||||
|
||||
include_once drupal_get_path('theme', $theme_name) . '/template.php';
|
||||
|
||||
$function = $theme_name . '_libraries_info';
|
||||
if (function_exists($function)) {
|
||||
foreach ($function() as $machine_name => $properties) {
|
||||
$properties['theme'] = $theme_key;
|
||||
$properties['info type'] = 'theme';
|
||||
$properties['theme'] = $theme_name;
|
||||
$libraries[$machine_name] = $properties;
|
||||
}
|
||||
}
|
||||
@@ -364,6 +383,7 @@ function &libraries_info($name = NULL) {
|
||||
// .info files override module definitions.
|
||||
foreach (libraries_scan_info_files() as $machine_name => $file) {
|
||||
$properties = drupal_parse_info_file($file->uri);
|
||||
$properties['info type'] = 'info file';
|
||||
$properties['info file'] = $file->uri;
|
||||
$libraries[$machine_name] = $properties;
|
||||
}
|
||||
@@ -373,8 +393,20 @@ function &libraries_info($name = NULL) {
|
||||
libraries_info_defaults($properties, $machine_name);
|
||||
}
|
||||
|
||||
// Allow modules to alter the registered libraries.
|
||||
drupal_alter('libraries_info', $libraries);
|
||||
// Allow enabled modules and themes to alter the registered libraries.
|
||||
// drupal_alter() only takes the currently active theme into account, not
|
||||
// all enabled themes.
|
||||
foreach (module_implements('libraries_info_alter') as $module) {
|
||||
$function = $module . '_libraries_info_alter';
|
||||
$function($libraries);
|
||||
}
|
||||
foreach ($themes as $theme) {
|
||||
$function = $theme . '_libraries_info_alter';
|
||||
// The template.php file was included above.
|
||||
if (function_exists($function)) {
|
||||
$function($libraries);
|
||||
}
|
||||
}
|
||||
|
||||
// Invoke callbacks in the 'info' group.
|
||||
foreach ($libraries as &$properties) {
|
||||
@@ -418,6 +450,8 @@ function libraries_info_defaults(&$library, $name) {
|
||||
'versions' => array(),
|
||||
'integration files' => array(),
|
||||
'callbacks' => array(),
|
||||
// @todo Remove in 7.x-3.x
|
||||
'post-load integration files' => FALSE,
|
||||
);
|
||||
$library['callbacks'] += array(
|
||||
'info' => array(),
|
||||
@@ -461,9 +495,11 @@ function libraries_detect($name) {
|
||||
// Re-use the statically cached value of libraries_info() to save memory.
|
||||
$library = &libraries_info($name);
|
||||
|
||||
// Exit early if the library was not found.
|
||||
if ($library === FALSE) {
|
||||
return $library;
|
||||
}
|
||||
|
||||
// If 'installed' is set, library detection ran already.
|
||||
if (isset($library['installed'])) {
|
||||
return $library;
|
||||
@@ -600,6 +636,12 @@ function libraries_load($name, $variant = NULL) {
|
||||
cache_set($name, $library, 'cache_libraries');
|
||||
}
|
||||
|
||||
// Exit early if the library was not found.
|
||||
if ($library === FALSE) {
|
||||
$loaded[$name] = $library;
|
||||
return $loaded[$name];
|
||||
}
|
||||
|
||||
// If a variant was specified, override the top-level properties with the
|
||||
// variant properties.
|
||||
if (isset($variant)) {
|
||||
@@ -652,13 +694,30 @@ function libraries_load($name, $variant = NULL) {
|
||||
*/
|
||||
function libraries_load_files($library) {
|
||||
// Load integration files.
|
||||
if (!empty($library['integration files'])) {
|
||||
foreach ($library['integration files'] as $module => $files) {
|
||||
libraries_load_files(array(
|
||||
'files' => $files,
|
||||
'path' => '',
|
||||
'library path' => drupal_get_path('module', $module),
|
||||
));
|
||||
if (!$library['post-load integration files'] && !empty($library['integration files'])) {
|
||||
$enabled_themes = array();
|
||||
foreach (list_themes() as $theme_name => $theme) {
|
||||
if ($theme->status) {
|
||||
$enabled_themes[] = $theme_name;
|
||||
}
|
||||
}
|
||||
foreach ($library['integration files'] as $provider => $files) {
|
||||
if (module_exists($provider)) {
|
||||
libraries_load_files(array(
|
||||
'files' => $files,
|
||||
'path' => '',
|
||||
'library path' => drupal_get_path('module', $provider),
|
||||
'post-load integration files' => FALSE,
|
||||
));
|
||||
}
|
||||
elseif (in_array($provider, $enabled_themes)) {
|
||||
libraries_load_files(array(
|
||||
'files' => $files,
|
||||
'path' => '',
|
||||
'library path' => drupal_get_path('theme', $provider),
|
||||
'post-load integration files' => FALSE,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -706,15 +765,60 @@ function libraries_load_files($library) {
|
||||
foreach ($library['files']['php'] as $file => $array) {
|
||||
$file_path = DRUPAL_ROOT . '/' . $path . '/' . $file;
|
||||
if (file_exists($file_path)) {
|
||||
require_once $file_path;
|
||||
_libraries_require_once($file_path);
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load integration files.
|
||||
if ($library['post-load integration files'] && !empty($library['integration files'])) {
|
||||
$enabled_themes = array();
|
||||
foreach (list_themes() as $theme_name => $theme) {
|
||||
if ($theme->status) {
|
||||
$enabled_themes[] = $theme_name;
|
||||
}
|
||||
}
|
||||
foreach ($library['integration files'] as $provider => $files) {
|
||||
if (module_exists($provider)) {
|
||||
libraries_load_files(array(
|
||||
'files' => $files,
|
||||
'path' => '',
|
||||
'library path' => drupal_get_path('module', $provider),
|
||||
'post-load integration files' => FALSE,
|
||||
));
|
||||
}
|
||||
elseif (in_array($provider, $enabled_themes)) {
|
||||
libraries_load_files(array(
|
||||
'files' => $files,
|
||||
'path' => '',
|
||||
'library path' => drupal_get_path('theme', $provider),
|
||||
'post-load integration files' => FALSE,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper function for require_once.
|
||||
*
|
||||
* A library file could set a $path variable in file scope. Requiring such a
|
||||
* file directly in libraries_load_files() would lead to the local $path
|
||||
* variable being overridden after the require_once statement. This would
|
||||
* break loading further files. Therefore we use this trivial wrapper which has
|
||||
* no local state that can be tampered with.
|
||||
*
|
||||
* @param $file_path
|
||||
* The file path of the file to require.
|
||||
*/
|
||||
function _libraries_require_once($file_path) {
|
||||
require_once $file_path;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the version information from an arbitrary library.
|
||||
*
|
||||
|
@@ -1,11 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-css' div red. See README.txt for more information.
|
||||
*/
|
||||
|
||||
.libraries-test-css {
|
||||
color: red;
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-css' div green. See README.txt for more information.
|
||||
*/
|
||||
|
||||
.libraries-test-css {
|
||||
color: green;
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-css' div orange. See README.txt for more information.
|
||||
*/
|
||||
|
||||
.libraries-test-css {
|
||||
color: orange;
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-css' div blue. See README.txt for more information.
|
||||
*/
|
||||
|
||||
.libraries-test-css {
|
||||
color: blue;
|
||||
}
|
@@ -72,7 +72,8 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('libraries', 'libraries_test');
|
||||
parent::setUp('libraries', 'libraries_test_module');
|
||||
theme_enable(array('libraries_test_theme'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,6 +132,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
// FALSE for missing or incompatible dependencies.
|
||||
$library['installed'] = TRUE;
|
||||
libraries_detect_dependencies($library);
|
||||
$this->verbose('Library:<pre>' . var_export($library, TRUE) . '</pre>');
|
||||
$this->assertTrue($library['installed'], "libraries_detect_dependencies() detects compatible version string: '$version_string' is compatible with '$version'");
|
||||
}
|
||||
foreach ($incompatible as $version_string) {
|
||||
@@ -138,6 +140,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
$library['installed'] = TRUE;
|
||||
unset($library['error'], $library['error message']);
|
||||
libraries_detect_dependencies($library);
|
||||
$this->verbose('Library:<pre>' . var_export($library, TRUE) . '</pre>');
|
||||
$this->assertEqual($library['error'], 'incompatible dependency', "libraries_detect_dependencies() detects incompatible version strings: '$version_string' is incompatible with '$version'");
|
||||
}
|
||||
// Instead of repeating this assertion for each version string, we just
|
||||
@@ -157,7 +160,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
*/
|
||||
function testLibrariesScanInfoFiles() {
|
||||
$expected = array('example_info_file' => (object) array(
|
||||
'uri' => drupal_get_path('module', 'libraries') . '/tests/example/example_info_file.libraries.info',
|
||||
'uri' => drupal_get_path('module', 'libraries') . '/tests/libraries/example_info_file.libraries.info',
|
||||
'filename' => 'example_info_file.libraries.info',
|
||||
'name' => 'example_info_file.libraries',
|
||||
));
|
||||
@@ -169,17 +172,33 @@ 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:<pre>' . var_export($info['example_module'], TRUE) . '</pre>');
|
||||
$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:<pre>' . var_export($info['example_theme'], TRUE) . '</pre>');
|
||||
$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',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'files' => array(
|
||||
'js' => array('example_1.js' => array()),
|
||||
'css' => array('example_1.css' => array()),
|
||||
'php' => array('example_1.php' => array()),
|
||||
),
|
||||
'module' => 'libraries_test',
|
||||
'info type' => 'module',
|
||||
'module' => 'libraries_test_module',
|
||||
);
|
||||
libraries_info_defaults($expected, 'example_files');
|
||||
$library = libraries_info('example_files');
|
||||
@@ -190,7 +209,8 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
// Test a library specified with an .info file gets detected.
|
||||
$expected = array(
|
||||
'name' => 'Example info file',
|
||||
'info file' => drupal_get_path('module', 'libraries_test') . '/example/example_info_file.libraries.info',
|
||||
'info type' => 'info file',
|
||||
'info file' => drupal_get_path('module', 'libraries') . '/tests/libraries/example_info_file.libraries.info',
|
||||
);
|
||||
libraries_info_defaults($expected, 'example_info_file');
|
||||
$library = libraries_info('example_info_file');
|
||||
@@ -303,6 +323,12 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
$loaded = &drupal_static('libraries_load');
|
||||
$this->verbose('<pre>' . var_export($loaded, TRUE) . '</pre>');
|
||||
$this->assertEqual($loaded['example_dependency']['loaded'], 1, 'Dependency library is also loaded');
|
||||
|
||||
// Test that PHP files that have a local $path variable do not break library
|
||||
// loading.
|
||||
// @see _libraries_require_once()
|
||||
$library = libraries_load('example_path_variable_override');
|
||||
$this->assertEqual($library['loaded'], 2, 'PHP files cannot break library loading.');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -311,7 +337,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
function testCallbacks() {
|
||||
$expected = array(
|
||||
'name' => 'Example callback',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'versions' => array(
|
||||
'1' => array(
|
||||
@@ -344,12 +370,12 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
),
|
||||
),
|
||||
'callbacks' => array(
|
||||
'info' => array('_libraries_test_info_callback'),
|
||||
'pre-detect' => array('_libraries_test_pre_detect_callback'),
|
||||
'post-detect' => array('_libraries_test_post_detect_callback'),
|
||||
'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'),
|
||||
'pre-load' => array('_libraries_test_pre_load_callback'),
|
||||
'post-load' => array('_libraries_test_post_load_callback'),
|
||||
'info' => array('_libraries_test_module_info_callback'),
|
||||
'pre-detect' => array('_libraries_test_module_pre_detect_callback'),
|
||||
'post-detect' => array('_libraries_test_module_post_detect_callback'),
|
||||
'pre-dependencies-load' => array('_libraries_test_module_pre_dependencies_load_callback'),
|
||||
'pre-load' => array('_libraries_test_module_pre_load_callback'),
|
||||
'post-load' => array('_libraries_test_module_post_load_callback'),
|
||||
),
|
||||
'info callback' => 'not applied',
|
||||
'pre-detect callback' => 'not applied',
|
||||
@@ -357,7 +383,8 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
'pre-dependencies-load callback' => 'not applied',
|
||||
'pre-load callback' => 'not applied',
|
||||
'post-load callback' => 'not applied',
|
||||
'module' => 'libraries_test',
|
||||
'info type' => 'module',
|
||||
'module' => 'libraries_test_module',
|
||||
);
|
||||
libraries_info_defaults($expected, 'example_callback');
|
||||
|
||||
@@ -424,37 +451,46 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
* We check for JavaScript and CSS files directly in the DOM and add a list of
|
||||
* included PHP files manually to the page output.
|
||||
*
|
||||
* @see _libraries_test_load()
|
||||
* @see _libraries_test_module_load()
|
||||
*/
|
||||
function testLibrariesOutput() {
|
||||
// Test loading of a simple library with a top-level files property.
|
||||
$this->drupalGet('libraries_test/files');
|
||||
$this->drupalGet('libraries-test-module/files');
|
||||
$this->assertLibraryFiles('example_1', 'File loading');
|
||||
|
||||
// Test loading of integration files.
|
||||
$this->drupalGet('libraries_test/integration_files');
|
||||
$this->assertRaw('libraries_test.js', 'Integration file loading: libraries_test.js found');
|
||||
$this->assertRaw('libraries_test.css', 'Integration file loading: libraries_test.css found');
|
||||
$this->assertRaw('libraries_test.inc', 'Integration file loading: libraries_test.inc found');
|
||||
$this->drupalGet('libraries-test-module/module-integration-files');
|
||||
$this->assertRaw('libraries_test_module.js', 'Integration file loading: libraries_test_module.js found');
|
||||
$this->assertRaw('libraries_test_module.css', 'Integration file loading: libraries_test_module.css found');
|
||||
$this->assertRaw('libraries_test_module.inc', 'Integration file loading: libraries_test_module.inc found');
|
||||
$this->drupalGet('libraries-test-module/theme-integration-files');
|
||||
$this->assertRaw('libraries_test_theme.js', 'Integration file loading: libraries_test_theme.js found');
|
||||
$this->assertRaw('libraries_test_theme.css', 'Integration file loading: libraries_test_theme.css found');
|
||||
$this->assertRaw('libraries_test_theme.inc', 'Integration file loading: libraries_test_theme.inc found');
|
||||
|
||||
// Test loading of post-load integration files.
|
||||
$this->drupalGet('libraries-test-module/module-integration-files-post-load');
|
||||
// If the files were not loaded correctly, a fatal error occurs.
|
||||
$this->assertResponse(200, 'Post-load integration files are loaded correctly.');
|
||||
|
||||
// Test version overloading.
|
||||
$this->drupalGet('libraries_test/versions');
|
||||
$this->drupalGet('libraries-test-module/versions');
|
||||
$this->assertLibraryFiles('example_2', 'Version overloading');
|
||||
|
||||
// Test variant loading.
|
||||
$this->drupalGet('libraries_test/variant');
|
||||
$this->drupalGet('libraries-test-module/variant');
|
||||
$this->assertLibraryFiles('example_3', 'Variant loading');
|
||||
|
||||
// Test version overloading and variant loading.
|
||||
$this->drupalGet('libraries_test/versions_and_variants');
|
||||
$this->drupalGet('libraries-test-module/versions-and-variants');
|
||||
$this->assertLibraryFiles('example_4', 'Concurrent version and variant overloading');
|
||||
|
||||
// Test caching.
|
||||
variable_set('libraries_test_cache', TRUE);
|
||||
variable_set('libraries_test_module_cache', TRUE);
|
||||
cache_clear_all('example_callback', 'cache_libraries');
|
||||
// When the library information is not cached, all callback groups should be
|
||||
// invoked.
|
||||
$this->drupalGet('libraries_test/cache');
|
||||
$this->drupalGet('libraries-test-module/cache');
|
||||
$this->assertRaw('The <em>info</em> callback group was invoked.', 'Info callback invoked for uncached libraries.');
|
||||
$this->assertRaw('The <em>pre-detect</em> callback group was invoked.', 'Pre-detect callback invoked for uncached libraries.');
|
||||
$this->assertRaw('The <em>post-detect</em> callback group was invoked.', 'Post-detect callback invoked for uncached libraries.');
|
||||
@@ -462,13 +498,13 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
$this->assertRaw('The <em>post-load</em> callback group was invoked.', 'Post-load callback invoked for uncached libraries.');
|
||||
// When the library information is cached only the 'pre-load' and
|
||||
// 'post-load' callback groups should be invoked.
|
||||
$this->drupalGet('libraries_test/cache');
|
||||
$this->drupalGet('libraries-test-module/cache');
|
||||
$this->assertNoRaw('The <em>info</em> callback group was not invoked.', 'Info callback not invoked for cached libraries.');
|
||||
$this->assertNoRaw('The <em>pre-detect</em> callback group was not invoked.', 'Pre-detect callback not invoked for cached libraries.');
|
||||
$this->assertNoRaw('The <em>post-detect</em> callback group was not invoked.', 'Post-detect callback not invoked for cached libraries.');
|
||||
$this->assertRaw('The <em>pre-load</em> callback group was invoked.', 'Pre-load callback invoked for cached libraries.');
|
||||
$this->assertRaw('The <em>post-load</em> callback group was invoked.', 'Post-load callback invoked for cached libraries.');
|
||||
variable_set('libraries_test_cache', FALSE);
|
||||
variable_set('libraries_test_module_cache', FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -516,7 +552,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
|
||||
|
||||
foreach ($names as $name => $expected) {
|
||||
foreach ($extensions as $extension) {
|
||||
$filepath = drupal_get_path('module', 'libraries_test') . "/example/$name.$extension";
|
||||
$filepath = drupal_get_path('module', 'libraries') . "/tests/libraries/example/$name.$extension";
|
||||
// JavaScript and CSS files appear as full URLs and with an appended
|
||||
// query string.
|
||||
if (in_array($extension, array('js', 'css'))) {
|
||||
|
@@ -14,11 +14,11 @@ CSS and PHP files.
|
||||
place the following text on the page:
|
||||
"If this text shows up, no JavaScript test file was loaded."
|
||||
This text is replaced via JavaScript by a text of the form:
|
||||
"If this text shows up, [[file] was loaded successfully."
|
||||
"If this text shows up, [file] was loaded successfully."
|
||||
[file] is either 'example_1.js', 'example_2.js', 'example_3.js',
|
||||
'example_4.js' or 'libraries_test.js'. If you have SimpleTest's verbose mode
|
||||
enabled and see the above text in one of the debug pages, the noted JavaScript
|
||||
file was loaded successfully.
|
||||
'example_4.js' or 'libraries_test_module.js'. If you have SimpleTest's verbose
|
||||
mode enabled and see the above text in one of the debug pages, the noted
|
||||
JavaScript file was loaded successfully.
|
||||
- CSS: The filenames of the CSS files are asserted to be in the raw HTML via
|
||||
SimpleTest. Since the filename could appear, for instance, in an error
|
||||
message, this is not very robust. Explicit testing of CSS, though, is not yet
|
||||
@@ -29,7 +29,7 @@ CSS and PHP files.
|
||||
- example_2: green
|
||||
- example_3: orange
|
||||
- example_4: blue
|
||||
- libraries_test: purple"
|
||||
- libraries_test_module: purple"
|
||||
If you have SimpleTest's verbose mode enabled, and see the above text in a
|
||||
certain color (i.e. not in black), a CSS file was loaded successfully. Which
|
||||
file depends on the color as referenced in the text above.
|
||||
@@ -37,6 +37,7 @@ CSS and PHP files.
|
||||
PHP files and then checking whether this function was defined using
|
||||
function_exists(). This can be checked programatically with SimpleTest.
|
||||
The loading of integration files is tested with the same method. The integration
|
||||
files are libraries_test.js, libraries_test.css, libraries_test.inc and are
|
||||
located in the tests directory alongside libraries_test.module (i.e. they are
|
||||
not in the same directory as this file).
|
||||
files are libraries_test_module.js, libraries_test_module.css,
|
||||
libraries_test_module.inc and are located in the test module's directory
|
||||
alongside libraries_test_module.info (i.e. they are not in the same directory as
|
||||
this file).
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div red. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: red;
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-javascript' div. See README.txt for
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-javascript').text('If this text shows up, example_1.js was loaded successfully.')
|
||||
$('.libraries-test-module-js').text('If this text shows up, example_1.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
*/
|
||||
|
||||
// @see _libraries_require_once()
|
||||
$path = 'abc';
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_module_example_1() {
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div green. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: green;
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-javascript' div. See README.txt for
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-javascript').text('If this text shows up, example_2.js was loaded successfully.')
|
||||
$('.libraries-test-module-js').text('If this text shows up, example_2.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
*/
|
||||
|
||||
// @see _libraries_require_once()
|
||||
$path = 'abc';
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_module_example_2() {
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div orange. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: orange;
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-javascript' div. See README.txt for
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-javascript').text('If this text shows up, example_3.js was loaded successfully.')
|
||||
$('.libraries-test-module-js').text('If this text shows up, example_3.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
@@ -8,5 +8,5 @@
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_example_3() {
|
||||
function _libraries_test_module_example_3() {
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div blue. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: blue;
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-javascript' div. See README.txt for
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-javascript').text('If this text shows up, example_4.js was loaded successfully.')
|
||||
$('.libraries-test-module-js').text('If this text shows up, example_4.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
@@ -8,5 +8,5 @@
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_example_4() {
|
||||
function _libraries_test_module_example_4() {
|
||||
}
|
@@ -1,11 +1,10 @@
|
||||
|
||||
; This is an example info file of a library used for testing purposes.
|
||||
name = Example info file
|
||||
|
||||
|
||||
; Information added by drupal.org packaging script on 2013-03-09
|
||||
version = "7.x-2.1"
|
||||
; Information added by Drupal.org packaging script on 2014-02-09
|
||||
version = "7.x-2.2"
|
||||
core = "7.x"
|
||||
project = "libraries"
|
||||
datestamp = "1362848412"
|
||||
datestamp = "1391965716"
|
||||
|
@@ -1,12 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-css' div purple. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-css {
|
||||
color: purple;
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_integration_file() {
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-javascript' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-javascript').text('If this text shows up, libraries_test.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div purple. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: purple;
|
||||
}
|
@@ -3,10 +3,9 @@
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_example_1() {
|
||||
function _libraries_test_module_integration_file() {
|
||||
}
|
@@ -1,12 +1,13 @@
|
||||
name = Libraries test module
|
||||
description = Tests library detection and loading.
|
||||
core = 7.x
|
||||
package = Testing
|
||||
dependencies[] = libraries
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by drupal.org packaging script on 2013-03-09
|
||||
version = "7.x-2.1"
|
||||
; Information added by Drupal.org packaging script on 2014-02-09
|
||||
version = "7.x-2.2"
|
||||
core = "7.x"
|
||||
project = "libraries"
|
||||
datestamp = "1362848412"
|
||||
datestamp = "1391965716"
|
||||
|
@@ -0,0 +1,18 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-module-js').text('If this text shows up, libraries_test_module.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
@@ -8,32 +8,37 @@
|
||||
/**
|
||||
* Implements hook_libraries_info().
|
||||
*/
|
||||
function libraries_test_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',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/missing',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/missing',
|
||||
);
|
||||
$libraries['example_undetected_version'] = array(
|
||||
'name' => 'Example undetected version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests',
|
||||
'version callback' => '_libraries_test_return_version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version callback' => '_libraries_test_module_return_version',
|
||||
'version arguments' => array(FALSE),
|
||||
);
|
||||
$libraries['example_unsupported_version'] = array(
|
||||
'name' => 'Example unsupported version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests',
|
||||
'version callback' => '_libraries_test_return_version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version callback' => '_libraries_test_module_return_version',
|
||||
'version arguments' => array('1'),
|
||||
'versions' => array(
|
||||
'2' => array(),
|
||||
),
|
||||
);
|
||||
|
||||
$libraries['example_supported_version'] = array(
|
||||
'name' => 'Example supported version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests',
|
||||
'version callback' => '_libraries_test_return_version',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version callback' => '_libraries_test_module_return_version',
|
||||
'version arguments' => array('1'),
|
||||
'versions' => array(
|
||||
'1' => array(),
|
||||
@@ -43,7 +48,7 @@ function libraries_test_libraries_info() {
|
||||
// Test the default version callback.
|
||||
$libraries['example_default_version_callback'] = array(
|
||||
'name' => 'Example default version callback',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version arguments' => array(
|
||||
'file' => 'README.txt',
|
||||
// Version 1
|
||||
@@ -55,16 +60,16 @@ function libraries_test_libraries_info() {
|
||||
// Test a multiple-parameter version callback.
|
||||
$libraries['example_multiple_parameter_version_callback'] = array(
|
||||
'name' => 'Example multiple parameter version callback',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
// Version 1
|
||||
'version callback' => '_libraries_test_get_version',
|
||||
'version callback' => '_libraries_test_module_get_version',
|
||||
'version arguments' => array('README.txt', '/Version (\d+)/', 5),
|
||||
);
|
||||
|
||||
// Test a top-level files property.
|
||||
$libraries['example_files'] = array(
|
||||
'name' => 'Example files',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'files' => array(
|
||||
'js' => array('example_1.js'),
|
||||
@@ -76,23 +81,41 @@ function libraries_test_libraries_info() {
|
||||
// Test loading of integration files.
|
||||
// Normally added by the corresponding module via hook_libraries_info_alter(),
|
||||
// these files should be automatically loaded when the library is loaded.
|
||||
$libraries['example_integration_files'] = array(
|
||||
'name' => 'Example integration files',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
$libraries['example_module_integration_files'] = array(
|
||||
'name' => 'Example module integration files',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'integration files' => array(
|
||||
'libraries_test' => array(
|
||||
'js' => array('libraries_test.js'),
|
||||
'css' => array('libraries_test.css'),
|
||||
'php' => array('libraries_test.inc'),
|
||||
'libraries_test_module' => array(
|
||||
'js' => array('libraries_test_module.js'),
|
||||
'css' => array('libraries_test_module.css'),
|
||||
'php' => array('libraries_test_module.inc'),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
// Test loading of integration files after library files.
|
||||
// We test the correct loading order by calling a function that is defined in
|
||||
// example_1.php in libraries_test_module_post_load.inc.
|
||||
$libraries['example_module_integration_files_post_load'] = array(
|
||||
'name' => 'Example module post-load integration files',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'files' => array(
|
||||
'php' => array('example_1.php'),
|
||||
),
|
||||
'integration files' => array(
|
||||
'libraries_test_module' => array(
|
||||
'php' => array('libraries_test_module_post_load.inc'),
|
||||
),
|
||||
),
|
||||
'post-load integration files' => TRUE,
|
||||
);
|
||||
|
||||
// Test version overloading.
|
||||
$libraries['example_versions'] = array(
|
||||
'name' => 'Example versions',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '2',
|
||||
'versions' => array(
|
||||
'1' => array(
|
||||
@@ -115,7 +138,7 @@ function libraries_test_libraries_info() {
|
||||
// Test variant detection.
|
||||
$libraries['example_variant_missing'] = array(
|
||||
'name' => 'Example variant missing',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'variants' => array(
|
||||
'example_variant' => array(
|
||||
@@ -124,7 +147,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_3.css'),
|
||||
'php' => array('example_3.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(FALSE),
|
||||
),
|
||||
),
|
||||
@@ -132,7 +155,7 @@ function libraries_test_libraries_info() {
|
||||
|
||||
$libraries['example_variant'] = array(
|
||||
'name' => 'Example variant',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'variants' => array(
|
||||
'example_variant' => array(
|
||||
@@ -141,7 +164,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_3.css'),
|
||||
'php' => array('example_3.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(TRUE),
|
||||
),
|
||||
),
|
||||
@@ -150,7 +173,7 @@ function libraries_test_libraries_info() {
|
||||
// Test correct behaviour with multiple versions and multiple variants.
|
||||
$libraries['example_versions_and_variants'] = array(
|
||||
'name' => 'Example versions and variants',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '2',
|
||||
'versions' => array(
|
||||
'1' => array(
|
||||
@@ -161,7 +184,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_1.css'),
|
||||
'php' => array('example_1.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(TRUE),
|
||||
),
|
||||
'example_variant_2' => array(
|
||||
@@ -170,7 +193,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_2.css'),
|
||||
'php' => array('example_2.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(TRUE),
|
||||
),
|
||||
),
|
||||
@@ -183,7 +206,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_3.css'),
|
||||
'php' => array('example_3.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(TRUE),
|
||||
),
|
||||
'example_variant_2' => array(
|
||||
@@ -192,7 +215,7 @@ function libraries_test_libraries_info() {
|
||||
'css' => array('example_4.css'),
|
||||
'php' => array('example_4.php'),
|
||||
),
|
||||
'variant callback' => '_libraries_test_return_installed',
|
||||
'variant callback' => '_libraries_test_module_return_installed',
|
||||
'variant arguments' => array(TRUE),
|
||||
),
|
||||
),
|
||||
@@ -206,27 +229,27 @@ function libraries_test_libraries_info() {
|
||||
// This library acts as a dependency for the libraries below.
|
||||
$libraries['example_dependency'] = array(
|
||||
'name' => 'Example dependency',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1.1',
|
||||
'files' => array('js' => array('example_1.js')),
|
||||
);
|
||||
$libraries['example_dependency_missing'] = array(
|
||||
'name' => 'Example dependency missing',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'dependencies' => array('example_missing'),
|
||||
'files' => array('js' => array('example_1.js')),
|
||||
);
|
||||
$libraries['example_dependency_incompatible'] = array(
|
||||
'name' => 'Example dependency incompatible',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'dependencies' => array('example_dependency (>1.1)'),
|
||||
'files' => array('js' => array('example_1.js')),
|
||||
);
|
||||
$libraries['example_dependency_compatible'] = array(
|
||||
'name' => 'Example dependency compatible',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'dependencies' => array('example_dependency (>=1.1)'),
|
||||
'files' => array('js' => array('example_1.js')),
|
||||
@@ -235,7 +258,7 @@ function libraries_test_libraries_info() {
|
||||
// Test the applying of callbacks.
|
||||
$libraries['example_callback'] = array(
|
||||
'name' => 'Example callback',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/example',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'versions' => array(
|
||||
'1' => array(
|
||||
@@ -271,12 +294,12 @@ function libraries_test_libraries_info() {
|
||||
),
|
||||
),
|
||||
'callbacks' => array(
|
||||
'info' => array('_libraries_test_info_callback'),
|
||||
'pre-detect' => array('_libraries_test_pre_detect_callback'),
|
||||
'post-detect' => array('_libraries_test_post_detect_callback'),
|
||||
'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'),
|
||||
'pre-load' => array('_libraries_test_pre_load_callback'),
|
||||
'post-load' => array('_libraries_test_post_load_callback'),
|
||||
'info' => array('_libraries_test_module_info_callback'),
|
||||
'pre-detect' => array('_libraries_test_module_pre_detect_callback'),
|
||||
'post-detect' => array('_libraries_test_module_post_detect_callback'),
|
||||
'pre-dependencies-load' => array('_libraries_test_module_pre_dependencies_load_callback'),
|
||||
'pre-load' => array('_libraries_test_module_pre_load_callback'),
|
||||
'post-load' => array('_libraries_test_module_post_load_callback'),
|
||||
),
|
||||
// These keys are for testing purposes only.
|
||||
'info callback' => 'not applied',
|
||||
@@ -287,24 +310,40 @@ function libraries_test_libraries_info() {
|
||||
'post-load callback' => 'not applied',
|
||||
);
|
||||
|
||||
$libraries['example_path_variable_override'] = array(
|
||||
'name' => 'Example path variable override',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'files' => array(
|
||||
'php' => array('example_1.php', 'example_2.php'),
|
||||
),
|
||||
);
|
||||
|
||||
return $libraries;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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_libraries_info_file_paths() {
|
||||
return array(drupal_get_path('module', 'libraries_test') . '/example');
|
||||
function libraries_test_module_libraries_info_file_paths() {
|
||||
return array(drupal_get_path('module', 'libraries') . '/tests/libraries');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the version of an example library.
|
||||
*
|
||||
* Returns exactly the version string entered as the $version parameter. This
|
||||
* function cannot be collapsed with _libraries_test_return_installed(), because
|
||||
* of the different arguments that are passed automatically.
|
||||
* function cannot be collapsed with _libraries_test_module_return_installed(),
|
||||
* because of the different arguments that are passed automatically.
|
||||
*/
|
||||
function _libraries_test_return_version($library, $version) {
|
||||
function _libraries_test_module_return_version($library, $version) {
|
||||
return $version;
|
||||
}
|
||||
|
||||
@@ -340,7 +379,7 @@ function _libraries_test_return_version($library, $version) {
|
||||
*
|
||||
* @see libraries_get_version()
|
||||
*/
|
||||
function _libraries_test_get_version($library, $file, $pattern, $lines = 20, $cols = 200) {
|
||||
function _libraries_test_module_get_version($library, $file, $pattern, $lines = 20, $cols = 200) {
|
||||
|
||||
$file = DRUPAL_ROOT . '/' . $library['library path'] . '/' . $file;
|
||||
if (!file_exists($file)) {
|
||||
@@ -361,10 +400,10 @@ function _libraries_test_get_version($library, $file, $pattern, $lines = 20, $co
|
||||
* Detects the variant of an example library.
|
||||
*
|
||||
* Returns exactly the value of $installed, either TRUE or FALSE. This function
|
||||
* cannot be collapsed with _libraries_test_return_version(), because of the
|
||||
* different arguments that are passed automatically.
|
||||
* cannot be collapsed with _libraries_test_module_return_version(), because of
|
||||
* the different arguments that are passed automatically.
|
||||
*/
|
||||
function _libraries_test_return_installed($library, $name, $installed) {
|
||||
function _libraries_test_module_return_installed($library, $name, $installed) {
|
||||
return $installed;
|
||||
}
|
||||
|
||||
@@ -373,10 +412,10 @@ function _libraries_test_return_installed($library, $name, $installed) {
|
||||
*
|
||||
* This function is used as a test callback for the 'info' callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_info_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'info');
|
||||
function _libraries_test_module_info_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'info');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -384,10 +423,10 @@ function _libraries_test_info_callback(&$library, $version, $variant) {
|
||||
*
|
||||
* This function is used as a test callback for the 'pre-detect' callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_pre_detect_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'pre-detect');
|
||||
function _libraries_test_module_pre_detect_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'pre-detect');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -395,10 +434,10 @@ function _libraries_test_pre_detect_callback(&$library, $version, $variant) {
|
||||
*
|
||||
* This function is used as a test callback for the 'post-detect callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_post_detect_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'post-detect');
|
||||
function _libraries_test_module_post_detect_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'post-detect');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -407,10 +446,10 @@ function _libraries_test_post_detect_callback(&$library, $version, $variant) {
|
||||
* This function is used as a test callback for the 'pre-dependencies-load'
|
||||
* callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_pre_dependencies_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'pre-dependencies-load');
|
||||
function _libraries_test_module_pre_dependencies_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'pre-dependencies-load');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -418,10 +457,10 @@ function _libraries_test_pre_dependencies_load_callback(&$library, $version, $va
|
||||
*
|
||||
* This function is used as a test callback for the 'pre-load' callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_pre_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'pre-load');
|
||||
function _libraries_test_module_pre_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'pre-load');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -429,10 +468,10 @@ function _libraries_test_pre_load_callback(&$library, $version, $variant) {
|
||||
*
|
||||
* This function is used as a test callback for the 'post-load' callback group.
|
||||
*
|
||||
* @see _libraries_test_callback()
|
||||
* @see _libraries_test_module_callback()
|
||||
*/
|
||||
function _libraries_test_post_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_callback($library, $version, $variant, 'post-load');
|
||||
function _libraries_test_module_post_load_callback(&$library, $version, $variant) {
|
||||
_libraries_test_module_callback($library, $version, $variant, 'post-load');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -456,7 +495,7 @@ function _libraries_test_post_load_callback(&$library, $version, $variant) {
|
||||
* The variant the library information passed in $library belongs to, or NULL
|
||||
* if the passed library information is not variant-specific.
|
||||
*/
|
||||
function _libraries_test_callback(&$library, $version, $variant, $group) {
|
||||
function _libraries_test_module_callback(&$library, $version, $variant, $group) {
|
||||
$string = 'applied';
|
||||
if (isset($version) && isset($variant)) {
|
||||
$string .= " (version $version, variant $variant)";
|
||||
@@ -475,7 +514,7 @@ function _libraries_test_callback(&$library, $version, $variant, $group) {
|
||||
// The following is used to test caching of library information.
|
||||
// Only set the message for the top-level library to prevent confusing,
|
||||
// duplicate messages.
|
||||
if (!isset($version) && !isset($variant) && variable_get('libraries_test_cache', FALSE)) {
|
||||
if (!isset($version) && !isset($variant) && variable_get('libraries_test_module_cache', FALSE)) {
|
||||
drupal_set_message("The <em>$group</em> callback group was invoked.");
|
||||
}
|
||||
}
|
||||
@@ -483,32 +522,40 @@ function _libraries_test_callback(&$library, $version, $variant, $group) {
|
||||
/**
|
||||
* Implements hook_menu().
|
||||
*/
|
||||
function libraries_test_menu() {
|
||||
function libraries_test_module_menu() {
|
||||
$base = array(
|
||||
'page callback' => '_libraries_test_load',
|
||||
'page callback' => '_libraries_test_module_load',
|
||||
'access callback' => TRUE,
|
||||
);
|
||||
$items['libraries_test/files'] = $base + array(
|
||||
$items['libraries-test-module/files'] = $base + array(
|
||||
'title' => 'Test files',
|
||||
'page arguments' => array('example_files'),
|
||||
);
|
||||
$items['libraries_test/integration_files'] = $base + array(
|
||||
'title' => 'Test integration files',
|
||||
'page arguments' => array('example_integration_files'),
|
||||
$items['libraries-test-module/module-integration-files'] = $base + array(
|
||||
'title' => 'Test module integration files',
|
||||
'page arguments' => array('example_module_integration_files'),
|
||||
);
|
||||
$items['libraries_test/versions'] = $base + array(
|
||||
$items['libraries-test-module/module-integration-files-post-load'] = $base + array(
|
||||
'title' => 'Test module post-load integration files',
|
||||
'page arguments' => array('example_module_integration_files_post_load'),
|
||||
);
|
||||
$items['libraries-test-module/theme-integration-files'] = $base + array(
|
||||
'title' => 'Test theme integration files',
|
||||
'page arguments' => array('example_theme_integration_files'),
|
||||
);
|
||||
$items['libraries-test-module/versions'] = $base + array(
|
||||
'title' => 'Test version loading',
|
||||
'page arguments' => array('example_versions'),
|
||||
);
|
||||
$items['libraries_test/variant'] = $base + array(
|
||||
$items['libraries-test-module/variant'] = $base + array(
|
||||
'title' => 'Test variant loading',
|
||||
'page arguments' => array('example_variant', 'example_variant'),
|
||||
);
|
||||
$items['libraries_test/versions_and_variants'] = $base + array(
|
||||
$items['libraries-test-module/versions-and-variants'] = $base + array(
|
||||
'title' => 'Test concurrent version and variant loading',
|
||||
'page arguments' => array('example_versions_and_variants', 'example_variant_2'),
|
||||
);
|
||||
$items['libraries_test/cache'] = $base + array(
|
||||
$items['libraries-test-module/cache'] = $base + array(
|
||||
'title' => 'Test caching of library information',
|
||||
'page arguments' => array('example_callback'),
|
||||
);
|
||||
@@ -523,7 +570,7 @@ function libraries_test_menu() {
|
||||
* JavaScript and CSS files for easier debugging. See example/README.txt for
|
||||
* more information.
|
||||
*/
|
||||
function _libraries_test_load($library, $variant = NULL) {
|
||||
function _libraries_test_module_load($library, $variant = NULL) {
|
||||
libraries_load($library, $variant);
|
||||
// JavaScript and CSS files can be checked directly by SimpleTest, so we only
|
||||
// need to manually check for PHP files.
|
||||
@@ -532,14 +579,14 @@ function _libraries_test_load($library, $variant = NULL) {
|
||||
// For easer debugging of JS loading, a text is shown that the JavaScript will
|
||||
// replace.
|
||||
$output .= '<h2>JavaScript</h2>';
|
||||
$output .= '<div class="libraries-test-javascript">';
|
||||
$output .= '<div class="libraries-test-module-js">';
|
||||
$output .= 'If this text shows up, no JavaScript test file was loaded.';
|
||||
$output .= '</div>';
|
||||
|
||||
// For easier debugging of CSS loading, the loaded CSS files will color the
|
||||
// following text.
|
||||
$output .= '<h2>CSS</h2>';
|
||||
$output .= '<div class="libraries-test-css">';
|
||||
$output .= '<div class="libraries-test-module-css">';
|
||||
$output .= 'If one of the CSS test files has been loaded, this text will be colored:';
|
||||
$output .= '<ul>';
|
||||
// Do not reference the actual CSS files (i.e. including '.css'), because that
|
||||
@@ -548,17 +595,18 @@ function _libraries_test_load($library, $variant = NULL) {
|
||||
$output .= '<li>example_2: green</li>';
|
||||
$output .= '<li>example_3: orange</li>';
|
||||
$output .= '<li>example_4: blue</li>';
|
||||
$output .= '<li>libraries_test: purple</li>';
|
||||
$output .= '<li>libraries_test_module: purple</li>';
|
||||
$output .= '<li>libraries_test_theme: turquoise</li>';
|
||||
$output .= '</ul>';
|
||||
$output .= '</div>';
|
||||
|
||||
$output .= '<h2>PHP</h2>';
|
||||
$output .= '<div class="libraries-test-php">';
|
||||
$output .= '<div class="libraries-test-module-php">';
|
||||
$output .= 'The following is a list of all loaded test PHP files:';
|
||||
$output .= '<ul>';
|
||||
$files = get_included_files();
|
||||
foreach ($files as $file) {
|
||||
if (strpos($file, 'libraries/test') && !strpos($file, 'libraries_test.module')) {
|
||||
if (strpos($file, 'libraries/test') && !strpos($file, 'libraries_test_module.module') && !strpos($file, 'template.php')) {
|
||||
$output .= '<li>' . str_replace(DRUPAL_ROOT . '/', '', $file) . '</li>';
|
||||
}
|
||||
}
|
||||
@@ -567,3 +615,12 @@ function _libraries_test_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;
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_module_integration_file_post_load() {
|
||||
}
|
||||
|
||||
// Call a function that is defined in the library file, to ensure that was
|
||||
// loaded prior to this file.
|
||||
_libraries_test_module_example_1();
|
@@ -0,0 +1,12 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test CSS file for Libraries loading.
|
||||
*
|
||||
* Color the 'libraries-test-module-css' div purple. See README.txt for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
.libraries-test-module-css {
|
||||
color: turquoise;
|
||||
}
|
@@ -3,10 +3,9 @@
|
||||
/**
|
||||
* @file
|
||||
* Test PHP file for Libraries loading.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Dummy function to see if this file was loaded.
|
||||
*/
|
||||
function _libraries_test_example_2() {
|
||||
function _libraries_test_theme_integration_file() {
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
name = Libraries test theme
|
||||
description = Tests that themes can provide and alter library information.
|
||||
core = 7.x
|
||||
hidden = TRUE
|
||||
|
||||
; Information added by Drupal.org packaging script on 2014-02-09
|
||||
version = "7.x-2.2"
|
||||
core = "7.x"
|
||||
project = "libraries"
|
||||
datestamp = "1391965716"
|
||||
|
@@ -0,0 +1,18 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Test JavaScript file for Libraries loading.
|
||||
*
|
||||
* Replace the text in the 'libraries-test-module-js' div. See README.txt for
|
||||
* more information.
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
Drupal.behaviors.librariesTest = {
|
||||
attach: function(context, settings) {
|
||||
$('.libraries-test-module-js').text('If this text shows up, libraries_test_theme.js was loaded successfully.')
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Libraries test theme.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_libraries_info().
|
||||
*/
|
||||
function libraries_test_theme_libraries_info() {
|
||||
$libraries['example_theme'] = array(
|
||||
'name' => 'Example theme',
|
||||
'theme_altered' => FALSE,
|
||||
);
|
||||
$libraries['example_theme_integration_files'] = array(
|
||||
'name' => 'Example theme integration file',
|
||||
'library path' => drupal_get_path('module', 'libraries') . '/tests/libraries/example',
|
||||
'version' => '1',
|
||||
'integration files' => array(
|
||||
'libraries_test_theme' => array(
|
||||
'js' => array('libraries_test_theme.js'),
|
||||
'css' => array('libraries_test_theme.css'),
|
||||
'php' => array('libraries_test_theme.inc'),
|
||||
),
|
||||
),
|
||||
);
|
||||
return $libraries;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_libraries_info_alter().
|
||||
*/
|
||||
function libraries_test_theme_libraries_info_alter(&$libraries) {
|
||||
$libraries['example_theme']['theme_altered'] = TRUE;
|
||||
}
|
Reference in New Issue
Block a user