rubygems-update 3.4.22 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +254 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +46 -30
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. data/test/test_changelog_generator.rb +0 -17
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemSourceFetchProblem < Gem::TestCase
6
- def test_exception
7
- source = Gem::Source.new @gem_repo
8
- error = RuntimeError.new "test"
9
-
10
- sf = Gem::SourceFetchProblem.new source, error
11
-
12
- e = assert_raise RuntimeError do
13
- raise sf
14
- end
15
-
16
- assert_equal "test", e.message
17
- end
18
-
19
- def test_password_redacted
20
- source = Gem::Source.new "https://username:secret@gemsource.com"
21
- error = RuntimeError.new "test"
22
-
23
- sf = Gem::SourceFetchProblem.new source, error
24
-
25
- refute_match sf.wordy, "secret"
26
- end
27
-
28
- def test_source_password_no_redacted
29
- source = Gem::Source.new "https://username:secret@gemsource.com"
30
- error = RuntimeError.new "test"
31
-
32
- sf = Gem::SourceFetchProblem.new source, error
33
- sf.wordy
34
-
35
- assert_match "secret", source.uri.to_s
36
- end
37
- end
@@ -1,310 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- class TestGemSourceGit < Gem::TestCase
7
- def setup
8
- super
9
-
10
- @name, @version, @repository, @head = git_gem
11
-
12
- @hash = Digest::SHA1.hexdigest @repository
13
-
14
- @source = Gem::Source::Git.new @name, @repository, nil, false
15
- end
16
-
17
- def test_base_dir
18
- assert_equal File.join(Gem.dir, "bundler"), @source.base_dir
19
-
20
- @source.root_dir = "#{@gemhome}2"
21
-
22
- assert_equal File.join("#{@gemhome}2", "bundler"), @source.base_dir
23
- end
24
-
25
- def test_checkout
26
- @source.checkout
27
-
28
- assert_path_exist File.join @source.install_dir, "a.gemspec"
29
- end
30
-
31
- def test_checkout_default
32
- Dir.chdir @repository do
33
- default_branch = Gem::Util.popen(@git, "branch", "--show-current").strip
34
- system @git, "checkout", "-q", "-b", "other"
35
- system @git, "mv", "a.gemspec", "b.gemspec"
36
- system @git, "commit", "-q", "-a", "-m", "rename gemspec"
37
- system @git, "checkout", "-q", default_branch
38
- end
39
-
40
- @source = Gem::Source::Git.new @name, @repository, "other", false
41
-
42
- @source.checkout
43
-
44
- assert_path_exist File.join @source.install_dir, "b.gemspec"
45
- end
46
-
47
- def test_checkout_local
48
- @source.remote = false
49
-
50
- @source.checkout
51
-
52
- install_dir = File.join Gem.dir, "bundler", "gems", "a-#{@head[0..11]}"
53
-
54
- assert_path_not_exist File.join install_dir, "a.gemspec"
55
- end
56
-
57
- def test_checkout_local_cached
58
- @source.cache
59
-
60
- @source.remote = false
61
-
62
- @source.checkout
63
-
64
- assert_path_exist File.join @source.install_dir, "a.gemspec"
65
- end
66
-
67
- def test_checkout_submodules
68
- # We need to allow to checkout submodules with file:// protocol
69
- # CVE-2022-39253
70
- # https://lore.kernel.org/lkml/xmqq4jw1uku5.fsf@gitster.g/
71
- system(@git, *%W[config --global protocol.file.allow always])
72
-
73
- source = Gem::Source::Git.new @name, @repository, nil, true
74
-
75
- git_gem "b"
76
-
77
- Dir.chdir "git/a" do
78
- require "open3"
79
- output, status = Open3.capture2e(@git, "submodule", "--quiet", "add", File.expand_path("../b"), "b")
80
- assert status.success?, output
81
-
82
- system @git, "commit", "--quiet", "-m", "add submodule b"
83
- end
84
-
85
- source.checkout
86
-
87
- assert_path_exist File.join source.install_dir, "a.gemspec"
88
- assert_path_exist File.join source.install_dir, "b/b.gemspec"
89
- end
90
-
91
- def test_cache
92
- assert @source.cache
93
-
94
- assert_path_exist @source.repo_cache_dir
95
-
96
- Dir.chdir @source.repo_cache_dir do
97
- assert_equal @head, Gem::Util.popen(@git, "rev-parse", "HEAD").strip
98
- end
99
- end
100
-
101
- def test_cache_local
102
- @source.remote = false
103
-
104
- @source.cache
105
-
106
- assert_path_not_exist @source.repo_cache_dir
107
- end
108
-
109
- def test_dir_shortref
110
- @source.cache
111
-
112
- assert_equal @head[0..11], @source.dir_shortref
113
- end
114
-
115
- def test_download
116
- refute @source.download nil, nil
117
- end
118
-
119
- def test_equals2
120
- assert_equal @source, @source
121
-
122
- assert_equal @source, @source.dup
123
-
124
- source =
125
- Gem::Source::Git.new @source.name, @source.repository, "other", false
126
-
127
- refute_equal @source, source
128
-
129
- source =
130
- Gem::Source::Git.new @source.name, "repo/other", @source.reference, false
131
-
132
- refute_equal @source, source
133
-
134
- source =
135
- Gem::Source::Git.new "b", @source.repository, @source.reference, false
136
-
137
- refute_equal @source, source
138
-
139
- source =
140
- Gem::Source::Git.new @source.name, @source.repository, @source.reference,
141
- true
142
-
143
- refute_equal @source, source
144
- end
145
-
146
- def test_install_dir
147
- @source.cache
148
-
149
- expected = File.join Gem.dir, "bundler", "gems", "a-#{@head[0..11]}"
150
-
151
- assert_equal expected, @source.install_dir
152
- end
153
-
154
- def test_install_dir_local
155
- @source.remote = false
156
-
157
- assert_nil @source.install_dir
158
- end
159
-
160
- def test_repo_cache_dir
161
- expected =
162
- File.join Gem.dir, "cache", "bundler", "git", "a-#{@hash}"
163
-
164
- assert_equal expected, @source.repo_cache_dir
165
-
166
- @source.root_dir = "#{@gemhome}2"
167
-
168
- expected =
169
- File.join "#{@gemhome}2", "cache", "bundler", "git", "a-#{@hash}"
170
-
171
- assert_equal expected, @source.repo_cache_dir
172
- end
173
-
174
- def test_rev_parse
175
- @source.cache
176
-
177
- assert_equal @head, @source.rev_parse
178
-
179
- Dir.chdir @repository do
180
- system @git, "checkout", "--quiet", "-b", "other"
181
- end
182
-
183
- default_head = @head
184
-
185
- git_gem "a", 2
186
-
187
- source = Gem::Source::Git.new @name, @repository, "other", false
188
-
189
- source.cache
190
-
191
- refute_equal default_head, source.rev_parse
192
-
193
- source = Gem::Source::Git.new @name, @repository, "nonexistent", false
194
-
195
- source.cache
196
-
197
- e = assert_raise Gem::Exception do
198
- capture_subprocess_io { source.rev_parse }
199
- end
200
-
201
- assert_equal "unable to find reference nonexistent in #{@repository}",
202
- e.message
203
- end
204
-
205
- def test_root_dir
206
- assert_equal Gem.dir, @source.root_dir
207
-
208
- @source.root_dir = "#{@gemhome}2"
209
-
210
- assert_equal "#{@gemhome}2", @source.root_dir
211
- end
212
-
213
- def test_spaceship
214
- git = Gem::Source::Git.new "a", "git/a", nil, false
215
- remote = Gem::Source.new @gem_repo
216
- installed = Gem::Source::Installed.new
217
- vendor = Gem::Source::Vendor.new "vendor/foo"
218
-
219
- assert_equal(0, git.<=>(git), "git <=> git")
220
-
221
- assert_equal(1, git.<=>(remote), "git <=> remote")
222
- assert_equal(-1, remote.<=>(git), "remote <=> git")
223
-
224
- assert_equal(1, git.<=>(installed), "git <=> installed")
225
- assert_equal(-1, installed.<=>(git), "installed <=> git")
226
-
227
- assert_equal(-1, git.<=>(vendor), "git <=> vendor")
228
- assert_equal(1, vendor.<=>(git), "vendor <=> git")
229
- end
230
-
231
- def test_specs
232
- source = Gem::Source::Git.new @name, @repository, nil, true
233
-
234
- Dir.chdir "git/a" do
235
- FileUtils.mkdir "b"
236
-
237
- Dir.chdir "b" do
238
- b = Gem::Specification.new "b", 1
239
-
240
- File.open "b.gemspec", "w" do |io|
241
- io.write b.to_ruby
242
- end
243
-
244
- system @git, "add", "b.gemspec"
245
- system @git, "commit", "--quiet", "-m", "add b/b.gemspec"
246
- end
247
- end
248
-
249
- specs = nil
250
-
251
- capture_output do
252
- specs = source.specs
253
- end
254
-
255
- assert_equal %w[a-1 b-1], specs.map {|spec| spec.full_name }
256
-
257
- a_spec = specs.shift
258
-
259
- base_dir = File.dirname File.dirname source.install_dir
260
-
261
- assert_equal source.install_dir, a_spec.full_gem_path
262
- assert_equal File.join(source.install_dir, "a.gemspec"), a_spec.loaded_from
263
- assert_equal base_dir, a_spec.base_dir
264
-
265
- extension_dir =
266
- File.join Gem.dir, "bundler", "extensions",
267
- Gem::Platform.local.to_s, Gem.extension_api_version,
268
- "a-#{source.dir_shortref}"
269
-
270
- assert_equal extension_dir, a_spec.extension_dir
271
-
272
- b_spec = specs.shift
273
-
274
- assert_equal File.join(source.install_dir, "b"), b_spec.full_gem_path
275
- assert_equal File.join(source.install_dir, "b", "b.gemspec"),
276
- b_spec.loaded_from
277
- assert_equal base_dir, b_spec.base_dir
278
-
279
- assert_equal extension_dir, b_spec.extension_dir
280
- end
281
-
282
- def test_specs_local
283
- source = Gem::Source::Git.new @name, @repository, nil, true
284
- source.remote = false
285
-
286
- capture_output do
287
- assert_empty source.specs
288
- end
289
- end
290
-
291
- def test_uri
292
- assert_equal URI(@repository), @source.uri
293
- end
294
-
295
- def test_uri_hash
296
- assert_equal @hash, @source.uri_hash
297
-
298
- source =
299
- Gem::Source::Git.new "a", "http://git@example/repo.git", nil, false
300
-
301
- assert_equal "291c4caac7feba8bb64c297987028acb3dde6cfe",
302
- source.uri_hash
303
-
304
- source =
305
- Gem::Source::Git.new "a", "HTTP://git@EXAMPLE/repo.git", nil, false
306
-
307
- assert_equal "291c4caac7feba8bb64c297987028acb3dde6cfe",
308
- source.uri_hash
309
- end
310
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- class TestGemSourceInstalled < Gem::TestCase
7
- def test_spaceship
8
- a1 = quick_gem "a", "1"
9
- util_build_gem a1
10
-
11
- remote = Gem::Source.new @gem_repo
12
- specific = Gem::Source::SpecificFile.new a1.cache_file
13
- installed = Gem::Source::Installed.new
14
- local = Gem::Source::Local.new
15
- git = Gem::Source::Git.new "a", "a", nil
16
- vendor = Gem::Source::Vendor.new "a"
17
-
18
- assert_equal(0, installed.<=>(installed), "installed <=> installed")
19
-
20
- assert_equal(-1, remote.<=>(installed), "remote <=> installed")
21
- assert_equal(1, installed.<=>(remote), "installed <=> remote")
22
-
23
- assert_equal(1, installed.<=>(local), "installed <=> local")
24
- assert_equal(-1, local.<=>(installed), "local <=> installed")
25
-
26
- assert_equal(-1, specific.<=>(installed), "specific <=> installed")
27
- assert_equal(1, installed.<=>(specific), "installed <=> specific")
28
-
29
- assert_equal(1, git. <=>(installed), "git <=> installed")
30
- assert_equal(-1, installed.<=>(git), "installed <=> git")
31
-
32
- assert_equal(1, vendor.<=>(installed), "vendor <=> installed")
33
- assert_equal(-1, installed.<=>(vendor), "installed <=> vendor")
34
- end
35
- end
@@ -1,119 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rubygems"
4
- require "rubygems/source_list"
5
- require_relative "helper"
6
-
7
- class TestGemSourceList < Gem::TestCase
8
- def setup
9
- super
10
-
11
- @uri = "http://example"
12
- @source = Gem::Source.new(@uri)
13
-
14
- @sl = Gem::SourceList.new
15
- @sl << @source
16
- end
17
-
18
- def test_self_from
19
- sl = Gem::SourceList.from [@uri]
20
-
21
- assert_equal [Gem::Source.new(@uri)], sl.sources
22
- end
23
-
24
- def test_Enumerable
25
- assert_includes Gem::SourceList.ancestors, Enumerable
26
- end
27
-
28
- def test_append
29
- sl = Gem::SourceList.new
30
- sl << @uri
31
- sl << @uri
32
-
33
- assert_equal sl.to_a.size, 1
34
-
35
- sl.clear
36
- source = (sl << @uri)
37
-
38
- assert_kind_of Gem::Source, source
39
-
40
- assert_kind_of URI, source.uri
41
- assert_equal source.uri.to_s, @uri
42
-
43
- assert_equal [source], sl.sources
44
- end
45
-
46
- def test_clear
47
- sl = Gem::SourceList.new
48
-
49
- sl << "http://source.example"
50
-
51
- sl.clear
52
-
53
- assert_empty sl
54
- end
55
-
56
- def test_replace
57
- sl = Gem::SourceList.new
58
- sl.replace [@uri]
59
-
60
- assert_equal [@source], sl.sources
61
- end
62
-
63
- def test_each
64
- @sl.each do |x|
65
- assert_equal @uri, x
66
- end
67
- end
68
-
69
- def test_each_source
70
- @sl.each_source do |x|
71
- assert_equal @source, x
72
- end
73
- end
74
-
75
- def test_empty?
76
- sl = Gem::SourceList.new
77
-
78
- assert_empty sl
79
-
80
- sl << "http://source.example"
81
-
82
- refute_empty sl
83
- end
84
-
85
- def test_equal_to_another_list
86
- sl2 = Gem::SourceList.new
87
- sl2 << Gem::Source.new(@uri)
88
-
89
- assert @sl == sl2, "lists not equal"
90
- end
91
-
92
- def test_equal_to_array
93
- assert @sl == [@uri], "lists not equal"
94
- end
95
-
96
- def test_to_a
97
- assert_equal @sl.to_a, [@uri]
98
- end
99
-
100
- def test_include_eh
101
- assert @sl.include?(@uri), "string comparison not working"
102
- assert @sl.include?(URI.parse(@uri)), "uri comparison not working"
103
- end
104
-
105
- def test_include_matches_a_source
106
- assert @sl.include?(@source), "source comparison not working"
107
- assert @sl.include?(Gem::Source.new(@uri)), "source comparison not working"
108
- end
109
-
110
- def test_delete
111
- @sl.delete @uri
112
- assert_equal @sl.sources, []
113
- end
114
-
115
- def test_delete_a_source
116
- @sl.delete Gem::Source.new(@uri)
117
- assert_equal @sl.sources, []
118
- end
119
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- require "fileutils"
7
-
8
- class TestGemSourceLocal < Gem::TestCase
9
- def setup
10
- super
11
-
12
- @sl = Gem::Source::Local.new
13
-
14
- @a, @a_gem = util_gem "a", "1"
15
- @ap, @ap_gem = util_gem "a", "2.a"
16
- @b, @b_gem = util_gem "b", "1"
17
-
18
- FileUtils.mv @a_gem, @tempdir
19
- FileUtils.mv @ap_gem, @tempdir
20
- FileUtils.mv @b_gem, @tempdir
21
- end
22
-
23
- def test_load_specs_released
24
- assert_equal [@a.name_tuple, @b.name_tuple].sort,
25
- @sl.load_specs(:released).sort
26
- end
27
-
28
- def test_load_specs_prerelease
29
- assert_equal [@ap.name_tuple], @sl.load_specs(:prerelease)
30
- end
31
-
32
- def test_load_specs_latest
33
- a2, a2_gem = util_gem "a", "2"
34
-
35
- FileUtils.mv a2_gem, @tempdir
36
-
37
- assert_equal [a2.name_tuple, @b.name_tuple].sort,
38
- @sl.load_specs(:latest).sort
39
- end
40
-
41
- def test_find_gem
42
- assert_equal "a-1", @sl.find_gem("a").full_name
43
- end
44
-
45
- def test_find_gem_highest_version
46
- _, a2_gem = util_gem "a", "2"
47
- FileUtils.mv a2_gem, @tempdir
48
-
49
- assert_equal "a-2", @sl.find_gem("a").full_name
50
- end
51
-
52
- def test_find_gem_specific_version
53
- _, a2_gem = util_gem "a", "2"
54
- FileUtils.mv a2_gem, @tempdir
55
-
56
- req = Gem::Requirement.create("= 1")
57
-
58
- assert_equal "a-1", @sl.find_gem("a", req).full_name
59
- end
60
-
61
- def test_find_gem_prerelease
62
- req = Gem::Requirement.create(">= 0")
63
- assert_equal "a-2.a", @sl.find_gem("a", req, true).full_name
64
- end
65
-
66
- def test_fetch_spec
67
- s = @sl.fetch_spec @a.name_tuple
68
- assert_equal s, @a
69
- end
70
-
71
- def test_inspect
72
- assert_equal '#<Gem::Source::Local specs: "NOT LOADED">', @sl.inspect
73
-
74
- @sl.load_specs :released
75
-
76
- inner = [@a, @ap, @b].map {|t| t.name_tuple }.inspect
77
-
78
- assert_equal "#<Gem::Source::Local specs: #{inner}>", @sl.inspect
79
- end
80
-
81
- def test_download
82
- path = @sl.download @a
83
-
84
- assert_equal File.expand_path(@a.file_name), path
85
- end
86
-
87
- def test_spaceship
88
- a1 = quick_gem "a", "1"
89
- util_build_gem a1
90
-
91
- remote = Gem::Source.new @gem_repo
92
- specific = Gem::Source::SpecificFile.new a1.cache_file
93
- installed = Gem::Source::Installed.new
94
- local = Gem::Source::Local.new
95
-
96
- assert_equal(0, local.<=>(local), "local <=> local")
97
-
98
- assert_equal(-1, remote.<=>(local), "remote <=> local")
99
- assert_equal(1, local.<=>(remote), "local <=> remote")
100
-
101
- assert_equal(1, installed.<=>(local), "installed <=> local")
102
- assert_equal(-1, local.<=>(installed), "local <=> installed")
103
-
104
- assert_equal(-1, specific.<=>(local), "specific <=> local")
105
- assert_equal(1, local.<=>(specific), "local <=> specific")
106
- end
107
- end