5 * Tests for release_info engine.
15 class releaseInfoCase extends UnitUnishTestCase {
18 * Pick right release from the XML (dev, latest published+recommended, ...).
20 public function testReleaseXML() {
21 _drush_add_commandfiles(array(DRUSH_BASE_PATH . '/commands/pm'));
22 $release_info = drush_include_engine('release_info', 'updatexml');
24 // Use a local, static XML file because live files change over time.
25 $xml = simplexml_load_file(dirname(__FILE__). '/devel.xml');
26 $project_release_info = new \Drush\UpdateService\Project($xml);
28 // Pick specific release.
29 $release = $project_release_info->getSpecificRelease('6.x-1.18');
30 $this->assertEquals('6.x-1.18', $release['version']);
32 // Pick latest recommended+published with no further specification.
33 // 6.x-2.2 is skipped because it is unpublished.
34 // 6.x-2.2-rc1 is skipped because it is not a stable release.
35 $release = $project_release_info->getRecommendedOrSupportedRelease();
36 $this->assertEquals('6.x-2.1', $release['version']);
38 // Pick latest from a specific branch.
39 $release = $project_release_info->getSpecificRelease('6.x-1');
40 $this->assertEquals('6.x-1.23', $release['version']);
42 // Pick latest from a different branch.
43 // 6.x-2.2 is skipped because it is unpublished.
44 // 6.x-2.2-rc1 is skipped because it is not a stable release.
45 $release = $project_release_info->getSpecificRelease('6.x-2');
46 $this->assertEquals('6.x-2.1', $release['version']);
48 // Pick a -dev release.
49 $release = $project_release_info->getSpecificRelease('6.x-1.x');
50 $this->assertEquals('6.x-1.x-dev', $release['version']);
52 // Test UpdateServiceProject::getSpecificRelease().
53 // Test we get latest release in branch 1.
54 $release = $project_release_info->getSpecificRelease('6.x-1');
55 $this->assertEquals('6.x-1.23', $release['version']);
57 // Test UpdateServiceProject::getDevRelease().
58 $release = $project_release_info->getDevRelease();
59 $this->assertEquals('6.x-1.x-dev', $release['version']);