forked from drush-ops/drush
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommandUnitTest.php
63 lines (57 loc) · 2.45 KB
/
commandUnitTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
namespace Unish;
class commandUnitCase extends UnitUnishTestCase {
/**
* Assure that matching version-specific command files are loaded and others are ignored.
*/
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.');
}
/**
* Assert that $command has interesting properties. Reference command by
* it's alias (dl) to assure that those aliases are built as expected.
*/
public function testGetCommands() {
drush_preflight();
$commands = drush_get_commands();
$command = $commands['dl'];
$this->assertEquals('dl', current($command['aliases']));
$this->assertArrayHasKey('version_control', $command['engines']);
$this->assertArrayHasKey('package_handler', $command['engines']);
$this->assertArrayHasKey('release_info', $command['engines']);
$this->assertEquals('pm-download', $command['command']);
$this->assertEquals('pm', $command['commandfile']);
$this->assertEquals('drush_command', $command['callback']);
$this->assertArrayHasKey('examples', $command['sections']);
$this->assertTrue($command['is_alias']);
$command = $commands['pm-download'];
$this->assertArrayNotHasKey('is_alias', $command);
}
}