rubygems-update 3.4.22 → 3.5.0

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 (528) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +99 -2
  3. data/Manifest.txt +34 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +53 -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 +245 -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 +43 -25
  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/lib/connection_pool/version.rb +1 -1
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  135. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  136. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  137. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  138. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +35 -35
  140. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  141. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  142. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  143. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  144. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  145. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  146. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  147. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  148. data/bundler/lib/bundler/version.rb +1 -1
  149. data/bundler/lib/bundler/vlad.rb +1 -1
  150. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  151. data/bundler/lib/bundler.rb +38 -27
  152. data/lib/rubygems/available_set.rb +4 -4
  153. data/lib/rubygems/basic_specification.rb +35 -37
  154. data/lib/rubygems/bundler_version_finder.rb +4 -4
  155. data/lib/rubygems/ci_detector.rb +75 -0
  156. data/lib/rubygems/command.rb +13 -15
  157. data/lib/rubygems/command_manager.rb +5 -4
  158. data/lib/rubygems/commands/build_command.rb +2 -2
  159. data/lib/rubygems/commands/cert_command.rb +1 -2
  160. data/lib/rubygems/commands/check_command.rb +4 -4
  161. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  162. data/lib/rubygems/commands/contents_command.rb +4 -4
  163. data/lib/rubygems/commands/dependency_command.rb +4 -5
  164. data/lib/rubygems/commands/environment_command.rb +1 -3
  165. data/lib/rubygems/commands/exec_command.rb +1 -1
  166. data/lib/rubygems/commands/fetch_command.rb +2 -2
  167. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  168. data/lib/rubygems/commands/help_command.rb +3 -3
  169. data/lib/rubygems/commands/info_command.rb +2 -2
  170. data/lib/rubygems/commands/install_command.rb +8 -16
  171. data/lib/rubygems/commands/list_command.rb +2 -2
  172. data/lib/rubygems/commands/lock_command.rb +1 -1
  173. data/lib/rubygems/commands/open_command.rb +1 -1
  174. data/lib/rubygems/commands/owner_command.rb +1 -1
  175. data/lib/rubygems/commands/pristine_command.rb +13 -15
  176. data/lib/rubygems/commands/push_command.rb +2 -2
  177. data/lib/rubygems/commands/query_command.rb +4 -5
  178. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  179. data/lib/rubygems/commands/search_command.rb +2 -2
  180. data/lib/rubygems/commands/setup_command.rb +31 -34
  181. data/lib/rubygems/commands/sources_command.rb +12 -12
  182. data/lib/rubygems/commands/specification_command.rb +10 -10
  183. data/lib/rubygems/commands/stale_command.rb +1 -1
  184. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  185. data/lib/rubygems/commands/unpack_command.rb +4 -4
  186. data/lib/rubygems/commands/update_command.rb +10 -12
  187. data/lib/rubygems/commands/which_command.rb +1 -1
  188. data/lib/rubygems/commands/yank_command.rb +1 -1
  189. data/lib/rubygems/compatibility.rb +5 -6
  190. data/lib/rubygems/config_file.rb +4 -4
  191. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  192. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  193. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  194. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  195. data/lib/rubygems/defaults.rb +15 -3
  196. data/lib/rubygems/dependency.rb +12 -14
  197. data/lib/rubygems/dependency_installer.rb +29 -30
  198. data/lib/rubygems/dependency_list.rb +1 -1
  199. data/lib/rubygems/deprecate.rb +16 -15
  200. data/lib/rubygems/doctor.rb +5 -5
  201. data/lib/rubygems/errors.rb +2 -6
  202. data/lib/rubygems/exceptions.rb +2 -1
  203. data/lib/rubygems/ext/builder.rb +15 -10
  204. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  205. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  206. data/lib/rubygems/gem_runner.rb +4 -4
  207. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  208. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  209. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  210. data/lib/rubygems/install_update_options.rb +18 -19
  211. data/lib/rubygems/installer.rb +59 -33
  212. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  213. data/lib/rubygems/local_remote_options.rb +7 -10
  214. data/lib/rubygems/name_tuple.rb +7 -9
  215. data/lib/rubygems/net/http.rb +3 -0
  216. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  217. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  218. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  219. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  220. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  221. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  222. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  223. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  224. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  225. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  226. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  227. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  228. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  229. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  230. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  231. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  232. data/lib/rubygems/package/old.rb +2 -2
  233. data/lib/rubygems/package/tar_header.rb +45 -39
  234. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  235. data/lib/rubygems/package/tar_reader.rb +5 -3
  236. data/lib/rubygems/package/tar_writer.rb +19 -17
  237. data/lib/rubygems/package.rb +27 -26
  238. data/lib/rubygems/package_task.rb +2 -2
  239. data/lib/rubygems/path_support.rb +9 -10
  240. data/lib/rubygems/platform.rb +60 -45
  241. data/lib/rubygems/query_utils.rb +7 -9
  242. data/lib/rubygems/remote_fetcher.rb +15 -15
  243. data/lib/rubygems/request/connection_pools.rb +3 -3
  244. data/lib/rubygems/request.rb +20 -17
  245. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  246. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  247. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  248. data/lib/rubygems/request_set/lockfile.rb +6 -11
  249. data/lib/rubygems/request_set.rb +5 -5
  250. data/lib/rubygems/requirement.rb +7 -7
  251. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  252. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  253. data/lib/rubygems/resolver/activation_request.rb +1 -3
  254. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  255. data/lib/rubygems/resolver/best_set.rb +1 -1
  256. data/lib/rubygems/resolver/composed_set.rb +1 -1
  257. data/lib/rubygems/resolver/conflict.rb +4 -12
  258. data/lib/rubygems/resolver/index_set.rb +4 -4
  259. data/lib/rubygems/resolver/index_specification.rb +2 -2
  260. data/lib/rubygems/resolver/installer_set.rb +5 -6
  261. data/lib/rubygems/resolver/lock_set.rb +1 -1
  262. data/lib/rubygems/resolver.rb +3 -10
  263. data/lib/rubygems/s3_uri_signer.rb +6 -6
  264. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  265. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  266. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  267. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  268. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  269. data/lib/rubygems/safe_marshal.rb +74 -0
  270. data/lib/rubygems/safe_yaml.rb +5 -28
  271. data/lib/rubygems/security/policies.rb +36 -38
  272. data/lib/rubygems/security/policy.rb +7 -11
  273. data/lib/rubygems/security/signer.rb +1 -1
  274. data/lib/rubygems/security/trust_dir.rb +3 -3
  275. data/lib/rubygems/security.rb +8 -22
  276. data/lib/rubygems/source/git.rb +1 -3
  277. data/lib/rubygems/source/installed.rb +0 -2
  278. data/lib/rubygems/source/local.rb +5 -8
  279. data/lib/rubygems/source/lock.rb +1 -3
  280. data/lib/rubygems/source/specific_file.rb +0 -1
  281. data/lib/rubygems/source/vendor.rb +0 -2
  282. data/lib/rubygems/source.rb +12 -12
  283. data/lib/rubygems/source_list.rb +4 -4
  284. data/lib/rubygems/spec_fetcher.rb +29 -29
  285. data/lib/rubygems/specification.rb +125 -138
  286. data/lib/rubygems/specification_policy.rb +55 -25
  287. data/lib/rubygems/stub_specification.rb +4 -5
  288. data/lib/rubygems/text.rb +1 -2
  289. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  290. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  291. data/lib/rubygems/timeout.rb +3 -0
  292. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  293. data/lib/rubygems/uninstaller.rb +7 -9
  294. data/lib/rubygems/update_suggestion.rb +5 -18
  295. data/lib/rubygems/uri_formatter.rb +1 -1
  296. data/lib/rubygems/user_interaction.rb +15 -21
  297. data/lib/rubygems/util/licenses.rb +65 -35
  298. data/lib/rubygems/util/list.rb +3 -1
  299. data/lib/rubygems/util.rb +2 -4
  300. data/lib/rubygems/validator.rb +5 -3
  301. data/lib/rubygems/version.rb +34 -28
  302. data/lib/rubygems/version_option.rb +2 -5
  303. data/lib/rubygems/yaml_serializer.rb +3 -3
  304. data/lib/rubygems.rb +37 -37
  305. data/rubygems-update.gemspec +4 -4
  306. data/setup.rb +2 -2
  307. metadata +38 -225
  308. data/lib/rubygems/indexer.rb +0 -428
  309. data/lib/rubygems/mock_gem_ui.rb +0 -86
  310. data/test/rubygems/alternate_cert.pem +0 -19
  311. data/test/rubygems/alternate_cert_32.pem +0 -19
  312. data/test/rubygems/alternate_key.pem +0 -27
  313. data/test/rubygems/bad_rake.rb +0 -3
  314. data/test/rubygems/bundler_test_gem.rb +0 -424
  315. data/test/rubygems/ca_cert.pem +0 -77
  316. data/test/rubygems/child_cert.pem +0 -19
  317. data/test/rubygems/child_cert_32.pem +0 -19
  318. data/test/rubygems/child_key.pem +0 -27
  319. data/test/rubygems/client.pem +0 -107
  320. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  321. data/test/rubygems/data/gem-private_key.pem +0 -27
  322. data/test/rubygems/data/gem-public_cert.pem +0 -20
  323. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  324. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  325. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  326. data/test/rubygems/encrypted_private_key.pem +0 -30
  327. data/test/rubygems/expired_cert.pem +0 -19
  328. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  329. data/test/rubygems/foo/discover.rb +0 -1
  330. data/test/rubygems/future_cert.pem +0 -19
  331. data/test/rubygems/future_cert_32.pem +0 -19
  332. data/test/rubygems/good_rake.rb +0 -3
  333. data/test/rubygems/grandchild_cert.pem +0 -19
  334. data/test/rubygems/grandchild_cert_32.pem +0 -19
  335. data/test/rubygems/grandchild_key.pem +0 -27
  336. data/test/rubygems/helper.rb +0 -1649
  337. data/test/rubygems/installer_test_case.rb +0 -248
  338. data/test/rubygems/invalid_client.pem +0 -49
  339. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  340. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  341. data/test/rubygems/invalid_key.pem +0 -27
  342. data/test/rubygems/invalid_signer_cert.pem +0 -19
  343. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  344. data/test/rubygems/invalidchild_cert.pem +0 -19
  345. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  346. data/test/rubygems/invalidchild_key.pem +0 -27
  347. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  348. data/test/rubygems/package/tar_test_case.rb +0 -175
  349. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  350. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  351. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  352. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  353. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  354. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  355. data/test/rubygems/private3072_key.pem +0 -40
  356. data/test/rubygems/private_ec_key.pem +0 -9
  357. data/test/rubygems/private_key.pem +0 -27
  358. data/test/rubygems/public3072_cert.pem +0 -25
  359. data/test/rubygems/public_cert.pem +0 -20
  360. data/test/rubygems/public_cert_32.pem +0 -19
  361. data/test/rubygems/public_key.pem +0 -9
  362. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  363. data/test/rubygems/rubygems_plugin.rb +0 -24
  364. data/test/rubygems/sff/discover.rb +0 -1
  365. data/test/rubygems/simple_gem.rb +0 -68
  366. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  367. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  368. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  369. data/test/rubygems/ssl_cert.pem +0 -80
  370. data/test/rubygems/ssl_key.pem +0 -27
  371. data/test/rubygems/test_bundled_ca.rb +0 -61
  372. data/test/rubygems/test_config.rb +0 -28
  373. data/test/rubygems/test_deprecate.rb +0 -158
  374. data/test/rubygems/test_exit.rb +0 -17
  375. data/test/rubygems/test_gem.rb +0 -1799
  376. data/test/rubygems/test_gem_available_set.rb +0 -130
  377. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  378. data/test/rubygems/test_gem_command.rb +0 -403
  379. data/test/rubygems/test_gem_command_manager.rb +0 -400
  380. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  381. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  382. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  383. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  384. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  385. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  386. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  387. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  388. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  389. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  390. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  391. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  392. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  393. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  394. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  395. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  396. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  397. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  398. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  399. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  400. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  401. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  402. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  403. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  404. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  405. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  406. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  407. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  408. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  409. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  410. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  411. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  412. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  413. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  414. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  415. data/test/rubygems/test_gem_config_file.rb +0 -551
  416. data/test/rubygems/test_gem_dependency.rb +0 -398
  417. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  418. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  419. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  420. data/test/rubygems/test_gem_doctor.rb +0 -195
  421. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  422. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  423. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  424. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  425. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  426. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  427. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  428. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  429. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  430. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  431. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  432. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  433. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  434. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  435. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  436. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  437. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  438. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  439. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  440. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  441. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  442. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  443. data/test/rubygems/test_gem_indexer.rb +0 -381
  444. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  445. data/test/rubygems/test_gem_installer.rb +0 -2512
  446. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  447. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  448. data/test/rubygems/test_gem_package.rb +0 -1306
  449. data/test/rubygems/test_gem_package_old.rb +0 -91
  450. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  451. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  452. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  453. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  454. data/test/rubygems/test_gem_package_task.rb +0 -118
  455. data/test/rubygems/test_gem_path_support.rb +0 -139
  456. data/test/rubygems/test_gem_platform.rb +0 -497
  457. data/test/rubygems/test_gem_rdoc.rb +0 -137
  458. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  459. data/test/rubygems/test_gem_request.rb +0 -547
  460. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  461. data/test/rubygems/test_gem_request_set.rb +0 -672
  462. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  463. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  464. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  465. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  466. data/test/rubygems/test_gem_requirement.rb +0 -505
  467. data/test/rubygems/test_gem_resolver.rb +0 -859
  468. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  469. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  470. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  471. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  472. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  473. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  474. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  475. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  476. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  477. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  478. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  479. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  480. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  481. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  482. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  483. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  484. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  485. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  486. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  487. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  488. data/test/rubygems/test_gem_security.rb +0 -341
  489. data/test/rubygems/test_gem_security_policy.rb +0 -535
  490. data/test/rubygems/test_gem_security_signer.rb +0 -218
  491. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  492. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  493. data/test/rubygems/test_gem_source.rb +0 -254
  494. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  495. data/test/rubygems/test_gem_source_git.rb +0 -310
  496. data/test/rubygems/test_gem_source_installed.rb +0 -35
  497. data/test/rubygems/test_gem_source_list.rb +0 -119
  498. data/test/rubygems/test_gem_source_local.rb +0 -107
  499. data/test/rubygems/test_gem_source_lock.rb +0 -113
  500. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  501. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  502. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  503. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  504. data/test/rubygems/test_gem_specification.rb +0 -3856
  505. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  506. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  507. data/test/rubygems/test_gem_text.rb +0 -103
  508. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  509. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  510. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  511. data/test/rubygems/test_gem_uri.rb +0 -41
  512. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  513. data/test/rubygems/test_gem_util.rb +0 -91
  514. data/test/rubygems/test_gem_validator.rb +0 -42
  515. data/test/rubygems/test_gem_version.rb +0 -305
  516. data/test/rubygems/test_gem_version_option.rb +0 -165
  517. data/test/rubygems/test_kernel.rb +0 -124
  518. data/test/rubygems/test_project_sanity.rb +0 -49
  519. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  520. data/test/rubygems/test_require.rb +0 -732
  521. data/test/rubygems/test_rubygems.rb +0 -76
  522. data/test/rubygems/test_webauthn_listener.rb +0 -143
  523. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  524. data/test/rubygems/test_webauthn_poller.rb +0 -124
  525. data/test/rubygems/utilities.rb +0 -436
  526. data/test/rubygems/wrong_key_cert.pem +0 -19
  527. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  528. 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