rubygems-update 3.4.22 → 3.5.1

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 (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +254 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +46 -30
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. data/test/test_changelog_generator.rb +0 -17
@@ -1,305 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/version"
5
-
6
- class TestGemVersion < Gem::TestCase
7
- class V < ::Gem::Version
8
- end
9
-
10
- def test_bump
11
- assert_bumped_version_equal "5.3", "5.2.4"
12
- end
13
-
14
- def test_bump_alpha
15
- assert_bumped_version_equal "5.3", "5.2.4.a"
16
- end
17
-
18
- def test_bump_alphanumeric
19
- assert_bumped_version_equal "5.3", "5.2.4.a10"
20
- end
21
-
22
- def test_bump_trailing_zeros
23
- assert_bumped_version_equal "5.1", "5.0.0"
24
- end
25
-
26
- def test_bump_one_level
27
- assert_bumped_version_equal "6", "5"
28
- end
29
-
30
- # A Gem::Version is already a Gem::Version and therefore not transformed by
31
- # Gem::Version.create
32
-
33
- def test_class_create
34
- real = Gem::Version.new(1.0)
35
-
36
- assert_same real, Gem::Version.create(real)
37
-
38
- expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
39
- actual_stdout, actual_stderr = capture_output do
40
- assert_nil Gem::Version.create(nil)
41
- end
42
- assert_empty actual_stdout
43
- assert_equal(expected, actual_stderr)
44
-
45
- assert_equal v("5.1"), Gem::Version.create("5.1")
46
-
47
- ver = "1.1"
48
- assert_equal v("1.1"), Gem::Version.create(ver)
49
- end
50
-
51
- def test_class_correct
52
- assert_equal true, Gem::Version.correct?("5.1")
53
- assert_equal false, Gem::Version.correct?("an incorrect version")
54
-
55
- expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
56
- actual_stdout, actual_stderr = capture_output do
57
- Gem::Version.correct?(nil)
58
- end
59
- assert_empty actual_stdout
60
- assert_equal(expected, actual_stderr)
61
- end
62
-
63
- def test_class_new_subclass
64
- v1 = Gem::Version.new "1"
65
- v2 = V.new "1"
66
-
67
- refute_same v1, v2
68
- end
69
-
70
- def test_eql_eh
71
- assert_version_eql "1.2", "1.2"
72
- refute_version_eql "1.2", "1.2.0"
73
- refute_version_eql "1.2", "1.3"
74
- refute_version_eql "1.2.b1", "1.2.b.1"
75
- end
76
-
77
- def test_equals2
78
- assert_version_equal "1.2", "1.2"
79
- refute_version_equal "1.2", "1.3"
80
- assert_version_equal "1.2.b1", "1.2.b.1"
81
- end
82
-
83
- # REVISIT: consider removing as too impl-bound
84
- def test_hash
85
- assert_equal v("1.2").hash, v("1.2").hash
86
- refute_equal v("1.2").hash, v("1.3").hash
87
- assert_equal v("1.2").hash, v("1.2.0").hash
88
- assert_equal v("1.2.pre.1").hash, v("1.2.0.pre.1.0").hash
89
- end
90
-
91
- def test_initialize
92
- ["1.0", "1.0 ", " 1.0 ", "1.0\n", "\n1.0\n", "1.0"].each do |good|
93
- assert_version_equal "1.0", good
94
- end
95
-
96
- assert_version_equal "1", 1
97
- end
98
-
99
- def test_initialize_invalid
100
- invalid_versions = %W[
101
- junk
102
- 1.0\n2.0
103
- 1..2
104
- 1.2\ 3.4
105
- ]
106
-
107
- # DON'T TOUCH THIS WITHOUT CHECKING CVE-2013-4287
108
- invalid_versions << "2.3422222.222.222222222.22222.ads0as.dasd0.ddd2222.2.qd3e."
109
-
110
- invalid_versions.each do |invalid|
111
- e = assert_raise ArgumentError, invalid do
112
- Gem::Version.new invalid
113
- end
114
-
115
- assert_equal "Malformed version number string #{invalid}", e.message, invalid
116
- end
117
- end
118
-
119
- def test_empty_version
120
- ["", " ", " "].each do |empty|
121
- assert_equal "0", Gem::Version.new(empty).version
122
- end
123
- end
124
-
125
- def test_prerelease
126
- assert_prerelease "1.2.0.a"
127
- assert_prerelease "2.9.b"
128
- assert_prerelease "22.1.50.0.d"
129
- assert_prerelease "1.2.d.42"
130
-
131
- assert_prerelease "1.A"
132
-
133
- assert_prerelease "1-1"
134
- assert_prerelease "1-a"
135
-
136
- refute_prerelease "1.2.0"
137
- refute_prerelease "2.9"
138
- refute_prerelease "22.1.50.0"
139
- end
140
-
141
- def test_release
142
- assert_release_equal "1.2.0", "1.2.0.a"
143
- assert_release_equal "1.1", "1.1.rc10"
144
- assert_release_equal "1.9.3", "1.9.3.alpha.5"
145
- assert_release_equal "1.9.3", "1.9.3"
146
- end
147
-
148
- def test_spaceship
149
- assert_equal(0, v("1.0") <=> v("1.0.0"))
150
- assert_equal(1, v("1.0") <=> v("1.0.a"))
151
- assert_equal(1, v("1.8.2") <=> v("0.0.0"))
152
- assert_equal(1, v("1.8.2") <=> v("1.8.2.a"))
153
- assert_equal(1, v("1.8.2.b") <=> v("1.8.2.a"))
154
- assert_equal(-1, v("1.8.2.a") <=> v("1.8.2"))
155
- assert_equal(1, v("1.8.2.a10") <=> v("1.8.2.a9"))
156
- assert_equal(0, v("") <=> v("0"))
157
-
158
- assert_equal(0, v("0.beta.1") <=> v("0.0.beta.1"))
159
- assert_equal(-1, v("0.0.beta") <=> v("0.0.beta.1"))
160
- assert_equal(-1, v("0.0.beta") <=> v("0.beta.1"))
161
-
162
- assert_equal(-1, v("5.a") <=> v("5.0.0.rc2"))
163
- assert_equal(1, v("5.x") <=> v("5.0.0.rc2"))
164
-
165
- assert_equal(0, v("1.9.3") <=> "1.9.3")
166
- assert_equal(1, v("1.9.3") <=> "1.9.2.99")
167
- assert_equal(-1, v("1.9.3") <=> "1.9.3.1")
168
-
169
- assert_nil v("1.0") <=> "whatever"
170
- end
171
-
172
- def test_approximate_recommendation
173
- assert_approximate_equal "~> 1.0", "1"
174
- assert_approximate_satisfies_itself "1"
175
-
176
- assert_approximate_equal "~> 1.0", "1.0"
177
- assert_approximate_satisfies_itself "1.0"
178
-
179
- assert_approximate_equal "~> 1.2", "1.2"
180
- assert_approximate_satisfies_itself "1.2"
181
-
182
- assert_approximate_equal "~> 1.2", "1.2.0"
183
- assert_approximate_satisfies_itself "1.2.0"
184
-
185
- assert_approximate_equal "~> 1.2", "1.2.3"
186
- assert_approximate_satisfies_itself "1.2.3"
187
-
188
- assert_approximate_equal "~> 1.2.a", "1.2.3.a.4"
189
- assert_approximate_satisfies_itself "1.2.3.a.4"
190
-
191
- assert_approximate_equal "~> 1.9.a", "1.9.0.dev"
192
- assert_approximate_satisfies_itself "1.9.0.dev"
193
- end
194
-
195
- def test_to_s
196
- assert_equal "5.2.4", v("5.2.4").to_s
197
- end
198
-
199
- def test_semver
200
- assert_less_than "1.0.0-alpha", "1.0.0-alpha.1"
201
- assert_less_than "1.0.0-alpha.1", "1.0.0-beta.2"
202
- assert_less_than "1.0.0-beta.2", "1.0.0-beta.11"
203
- assert_less_than "1.0.0-beta.11", "1.0.0-rc.1"
204
- assert_less_than "1.0.0-rc1", "1.0.0"
205
- assert_less_than "1.0.0-1", "1"
206
- end
207
-
208
- # modifying the segments of a version should not affect the segments of the cached version object
209
- def test_segments
210
- v("9.8.7").segments[2] += 1
211
-
212
- refute_version_equal "9.8.8", "9.8.7"
213
- assert_equal [9,8,7], v("9.8.7").segments
214
- end
215
-
216
- def test_canonical_segments
217
- assert_equal [1], v("1.0.0").canonical_segments
218
- assert_equal [1, "a", 1], v("1.0.0.a.1.0").canonical_segments
219
- assert_equal [1, 2, 3, "pre", 1], v("1.2.3-1").canonical_segments
220
- end
221
-
222
- def test_frozen_version
223
- v = v("1.freeze.test").freeze
224
- assert_less_than v, v("1")
225
- assert_version_equal v("1"), v.release
226
- assert_version_equal v("2"), v.bump
227
- end
228
-
229
- # Asserts that +version+ is a prerelease.
230
-
231
- def assert_prerelease(version)
232
- assert v(version).prerelease?, "#{version} is a prerelease"
233
- end
234
-
235
- # Assert that +expected+ is the "approximate" recommendation for +version+.
236
-
237
- def assert_approximate_equal(expected, version)
238
- assert_equal expected, v(version).approximate_recommendation
239
- end
240
-
241
- # Assert that the "approximate" recommendation for +version+ satisfies +version+.
242
-
243
- def assert_approximate_satisfies_itself(version)
244
- gem_version = v(version)
245
-
246
- assert Gem::Requirement.new(gem_version.approximate_recommendation).satisfied_by?(gem_version)
247
- end
248
-
249
- # Assert that bumping the +unbumped+ version yields the +expected+.
250
-
251
- def assert_bumped_version_equal(expected, unbumped)
252
- assert_version_equal expected, v(unbumped).bump
253
- end
254
-
255
- # Assert that +release+ is the correct non-prerelease +version+.
256
-
257
- def assert_release_equal(release, version)
258
- assert_version_equal release, v(version).release
259
- end
260
-
261
- # Assert that two versions are equal. Handles strings or
262
- # Gem::Version instances.
263
-
264
- def assert_version_equal(expected, actual)
265
- assert_equal v(expected), v(actual)
266
- assert_equal v(expected).hash, v(actual).hash, "since #{actual} == #{expected}, they must have the same hash"
267
- end
268
-
269
- # Assert that two versions are eql?. Checks both directions.
270
-
271
- def assert_version_eql(first, second)
272
- first = v(first)
273
- second = v(second)
274
- assert first.eql?(second), "#{first} is eql? #{second}"
275
- assert second.eql?(first), "#{second} is eql? #{first}"
276
- end
277
-
278
- def assert_less_than(left, right)
279
- l = v(left)
280
- r = v(right)
281
- assert l < r, "#{left} not less than #{right}"
282
- end
283
-
284
- # Refute the assumption that +version+ is a prerelease.
285
-
286
- def refute_prerelease(version)
287
- refute v(version).prerelease?, "#{version} is NOT a prerelease"
288
- end
289
-
290
- # Refute the assumption that two versions are eql?. Checks both
291
- # directions.
292
-
293
- def refute_version_eql(first, second)
294
- first = v(first)
295
- second = v(second)
296
- refute first.eql?(second), "#{first} is NOT eql? #{second}"
297
- refute second.eql?(first), "#{second} is NOT eql? #{first}"
298
- end
299
-
300
- # Refute the assumption that the two versions are equal?.
301
-
302
- def refute_version_equal(unexpected, actual)
303
- refute_equal v(unexpected), v(actual)
304
- end
305
- end
@@ -1,165 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/command"
5
- require "rubygems/version_option"
6
-
7
- class TestGemVersionOption < Gem::TestCase
8
- def setup
9
- super
10
-
11
- @cmd = Gem::Command.new "dummy", "dummy"
12
- @cmd.extend Gem::VersionOption
13
- end
14
-
15
- def test_add_platform_option
16
- @cmd.add_platform_option
17
-
18
- assert @cmd.handles?(%w[--platform x86-darwin])
19
- end
20
-
21
- def test_add_version_option
22
- @cmd.add_version_option
23
-
24
- assert @cmd.handles?(%w[--version >1])
25
- end
26
-
27
- def test_enables_prerelease
28
- @cmd.add_version_option
29
-
30
- @cmd.handle_options %w[mygem -v 0.2.0.a]
31
- assert @cmd.options[:prerelease]
32
-
33
- @cmd.handle_options %w[mygem -v 0.2.0]
34
- refute @cmd.options[:prerelease]
35
-
36
- @cmd.handle_options %w[mygem]
37
- refute @cmd.options[:prerelease]
38
- end
39
-
40
- def test_platform_option
41
- @cmd.add_platform_option
42
-
43
- @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd7]
44
-
45
- expected = [
46
- Gem::Platform::RUBY,
47
- Gem::Platform.new("x86-freebsd6"),
48
- Gem::Platform.new("x86-freebsd7"),
49
- ]
50
-
51
- assert_equal expected, Gem.platforms
52
- end
53
-
54
- def test_platform_option_ruby
55
- @cmd.add_platform_option
56
-
57
- @cmd.handle_options %w[--platform ruby]
58
-
59
- expected = [
60
- Gem::Platform::RUBY,
61
- ]
62
-
63
- assert_equal expected, Gem.platforms
64
- end
65
-
66
- def test_platform_option_twice
67
- @cmd.add_platform_option
68
-
69
- @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd-6]
70
-
71
- expected = [
72
- Gem::Platform::RUBY,
73
- Gem::Platform.new("x86-freebsd6"),
74
- ]
75
-
76
- assert_equal expected, Gem.platforms
77
- end
78
-
79
- def test_version_option
80
- @cmd.add_version_option
81
-
82
- @cmd.handle_options %w[--version >1]
83
-
84
- expected = {
85
- :args => [],
86
- :explicit_prerelease => false,
87
- :prerelease => false,
88
- :version => Gem::Requirement.new("> 1"),
89
- }
90
-
91
- assert_equal expected, @cmd.options
92
- end
93
-
94
- def test_version_option_compound
95
- @cmd.add_version_option
96
-
97
- @cmd.handle_options ["--version", "< 1, > 0.9"]
98
-
99
- expected = {
100
- :args => [],
101
- :explicit_prerelease => false,
102
- :prerelease => false,
103
- :version => Gem::Requirement.new("< 1", "> 0.9"),
104
- }
105
-
106
- assert_equal expected, @cmd.options
107
- end
108
-
109
- def test_multiple_version_operator_option_compound
110
- @cmd.add_version_option
111
-
112
- @cmd.handle_options ["--version", "< 1", "--version", "> 0.9"]
113
-
114
- expected = {
115
- :args => [],
116
- :explicit_prerelease => false,
117
- :prerelease => false,
118
- :version => Gem::Requirement.new("< 1", "> 0.9"),
119
- }
120
-
121
- assert_equal expected, @cmd.options
122
- end
123
-
124
- def test_version_option_explicit_prerelease
125
- @cmd.add_prerelease_option
126
- @cmd.add_version_option
127
-
128
- @cmd.handle_options %w[--pre --version >1]
129
-
130
- expected = {
131
- :args => [],
132
- :explicit_prerelease => true,
133
- :prerelease => true,
134
- :version => Gem::Requirement.new("> 1"),
135
- }
136
-
137
- assert_equal expected, @cmd.options
138
- end
139
-
140
- def test_version_option_twice
141
- @cmd.add_version_option
142
-
143
- @cmd.handle_options %w[--version >1.a]
144
-
145
- expected = {
146
- :args => [],
147
- :explicit_prerelease => false,
148
- :prerelease => true,
149
- :version => Gem::Requirement.new("> 1.a"),
150
- }
151
-
152
- assert_equal expected, @cmd.options
153
-
154
- @cmd.handle_options %w[--version >1]
155
-
156
- expected = {
157
- :args => [],
158
- :explicit_prerelease => false,
159
- :prerelease => false,
160
- :version => Gem::Requirement.new("> 1"),
161
- }
162
-
163
- assert_equal expected, @cmd.options
164
- end
165
- end
@@ -1,124 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemKernel < Gem::TestCase
6
- def setup
7
- super
8
-
9
- util_make_gems
10
-
11
- without_any_upwards_gemfiles
12
- end
13
-
14
- def test_gem
15
- assert gem("a", "= 1"), "Should load"
16
- assert $:.any? {|p| p.include?("a-1/lib") }
17
- end
18
-
19
- def test_gem_default
20
- assert gem("a", ">= 0")
21
-
22
- assert_equal @a2, Gem.loaded_specs["a"]
23
- end
24
-
25
- def test_gem_default_re_gem
26
- assert gem("a", "=1")
27
-
28
- refute gem("a", ">= 0")
29
-
30
- assert_equal @a1, Gem.loaded_specs["a"]
31
- end
32
-
33
- def test_gem_re_gem_mismatch
34
- assert gem("a", "=1")
35
-
36
- assert_raise Gem::LoadError do
37
- gem("a", "= 2")
38
- end
39
-
40
- assert_equal @a1, Gem.loaded_specs["a"]
41
- end
42
-
43
- def test_gem_redundant
44
- assert gem("a", "= 1"), "Should load"
45
- refute gem("a", "= 1"), "Should not load"
46
- assert_equal 1, $:.select {|p| p.include?("a-1/lib") }.size
47
- end
48
-
49
- def test_gem_overlapping
50
- assert gem("a", "= 1"), "Should load"
51
- refute gem("a", ">= 1"), "Should not load"
52
- assert_equal 1, $:.select {|p| p.include?("a-1/lib") }.size
53
- end
54
-
55
- def test_gem_prerelease
56
- quick_gem "d", "1.1.a"
57
- refute gem("d", ">= 1"), "release requirement must not load prerelease"
58
- assert gem("d", ">= 1.a"), "prerelease requirement may load prerelease"
59
- end
60
-
61
- def test_gem_env_req
62
- ENV["GEM_REQUIREMENT_A"] = "~> 2.0"
63
- assert_raise(Gem::MissingSpecVersionError) { gem("a", "= 1") }
64
- assert gem("a", "> 1")
65
- assert_equal @a2, Gem.loaded_specs["a"]
66
- end
67
-
68
- def test_gem_conflicting
69
- assert gem("a", "= 1"), "Should load"
70
-
71
- ex = assert_raise Gem::LoadError do
72
- gem "a", "= 2"
73
- end
74
-
75
- assert_equal "can't activate a-2, already activated a-1", ex.message
76
- assert_match(/activated a-1/, ex.message)
77
- assert_equal "a", ex.name
78
-
79
- assert $:.any? {|p| p.include?("a-1/lib") }
80
- refute $:.any? {|p| p.include?("a-2/lib") }
81
- end
82
-
83
- def test_gem_not_adding_bin
84
- assert gem("a", "= 1"), "Should load"
85
- refute $:.any? {|p| p.include?("a-1/bin") }
86
- end
87
-
88
- def test_gem_failing_inside_require_doesnt_cause_double_exceptions
89
- File.write("activate.rb", "gem('a', '= 999')\n")
90
-
91
- require "open3"
92
-
93
- output, _ = Open3.capture2e(
94
- { "GEM_HOME" => Gem.paths.home },
95
- *ruby_with_rubygems_in_load_path,
96
- "-r",
97
- "./activate.rb"
98
- )
99
-
100
- load_errors = output.split("\n").select {|line| line.include?("Could not find") }
101
-
102
- assert_equal 1, load_errors.size
103
- end
104
-
105
- def test_gem_bundler
106
- quick_gem "bundler", "1"
107
- quick_gem "bundler", "2.a"
108
-
109
- assert gem("bundler")
110
- assert $:.any? {|p| p.include?("bundler-1/lib") }
111
- end
112
-
113
- def test_gem_bundler_inferred_bundler_version
114
- require "rubygems/bundler_version_finder"
115
-
116
- Gem::BundlerVersionFinder.stub(:bundler_version, Gem::Version.new("1")) do
117
- quick_gem "bundler", "1"
118
- quick_gem "bundler", "2.a"
119
-
120
- assert gem("bundler", ">= 0.a")
121
- assert $:.any? {|p| p.include?("bundler-1/lib") }
122
- end
123
- end
124
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "open3"
5
-
6
- class TestGemProjectSanity < Gem::TestCase
7
- def setup
8
- end
9
-
10
- def teardown
11
- end
12
-
13
- def test_manifest_is_up_to_date
14
- pend unless File.exist?("#{root}/Rakefile")
15
-
16
- _, status = Open3.capture2e("rake check_manifest")
17
-
18
- unless status.success?
19
- original_contents = File.read("#{root}/Manifest.txt")
20
-
21
- # Update the manifest to see if it fixes the problem
22
- Open3.capture2e("rake update_manifest")
23
-
24
- out, status = Open3.capture2e("rake check_manifest")
25
-
26
- # If `rake update_manifest` fixed the problem, that was the original
27
- # issue, otherwise it was an unknown error, so print the error output
28
- if status.success?
29
- File.write("#{root}/Manifest.txt", original_contents)
30
-
31
- raise "Expected Manifest.txt to be up to date, but it's not. Run `rake update_manifest` to sync it."
32
- else
33
- raise "There was an error running `rake check_manifest`: #{out}"
34
- end
35
- end
36
- end
37
-
38
- def test_require_rubygems_package
39
- err, status = Open3.capture2e(*ruby_with_rubygems_in_load_path, "--disable-gems", "-e", "require \"rubygems/package\"")
40
-
41
- assert status.success?, err
42
- end
43
-
44
- private
45
-
46
- def root
47
- File.expand_path("../..", __dir__)
48
- end
49
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemRemoteFetchError < Gem::TestCase
6
- def test_password_redacted
7
- error = Gem::RemoteFetcher::FetchError.new("There was an error fetching", "https://user:secret@gemsource.org")
8
- refute_match %r{secret}, error.to_s
9
- end
10
-
11
- def test_invalid_url
12
- error = Gem::RemoteFetcher::FetchError.new("There was an error fetching", "https://::gemsource.org")
13
- assert_equal error.to_s, "There was an error fetching (https://::gemsource.org)"
14
- end
15
-
16
- def test_to_s
17
- error = Gem::RemoteFetcher::FetchError.new("There was an error fetching", "https://gemsource.org")
18
- assert_equal error.to_s, "There was an error fetching (https://gemsource.org)"
19
- end
20
- end