PageRenderTime 38ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/sites/all/modules/drush/tests/releaseInfoTest.php

https://bitbucket.org/IshaDakota/programdb
PHP | 87 lines | 55 code | 10 blank | 22 comment | 0 complexity | f404ac5bfb0a639c8ca75bb6856714ea MD5 | raw file
  1. <?php
  2. /**
  3. * pm testing
  4. */
  5. class releaseInfoCase extends Drush_UnitTestCase {
  6. /*
  7. * Parse Drupal version and release from project specification.
  8. *
  9. * @see pm_parse_project_version().
  10. */
  11. public function testVersionString() {
  12. require_once DRUSH_BASE_PATH . '/commands/pm/pm.drush.inc';
  13. $request_data = pm_parse_project_version(array('devel-6.x-1.18'));
  14. $this->assertArrayHasKey('devel', $request_data);
  15. $this->assertEquals($request_data['devel']['drupal_version'], '6.x');
  16. $this->assertEquals($request_data['devel']['project_version'], '1.18');
  17. }
  18. /*
  19. * Pick right release from the XML (dev, latest published+recommended, ...).
  20. */
  21. public function testReleaseXML() {
  22. _drush_add_commandfiles(array(DRUSH_BASE_PATH . '/commands/pm'));
  23. 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. // Pick specific release.
  27. $request_data = array(
  28. 'name' => 'devel',
  29. 'drupal_version' => '6.x',
  30. 'project_version' => '1.18',
  31. 'version' => '6.x-1.18',
  32. );
  33. $release = updatexml_parse_release($request_data, $xml);
  34. $this->assertEquals($release['version'], '6.x-1.18');
  35. // Pick latest recommended+published with no further specification.
  36. // 6.x-2.2 is skipped because it is unpublished.
  37. // 6.x-2.2-rc1 is skipped because it is not a stable release.
  38. $request_data = array(
  39. 'name' => 'devel',
  40. 'drupal_version' => '6.x',
  41. );
  42. $release = updatexml_parse_release($request_data, $xml);
  43. $this->assertEquals($release['version'], '6.x-2.1');
  44. // Pick latest from a specific branch.
  45. $request_data = array(
  46. 'name' => 'devel',
  47. 'drupal_version' => '6.x',
  48. 'version' => '6.x-1',
  49. );
  50. $release = updatexml_parse_release($request_data, $xml);
  51. $this->assertEquals($release['version'], '6.x-1.23');
  52. // Pick latest from a different branch.
  53. $request_data = array(
  54. 'name' => 'devel',
  55. 'drupal_version' => '6.x',
  56. 'version' => '6.x-2',
  57. );
  58. $release = updatexml_parse_release($request_data, $xml);
  59. // 6.x-2.2 is skipped because it is unpublished.
  60. // 6.x-2.2-rc1 is skipped because it is not a stable release.
  61. $this->assertEquals($release['version'], '6.x-2.1');
  62. // Pick a -dev release.
  63. $request_data = array(
  64. 'name' => 'devel',
  65. 'drupal_version' => '6.x',
  66. 'version' => '6.x-1.x',
  67. );
  68. $release = updatexml_parse_release($request_data, $xml);
  69. $this->assertEquals($release['version'], '6.x-1.x-dev');
  70. // Test $restrict_to parameter.
  71. $request_data['version'] = '6.x-1';
  72. $release = updatexml_parse_release($request_data, $xml, 'version');
  73. $this->assertEquals($release['version'], '6.x-1.23');
  74. $release = updatexml_parse_release($request_data, $xml, 'dev');
  75. $this->assertEquals($release['version'], '6.x-1.x-dev');
  76. }
  77. }