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,551 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/config_file"
5
-
6
- class TestGemConfigFile < Gem::TestCase
7
- def setup
8
- super
9
-
10
- credential_setup
11
-
12
- @temp_conf = File.join @tempdir, ".gemrc"
13
-
14
- @cfg_args = %W[--config-file #{@temp_conf}]
15
-
16
- Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
17
- Gem::ConfigFile::PLATFORM_DEFAULTS.clear
18
-
19
- @env_gemrc = ENV["GEMRC"]
20
- ENV["GEMRC"] = ""
21
-
22
- util_config_file
23
- end
24
-
25
- def teardown
26
- Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS.clear
27
- Gem::ConfigFile::PLATFORM_DEFAULTS.clear
28
-
29
- ENV["GEMRC"] = @env_gemrc
30
-
31
- credential_teardown
32
-
33
- super
34
- end
35
-
36
- def test_initialize
37
- assert_equal @temp_conf, @cfg.config_file_name
38
-
39
- assert_equal true, @cfg.backtrace
40
- assert_equal true, @cfg.update_sources
41
- assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold
42
- assert_equal true, @cfg.verbose
43
- assert_equal [@gem_repo], Gem.sources
44
- assert_equal 365, @cfg.cert_expiration_length_days
45
- assert_equal false, @cfg.ipv4_fallback_enabled
46
-
47
- File.open @temp_conf, "w" do |fp|
48
- fp.puts ":backtrace: true"
49
- fp.puts ":update_sources: false"
50
- fp.puts ":bulk_threshold: 10"
51
- fp.puts ":verbose: false"
52
- fp.puts ":sources:"
53
- fp.puts " - http://more-gems.example.com"
54
- fp.puts "install: --wrappers"
55
- fp.puts ":gempath:"
56
- fp.puts "- /usr/ruby/1.8/lib/ruby/gems/1.8"
57
- fp.puts "- /var/ruby/1.8/gem_home"
58
- fp.puts ":ssl_verify_mode: 0"
59
- fp.puts ":ssl_ca_cert: /etc/ssl/certs"
60
- fp.puts ":cert_expiration_length_days: 28"
61
- fp.puts ":ipv4_fallback_enabled: true"
62
- end
63
-
64
- util_config_file
65
- assert_equal true, @cfg.backtrace
66
- assert_equal 10, @cfg.bulk_threshold
67
- assert_equal false, @cfg.verbose
68
- assert_equal false, @cfg.update_sources
69
- assert_equal %w[http://more-gems.example.com], @cfg.sources
70
- assert_equal "--wrappers", @cfg[:install]
71
- assert_equal(["/usr/ruby/1.8/lib/ruby/gems/1.8", "/var/ruby/1.8/gem_home"],
72
- @cfg.path)
73
- assert_equal 0, @cfg.ssl_verify_mode
74
- assert_equal "/etc/ssl/certs", @cfg.ssl_ca_cert
75
- assert_equal 28, @cfg.cert_expiration_length_days
76
- assert_equal true, @cfg.ipv4_fallback_enabled
77
- end
78
-
79
- def test_initialize_ipv4_fallback_enabled_env
80
- ENV["IPV4_FALLBACK_ENABLED"] = "true"
81
- util_config_file %W[--config-file #{@temp_conf}]
82
-
83
- assert_equal true, @cfg.ipv4_fallback_enabled
84
- end
85
-
86
- def test_initialize_handle_arguments_config_file
87
- util_config_file %W[--config-file #{@temp_conf}]
88
-
89
- assert_equal @temp_conf, @cfg.config_file_name
90
- end
91
-
92
- def test_initialize_handle_arguments_config_file_with_other_params
93
- util_config_file %W[--config-file #{@temp_conf} --backtrace]
94
-
95
- assert_equal @temp_conf, @cfg.config_file_name
96
- end
97
-
98
- def test_initialize_handle_arguments_config_file_equals
99
- util_config_file %W[--config-file=#{@temp_conf}]
100
-
101
- assert_equal @temp_conf, @cfg.config_file_name
102
- end
103
-
104
- def test_initialize_operating_system_override
105
- Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS[:bulk_threshold] = 1
106
- Gem::ConfigFile::OPERATING_SYSTEM_DEFAULTS["install"] = "--no-env-shebang"
107
-
108
- Gem::ConfigFile::PLATFORM_DEFAULTS[:bulk_threshold] = 2
109
-
110
- util_config_file
111
-
112
- assert_equal 2, @cfg.bulk_threshold
113
- assert_equal "--no-env-shebang", @cfg[:install]
114
- end
115
-
116
- def test_initialize_platform_override
117
- Gem::ConfigFile::PLATFORM_DEFAULTS[:bulk_threshold] = 2
118
- Gem::ConfigFile::PLATFORM_DEFAULTS["install"] = "--no-env-shebang"
119
-
120
- File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
121
- fp.puts ":bulk_threshold: 3"
122
- end
123
-
124
- util_config_file
125
-
126
- assert_equal 3, @cfg.bulk_threshold
127
- assert_equal "--no-env-shebang", @cfg[:install]
128
- end
129
-
130
- def test_initialize_system_wide_override
131
- File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
132
- fp.puts ":backtrace: false"
133
- fp.puts ":bulk_threshold: 2048"
134
- end
135
-
136
- File.open @temp_conf, "w" do |fp|
137
- fp.puts ":backtrace: true"
138
- end
139
-
140
- util_config_file
141
-
142
- assert_equal 2048, @cfg.bulk_threshold
143
- assert_equal true, @cfg.backtrace
144
- end
145
-
146
- def test_initialize_environment_variable_override
147
- File.open Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE, "w" do |fp|
148
- fp.puts ":backtrace: false"
149
- fp.puts ":verbose: false"
150
- fp.puts ":bulk_threshold: 2048"
151
- end
152
-
153
- conf1 = File.join @tempdir, "gemrc1"
154
- File.open conf1, "w" do |fp|
155
- fp.puts ":backtrace: true"
156
- end
157
-
158
- conf2 = File.join @tempdir, "gemrc2"
159
- File.open conf2, "w" do |fp|
160
- fp.puts ":verbose: true"
161
- end
162
-
163
- conf3 = File.join @tempdir, "gemrc3"
164
- File.open conf3, "w" do |fp|
165
- fp.puts ":verbose: :loud"
166
- end
167
- ps = File::PATH_SEPARATOR
168
- ENV["GEMRC"] = conf1 + ps + conf2 + ps + conf3
169
-
170
- util_config_file
171
-
172
- assert_equal true, @cfg.backtrace
173
- assert_equal :loud, @cfg.verbose
174
- assert_equal 2048, @cfg.bulk_threshold
175
- end
176
-
177
- def test_set_config_file_name_from_environment_variable
178
- ENV["GEMRC"] = "/tmp/.gemrc"
179
- cfg = Gem::ConfigFile.new([])
180
- assert_equal cfg.config_file_name, "/tmp/.gemrc"
181
- end
182
-
183
- def test_api_keys
184
- assert_nil @cfg.instance_variable_get :@api_keys
185
-
186
- temp_cred = File.join Gem.user_home, ".gem", "credentials"
187
- FileUtils.mkdir_p File.dirname(temp_cred)
188
- File.open temp_cred, "w", 0o600 do |fp|
189
- fp.puts ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
190
- end
191
-
192
- util_config_file
193
-
194
- assert_equal({ :rubygems => "701229f217cdf23b1344c7b4b54ca97" },
195
- @cfg.api_keys)
196
- end
197
-
198
- def test_check_credentials_permissions
199
- pend "chmod not supported" if win_platform?
200
-
201
- @cfg.rubygems_api_key = "x"
202
-
203
- File.chmod 0o644, @cfg.credentials_path
204
-
205
- use_ui @ui do
206
- assert_raise Gem::MockGemUi::TermError do
207
- @cfg.load_api_keys
208
- end
209
- end
210
-
211
- assert_empty @ui.output
212
-
213
- expected = <<-EXPECTED
214
- ERROR: Your gem push credentials file located at:
215
-
216
- \t#{@cfg.credentials_path}
217
-
218
- has file permissions of 0644 but 0600 is required.
219
-
220
- To fix this error run:
221
-
222
- \tchmod 0600 #{@cfg.credentials_path}
223
-
224
- You should reset your credentials at:
225
-
226
- \thttps://rubygems.org/profile/edit
227
-
228
- if you believe they were disclosed to a third party.
229
- EXPECTED
230
-
231
- assert_equal expected, @ui.error
232
- end
233
-
234
- def test_handle_arguments
235
- args = %w[--backtrace --bunch --of --args here]
236
-
237
- @cfg.handle_arguments args
238
-
239
- assert_equal %w[--bunch --of --args here], @cfg.args
240
- end
241
-
242
- def test_handle_arguments_backtrace
243
- File.open @temp_conf, "w" do |fp|
244
- fp.puts ":backtrace: false"
245
- end
246
-
247
- util_config_file %W[--config-file=#{@temp_conf}]
248
-
249
- assert_equal false, @cfg.backtrace
250
-
251
- args = %w[--backtrace]
252
-
253
- @cfg.handle_arguments args
254
-
255
- assert_equal true, @cfg.backtrace
256
- end
257
-
258
- def test_handle_arguments_debug
259
- assert_equal false, $DEBUG
260
-
261
- args = %w[--debug]
262
-
263
- _, err = capture_output do
264
- @cfg.handle_arguments args
265
- end
266
-
267
- assert_match "NOTE", err
268
-
269
- assert_equal true, $DEBUG
270
- ensure
271
- $DEBUG = false
272
- end
273
-
274
- def test_handle_arguments_override
275
- File.open @temp_conf, "w" do |fp|
276
- fp.puts ":backtrace: false"
277
- end
278
-
279
- util_config_file %W[--backtrace --config-file=#{@temp_conf}]
280
-
281
- assert_equal true, @cfg.backtrace
282
- end
283
-
284
- def test_handle_arguments_traceback
285
- File.open @temp_conf, "w" do |fp|
286
- fp.puts ":backtrace: false"
287
- end
288
-
289
- util_config_file %W[--config-file=#{@temp_conf}]
290
-
291
- assert_equal false, @cfg.backtrace
292
-
293
- args = %w[--traceback]
294
-
295
- @cfg.handle_arguments args
296
-
297
- assert_equal true, @cfg.backtrace
298
- end
299
-
300
- def test_handle_arguments_norc
301
- assert_equal @temp_conf, @cfg.config_file_name
302
-
303
- File.open @temp_conf, "w" do |fp|
304
- fp.puts ":backtrace: false"
305
- fp.puts ":update_sources: false"
306
- fp.puts ":bulk_threshold: 10"
307
- fp.puts ":verbose: false"
308
- fp.puts ":sources:"
309
- fp.puts " - http://more-gems.example.com"
310
- end
311
-
312
- args = %W[--norc]
313
-
314
- util_config_file args
315
-
316
- assert_equal true, @cfg.backtrace
317
- assert_equal true, @cfg.update_sources
318
- assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold
319
- assert_equal true, @cfg.verbose
320
- assert_equal [@gem_repo], Gem.sources
321
- end
322
-
323
- def test_load_api_keys
324
- temp_cred = File.join Gem.user_home, ".gem", "credentials"
325
- FileUtils.mkdir_p File.dirname(temp_cred)
326
- File.open temp_cred, "w", 0o600 do |fp|
327
- fp.puts ":rubygems_api_key: rubygems_b9ce70c306b3a2e248679fbbbd66722d408d3c8c4f00566c"
328
- fp.puts ":other: rubygems_9636a120106ea8b81fbc792188251738665711d2ece160c5"
329
- fp.puts "http://localhost:3000: rubygems_be293ad9dd71550a012b17d848893b41960b811ce9312b47"
330
- end
331
-
332
- util_config_file
333
-
334
- assert_equal(
335
- { :rubygems => "rubygems_b9ce70c306b3a2e248679fbbbd66722d408d3c8c4f00566c",
336
- :other => "rubygems_9636a120106ea8b81fbc792188251738665711d2ece160c5",
337
- "http://localhost:3000" => "rubygems_be293ad9dd71550a012b17d848893b41960b811ce9312b47" },
338
- @cfg.api_keys
339
- )
340
- end
341
-
342
- def test_load_api_keys_bad_permission
343
- pend "chmod not supported" if win_platform?
344
-
345
- @cfg.rubygems_api_key = "x"
346
-
347
- File.chmod 0o644, @cfg.credentials_path
348
-
349
- assert_raise Gem::MockGemUi::TermError do
350
- @cfg.load_api_keys
351
- end
352
- end
353
-
354
- def test_really_verbose
355
- assert_equal false, @cfg.really_verbose
356
-
357
- @cfg.verbose = true
358
-
359
- assert_equal false, @cfg.really_verbose
360
-
361
- @cfg.verbose = 1
362
-
363
- assert_equal true, @cfg.really_verbose
364
- end
365
-
366
- def test_rubygems_api_key_equals
367
- @cfg.rubygems_api_key = "x"
368
-
369
- assert_equal "x", @cfg.rubygems_api_key
370
-
371
- expected = {
372
- :rubygems_api_key => "x",
373
- }
374
-
375
- assert_equal expected, load_yaml_file(@cfg.credentials_path)
376
-
377
- unless win_platform?
378
- stat = File.stat @cfg.credentials_path
379
-
380
- assert_equal 0o600, stat.mode & 0o600
381
- end
382
- end
383
-
384
- def test_rubygems_api_key_equals_bad_permission
385
- pend "chmod not supported" if win_platform?
386
-
387
- @cfg.rubygems_api_key = "x"
388
-
389
- File.chmod 0o644, @cfg.credentials_path
390
-
391
- assert_raise Gem::MockGemUi::TermError do
392
- @cfg.rubygems_api_key = "y"
393
- end
394
-
395
- expected = {
396
- :rubygems_api_key => "x",
397
- }
398
-
399
- assert_equal expected, load_yaml_file(@cfg.credentials_path)
400
-
401
- stat = File.stat @cfg.credentials_path
402
-
403
- assert_equal 0o644, stat.mode & 0o644
404
- end
405
-
406
- def test_write
407
- @cfg.backtrace = false
408
- @cfg.update_sources = false
409
- @cfg.bulk_threshold = 10
410
- @cfg.verbose = false
411
- Gem.sources.replace %w[http://more-gems.example.com]
412
- @cfg[:install] = "--wrappers"
413
-
414
- @cfg.write
415
-
416
- util_config_file
417
-
418
- # These should not be written out to the config file.
419
- assert_equal true, @cfg.backtrace, "backtrace"
420
- assert_equal Gem::ConfigFile::DEFAULT_BULK_THRESHOLD, @cfg.bulk_threshold,
421
- "bulk_threshold"
422
- assert_equal true, @cfg.update_sources, "update_sources"
423
- assert_equal true, @cfg.verbose, "verbose"
424
-
425
- assert_equal "--wrappers", @cfg[:install], "install"
426
-
427
- # this should be written out to the config file.
428
- assert_equal %w[http://more-gems.example.com], Gem.sources
429
- end
430
-
431
- def test_write_from_hash
432
- File.open @temp_conf, "w" do |fp|
433
- fp.puts ":backtrace: true"
434
- fp.puts ":bulk_threshold: 10"
435
- fp.puts ":update_sources: false"
436
- fp.puts ":verbose: false"
437
- fp.puts ":sources:"
438
- fp.puts " - http://more-gems.example.com"
439
- fp.puts ":ssl_verify_mode: 2"
440
- fp.puts ":ssl_ca_cert: /nonexistent/ca_cert.pem"
441
- fp.puts ":ssl_client_cert: /nonexistent/client_cert.pem"
442
- fp.puts "install: --wrappers"
443
- end
444
-
445
- util_config_file
446
-
447
- @cfg.backtrace = :junk
448
- @cfg.update_sources = :junk
449
- @cfg.bulk_threshold = 20
450
- @cfg.verbose = :junk
451
- Gem.sources.replace %w[http://even-more-gems.example.com]
452
- @cfg[:install] = "--wrappers --no-rdoc"
453
-
454
- @cfg.write
455
-
456
- util_config_file
457
-
458
- # These should not be written out to the config file
459
- assert_equal true, @cfg.backtrace, "backtrace"
460
- assert_equal 10, @cfg.bulk_threshold, "bulk_threshold"
461
- assert_equal false, @cfg.update_sources, "update_sources"
462
- assert_equal false, @cfg.verbose, "verbose"
463
-
464
- assert_equal 2, @cfg.ssl_verify_mode
465
- assert_equal "/nonexistent/ca_cert.pem", @cfg.ssl_ca_cert
466
- assert_equal "/nonexistent/client_cert.pem", @cfg.ssl_client_cert
467
-
468
- assert_equal "--wrappers --no-rdoc", @cfg[:install], "install"
469
-
470
- assert_equal %w[http://even-more-gems.example.com], Gem.sources
471
- end
472
-
473
- def test_ignore_invalid_config_file
474
- File.open @temp_conf, "w" do |fp|
475
- fp.puts "invalid: yaml:"
476
- end
477
-
478
- begin
479
- verbose = $VERBOSE
480
- $VERBOSE = nil
481
-
482
- util_config_file
483
- ensure
484
- $VERBOSE = verbose
485
- end
486
- end
487
-
488
- def test_load_ssl_verify_mode_from_config
489
- File.open @temp_conf, "w" do |fp|
490
- fp.puts ":ssl_verify_mode: 1"
491
- end
492
- util_config_file
493
- assert_equal(1, @cfg.ssl_verify_mode)
494
- end
495
-
496
- def test_load_ssl_ca_cert_from_config
497
- File.open @temp_conf, "w" do |fp|
498
- fp.puts ":ssl_ca_cert: /home/me/certs"
499
- end
500
- util_config_file
501
- assert_equal("/home/me/certs", @cfg.ssl_ca_cert)
502
- end
503
-
504
- def test_load_ssl_client_cert_from_config
505
- File.open @temp_conf, "w" do |fp|
506
- fp.puts ":ssl_client_cert: /home/me/mine.pem"
507
- end
508
- util_config_file
509
- assert_equal("/home/me/mine.pem", @cfg.ssl_client_cert)
510
- end
511
-
512
- def util_config_file(args = @cfg_args)
513
- @cfg = Gem::ConfigFile.new args
514
- end
515
-
516
- def test_disable_default_gem_server
517
- File.open @temp_conf, "w" do |fp|
518
- fp.puts ":disable_default_gem_server: true"
519
- end
520
- util_config_file
521
- assert_equal(true, @cfg.disable_default_gem_server)
522
- end
523
-
524
- def test_load_with_rubygems_config_hash
525
- yaml = <<~YAML
526
- ---
527
- :foo: bar
528
- bar: 100
529
- buzz: true
530
- alpha: :bravo
531
- charlie: ""
532
- delta:
533
- YAML
534
- actual = Gem::ConfigFile.load_with_rubygems_config_hash(yaml)
535
-
536
- assert_equal "bar", actual[:foo]
537
- assert_equal 100, actual["bar"]
538
- assert_equal true, actual["buzz"]
539
- assert_equal :bravo, actual["alpha"]
540
- assert_equal nil, actual["charlie"]
541
- assert_equal nil, actual["delta"]
542
- end
543
-
544
- def test_dump_with_rubygems_yaml
545
- symbol_key_hash = { :foo => "bar" }
546
-
547
- actual = Gem::ConfigFile.dump_with_rubygems_yaml(symbol_key_hash)
548
-
549
- assert_equal("---\n:foo: \"bar\"\n", actual)
550
- end
551
- end