drupid 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/.bundle/config +3 -0
  3. data/.gitignore +10 -0
  4. data/.rbenv-version +1 -0
  5. data/Gemfile +3 -0
  6. data/README.md +56 -0
  7. data/Rakefile +26 -0
  8. data/bin/drupid +1 -3
  9. data/drupid.gemspec +31 -0
  10. data/lib/drupid/project_version.rb +276 -0
  11. data/lib/drupid/utils.rb +1 -1
  12. data/lib/drupid/version.rb +3 -275
  13. data/lib/drupid.rb +2 -7
  14. data/test/fixtures/drupal-example.make +89 -0
  15. data/test/fixtures/drupal-fake-site/modules/aggregator/aggregator.info +14 -0
  16. data/test/fixtures/drupal-fake-site/modules/aggregator/aggregator.module +0 -0
  17. data/test/fixtures/drupal-fake-site/modules/aggregator/tests/aggregator_test.info +12 -0
  18. data/test/fixtures/drupal-fake-site/modules/aggregator/tests/aggregator_test.module +0 -0
  19. data/test/fixtures/drupal-fake-site/modules/block/block.info +13 -0
  20. data/test/fixtures/drupal-fake-site/modules/block/block.module +0 -0
  21. data/test/fixtures/drupal-fake-site/modules/block/tests/block_test.info +12 -0
  22. data/test/fixtures/drupal-fake-site/modules/block/tests/block_test.module +0 -0
  23. data/test/fixtures/drupal-fake-site/modules/blog/blog.info +12 -0
  24. data/test/fixtures/drupal-fake-site/modules/blog/blog.module +0 -0
  25. data/test/fixtures/drupal-fake-site/modules/book/book.info +14 -0
  26. data/test/fixtures/drupal-fake-site/modules/book/book.module +0 -0
  27. data/test/fixtures/drupal-fake-site/modules/color/color.info +12 -0
  28. data/test/fixtures/drupal-fake-site/modules/color/color.module +0 -0
  29. data/test/fixtures/drupal-fake-site/modules/comment/comment.info +16 -0
  30. data/test/fixtures/drupal-fake-site/modules/comment/comment.module +0 -0
  31. data/test/fixtures/drupal-fake-site/modules/contact/contact.info +13 -0
  32. data/test/fixtures/drupal-fake-site/modules/contact/contact.module +0 -0
  33. data/test/fixtures/drupal-fake-site/modules/contextual/contextual.info +11 -0
  34. data/test/fixtures/drupal-fake-site/modules/contextual/contextual.module +0 -0
  35. data/test/fixtures/drupal-fake-site/modules/dashboard/dashboard.info +14 -0
  36. data/test/fixtures/drupal-fake-site/modules/dashboard/dashboard.module +0 -0
  37. data/test/fixtures/drupal-fake-site/modules/dblog/dblog.info +12 -0
  38. data/test/fixtures/drupal-fake-site/modules/dblog/dblog.module +0 -0
  39. data/test/fixtures/drupal-fake-site/modules/field/field.info +17 -0
  40. data/test/fixtures/drupal-fake-site/modules/field/field.module +0 -0
  41. data/test/fixtures/drupal-fake-site/modules/field/modules/field_sql_storage/field_sql_storage.info +14 -0
  42. data/test/fixtures/drupal-fake-site/modules/field/modules/field_sql_storage/field_sql_storage.module +0 -0
  43. data/test/fixtures/drupal-fake-site/modules/field/modules/list/list.info +14 -0
  44. data/test/fixtures/drupal-fake-site/modules/field/modules/list/list.module +0 -0
  45. data/test/fixtures/drupal-fake-site/modules/field/modules/list/tests/list_test.info +12 -0
  46. data/test/fixtures/drupal-fake-site/modules/field/modules/list/tests/list_test.module +0 -0
  47. data/test/fixtures/drupal-fake-site/modules/field/modules/number/number.info +13 -0
  48. data/test/fixtures/drupal-fake-site/modules/field/modules/number/number.module +0 -0
  49. data/test/fixtures/drupal-fake-site/modules/field/modules/options/options.info +13 -0
  50. data/test/fixtures/drupal-fake-site/modules/field/modules/options/options.module +0 -0
  51. data/test/fixtures/drupal-fake-site/modules/field/modules/text/text.info +14 -0
  52. data/test/fixtures/drupal-fake-site/modules/field/modules/text/text.module +0 -0
  53. data/test/fixtures/drupal-fake-site/modules/field/tests/field_test.info +13 -0
  54. data/test/fixtures/drupal-fake-site/modules/field/tests/field_test.module +0 -0
  55. data/test/fixtures/drupal-fake-site/modules/field_ui/field_ui.info +13 -0
  56. data/test/fixtures/drupal-fake-site/modules/field_ui/field_ui.module +0 -0
  57. data/test/fixtures/drupal-fake-site/modules/file/file.info +13 -0
  58. data/test/fixtures/drupal-fake-site/modules/file/file.module +0 -0
  59. data/test/fixtures/drupal-fake-site/modules/file/tests/file_module_test.info +12 -0
  60. data/test/fixtures/drupal-fake-site/modules/file/tests/file_module_test.module +0 -0
  61. data/test/fixtures/drupal-fake-site/modules/filter/filter.info +14 -0
  62. data/test/fixtures/drupal-fake-site/modules/filter/filter.module +0 -0
  63. data/test/fixtures/drupal-fake-site/modules/forum/forum.info +16 -0
  64. data/test/fixtures/drupal-fake-site/modules/forum/forum.module +0 -0
  65. data/test/fixtures/drupal-fake-site/modules/help/help.info +12 -0
  66. data/test/fixtures/drupal-fake-site/modules/help/help.module +0 -0
  67. data/test/fixtures/drupal-fake-site/modules/image/image.info +14 -0
  68. data/test/fixtures/drupal-fake-site/modules/image/image.module +0 -0
  69. data/test/fixtures/drupal-fake-site/modules/image/tests/image_module_test.info +13 -0
  70. data/test/fixtures/drupal-fake-site/modules/image/tests/image_module_test.module +0 -0
  71. data/test/fixtures/drupal-fake-site/modules/locale/locale.info +13 -0
  72. data/test/fixtures/drupal-fake-site/modules/locale/locale.module +0 -0
  73. data/test/fixtures/drupal-fake-site/modules/locale/tests/locale_test.info +12 -0
  74. data/test/fixtures/drupal-fake-site/modules/locale/tests/locale_test.module +0 -0
  75. data/test/fixtures/drupal-fake-site/modules/menu/menu.info +13 -0
  76. data/test/fixtures/drupal-fake-site/modules/menu/menu.module +0 -0
  77. data/test/fixtures/drupal-fake-site/modules/node/node.info +16 -0
  78. data/test/fixtures/drupal-fake-site/modules/node/node.module +0 -0
  79. data/test/fixtures/drupal-fake-site/modules/node/tests/node_access_test.info +12 -0
  80. data/test/fixtures/drupal-fake-site/modules/node/tests/node_access_test.module +0 -0
  81. data/test/fixtures/drupal-fake-site/modules/node/tests/node_test.info +12 -0
  82. data/test/fixtures/drupal-fake-site/modules/node/tests/node_test.module +0 -0
  83. data/test/fixtures/drupal-fake-site/modules/node/tests/node_test_exception.info +12 -0
  84. data/test/fixtures/drupal-fake-site/modules/node/tests/node_test_exception.module +0 -0
  85. data/test/fixtures/drupal-fake-site/modules/openid/openid.info +12 -0
  86. data/test/fixtures/drupal-fake-site/modules/openid/openid.module +0 -0
  87. data/test/fixtures/drupal-fake-site/modules/openid/tests/openid_test.info +13 -0
  88. data/test/fixtures/drupal-fake-site/modules/openid/tests/openid_test.module +0 -0
  89. data/test/fixtures/drupal-fake-site/modules/overlay/overlay.info +11 -0
  90. data/test/fixtures/drupal-fake-site/modules/overlay/overlay.module +0 -0
  91. data/test/fixtures/drupal-fake-site/modules/path/path.info +13 -0
  92. data/test/fixtures/drupal-fake-site/modules/path/path.module +0 -0
  93. data/test/fixtures/drupal-fake-site/modules/php/php.info +12 -0
  94. data/test/fixtures/drupal-fake-site/modules/php/php.module +0 -0
  95. data/test/fixtures/drupal-fake-site/modules/poll/poll.info +13 -0
  96. data/test/fixtures/drupal-fake-site/modules/poll/poll.module +0 -0
  97. data/test/fixtures/drupal-fake-site/modules/profile/profile.info +18 -0
  98. data/test/fixtures/drupal-fake-site/modules/profile/profile.module +0 -0
  99. data/test/fixtures/drupal-fake-site/modules/rdf/rdf.info +12 -0
  100. data/test/fixtures/drupal-fake-site/modules/rdf/rdf.module +0 -0
  101. data/test/fixtures/drupal-fake-site/modules/rdf/tests/rdf_test.info +12 -0
  102. data/test/fixtures/drupal-fake-site/modules/rdf/tests/rdf_test.module +0 -0
  103. data/test/fixtures/drupal-fake-site/modules/search/search.info +15 -0
  104. data/test/fixtures/drupal-fake-site/modules/search/search.module +0 -0
  105. data/test/fixtures/drupal-fake-site/modules/search/tests/search_embedded_form.info +12 -0
  106. data/test/fixtures/drupal-fake-site/modules/search/tests/search_embedded_form.module +0 -0
  107. data/test/fixtures/drupal-fake-site/modules/search/tests/search_extra_type.info +12 -0
  108. data/test/fixtures/drupal-fake-site/modules/search/tests/search_extra_type.module +0 -0
  109. data/test/fixtures/drupal-fake-site/modules/shortcut/shortcut.info +13 -0
  110. data/test/fixtures/drupal-fake-site/modules/shortcut/shortcut.module +0 -0
  111. data/test/fixtures/drupal-fake-site/modules/simpletest/simpletest.info +56 -0
  112. data/test/fixtures/drupal-fake-site/modules/simpletest/simpletest.module +0 -0
  113. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/actions_loop_test.info +12 -0
  114. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/actions_loop_test.module +0 -0
  115. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/ajax_forms_test.info +12 -0
  116. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/ajax_forms_test.module +0 -0
  117. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/ajax_test.info +12 -0
  118. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/ajax_test.module +0 -0
  119. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/batch_test.info +12 -0
  120. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/batch_test.module +0 -0
  121. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/common_test.info +14 -0
  122. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/common_test.module +0 -0
  123. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/common_test_cron_helper.info +12 -0
  124. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/common_test_cron_helper.module +0 -0
  125. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/database_test.info +12 -0
  126. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/database_test.module +0 -0
  127. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +12 -0
  128. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.module +0 -0
  129. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +12 -0
  130. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.module +0 -0
  131. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_cache_test.info +13 -0
  132. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_cache_test.module +0 -0
  133. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_cache_test_dependency.info +12 -0
  134. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_cache_test_dependency.module +0 -0
  135. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_crud_hook_test.info +12 -0
  136. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/entity_crud_hook_test.module +0 -0
  137. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/error_test.info +12 -0
  138. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/error_test.module +0 -0
  139. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/file_test.info +13 -0
  140. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/file_test.module +0 -0
  141. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/filter_test.info +12 -0
  142. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/filter_test.module +0 -0
  143. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/form_test.info +12 -0
  144. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/form_test.module +0 -0
  145. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/image_test.info +12 -0
  146. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/image_test.module +0 -0
  147. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/menu_test.info +12 -0
  148. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/menu_test.module +0 -0
  149. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/module_test.info +12 -0
  150. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/module_test.module +0 -0
  151. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/requirements1_test.info +12 -0
  152. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/requirements1_test.module +0 -0
  153. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/requirements2_test.info +14 -0
  154. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/requirements2_test.module +0 -0
  155. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/session_test.info +12 -0
  156. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/session_test.module +0 -0
  157. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_dependencies_test.info +13 -0
  158. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_dependencies_test.module +0 -0
  159. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info +13 -0
  160. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module +0 -0
  161. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_core_version_test.info +12 -0
  162. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_core_version_test.module +0 -0
  163. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info +14 -0
  164. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module +0 -0
  165. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_module_version_test.info +12 -0
  166. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_incompatible_module_version_test.module +0 -0
  167. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_test.info +13 -0
  168. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/system_test.module +0 -0
  169. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/taxonomy_test.info +13 -0
  170. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/taxonomy_test.module +0 -0
  171. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/theme_test.info +12 -0
  172. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/theme_test.module +0 -0
  173. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_script_test.info +12 -0
  174. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_script_test.module +0 -0
  175. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_1.info +12 -0
  176. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_1.module +0 -0
  177. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_2.info +12 -0
  178. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_2.module +0 -0
  179. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_3.info +12 -0
  180. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/update_test_3.module +0 -0
  181. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/url_alter_test.info +12 -0
  182. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/url_alter_test.module +0 -0
  183. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/xmlrpc_test.info +12 -0
  184. data/test/fixtures/drupal-fake-site/modules/simpletest/tests/xmlrpc_test.module +0 -0
  185. data/test/fixtures/drupal-fake-site/modules/statistics/statistics.info +13 -0
  186. data/test/fixtures/drupal-fake-site/modules/statistics/statistics.module +0 -0
  187. data/test/fixtures/drupal-fake-site/modules/syslog/syslog.info +12 -0
  188. data/test/fixtures/drupal-fake-site/modules/syslog/syslog.module +0 -0
  189. data/test/fixtures/drupal-fake-site/modules/system/system.info +19 -0
  190. data/test/fixtures/drupal-fake-site/modules/system/system.module +0 -0
  191. data/test/fixtures/drupal-fake-site/modules/taxonomy/taxonomy.info +15 -0
  192. data/test/fixtures/drupal-fake-site/modules/taxonomy/taxonomy.module +0 -0
  193. data/test/fixtures/drupal-fake-site/modules/toolbar/toolbar.info +11 -0
  194. data/test/fixtures/drupal-fake-site/modules/toolbar/toolbar.module +0 -0
  195. data/test/fixtures/drupal-fake-site/modules/tracker/tracker.info +13 -0
  196. data/test/fixtures/drupal-fake-site/modules/tracker/tracker.module +0 -0
  197. data/test/fixtures/drupal-fake-site/modules/translation/tests/translation_test.info +12 -0
  198. data/test/fixtures/drupal-fake-site/modules/translation/tests/translation_test.module +0 -0
  199. data/test/fixtures/drupal-fake-site/modules/translation/translation.info +13 -0
  200. data/test/fixtures/drupal-fake-site/modules/translation/translation.module +0 -0
  201. data/test/fixtures/drupal-fake-site/modules/trigger/tests/trigger_test.info +11 -0
  202. data/test/fixtures/drupal-fake-site/modules/trigger/tests/trigger_test.module +0 -0
  203. data/test/fixtures/drupal-fake-site/modules/trigger/trigger.info +13 -0
  204. data/test/fixtures/drupal-fake-site/modules/trigger/trigger.module +0 -0
  205. data/test/fixtures/drupal-fake-site/modules/update/tests/aaa_update_test.info +11 -0
  206. data/test/fixtures/drupal-fake-site/modules/update/tests/aaa_update_test.module +0 -0
  207. data/test/fixtures/drupal-fake-site/modules/update/tests/bbb_update_test.info +11 -0
  208. data/test/fixtures/drupal-fake-site/modules/update/tests/bbb_update_test.module +0 -0
  209. data/test/fixtures/drupal-fake-site/modules/update/tests/ccc_update_test.info +11 -0
  210. data/test/fixtures/drupal-fake-site/modules/update/tests/ccc_update_test.module +0 -0
  211. data/test/fixtures/drupal-fake-site/modules/update/tests/update_test.info +12 -0
  212. data/test/fixtures/drupal-fake-site/modules/update/tests/update_test.module +0 -0
  213. data/test/fixtures/drupal-fake-site/modules/update/update.info +13 -0
  214. data/test/fixtures/drupal-fake-site/modules/update/update.module +0 -0
  215. data/test/fixtures/drupal-fake-site/modules/user/tests/user_form_test.info +12 -0
  216. data/test/fixtures/drupal-fake-site/modules/user/tests/user_form_test.module +0 -0
  217. data/test/fixtures/drupal-fake-site/modules/user/user.info +16 -0
  218. data/test/fixtures/drupal-fake-site/modules/user/user.module +0 -0
  219. data/test/fixtures/drupal-fake-site/profiles/minimal/minimal.info +13 -0
  220. data/test/fixtures/drupal-fake-site/profiles/minimal/minimal.profile +0 -0
  221. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/combineblocks/combineblocks.info +11 -0
  222. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/openpublic_api/openpublic_api.info +12 -0
  223. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/openpublic_splash/openpublic_splash.info +16 -0
  224. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/phase2_blog/phase2_blog.info +32 -0
  225. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/phase2_document/phase2_document.info +38 -0
  226. data/test/fixtures/drupal-fake-site/profiles/openpublic/modules/custom/phase2_profile/phase2_profile.info +45 -0
  227. data/test/fixtures/drupal-fake-site/profiles/openpublic/openpublic.info +137 -0
  228. data/test/fixtures/drupal-fake-site/profiles/openpublic/openpublic.make +149 -0
  229. data/test/fixtures/drupal-fake-site/profiles/openpublic/openpublic.profile +0 -0
  230. data/test/fixtures/drupal-fake-site/profiles/openpublic/themes/openomega/openomega.info +434 -0
  231. data/test/fixtures/drupal-fake-site/profiles/openpublic/themes/openpublic_theme/.project +11 -0
  232. data/test/fixtures/drupal-fake-site/profiles/openpublic/themes/openpublic_theme/openpublic_theme.info +51 -0
  233. data/test/fixtures/drupal-fake-site/profiles/openpublic/themes/spartan/spartan.info +434 -0
  234. data/test/fixtures/drupal-fake-site/profiles/standard/standard.info +32 -0
  235. data/test/fixtures/drupal-fake-site/profiles/standard/standard.profile +0 -0
  236. data/test/fixtures/drupal-fake-site/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +12 -0
  237. data/test/fixtures/drupal-fake-site/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +15 -0
  238. data/test/fixtures/drupal-fake-site/profiles/testing/testing.info +11 -0
  239. data/test/fixtures/drupal-fake-site/profiles/testing/testing.profile +0 -0
  240. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/entity.info +31 -0
  241. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/entity.module +0 -0
  242. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/entity_token.info +13 -0
  243. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/entity_token.module +0 -0
  244. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/tests/entity_feature.info +14 -0
  245. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/tests/entity_feature.module +0 -0
  246. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/tests/entity_test.info +15 -0
  247. data/test/fixtures/drupal-fake-site/sites/all/modules/entity/tests/entity_test.module +0 -0
  248. data/test/fixtures/drupal-fake-site/sites/all/modules/featured_news_feature/featured_news.info +23 -0
  249. data/test/fixtures/drupal-fake-site/sites/all/modules/featured_news_feature/featured_news.module +0 -0
  250. data/test/fixtures/drupal-fake-site/sites/all/modules/google_analytics/googleanalytics.info +13 -0
  251. data/test/fixtures/drupal-fake-site/sites/all/modules/google_analytics/googleanalytics.module +0 -0
  252. data/test/fixtures/drupal-fake-site/sites/all/modules/media/media.info +26 -0
  253. data/test/fixtures/drupal-fake-site/sites/all/modules/media/media.module +0 -0
  254. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate.info +47 -0
  255. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate.module +0 -0
  256. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_example/migrate_example.info +27 -0
  257. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_example/migrate_example.module +0 -0
  258. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_example_baseball/migrate_example_baseball.info +32 -0
  259. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_example_baseball/migrate_example_baseball.module +0 -0
  260. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_ui/migrate_ui.info +15 -0
  261. data/test/fixtures/drupal-fake-site/sites/all/modules/migrate/migrate_ui/migrate_ui.module +0 -0
  262. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/bulk_export/bulk_export.info +12 -0
  263. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/bulk_export/bulk_export.module +0 -0
  264. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools.info +14 -0
  265. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools.module +0 -0
  266. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_access_ruleset/ctools_access_ruleset.info +12 -0
  267. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_access_ruleset/ctools_access_ruleset.module +0 -0
  268. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_ajax_sample/ctools_ajax_sample.info +12 -0
  269. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_ajax_sample/ctools_ajax_sample.module +0 -0
  270. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_custom_content/ctools_custom_content.info +12 -0
  271. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_custom_content/ctools_custom_content.module +0 -0
  272. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_plugin_example/ctools_plugin_example.info +15 -0
  273. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/ctools_plugin_example/ctools_plugin_example.module +0 -0
  274. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/page_manager/page_manager.info +12 -0
  275. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/page_manager/page_manager.module +0 -0
  276. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/stylizer/stylizer.info +13 -0
  277. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/stylizer/stylizer.module +0 -0
  278. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/tests/ctools_plugin_test.info +15 -0
  279. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/tests/ctools_plugin_test.module +0 -0
  280. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/views_content/views_content.info +17 -0
  281. data/test/fixtures/drupal-fake-site/sites/all/modules/subdir/ctools/views_content/views_content.module +0 -0
  282. data/test/fixtures/drupal-fake-site/sites/all/modules/views/tests/views_test.info +13 -0
  283. data/test/fixtures/drupal-fake-site/sites/all/modules/views/tests/views_test.module +0 -0
  284. data/test/fixtures/drupal-fake-site/sites/all/modules/views/views.info +297 -0
  285. data/test/fixtures/drupal-fake-site/sites/all/modules/views/views.module +0 -0
  286. data/test/fixtures/drupal-fake-site/sites/all/modules/views/views_ui.info +15 -0
  287. data/test/fixtures/drupal-fake-site/sites/all/modules/views/views_ui.module +0 -0
  288. data/test/fixtures/drupal-fake-site/sites/all/modules/wysiwyg/tests/wysiwyg_test.info +14 -0
  289. data/test/fixtures/drupal-fake-site/sites/all/modules/wysiwyg/tests/wysiwyg_test.module +0 -0
  290. data/test/fixtures/drupal-fake-site/sites/all/modules/wysiwyg/wysiwyg.info +17 -0
  291. data/test/fixtures/drupal-fake-site/sites/all/modules/wysiwyg/wysiwyg.module +0 -0
  292. data/test/fixtures/drupal-fake-site/sites/all/themes/fusion/fusion_core/fusion_core.info +102 -0
  293. data/test/fixtures/drupal-fake-site/sites/all/themes/fusion/fusion_starter/fusion_starter.info +190 -0
  294. data/test/fixtures/drupal-fake-site/sites/all/themes/fusion/fusion_starter_lite/fusion_starter_lite.info +170 -0
  295. data/test/fixtures/drupal-fake-site/sites/all/themes/subdir/mothership/.gitignore +3 -0
  296. data/test/fixtures/drupal-fake-site/sites/all/themes/subdir/mothership/NEWTHEME/NEWTHEME.info +124 -0
  297. data/test/fixtures/drupal-fake-site/sites/all/themes/subdir/mothership/mothership/mothership.info +126 -0
  298. data/test/fixtures/drupal-fake-site/sites/all/themes/subdir/mothership/mothershipstark/mothershipstark.info +15 -0
  299. data/test/fixtures/drupal-fake-site/sites/all/themes/subdir/mothership/tema/tema.info +58 -0
  300. data/test/fixtures/drupal-fake-site/sites/all/themes/tao/tao.info +49 -0
  301. data/test/fixtures/drupal-fake-site/sites/default/settings.php +0 -0
  302. data/test/fixtures/drupal-fake-site/sites/www.bar.org/settings.php +0 -0
  303. data/test/fixtures/drupal-fake-site/sites/www.foo.org/settings.php +0 -0
  304. data/test/fixtures/drupal-fake-site/themes/bartik/bartik.info +41 -0
  305. data/test/fixtures/drupal-fake-site/themes/garland/garland.info +14 -0
  306. data/test/fixtures/drupal-fake-site/themes/seven/seven.info +20 -0
  307. data/test/fixtures/drupal-fake-site/themes/stark/stark.info +12 -0
  308. data/test/fixtures/drupal-fake-site/themes/tests/block_test_theme/block_test_theme.info +20 -0
  309. data/test/fixtures/drupal-fake-site/themes/tests/test_theme/test_theme.info +22 -0
  310. data/test/fixtures/drupal-fake-site/themes/tests/update_test_basetheme/update_test_basetheme.info +10 -0
  311. data/test/fixtures/drupal-fake-site/themes/tests/update_test_subtheme/update_test_subtheme.info +11 -0
  312. data/test/fixtures/fake_library.tar.gz +0 -0
  313. data/test/fixtures/rootcandy/rootcandy.info +52 -0
  314. data/test/fixtures/views-info.diff +11 -0
  315. data/test/fixtures/views.tar.gz +0 -0
  316. data/test/helper.rb +7 -0
  317. data/test/makefiles/test1.make +20 -0
  318. data/test/makefiles/test2.make +14 -0
  319. data/test/makefiles/test3.make +8 -0
  320. data/test/test_drupid_component.rb +120 -0
  321. data/test/test_drupid_download_strategy.rb +112 -0
  322. data/test/test_drupid_drush.rb +32 -0
  323. data/test/test_drupid_extend_pathname.rb +33 -0
  324. data/test/test_drupid_library.rb +62 -0
  325. data/test/test_drupid_makefile.rb +181 -0
  326. data/test/test_drupid_patch.rb +53 -0
  327. data/test/test_drupid_platform.rb +207 -0
  328. data/test/test_drupid_platform_project.rb +206 -0
  329. data/test/test_drupid_project.rb +650 -0
  330. data/test/test_drupid_updater.rb +76 -0
  331. data/test/test_drupid_version.rb +295 -0
  332. data/test/test_pathname.rb +67 -0
  333. metadata +696 -5
@@ -0,0 +1,76 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # Copyright (c) 2012-2013 Lifepillar
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require 'helper'
24
+
25
+ class TestDrupidUpdater < Minitest::Test
26
+
27
+ def setup
28
+ @mf = Drupid::Makefile.new(FIXTURES+'drupal-example.make')
29
+ @pl = Drupid::Platform.new(TESTSITE)
30
+ @updater = Drupid::Updater.new(@mf, @pl)
31
+ end
32
+
33
+ def test_create_updater
34
+ assert_instance_of Drupid::Updater, @updater
35
+ assert_equal @mf, @updater.makefile
36
+ assert_equal @pl, @updater.platform
37
+ assert_instance_of Drupid::Updater::Log, @updater.log
38
+ refute @updater.pending_actions?
39
+ end
40
+
41
+ def test_excluded_projects
42
+ assert_empty @updater.excluded
43
+ @updater.exclude ['foo','bar']
44
+ assert_equal 2, @updater.excluded.size
45
+ assert @updater.excluded? 'foo'
46
+ assert @updater.excluded? 'bar'
47
+ refute @updater.excluded? 'tom'
48
+ assert_includes @updater.excluded, 'foo'
49
+ assert_includes @updater.excluded, 'bar'
50
+ end
51
+
52
+ def test_create_update_actions
53
+ views = Drupid::PlatformProject.new(@pl, TESTSITE+'sites/all/modules/views')
54
+ action = Drupid::Updater::UpdateProjectAction.new(@pl, views)
55
+ assert_instance_of Drupid::Updater::UpdateProjectAction, action
56
+ assert action.pending?
57
+ end
58
+
59
+ end # TestDrupidUpdater
60
+
61
+
62
+ class TestDrupidUpdaterLog < Minitest::Test
63
+
64
+ def test_create_updater_log
65
+ log = Drupid::Updater::Log.new
66
+ assert_empty log.actions
67
+ assert_empty log.errors
68
+ assert_empty log.warnings
69
+ assert_empty log.notices
70
+ assert_respond_to log, 'action'
71
+ assert_respond_to log, 'error'
72
+ assert_respond_to log, 'warning'
73
+ assert_respond_to log, 'notice'
74
+ end
75
+
76
+ end # TestDrupidUpdaterLog
@@ -0,0 +1,295 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # Copyright (c) 2012-2013 Lifepillar
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require 'helper'
24
+
25
+ class TestDrupidVersion < Minitest::Test
26
+
27
+ def test_version_object_creation
28
+ v = Drupid::Version.new(7, '1.0-rc4')
29
+ assert_instance_of Drupid::VersionCore, v.core, 'Core version should be a Drupid::VersionCore object'
30
+ assert_equal '7.x', v.core.to_s
31
+ assert_equal 7, v.core.to_i
32
+ assert_equal 1, v.major
33
+ assert_equal 0, v.patchlevel
34
+ assert_equal 'rc4', v.extra
35
+ assert_equal '1.0-rc4', v.short
36
+ assert_equal '7.x-1.0-rc4', v.long
37
+ v = Drupid::Version.new(7, '1.0-unstable5')
38
+ assert_equal 7, v.core.to_i
39
+ assert_equal 1, v.major
40
+ assert_equal 0, v.patchlevel
41
+ assert_equal Drupid::Version::UNSTABLE, v.extra_type
42
+ assert_equal 5, v.extra_num
43
+ assert_equal 'unstable5', v.extra
44
+ assert_equal '1.0-unstable5', v.short
45
+ assert_equal '7.x-1.0-unstable5', v.long
46
+ end
47
+
48
+ def test_damned_drupal_dev_version
49
+ # Yes, projects typically (always?) have NUM.x-dev, but Drupal has NUM.NUM-dev...
50
+ v = Drupid::Version.new(7, '7.24-dev')
51
+ assert_equal '7.x', v.core.to_s
52
+ assert_equal 7, v.major
53
+ assert_equal 24, v.patchlevel
54
+ assert_equal 'dev', v.extra
55
+ assert_equal '7.24-dev', v.short
56
+ assert_equal '7.x-7.24-dev', v.long
57
+ end
58
+
59
+ def test_core
60
+ core = Drupid::VersionCore.new '8.x'
61
+ assert_equal 8, core.to_i
62
+ assert_equal '8.x', core.to_s
63
+ core = Drupid::VersionCore.new '8'
64
+ assert_equal 8, core.to_i
65
+ assert_equal '8.x', core.to_s
66
+ core = Drupid::VersionCore.new '8.x-1.0'
67
+ assert_equal 8, core.to_i
68
+ assert_equal '8.x', core.to_s
69
+ core = Drupid::VersionCore.new 8
70
+ assert_equal 8, core.to_i
71
+ assert_equal '8.x', core.to_s
72
+ core = Drupid::VersionCore.new(Drupid::Version.new(8, '1.0'))
73
+ assert_equal 8, core.to_i
74
+ assert_equal '8.x', core.to_s
75
+ core2 = Drupid::VersionCore.new core
76
+ assert_equal 8, core2.to_i
77
+ assert_equal '8.x', core2.to_s
78
+ assert_raises Drupid::NotDrupalVersionError do
79
+ # We do not accept this as it is not distinguishable
80
+ # from a short project version.
81
+ core = Drupid::VersionCore.new '8.0'
82
+ end
83
+ end
84
+
85
+ def test_version_short_and_long
86
+ v = Drupid::Version.new(8, '1.0-rc4')
87
+ assert_instance_of Fixnum, v.major
88
+ assert_equal 1, v.major
89
+ assert_instance_of Fixnum, v.patchlevel
90
+ assert_equal 0, v.patchlevel
91
+ assert_instance_of Fixnum, v.extra_type
92
+ assert_equal Drupid::Version::RC, v.extra_type
93
+ assert_instance_of Fixnum, v.extra_num
94
+ assert_equal 4, v.extra_num
95
+ assert_equal '1.0-rc4', v.short
96
+ assert_equal '8.x-1.0-rc4', v.long
97
+ v = Drupid::Version.new(10, '17.123-unstable18')
98
+ assert_equal '17.123-unstable18', v.short
99
+ assert_equal '10.x-17.123-unstable18', v.long
100
+ v = Drupid::Version.new(0, '1.x-dev23')
101
+ assert_equal '1.x-dev23', v.short
102
+ assert_equal '0.x-1.x-dev23', v.long
103
+ v = Drupid::Version.new(8, '2.x-dev')
104
+ assert_equal '2.x-dev', v.short
105
+ assert_equal '8.x-2.x-dev', v.long
106
+ v = Drupid::Version.new(8, '1.0')
107
+ assert_equal '1.0', v.short
108
+ assert_equal '8.x-1.0', v.long
109
+ end
110
+
111
+ def test_version_equality_comparison
112
+ v1 = Drupid::Version.new(8, '1.0-rc2')
113
+ v2 = Drupid::Version.new(8, '1.0')
114
+ v3 = Drupid::Version.new(8, '1.0')
115
+ v4 = Drupid::Version.new(9, '1.0')
116
+ v5 = Drupid::Version.new(7, '1.0')
117
+ assert_equal v2, v2, 'An object should be == to itself'
118
+ assert_equal v2, v3, 'An object should be == to itself'
119
+ assert_equal v3, v2, 'v2 and v3 should compare =='
120
+ assert v1.eql?(v1), 'v1 should be eql? to itself'
121
+ assert v2.eql?(v2), 'v2 should be eql? to itself'
122
+ refute v2.eql?(v3), 'v2 should not be eql? to v3'
123
+ refute v3.eql?(v2), 'v3 should not be eql? to v2'
124
+ refute_equal v1, v2, "v1 (#{v1.to_s}) should not be == to v2 (#{v2.to_s})"
125
+ refute_equal v2, v1, 'v2 should not be == to v1'
126
+ refute_equal v3, v4, 'v3 should not be == to v4'
127
+ refute_equal v3, v5, 'v3 should not be == to v5'
128
+ end
129
+
130
+ def test_less_than_comparison
131
+ v1 = Drupid::Version.new(8, '1.0-unstable1')
132
+ v2 = Drupid::Version.new(8, '1.0-unstable5')
133
+ v3 = Drupid::Version.new(8, '1.0-alpha1')
134
+ v4 = Drupid::Version.new(8, '1.0-alpha4')
135
+ v5 = Drupid::Version.new(8, '1.0-beta1')
136
+ v6 = Drupid::Version.new(8, '1.0-beta12')
137
+ v7 = Drupid::Version.new(8, '1.0-rc1')
138
+ v8 = Drupid::Version.new(8, '1.0-rc2')
139
+ v9 = Drupid::Version.new(8, '1.0')
140
+ v10 = Drupid::Version.new(8, '1.0')
141
+ v11 = Drupid::Version.new(8, '1.1')
142
+ v12 = Drupid::Version.new(8, '1.x-dev')
143
+ v13 = Drupid::Version.new(8, '2.0')
144
+ v14 = Drupid::Version.new(9, '2.0')
145
+ v15 = Drupid::Version.new(7, '2.0')
146
+ assert v1 < v2, 'v1 < v2'
147
+ assert v2 < v3, 'v2 < v3'
148
+ assert v3 < v4, 'v3 < v4'
149
+ assert v4 < v5, 'v4 < v5'
150
+ assert v5 < v6, 'v5 < v6'
151
+ assert v6 < v7, 'v6 < v7'
152
+ assert v7 < v8, 'v7 < v8'
153
+ assert v8 < v9, 'v8 < v9'
154
+ refute v9 < v10, 'v9 == v10'
155
+ assert v10 < v11, 'v10 < v11'
156
+ assert v12 < v11, 'v12 < v11'
157
+ assert v12 < v13, 'v12 < v13'
158
+ assert v13 < v14, 'v13 < v14'
159
+ assert v15 < v13, 'v15 < v13'
160
+ assert v12 < v1, 'v12 < v1'
161
+ end
162
+
163
+ def test_multiway_comparison
164
+ v1 = Drupid::Version.new(8, '1.0-unstable1')
165
+ v2 = Drupid::Version.new(8, '1.0-unstable5')
166
+ v3 = Drupid::Version.new(8, '1.0-alpha1')
167
+ v4 = Drupid::Version.new(8, '1.0-alpha4')
168
+ v5 = Drupid::Version.new(8, '1.0-beta1')
169
+ v6 = Drupid::Version.new(8, '1.0-beta12')
170
+ v7 = Drupid::Version.new(8, '1.0-rc1')
171
+ v8 = Drupid::Version.new(8, '1.0-rc2')
172
+ v9 = Drupid::Version.new(8, '1.0')
173
+ v10 = Drupid::Version.new(8, '1.0')
174
+ v11 = Drupid::Version.new(8, '1.1')
175
+ v12 = Drupid::Version.new(8, '1.x-dev')
176
+ v13 = Drupid::Version.new(8, '2.0')
177
+ v14 = Drupid::Version.new(9, '2.0')
178
+ v15 = Drupid::Version.new(7, '2.0')
179
+
180
+ assert_equal(-1, v1 <=> v2, 'v1 <=> v2')
181
+ assert_equal(-1, v2 <=> v3, 'v2 <=> v3')
182
+ assert_equal(-1, v3 <=> v4, 'v3 <=> v4')
183
+ assert_equal(-1, v4 <=> v5, 'v4 <=> v5')
184
+ assert_equal(-1, v5 <=> v6, 'v5 <=> v6')
185
+ assert_equal(-1, v6 <=> v7, 'v6 <=> v7')
186
+ assert_equal(-1, v7 <=> v8, 'v7 <=> v8')
187
+ assert_equal(-1, v8 <=> v9, 'v8 <=> v9')
188
+ assert_equal 0, v9 <=> v10, 'v9 <=> v10'
189
+ assert_equal 0, v10 <=> v9, 'v10 <=> v9'
190
+ assert_equal 0, v10 <=> v10, 'v10 <=> v10'
191
+ assert_equal(-1, v10 <=> v11, 'v10 <=> v11')
192
+ assert_equal( 1, v11 <=> v12, 'v11 <=> v12')
193
+ assert_equal(-1, v12 <=> v1, 'v12 <=> v11')
194
+ assert_equal(-1, v12 <=> v13, 'v12 <=> v13')
195
+ assert_equal 1, v2 <=> v1
196
+ assert_equal(-1, v13 <=> v14)
197
+ assert_equal 1, v13 <=> v15
198
+ end
199
+
200
+ def test_version_from_string
201
+ versions = ['8.x-1.0', '7.x-1.x-dev']
202
+ versions.each do |vs|
203
+ v = Drupid::Version.from_s vs
204
+ assert_instance_of Drupid::Version, v, "Not a Drupid::Version object: #{vs}"
205
+ assert_equal vs, v.long, "Wrong long version: #{vs}"
206
+ end
207
+ end
208
+
209
+ def test_wrong_version_specification
210
+ assert_raises Drupid::NotDrupalVersionError do
211
+ Drupid::Version.from_s '1.0' # missing core number (e.g., '7.x-1.0')
212
+ end
213
+ assert_raises RuntimeError do
214
+ Drupid::Version.new(7, 1.0)
215
+ end
216
+ end
217
+
218
+ def test_version_extra
219
+ v1 = Drupid::Version.new(8, '1.0-unstable1')
220
+ v2 = Drupid::Version.new(8, '1.0-alpha4')
221
+ v3 = Drupid::Version.new(8, '1.0-beta12')
222
+ v4 = Drupid::Version.new(8, '1.0-rc2')
223
+ v5 = Drupid::Version.new(8, '1.0')
224
+ v6 = Drupid::Version.new(8, '1.x-dev')
225
+ v7 = Drupid::Version.new(8, '8.x')
226
+ refute v1.stable?, 'v1 is not stable'
227
+ refute v2.stable?, 'v2 is not stable'
228
+ refute v3.stable?, 'v3 is not stable'
229
+ refute v4.stable?, 'v4 is not stable'
230
+ assert v5.stable?, 'v5 is stable'
231
+ refute v6.stable?, 'v6 is not stable'
232
+ refute v7.stable?, 'v7 is not stable'
233
+ refute v1.release_candidate?, 'v1 is not rc'
234
+ refute v2.release_candidate?, 'v2 is not rc'
235
+ refute v3.release_candidate?, 'v3 is not rc'
236
+ assert v4.release_candidate?, 'v4 is rc'
237
+ refute v5.release_candidate?, 'v5 is not rc'
238
+ refute v6.release_candidate?, 'v6 is not rc'
239
+ refute v7.release_candidate?, 'v7 is not rc'
240
+ refute v1.alpha?, 'v1 is not alpha'
241
+ assert v2.alpha?, 'v2 is alpha'
242
+ refute v3.alpha?, 'v3 is not alpha'
243
+ refute v4.alpha?, 'v4 is not alpha'
244
+ refute v5.alpha?, 'v5 is not alpha'
245
+ refute v6.alpha?, 'v6 is not alpha'
246
+ refute v7.alpha?, 'v7 is not alpha'
247
+ refute v1.beta?, 'v1 is not beta'
248
+ refute v2.beta?, 'v2 is not beta'
249
+ assert v3.beta?, 'v3 is beta'
250
+ refute v4.beta?, 'v4 is not beta'
251
+ refute v5.beta?, 'v5 is not beta'
252
+ refute v6.beta?, 'v6 is not beta'
253
+ refute v7.beta?, 'v7 is not beta'
254
+ refute v1.development_snapshot?, 'v1 is not development snapshot'
255
+ refute v2.development_snapshot?, 'v2 is not development snapshot'
256
+ refute v3.development_snapshot?, 'v3 is not development snapshot'
257
+ refute v4.development_snapshot?, 'v4 is not development snapshot'
258
+ refute v5.development_snapshot?, 'v5 is not development snapshot'
259
+ assert v6.development_snapshot?, 'v6 is not development snapshot'
260
+ assert v7.development_snapshot?, 'v7 is not development snapshot'
261
+ end
262
+
263
+ def test_natural_ordering
264
+ vv = ['0.x', '0.9-alpha4', '0.9-beta0', '0.9', '1.x-dev',
265
+ '1.x-dev2', '1.0-unstable1', '1.0-alpha4', '1.0-alpha40',
266
+ '1.0-beta1', '1.0-beta12', '1.0-rc1', '1.0-rc2', '1.0-rc21',
267
+ '1.0', '1.1-dev', '1.1-beta1', '1.1', '2.x-dev']
268
+ vv2 = vv.shuffle
269
+ vv2.map! { |v| Drupid::Version.new(8, v) }
270
+ vv2.sort!
271
+ vv2.map! { |v| v.short }
272
+ assert_equal vv, vv2, 'not sorted correctly'
273
+
274
+ vv = ['1.x-dev', '1.x', '1.0-unstable6', '1.0-alpha4', '1.0-beta0',
275
+ '1.0-rc1', '1.0', '2.x-dev']
276
+ vv2 = vv.shuffle
277
+ vv2.map! { |v| Drupid::Version.new(8, v) }
278
+ vv2.sort!
279
+ vv2.map! { |v| v.short }
280
+ assert_equal vv, vv2, 'not sorted correctly'
281
+ end
282
+
283
+ def test_best_version
284
+ vv = ['0.x', '1.x-dev', '1.x-dev2', '1.1-dev', '2.x-dev', '1.0-unstable1',
285
+ '0.9-alpha4', '1.0-alpha4', '1.0-alpha40',
286
+ '0.9-beta0', '1.0-beta1', '1.0-beta12', '1.1-beta1',
287
+ '1.0-rc1', '1.0-rc2', '1.0-rc21', '0.9', '1.0', '1.1']
288
+ vv2 = vv.shuffle
289
+ vv2.map! { |v| Drupid::Version.new(7, v) }
290
+ vv2.sort! { |a,b| a.better(b) }
291
+ vv2.map! { |v| v.short }
292
+ assert_equal vv, vv2, 'not sorted correctly'
293
+ end
294
+
295
+ end # TestDrupidVersion
@@ -0,0 +1,67 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # Copyright (c) 2012-2013 Lifepillar
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require 'helper'
24
+
25
+ class TestPathname < Minitest::Test
26
+
27
+ def setup
28
+ @temp_dir = FIXTURES + 'templib'
29
+ @temp_dir.mkpath
30
+ end
31
+
32
+ def teardown
33
+ @temp_dir.rmtree
34
+ end
35
+
36
+ def test_ditto_src_file_dst_dir
37
+ file = FIXTURES+'drupal-example.make'
38
+ dst = file.ditto @temp_dir
39
+ assert_instance_of Pathname, dst
40
+ assert dst.exist?
41
+ assert dst.file?
42
+ assert_equal 'drupal-example.make', dst.basename.to_s
43
+ assert_equal @temp_dir, dst.parent
44
+ end
45
+
46
+ def test_ditto_src_file_dst_file
47
+ file = FIXTURES+'drupal-example.make'
48
+ dst = file.ditto @temp_dir+'drupal-example-copy.make'
49
+ assert_instance_of Pathname, dst
50
+ assert dst.exist?
51
+ assert dst.file?
52
+ assert_equal 'drupal-example-copy.make', dst.basename.to_s
53
+ assert_equal @temp_dir, dst.parent
54
+ end
55
+
56
+ def test_ditto_src_dir_dst_dir
57
+ dir = TESTSITE+'modules/aggregator'
58
+ dst = dir.ditto @temp_dir
59
+ assert_instance_of Pathname, dst
60
+ assert dst.exist?
61
+ assert dst.directory?
62
+ assert_equal @temp_dir, dst
63
+ assert((dst+'aggregator.info').exist?)
64
+ assert((dst+'tests').directory?)
65
+ end
66
+
67
+ end # TestPathname