summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-02-28 23:05:40 -0800
committerwebchick <webchick@24967.no-reply.drupal.org>2012-02-28 23:05:40 -0800
commita71a3f59c82ec2b3b027817fafd0f5edad2e54ab (patch)
treebf7875de10115a6451ec167d6c28b71966e35df1 /modules
parentbb3f7e97c33671539d61158e16cac965c72080d0 (diff)
downloadbrdo-a71a3f59c82ec2b3b027817fafd0f5edad2e54ab.tar.gz
brdo-a71a3f59c82ec2b3b027817fafd0f5edad2e54ab.tar.bz2
Issue #911354 by adrian, boombatower, jhedstrom, sun, yhahn, langworthy, dixon_, jrbeeman: Fixed Tests in profiles/[name]/modules cannot be run and cannot use a different profile for running tests.
Diffstat (limited to 'modules')
-rw-r--r--modules/simpletest/drupal_web_test_case.php6
-rw-r--r--modules/simpletest/simpletest.test88
2 files changed, 94 insertions, 0 deletions
diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php
index a457a89b3..42bab12ce 100644
--- a/modules/simpletest/drupal_web_test_case.php
+++ b/modules/simpletest/drupal_web_test_case.php
@@ -1344,6 +1344,12 @@ class DrupalWebTestCase extends DrupalTestCase {
variable_set('file_private_path', $private_files_directory);
variable_set('file_temporary_path', $temp_files_directory);
+ // Set the 'simpletest_parent_profile' variable to add the parent profile's
+ // search path to the child site's search paths.
+ // @see drupal_system_listing()
+ // @todo This may need to be primed like 'install_profile' above.
+ variable_set('simpletest_parent_profile', $this->originalProfile);
+
// Include the testing profile.
variable_set('install_profile', $this->profile);
$profile_details = install_profile_info($this->profile, 'en');
diff --git a/modules/simpletest/simpletest.test b/modules/simpletest/simpletest.test
index dbe2ec0f3..c67b004ea 100644
--- a/modules/simpletest/simpletest.test
+++ b/modules/simpletest/simpletest.test
@@ -567,3 +567,91 @@ class SimpleTestBrokenSetUp extends DrupalWebTestCase {
}
}
}
+
+/**
+ * Verifies that tests bundled with installation profile modules are found.
+ */
+class SimpleTestInstallationProfileModuleTestsTestCase extends DrupalWebTestCase {
+ /**
+ * Use the Testing profile.
+ *
+ * The Testing profile contains drupal_system_listing_compatible_test.test,
+ * which attempts to:
+ * - run tests using the Minimal profile (which does not contain the
+ * drupal_system_listing_compatible_test.module)
+ * - but still install the drupal_system_listing_compatible_test.module
+ * contained in the Testing profile.
+ *
+ * @see DrupalSystemListingCompatibleTestCase
+ */
+ protected $profile = 'testing';
+
+ public static function getInfo() {
+ return array(
+ 'name' => 'Installation profile module tests',
+ 'description' => 'Verifies that tests bundled with installation profile modules are found.',
+ 'group' => 'SimpleTest',
+ );
+ }
+
+ function setUp() {
+ parent::setUp(array('simpletest'));
+
+ $this->admin_user = $this->drupalCreateUser(array('administer unit tests'));
+ $this->drupalLogin($this->admin_user);
+ }
+
+ /**
+ * Tests existence of test case located in an installation profile module.
+ */
+ function testInstallationProfileTests() {
+ $this->drupalGet('admin/config/development/testing');
+ $this->assertText('Installation profile module tests helper');
+ $edit = array(
+ 'DrupalSystemListingCompatibleTestCase' => TRUE,
+ );
+ $this->drupalPost(NULL, $edit, t('Run tests'));
+ $this->assertText('DrupalSystemListingCompatibleTestCase test executed.');
+ }
+}
+
+/**
+ * Verifies that tests in other installation profiles are not found.
+ *
+ * @see SimpleTestInstallationProfileModuleTestsTestCase
+ */
+class SimpleTestOtherInstallationProfileModuleTestsTestCase extends DrupalWebTestCase {
+ /**
+ * Use the Minimal profile.
+ *
+ * The Testing profile contains drupal_system_listing_compatible_test.test,
+ * which should not be found.
+ *
+ * @see SimpleTestInstallationProfileModuleTestsTestCase
+ * @see DrupalSystemListingCompatibleTestCase
+ */
+ protected $profile = 'minimal';
+
+ public static function getInfo() {
+ return array(
+ 'name' => 'Other Installation profiles',
+ 'description' => 'Verifies that tests in other installation profiles are not found.',
+ 'group' => 'SimpleTest',
+ );
+ }
+
+ function setUp() {
+ parent::setUp(array('simpletest'));
+
+ $this->admin_user = $this->drupalCreateUser(array('administer unit tests'));
+ $this->drupalLogin($this->admin_user);
+ }
+
+ /**
+ * Tests that tests located in another installation profile do not appear.
+ */
+ function testOtherInstallationProfile() {
+ $this->drupalGet('admin/config/development/testing');
+ $this->assertNoText('Installation profile module tests helper');
+ }
+}