rubygems-update 3.4.22 → 3.5.1

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