#895140 follow-up by David_Rothstein: Tests to ensure older versions of modules are not chosen over new ones.
parent
eed07e55dd
commit
d36b7bde42
|
@ -1976,6 +1976,66 @@ class ParseInfoFilesTestCase extends DrupalWebTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for the drupal_system_listing() function.
|
||||
*/
|
||||
class DrupalSystemListingTestCase extends DrupalWebTestCase {
|
||||
/**
|
||||
* Use the testing profile; this is needed for testDirectoryPrecedence().
|
||||
*/
|
||||
protected $profile = 'testing';
|
||||
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Drupal system listing',
|
||||
'description' => 'Tests the mechanism for scanning system directories in drupal_system_listing().',
|
||||
'group' => 'System',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that files in different directories take precedence as expected.
|
||||
*/
|
||||
function testDirectoryPrecedence() {
|
||||
// Define the module files we will search for, and the directory precedence
|
||||
// we expect.
|
||||
$expected_directories = array(
|
||||
// When the copy of the module in the profile directory is incompatible
|
||||
// with Drupal core, the copy in the core modules directory takes
|
||||
// precedence.
|
||||
'drupal_system_listing_incompatible_test' => array(
|
||||
'modules/simpletest/tests',
|
||||
'profiles/testing/modules',
|
||||
),
|
||||
// When both copies of the module are compatible with Drupal core, the
|
||||
// copy in the profile directory takes precedence.
|
||||
'drupal_system_listing_compatible_test' => array(
|
||||
'profiles/testing/modules',
|
||||
'modules/simpletest/tests',
|
||||
),
|
||||
);
|
||||
|
||||
// This test relies on two versions of the same module existing in
|
||||
// different places in the filesystem. Without that, the test has no
|
||||
// meaning, so assert their presence first.
|
||||
foreach ($expected_directories as $module => $directories) {
|
||||
foreach ($directories as $directory) {
|
||||
$filename = "$directory/$module/$module.module";
|
||||
$this->assertTrue(file_exists(DRUPAL_ROOT . '/' . $filename), t('@filename exists.', array('@filename' => $filename)));
|
||||
}
|
||||
}
|
||||
|
||||
// Now scan the directories and check that the files take precedence as
|
||||
// expected.
|
||||
$files = drupal_system_listing('/\.module$/', 'modules', 'name', 1);
|
||||
foreach ($expected_directories as $module => $directories) {
|
||||
$expected_directory = array_shift($directories);
|
||||
$expected_filename = "$expected_directory/$module/$module.module";
|
||||
$this->assertEqual($files[$module]->uri, $expected_filename, t('Module @module was found at @filename.', array('@module' => $module, '@filename' => $expected_filename)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for the format_date() function.
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
; $Id$
|
||||
name = "Drupal system listing compatible test"
|
||||
description = "Support module for testing the drupal_system_listing function."
|
||||
package = Testing
|
||||
version = VERSION
|
||||
core = 7.x
|
||||
files[] = drupal_system_listing_compatible_test.module
|
||||
hidden = TRUE
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
// $Id$
|
|
@ -0,0 +1,8 @@
|
|||
; $Id$
|
||||
name = "Drupal system listing incompatible test"
|
||||
description = "Support module for testing the drupal_system_listing function."
|
||||
package = Testing
|
||||
version = VERSION
|
||||
core = 7.x
|
||||
files[] = drupal_system_listing_incompatible_test.module
|
||||
hidden = TRUE
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
// $Id$
|
|
@ -0,0 +1,8 @@
|
|||
; $Id$
|
||||
name = "Drupal system listing compatible test"
|
||||
description = "Support module for testing the drupal_system_listing function."
|
||||
package = Testing
|
||||
version = VERSION
|
||||
core = 7.x
|
||||
files[] = drupal_system_listing_compatible_test.module
|
||||
hidden = TRUE
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
// $Id$
|
|
@ -0,0 +1,11 @@
|
|||
; $Id$
|
||||
name = "Drupal system listing incompatible test"
|
||||
description = "Support module for testing the drupal_system_listing function."
|
||||
package = Testing
|
||||
version = VERSION
|
||||
; This deliberately has the wrong core version, to test that it does not take
|
||||
; precedence over the version of the same module that is in the
|
||||
; modules/simpletest/tests directory.
|
||||
core = 6.x
|
||||
files[] = drupal_system_listing_incompatible_test.module
|
||||
hidden = TRUE
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
// $Id$
|
Loading…
Reference in New Issue