#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.
|
* 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