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,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