function commandUnitCase::testCommandVersionSpecific

8.0.x commandUnitTest.php commandUnitCase::testCommandVersionSpecific()
6.x commandUnitTest.php commandUnitCase::testCommandVersionSpecific()
7.x commandUnitTest.php commandUnitCase::testCommandVersionSpecific()
5.x commandUnitTest.php commandUnitCase::testCommandVersionSpecific()
master commandUnitTest.php commandUnitCase::testCommandVersionSpecific()

Assure that matching version-specific command files are loaded and others are ignored.

File

tests/commandUnitTest.php, line 9

Namespace

Unish

Class

commandUnitCase

Code

function testCommandVersionSpecific() {
  $path = UNISH_SANDBOX . '/commandUnitCase';
  $major = $this->drush_major_version();
  $major_plus1 = $major + 1;

  // Write matched and unmatched files to the system search path.
  $files = array(
    $path . "/$major.drush$major.inc",
    $path . "/drush$major/drush$major.drush.inc",
    $path . "/$major_plus1.drush$major_plus1.inc",
    $path . "/drush$major_plus1/drush$major_plus1.drush.inc",
  );
  mkdir($path);
  mkdir($path . '/drush' . $major);
  mkdir($path . '/drush' . $major_plus1);
  foreach ($files as $file) {
    $contents = <<<EOD
<?php
// Written by Unish. This file is safe to delete.
\$GLOBALS['unish_foo'][] = '$file';
EOD;
    $return = file_put_contents($file, $contents);
  }
  drush_set_context('DRUSH_INCLUDE', array($path));
  drush_preflight();
  $loaded = drush_commandfile_list();
  $this->assertTrue(in_array(realpath($files[0]), $loaded), 'Loaded a version-specific command file.');
  $this->assertTrue(in_array(realpath($files[1]), $loaded), 'Loaded a version-specific command directory.');
  $this->assertFalse(in_array(realpath($files[2]), $loaded), 'Did not load a mismatched version-specific command file.');
  $this->assertFalse(in_array(realpath($files[3]), $loaded), 'Did not load a a mismatched version-specific command directory.');
}