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,836 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/commands/update_command"
5
-
6
- class TestGemCommandsUpdateCommand < Gem::TestCase
7
- def setup
8
- super
9
- common_installer_setup
10
-
11
- @cmd = Gem::Commands::UpdateCommand.new
12
-
13
- @cmd.options[:document] = []
14
-
15
- @specs = spec_fetcher do |fetcher|
16
- fetcher.download "a", 1
17
- fetcher.download "a", 2
18
- fetcher.download "a", "3.a"
19
- end
20
-
21
- @a1_path = @specs["a-1"].cache_file
22
- @a2_path = @specs["a-1"].cache_file
23
- @a3a_path = @specs["a-3.a"].cache_file
24
- end
25
-
26
- def test_execute
27
- spec_fetcher do |fetcher|
28
- fetcher.download "a", 2
29
- fetcher.spec "a", 1
30
- end
31
-
32
- @cmd.options[:args] = []
33
-
34
- use_ui @ui do
35
- @cmd.execute
36
- end
37
-
38
- out = @ui.output.split "\n"
39
- assert_equal "Updating installed gems", out.shift
40
- assert_equal "Updating a", out.shift
41
- assert_equal "Gems updated: a", out.shift
42
- assert_empty out
43
- end
44
-
45
- def test_execute_multiple
46
- spec_fetcher do |fetcher|
47
- fetcher.download "a", 2
48
- fetcher.download "ab", 2
49
-
50
- fetcher.spec "a", 1
51
- fetcher.spec "ab", 1
52
- end
53
-
54
- @cmd.options[:args] = %w[a]
55
-
56
- use_ui @ui do
57
- @cmd.execute
58
- end
59
-
60
- out = @ui.output.split "\n"
61
- assert_equal "Updating installed gems", out.shift
62
- assert_equal "Updating a", out.shift
63
- assert_equal "Gems updated: a", out.shift
64
- assert_empty out
65
- end
66
-
67
- def test_execute_system
68
- spec_fetcher do |fetcher|
69
- fetcher.download "rubygems-update", 9 do |s|
70
- s.files = %w[setup.rb]
71
- end
72
- end
73
-
74
- @cmd.options[:args] = []
75
- @cmd.options[:system] = true
76
-
77
- use_ui @ui do
78
- @cmd.execute
79
- end
80
-
81
- out = @ui.output.split "\n"
82
- assert_equal "Updating rubygems-update", out.shift
83
- assert_equal "Installing RubyGems 9", out.shift
84
- assert_equal "RubyGems system software updated", out.shift
85
-
86
- assert_empty out
87
- end
88
-
89
- def test_execute_system_at_latest
90
- spec_fetcher do |fetcher|
91
- fetcher.download "rubygems-update", Gem::VERSION do |s|
92
- s.files = %w[setup.rb]
93
- end
94
- end
95
-
96
- @cmd.options[:args] = []
97
- @cmd.options[:system] = true
98
-
99
- assert_raise Gem::MockGemUi::SystemExitException do
100
- use_ui @ui do
101
- @cmd.execute
102
- end
103
- end
104
-
105
- out = @ui.output.split "\n"
106
- assert_equal "Latest version already installed. Done.", out.shift
107
- assert_empty out
108
- end
109
-
110
- def test_execute_system_when_latest_does_not_support_your_ruby
111
- spec_fetcher do |fetcher|
112
- fetcher.download "rubygems-update", 9 do |s|
113
- s.files = %w[setup.rb]
114
- s.required_ruby_version = "> 9"
115
- end
116
- end
117
-
118
- @cmd.options[:args] = []
119
- @cmd.options[:system] = true
120
-
121
- use_ui @ui do
122
- @cmd.execute
123
- end
124
-
125
- out = @ui.output.split "\n"
126
- assert_equal "Updating rubygems-update", out.shift
127
- assert_empty out
128
-
129
- err = @ui.error.split "\n"
130
- assert_equal "ERROR: Error installing rubygems-update:", err.shift
131
- assert_equal "\trubygems-update-9 requires Ruby version > 9. The current ruby version is #{Gem.ruby_version}.", err.shift
132
- assert_empty err
133
- end
134
-
135
- def test_execute_system_multiple
136
- spec_fetcher do |fetcher|
137
- fetcher.download "rubygems-update", 8 do |s|
138
- s.files = %w[setup.rb]
139
- end
140
-
141
- fetcher.download "rubygems-update", 9 do |s|
142
- s.files = %w[setup.rb]
143
- end
144
- end
145
-
146
- @cmd.options[:args] = []
147
- @cmd.options[:system] = true
148
-
149
- use_ui @ui do
150
- @cmd.execute
151
- end
152
-
153
- out = @ui.output.split "\n"
154
- assert_equal "Updating rubygems-update", out.shift
155
- assert_equal "Installing RubyGems 9", out.shift
156
- assert_equal "RubyGems system software updated", out.shift
157
-
158
- assert_empty out
159
- end
160
-
161
- def test_execute_system_update_installed
162
- spec_fetcher do |fetcher|
163
- fetcher.download "rubygems-update", 8 do |s|
164
- s.files = %w[setup.rb]
165
- end
166
- end
167
-
168
- @cmd.options[:args] = []
169
- @cmd.options[:system] = true
170
-
171
- @cmd.execute
172
-
173
- spec_fetcher do |fetcher|
174
- fetcher.download "rubygems-update", 9 do |s|
175
- s.files = %w[setup.rb]
176
- end
177
- end
178
-
179
- @cmd = Gem::Commands::UpdateCommand.new
180
- @cmd.options[:args] = []
181
- @cmd.options[:system] = true
182
-
183
- use_ui @ui do
184
- @cmd.execute
185
- end
186
-
187
- out = @ui.output.split "\n"
188
- assert_equal "Updating rubygems-update", out.shift
189
- assert_equal "Installing RubyGems 9", out.shift
190
- assert_equal "RubyGems system software updated", out.shift
191
-
192
- assert_empty out
193
- end
194
-
195
- def test_execute_system_update_installed_in_non_default_gem_path
196
- rubygems_update_spec = quick_gem "rubygems-update", 9 do |s|
197
- write_file File.join(@tempdir, "setup.rb")
198
-
199
- s.files += %w[setup.rb]
200
- end
201
-
202
- util_setup_spec_fetcher rubygems_update_spec
203
-
204
- rubygems_update_package = Gem::Package.build rubygems_update_spec
205
-
206
- gemhome2 = "#{@gemhome}2"
207
-
208
- Gem::Installer.at(rubygems_update_package, :install_dir => gemhome2).install
209
-
210
- Gem.use_paths @gemhome, [gemhome2, @gemhome]
211
-
212
- @cmd.options[:args] = []
213
- @cmd.options[:system] = true
214
-
215
- use_ui @ui do
216
- @cmd.execute
217
- end
218
-
219
- out = @ui.output.split "\n"
220
- assert_equal "Installing RubyGems 9", out.shift
221
- assert_equal "RubyGems system software updated", out.shift
222
-
223
- assert_empty out
224
- end
225
-
226
- def test_execute_system_specific
227
- spec_fetcher do |fetcher|
228
- fetcher.download "rubygems-update", 8 do |s|
229
- s.files = %w[setup.rb]
230
- end
231
-
232
- fetcher.download "rubygems-update", 9 do |s|
233
- s.files = %w[setup.rb]
234
- end
235
- end
236
-
237
- @cmd.options[:args] = []
238
- @cmd.options[:system] = "8"
239
-
240
- use_ui @ui do
241
- @cmd.execute
242
- end
243
-
244
- out = @ui.output.split "\n"
245
- assert_equal "Updating rubygems-update", out.shift
246
- assert_equal "Installing RubyGems 8", out.shift
247
- assert_equal "RubyGems system software updated", out.shift
248
-
249
- assert_empty out
250
- end
251
-
252
- def test_execute_system_specific_older_than_minimum_supported_rubygems
253
- spec_fetcher do |fetcher|
254
- fetcher.download "rubygems-update", "2.5.1" do |s|
255
- s.files = %w[setup.rb]
256
- end
257
- end
258
-
259
- @cmd.options[:args] = []
260
- @cmd.options[:system] = "2.5.1"
261
-
262
- oldest_version_mod = Module.new do
263
- def oldest_supported_version
264
- Gem::Version.new("2.5.2")
265
- end
266
- private :oldest_supported_version
267
- end
268
-
269
- @cmd.extend(oldest_version_mod)
270
-
271
- assert_raise Gem::MockGemUi::TermError do
272
- use_ui @ui do
273
- @cmd.execute
274
- end
275
- end
276
-
277
- assert_empty @ui.output
278
- assert_equal "ERROR: rubygems 2.5.1 is not supported on #{RUBY_VERSION}. The oldest version supported by this ruby is 2.5.2\n", @ui.error
279
- end
280
-
281
- def test_execute_system_specific_older_than_3_2_removes_plugins_dir
282
- spec_fetcher do |fetcher|
283
- fetcher.download "rubygems-update", 3.1 do |s|
284
- s.files = %w[setup.rb]
285
- end
286
- end
287
-
288
- oldest_version_mod = Module.new do
289
- def oldest_supported_version
290
- Gem::Version.new("2.5.2")
291
- end
292
- private :oldest_supported_version
293
- end
294
-
295
- @cmd.extend(oldest_version_mod)
296
-
297
- @cmd.options[:args] = []
298
- @cmd.options[:system] = "3.1"
299
-
300
- FileUtils.mkdir_p Gem.plugindir
301
- write_file File.join(Gem.plugindir, "a_plugin.rb")
302
-
303
- @cmd.execute
304
-
305
- assert_path_not_exist Gem.plugindir, "Plugins folder not removed when updating rubygems to pre-3.2"
306
- end
307
-
308
- def test_execute_system_specific_newer_than_or_equal_to_3_2_leaves_plugins_dir_alone
309
- spec_fetcher do |fetcher|
310
- fetcher.download "rubygems-update", "3.2.a" do |s|
311
- s.files = %w[setup.rb]
312
- end
313
- end
314
-
315
- oldest_version_mod = Module.new do
316
- def oldest_supported_version
317
- Gem::Version.new("2.5.2")
318
- end
319
- private :oldest_supported_version
320
- end
321
-
322
- @cmd.extend(oldest_version_mod)
323
-
324
- @cmd.options[:args] = []
325
- @cmd.options[:system] = "3.2.a"
326
-
327
- FileUtils.mkdir_p Gem.plugindir
328
- plugin_file = File.join(Gem.plugindir, "a_plugin.rb")
329
- write_file plugin_file
330
-
331
- @cmd.execute
332
-
333
- assert_path_exist Gem.plugindir, "Plugin folder removed when updating rubygems to post-3.2"
334
- assert_path_exist plugin_file, "Plugin removed when updating rubygems to post-3.2"
335
- end
336
-
337
- def test_execute_system_specifically_to_latest_version
338
- spec_fetcher do |fetcher|
339
- fetcher.download "rubygems-update", 8 do |s|
340
- s.files = %w[setup.rb]
341
- end
342
-
343
- fetcher.download "rubygems-update", 9 do |s|
344
- s.files = %w[setup.rb]
345
- end
346
- end
347
-
348
- @cmd.options[:args] = []
349
- @cmd.options[:system] = "9"
350
-
351
- use_ui @ui do
352
- @cmd.execute
353
- end
354
-
355
- out = @ui.output.split "\n"
356
- assert_equal "Updating rubygems-update", out.shift
357
- assert_equal "Installing RubyGems 9", out.shift
358
- assert_equal "RubyGems system software updated", out.shift
359
-
360
- assert_empty out
361
- end
362
-
363
- def test_execute_system_with_gems
364
- @cmd.options[:args] = %w[gem]
365
- @cmd.options[:system] = true
366
-
367
- assert_raise Gem::MockGemUi::TermError do
368
- use_ui @ui do
369
- @cmd.execute
370
- end
371
- end
372
-
373
- assert_empty @ui.output
374
- assert_equal "ERROR: Gem names are not allowed with the --system option\n",
375
- @ui.error
376
- end
377
-
378
- def test_execute_system_with_disabled_update
379
- old_disable_system_update_message = Gem.disable_system_update_message
380
- Gem.disable_system_update_message = "Please use package manager instead."
381
-
382
- @cmd.options[:args] = []
383
- @cmd.options[:system] = true
384
-
385
- assert_raise Gem::MockGemUi::TermError do
386
- use_ui @ui do
387
- @cmd.execute
388
- end
389
- end
390
-
391
- assert_empty @ui.output
392
- assert_equal "ERROR: Please use package manager instead.\n", @ui.error
393
- ensure
394
- Gem.disable_system_update_message = old_disable_system_update_message
395
- end
396
-
397
- # The other style of `gem update --system` tests don't actually run
398
- # setup.rb, so we just check that setup.rb gets the `--silent` flag.
399
- def test_execute_system_silent_passed_to_setuprb
400
- @cmd.options[:args] = []
401
- @cmd.options[:system] = true
402
- @cmd.options[:silent] = true
403
-
404
- assert_equal true, @cmd.update_rubygems_arguments.include?("--silent")
405
- end
406
-
407
- def test_execute_system_silent
408
- spec_fetcher do |fetcher|
409
- fetcher.download "rubygems-update", 9 do |s|
410
- s.files = %w[setup.rb]
411
- end
412
- end
413
-
414
- @cmd.options[:args] = []
415
- @cmd.options[:system] = true
416
- @cmd.options[:silent] = true
417
-
418
- use_ui @ui do
419
- @cmd.execute
420
- end
421
-
422
- assert_empty @ui.output
423
- end
424
-
425
- # before:
426
- # a1 -> c1.2
427
- # after:
428
- # a2 -> b2 # new dependency
429
- # a2 -> c2
430
-
431
- def test_execute_dependencies
432
- spec_fetcher do |fetcher|
433
- fetcher.download "a", 2, "b" => 2, "c" => 2
434
- fetcher.download "b", 2
435
- fetcher.download "c", 2
436
-
437
- fetcher.spec "a", 1, "c" => "1.2"
438
- fetcher.spec "c", "1.2"
439
- end
440
-
441
- Gem::Specification.reset
442
-
443
- @cmd.options[:args] = []
444
-
445
- use_ui @ui do
446
- @cmd.execute
447
- end
448
-
449
- out = @ui.output.split "\n"
450
- assert_equal "Updating installed gems", out.shift
451
- assert_equal "Updating a", out.shift
452
- assert_equal "Gems updated: a b c",
453
- out.shift
454
-
455
- assert_empty out
456
- end
457
-
458
- def test_execute_rdoc
459
- spec_fetcher do |fetcher|
460
- fetcher.download "a", 2
461
- fetcher.spec "a", 1
462
- end
463
-
464
- Gem.done_installing(&Gem::RDoc.method(:generation_hook))
465
-
466
- @cmd.options[:document] = %w[rdoc ri]
467
-
468
- @cmd.options[:args] = %w[a]
469
-
470
- use_ui @ui do
471
- @cmd.execute
472
- end
473
-
474
- wait_for_child_process_to_exit
475
-
476
- a2 = @specs["a-2"]
477
-
478
- assert_path_exist File.join(a2.doc_dir, "rdoc")
479
- end
480
-
481
- def test_execute_named
482
- spec_fetcher do |fetcher|
483
- fetcher.download "a", 2
484
-
485
- fetcher.spec "a", 1
486
- end
487
-
488
- @cmd.options[:args] = %w[a]
489
-
490
- use_ui @ui do
491
- @cmd.execute
492
- end
493
-
494
- out = @ui.output.split "\n"
495
- assert_equal "Updating installed gems", out.shift
496
- assert_equal "Updating a", out.shift
497
- assert_equal "Gems updated: a", out.shift
498
-
499
- assert_empty out
500
- end
501
-
502
- def test_execute_named_some_up_to_date
503
- spec_fetcher do |fetcher|
504
- fetcher.download "a", 2
505
- fetcher.spec "a", 1
506
-
507
- fetcher.spec "b", 2
508
- end
509
-
510
- @cmd.options[:args] = %w[a b]
511
-
512
- use_ui @ui do
513
- @cmd.execute
514
- end
515
-
516
- out = @ui.output.split "\n"
517
- assert_equal "Updating installed gems", out.shift
518
- assert_equal "Updating a", out.shift
519
- assert_equal "Gems updated: a", out.shift
520
- assert_equal "Gems already up-to-date: b", out.shift
521
-
522
- assert_empty out
523
- end
524
-
525
- def test_execute_named_up_to_date
526
- spec_fetcher do |fetcher|
527
- fetcher.spec "a", 2
528
- end
529
-
530
- @cmd.options[:args] = %w[a]
531
-
532
- use_ui @ui do
533
- @cmd.execute
534
- end
535
-
536
- out = @ui.output.split "\n"
537
- assert_equal "Updating installed gems", out.shift
538
- assert_equal "Nothing to update", out.shift
539
- assert_equal "Gems already up-to-date: a", out.shift
540
-
541
- assert_empty out
542
- end
543
-
544
- def test_execute_named_up_to_date_prerelease
545
- spec_fetcher do |fetcher|
546
- fetcher.download "a", "3.a"
547
-
548
- fetcher.gem "a", 2
549
- end
550
-
551
- @cmd.options[:args] = %w[a]
552
- @cmd.options[:prerelease] = true
553
-
554
- use_ui @ui do
555
- @cmd.execute
556
- end
557
-
558
- out = @ui.output.split "\n"
559
- assert_equal "Updating installed gems", out.shift
560
- assert_equal "Updating a", out.shift
561
- assert_equal "Gems updated: a", out.shift
562
-
563
- assert_empty out
564
- end
565
-
566
- def test_execute_up_to_date
567
- spec_fetcher do |fetcher|
568
- fetcher.gem "a", 2
569
- end
570
-
571
- @cmd.options[:args] = []
572
-
573
- use_ui @ui do
574
- @cmd.execute
575
- end
576
-
577
- out = @ui.output.split "\n"
578
- assert_equal "Updating installed gems", out.shift
579
- assert_equal "Nothing to update", out.shift
580
-
581
- assert_empty out
582
- end
583
-
584
- def test_execute_user_install
585
- a = util_spec "a", 1
586
- b = util_spec "b", 1
587
- install_gem_user(a)
588
- install_gem(b)
589
-
590
- @cmd.handle_options %w[--user-install]
591
-
592
- use_ui @ui do
593
- @cmd.execute
594
- end
595
-
596
- installer = @cmd.installer
597
- user_install = installer.instance_variable_get :@user_install
598
-
599
- assert user_install, "user_install must be set on the installer"
600
-
601
- out = @ui.output.split "\n"
602
- assert_equal "Updating installed gems", out.shift
603
- assert_equal "Updating a", out.shift
604
- assert_equal "Gems updated: a", out.shift
605
- assert_empty out
606
- end
607
-
608
- def test_fetch_remote_gems
609
- specs = spec_fetcher do |fetcher|
610
- fetcher.gem "a", 1
611
- fetcher.gem "a", 2
612
- end
613
-
614
- expected = [
615
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
616
- Gem::Source.new(@gem_repo)],
617
- ]
618
-
619
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
620
- end
621
-
622
- def test_fetch_remote_gems_error
623
- Gem.sources.replace %w[http://nonexistent.example]
624
-
625
- assert_raise Gem::RemoteFetcher::FetchError do
626
- @cmd.fetch_remote_gems @specs["a-1"]
627
- end
628
- end
629
-
630
- def test_fetch_remote_gems_mismatch
631
- platform = Gem::Platform.new "x86-freebsd9"
632
-
633
- specs = spec_fetcher do |fetcher|
634
- fetcher.spec "a", 1
635
- fetcher.spec "a", 2
636
-
637
- fetcher.spec "a", 2 do |s|
638
- s.platform = platform
639
- end
640
- end
641
-
642
- expected = [
643
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
644
- Gem::Source.new(@gem_repo)],
645
- ]
646
-
647
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
648
- end
649
-
650
- def test_fetch_remote_gems_prerelease
651
- specs = spec_fetcher do |fetcher|
652
- fetcher.gem "a", 1
653
- fetcher.gem "a", 2
654
- fetcher.gem "a", "3.a"
655
- end
656
-
657
- @cmd.options[:prerelease] = true
658
-
659
- expected = [
660
- [Gem::NameTuple.new("a", v(2), Gem::Platform::RUBY),
661
- Gem::Source.new(@gem_repo)],
662
- [Gem::NameTuple.new("a", v("3.a"), Gem::Platform::RUBY),
663
- Gem::Source.new(@gem_repo)],
664
- ]
665
-
666
- assert_equal expected, @cmd.fetch_remote_gems(specs["a-1"])
667
- end
668
-
669
- def test_handle_options_system
670
- @cmd.handle_options %w[--system]
671
-
672
- expected = {
673
- :args => [],
674
- :document => %w[ri],
675
- :force => false,
676
- :system => true,
677
- }
678
-
679
- assert_equal expected, @cmd.options
680
- end
681
-
682
- def test_handle_options_system_non_version
683
- assert_raise ArgumentError do
684
- @cmd.handle_options %w[--system non-version]
685
- end
686
- end
687
-
688
- def test_handle_options_system_specific
689
- @cmd.handle_options %w[--system 1.3.7]
690
-
691
- expected = {
692
- :args => [],
693
- :document => %w[ri],
694
- :force => false,
695
- :system => "1.3.7",
696
- }
697
-
698
- assert_equal expected, @cmd.options
699
- end
700
-
701
- def test_update_gem_prerelease
702
- spec_fetcher do |fetcher|
703
- fetcher.spec "a", "1.a"
704
- fetcher.gem "a", "1.b"
705
- end
706
-
707
- @cmd.update_gem "a", Gem::Requirement.new("= 1.b")
708
-
709
- refute_empty @cmd.updated
710
-
711
- assert @cmd.installer.instance_variable_get :@prerelease
712
- end
713
-
714
- def test_update_gem_unresolved_dependency
715
- spec_fetcher do |fetcher|
716
- fetcher.spec "a", 1
717
- fetcher.gem "a", 2 do |s|
718
- s.add_dependency "b", ">= 2"
719
- end
720
-
721
- fetcher.spec "b", 1
722
- end
723
-
724
- @cmd.update_gem "a"
725
-
726
- assert_empty @cmd.updated
727
- end
728
-
729
- def test_update_rubygems_arguments
730
- @cmd.options[:system] = true
731
-
732
- arguments = @cmd.update_rubygems_arguments
733
-
734
- assert_equal "--prefix", arguments.shift
735
- assert_equal Gem.prefix, arguments.shift
736
- assert_equal "--no-document", arguments.shift
737
- assert_equal "--previous-version", arguments.shift
738
- assert_equal Gem::VERSION, arguments.shift
739
- assert_empty arguments
740
- end
741
-
742
- def test_explain
743
- spec_fetcher do |fetcher|
744
- fetcher.download "a", 2
745
- fetcher.spec "a", 1
746
- end
747
-
748
- @cmd.options[:explain] = true
749
- @cmd.options[:args] = %w[a]
750
-
751
- use_ui @ui do
752
- @cmd.execute
753
- end
754
-
755
- out = @ui.output.split "\n"
756
-
757
- assert_equal "Gems to update:", out.shift
758
- assert_equal " a-2", out.shift
759
- assert_empty out
760
- end
761
-
762
- def test_explain_platform_local
763
- local = Gem::Platform.local
764
- spec_fetcher do |fetcher|
765
- fetcher.download "a", 2
766
-
767
- fetcher.download "a", 2 do |s|
768
- s.platform = local
769
- end
770
-
771
- fetcher.spec "a", 1
772
- end
773
-
774
- @cmd.options[:explain] = true
775
- @cmd.options[:args] = %w[a]
776
-
777
- use_ui @ui do
778
- @cmd.execute
779
- end
780
-
781
- out = @ui.output.split "\n"
782
-
783
- assert_equal "Gems to update:", out.shift
784
- assert_equal " a-2-#{local}", out.shift
785
- assert_empty out
786
- end
787
-
788
- def test_explain_platform_ruby
789
- local = Gem::Platform.local
790
- spec_fetcher do |fetcher|
791
- fetcher.download "a", 2
792
-
793
- fetcher.download "a", 2 do |s|
794
- s.platform = local
795
- end
796
-
797
- fetcher.spec "a", 1
798
- end
799
-
800
- # equivalent to --platform=ruby
801
- Gem.platforms = [Gem::Platform::RUBY]
802
-
803
- @cmd.options[:explain] = true
804
- @cmd.options[:args] = %w[a]
805
-
806
- use_ui @ui do
807
- @cmd.execute
808
- end
809
-
810
- out = @ui.output.split "\n"
811
-
812
- assert_equal "Gems to update:", out.shift
813
- assert_equal " a-2", out.shift
814
- assert_empty out
815
- end
816
-
817
- def test_execute_named_not_installed_and_no_update
818
- spec_fetcher do |fetcher|
819
- fetcher.spec "a", 2
820
- end
821
-
822
- @cmd.options[:args] = %w[a b]
823
-
824
- use_ui @ui do
825
- @cmd.execute
826
- end
827
-
828
- out = @ui.output.split "\n"
829
- assert_equal "Updating installed gems", out.shift
830
- assert_equal "Nothing to update", out.shift
831
- assert_equal "Gems already up-to-date: a", out.shift
832
- assert_equal "Gems not currently installed: b", out.shift
833
-
834
- assert_empty out
835
- end
836
- end