rubygems-update 3.4.22 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
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,255 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/user_interaction"
5
- require "timeout"
6
-
7
- class TestGemStreamUI < Gem::TestCase
8
- # increase timeout with RJIT for --jit-wait testing
9
- rjit_enabled = defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled?
10
- SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !rjit_enabled) ? 0.1 : 1.0
11
-
12
- module IsTty
13
- attr_accessor :tty
14
-
15
- def tty?
16
- @tty = true unless defined? @tty
17
- @tty
18
- end
19
-
20
- alias_method :isatty, :tty?
21
-
22
- def noecho
23
- yield self
24
- end
25
- end
26
-
27
- def setup
28
- super
29
-
30
- @cfg = Gem.configuration
31
-
32
- @in = StringIO.new
33
- @out = StringIO.new
34
- @err = StringIO.new
35
-
36
- @in.extend IsTty
37
- @out.extend IsTty
38
-
39
- @sui = Gem::StreamUI.new @in, @out, @err, true
40
- end
41
-
42
- def test_ask
43
- Timeout.timeout(5) do
44
- expected_answer = "Arthur, King of the Britons"
45
- @in.string = "#{expected_answer}\n"
46
- actual_answer = @sui.ask("What is your name?")
47
- assert_equal expected_answer, actual_answer
48
- end
49
- end
50
-
51
- def test_ask_no_tty
52
- @in.tty = false
53
-
54
- Timeout.timeout(SHORT_TIMEOUT) do
55
- answer = @sui.ask("what is your favorite color?")
56
- assert_nil answer
57
- end
58
- end
59
-
60
- def test_ask_for_password
61
- Timeout.timeout(5) do
62
- expected_answer = "Arthur, King of the Britons"
63
- @in.string = "#{expected_answer}\n"
64
- actual_answer = @sui.ask_for_password("What is your name?")
65
- assert_equal expected_answer, actual_answer
66
- end
67
- end
68
-
69
- def test_ask_for_password_no_tty
70
- @in.tty = false
71
-
72
- Timeout.timeout(SHORT_TIMEOUT) do
73
- answer = @sui.ask_for_password("what is the airspeed velocity of an unladen swallow?")
74
- assert_nil answer
75
- end
76
- end
77
-
78
- def test_ask_yes_no_no_tty_with_default
79
- @in.tty = false
80
-
81
- Timeout.timeout(SHORT_TIMEOUT) do
82
- answer = @sui.ask_yes_no("do coconuts migrate?", false)
83
- assert_equal false, answer
84
-
85
- answer = @sui.ask_yes_no("do coconuts migrate?", true)
86
- assert_equal true, answer
87
- end
88
- end
89
-
90
- def test_ask_yes_no_no_tty_without_default
91
- @in.tty = false
92
-
93
- Timeout.timeout(SHORT_TIMEOUT) do
94
- assert_raise(Gem::OperationNotSupportedError) do
95
- @sui.ask_yes_no("do coconuts migrate?")
96
- end
97
- end
98
- end
99
-
100
- def test_choose_from_list
101
- @in.puts "1"
102
- @in.rewind
103
-
104
- result = @sui.choose_from_list "which one?", %w[foo bar]
105
-
106
- assert_equal ["foo", 0], result
107
- assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
108
- end
109
-
110
- def test_choose_from_list_EOF
111
- result = @sui.choose_from_list "which one?", %w[foo bar]
112
-
113
- assert_equal [nil, nil], result
114
- assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
115
- end
116
-
117
- def test_choose_from_list_0
118
- @in.puts "0"
119
- @in.rewind
120
-
121
- result = @sui.choose_from_list "which one?", %w[foo bar]
122
-
123
- assert_equal [nil, nil], result
124
- assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
125
- end
126
-
127
- def test_choose_from_list_over
128
- @in.puts "3"
129
- @in.rewind
130
-
131
- result = @sui.choose_from_list "which one?", %w[foo bar]
132
-
133
- assert_equal [nil, nil], result
134
- assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
135
- end
136
-
137
- def test_choose_from_list_negative
138
- @in.puts "-1"
139
- @in.rewind
140
-
141
- result = @sui.choose_from_list "which one?", %w[foo bar]
142
-
143
- assert_equal [nil, nil], result
144
- assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
145
- end
146
-
147
- def test_progress_reporter_silent_nil
148
- @cfg.verbose = nil
149
- reporter = @sui.progress_reporter 10, "hi"
150
- assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter
151
- end
152
-
153
- def test_progress_reporter_silent_false
154
- @cfg.verbose = false
155
- reporter = @sui.progress_reporter 10, "hi"
156
- assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter
157
- assert_equal "", @out.string
158
- end
159
-
160
- def test_progress_reporter_simple
161
- @cfg.verbose = true
162
- reporter = @sui.progress_reporter 10, "hi"
163
- assert_kind_of Gem::StreamUI::SimpleProgressReporter, reporter
164
- assert_equal "hi\n", @out.string
165
- end
166
-
167
- def test_progress_reporter_verbose
168
- @cfg.verbose = 0
169
- reporter = @sui.progress_reporter 10, "hi"
170
- assert_kind_of Gem::StreamUI::VerboseProgressReporter, reporter
171
- assert_equal "hi\n", @out.string
172
- end
173
-
174
- def test_download_reporter_silent_nil
175
- @cfg.verbose = nil
176
- reporter = @sui.download_reporter
177
- reporter.fetch "a.gem", 1024
178
- assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter
179
- assert_equal "", @out.string
180
- end
181
-
182
- def test_download_reporter_silent_false
183
- @cfg.verbose = false
184
- reporter = @sui.download_reporter
185
- reporter.fetch "a.gem", 1024
186
- assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter
187
- assert_equal "", @out.string
188
- end
189
-
190
- def test_download_reporter_anything
191
- @cfg.verbose = 0
192
- reporter = @sui.download_reporter
193
- assert_kind_of Gem::StreamUI::ThreadedDownloadReporter, reporter
194
- end
195
-
196
- def test_threaded_download_reporter
197
- @cfg.verbose = true
198
- reporter = @sui.download_reporter
199
- reporter.fetch "a.gem", 1024
200
- assert_equal "Fetching a.gem\n", @out.string
201
- end
202
-
203
- def test_verbose_download_reporter_progress
204
- @cfg.verbose = true
205
- reporter = @sui.download_reporter
206
- reporter.fetch "a.gem", 1024
207
- reporter.update 512
208
- assert_equal "Fetching a.gem\n", @out.string
209
- end
210
-
211
- def test_verbose_download_reporter_progress_once
212
- @cfg.verbose = true
213
- reporter = @sui.download_reporter
214
- reporter.fetch "a.gem", 1024
215
- reporter.update 510
216
- reporter.update 512
217
- assert_equal "Fetching a.gem\n", @out.string
218
- end
219
-
220
- def test_verbose_download_reporter_progress_complete
221
- @cfg.verbose = true
222
- reporter = @sui.download_reporter
223
- reporter.fetch "a.gem", 1024
224
- reporter.update 510
225
- reporter.done
226
- assert_equal "Fetching a.gem\n", @out.string
227
- end
228
-
229
- def test_verbose_download_reporter_progress_nil_length
230
- @cfg.verbose = true
231
- reporter = @sui.download_reporter
232
- reporter.fetch "a.gem", nil
233
- reporter.update 1024
234
- reporter.done
235
- assert_equal "Fetching a.gem\n", @out.string
236
- end
237
-
238
- def test_verbose_download_reporter_progress_zero_length
239
- @cfg.verbose = true
240
- reporter = @sui.download_reporter
241
- reporter.fetch "a.gem", 0
242
- reporter.update 1024
243
- reporter.done
244
- assert_equal "Fetching a.gem\n", @out.string
245
- end
246
-
247
- def test_verbose_download_reporter_no_tty
248
- @out.tty = false
249
-
250
- @cfg.verbose = true
251
- reporter = @sui.download_reporter
252
- reporter.fetch "a.gem", 1024
253
- assert_equal "", @out.string
254
- end
255
- end
@@ -1,278 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/stub_specification"
5
-
6
- class TestStubSpecification < Gem::TestCase
7
- FOO = File.expand_path File.join("specifications", "foo-0.0.1-x86-mswin32.gemspec"), __dir__
8
- BAR = File.expand_path File.join("specifications", "bar-0.0.2.gemspec"), __dir__
9
-
10
- def setup
11
- super
12
-
13
- @base_dir = __dir__
14
- @gems_dir = File.join __dir__, "gem"
15
- @foo = Gem::StubSpecification.gemspec_stub FOO, @base_dir, @gems_dir
16
- end
17
-
18
- def test_initialize
19
- assert_equal "foo", @foo.name
20
- assert_equal Gem::Version.new("0.0.1"), @foo.version
21
- assert_equal Gem::Platform.new("mswin32"), @foo.platform
22
- assert_equal ["lib", "lib/f oo/ext"], @foo.require_paths
23
- assert @foo.stubbed?
24
- end
25
-
26
- def test_initialize_extension
27
- stub = stub_with_extension
28
-
29
- assert_equal "stub_e", stub.name
30
- assert_equal v(2), stub.version
31
- assert_equal Gem::Platform::RUBY, stub.platform
32
- assert_equal [stub.extension_dir, "lib"], stub.require_paths
33
- assert_equal %w[ext/stub_e/extconf.rb], stub.extensions
34
- end
35
-
36
- def test_initialize_version
37
- stub = stub_with_version
38
-
39
- assert_equal "stub_v", stub.name
40
- assert_equal v(2), stub.version
41
- end
42
-
43
- def test_initialize_with_empty_version
44
- stub = stub_without_version
45
-
46
- assert_equal "stub_v", stub.name
47
- assert_equal v(0), stub.version
48
- end
49
-
50
- def test_initialize_missing_stubline
51
- stub = Gem::StubSpecification.gemspec_stub(BAR, @base_dir, @gems_dir)
52
- assert_equal "bar", stub.name
53
- assert_equal Gem::Version.new("0.0.2"), stub.version
54
- assert_equal Gem::Platform.new("ruby"), stub.platform
55
- assert_equal ["lib"], stub.require_paths
56
- assert !stub.stubbed?
57
- end
58
-
59
- def test_contains_requirable_file_eh
60
- stub = stub_without_extension
61
- code_rb = File.join stub.gem_dir, "lib", "code.rb"
62
- FileUtils.mkdir_p File.dirname code_rb
63
- FileUtils.touch code_rb
64
-
65
- assert stub.contains_requirable_file? "code"
66
- end
67
-
68
- def test_contains_requirable_file_eh_extension
69
- pend "I guess making the stub match the running platform should work" if Gem.java_platform?
70
- stub_with_extension do |stub|
71
- _, err = capture_output do
72
- refute stub.contains_requirable_file? "nonexistent"
73
- end
74
-
75
- expected = "Ignoring stub_e-2 because its extensions are not built. " +
76
- "Try: gem pristine stub_e --version 2\n"
77
-
78
- assert_equal expected, err
79
- end
80
- end
81
-
82
- def test_full_require_paths
83
- stub = stub_with_extension
84
-
85
- expected = [
86
- File.join(stub.full_gem_path, "lib"),
87
- stub.extension_dir,
88
- ]
89
-
90
- assert_equal expected, stub.full_require_paths
91
- end
92
-
93
- def test_lib_dirs_glob
94
- stub = stub_without_extension
95
-
96
- assert_equal File.join(stub.full_gem_path, "lib"), stub.lib_dirs_glob
97
- end
98
-
99
- def test_lib_dirs_glob_with_extension
100
- stub = stub_with_extension
101
-
102
- assert_equal File.join(stub.full_gem_path, "lib"), stub.lib_dirs_glob
103
- end
104
-
105
- def test_matches_for_glob
106
- stub = stub_without_extension
107
- code_rb = File.join stub.gem_dir, "lib", "code.rb"
108
- FileUtils.mkdir_p File.dirname code_rb
109
- FileUtils.touch code_rb
110
-
111
- assert_equal code_rb, stub.matches_for_glob("code*").first
112
- end
113
-
114
- def test_matches_for_glob_with_bundler_inline
115
- stub = stub_with_extension
116
- code_rb = File.join stub.gem_dir, "lib", "code.rb"
117
- FileUtils.mkdir_p File.dirname code_rb
118
- FileUtils.touch code_rb
119
-
120
- stub.stub(:raw_require_paths, nil) do
121
- assert_equal code_rb, stub.matches_for_glob("code*").first
122
- end
123
- end
124
-
125
- def test_missing_extensions_eh
126
- pend "I guess making the stub match the running platform should work" if Gem.java_platform?
127
- stub = stub_with_extension do |s|
128
- extconf_rb = File.join s.gem_dir, s.extensions.first
129
- FileUtils.mkdir_p File.dirname extconf_rb
130
-
131
- File.open extconf_rb, "w" do |f|
132
- f.write <<-'RUBY'
133
- File.open 'Makefile', 'w' do |f|
134
- f.puts "clean:\n\techo clean"
135
- f.puts "default:\n\techo built"
136
- f.puts "install:\n\techo installed"
137
- end
138
- RUBY
139
- end
140
- end
141
-
142
- assert stub.missing_extensions?
143
-
144
- stub.build_extensions
145
-
146
- refute stub.missing_extensions?
147
- end
148
-
149
- def test_missing_extensions_eh_default_gem
150
- spec = new_default_spec "default", 1
151
- spec.extensions << "extconf.rb"
152
-
153
- File.open spec.loaded_from, "w" do |io|
154
- io.write spec.to_ruby_for_cache
155
- end
156
-
157
- default_spec = Gem::StubSpecification.gemspec_stub spec.loaded_from, spec.base_dir, spec.gems_dir
158
-
159
- refute default_spec.missing_extensions?
160
- end
161
-
162
- def test_missing_extensions_eh_none
163
- refute @foo.missing_extensions?
164
- end
165
-
166
- def test_to_spec
167
- real_foo = util_spec @foo.name, @foo.version
168
- real_foo.activate
169
-
170
- assert_equal @foo.version, Gem.loaded_specs[@foo.name].version,
171
- "sanity check"
172
-
173
- assert_same real_foo, @foo.to_spec
174
- end
175
-
176
- def test_to_spec_with_other_specs_loaded_does_not_warn
177
- real_foo = util_spec @foo.name, @foo.version
178
- real_foo.activate
179
- bar = Gem::StubSpecification.gemspec_stub BAR, real_foo.base_dir, real_foo.gems_dir
180
- refute_predicate Gem.loaded_specs, :empty?
181
- assert bar.to_spec
182
- end
183
-
184
- def stub_with_version
185
- spec = File.join @gemhome, "specifications", "stub_e-2.gemspec"
186
- File.open spec, "w" do |io|
187
- io.write <<-STUB
188
- # -*- encoding: utf-8 -*-
189
- # stub: stub_v 2 ruby lib
190
-
191
- Gem::Specification.new do |s|
192
- s.name = 'stub_v'
193
- s.version = Gem::Version.new '2'
194
- end
195
- STUB
196
-
197
- io.flush
198
-
199
- stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
200
-
201
- yield stub if block_given?
202
-
203
- return stub
204
- end
205
- end
206
-
207
- def stub_without_version
208
- spec = File.join @gemhome, "specifications", "stub-2.gemspec"
209
- File.open spec, "w" do |io|
210
- io.write <<-STUB
211
- # -*- encoding: utf-8 -*-
212
- # stub: stub_v ruby lib
213
-
214
- Gem::Specification.new do |s|
215
- s.name = 'stub_v'
216
- s.version = ""
217
- end
218
- STUB
219
-
220
- io.flush
221
-
222
- stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
223
-
224
- yield stub if block_given?
225
-
226
- return stub
227
- end
228
- end
229
-
230
- def stub_with_extension
231
- spec = File.join @gemhome, "specifications", "stub_e-2.gemspec"
232
- File.open spec, "w" do |io|
233
- io.write <<-STUB
234
- # -*- encoding: utf-8 -*-
235
- # stub: stub_e 2 ruby lib
236
- # stub: ext/stub_e/extconf.rb
237
-
238
- Gem::Specification.new do |s|
239
- s.name = 'stub_e'
240
- s.version = Gem::Version.new '2'
241
- s.extensions = ['ext/stub_e/extconf.rb']
242
- s.installed_by_version = '2.2'
243
- end
244
- STUB
245
-
246
- io.flush
247
-
248
- stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
249
-
250
- yield stub if block_given?
251
-
252
- return stub
253
- end
254
- end
255
-
256
- def stub_without_extension
257
- spec = File.join @gemhome, "specifications", "stub-2.gemspec"
258
- File.open spec, "w" do |io|
259
- io.write <<-STUB
260
- # -*- encoding: utf-8 -*-
261
- # stub: stub 2 ruby lib
262
-
263
- Gem::Specification.new do |s|
264
- s.name = 'stub'
265
- s.version = Gem::Version.new '2'
266
- end
267
- STUB
268
-
269
- io.flush
270
-
271
- stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
272
-
273
- yield stub if block_given?
274
-
275
- return stub
276
- end
277
- end
278
- end
@@ -1,103 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/text"
5
-
6
- class TestGemText < Gem::TestCase
7
- include Gem::Text
8
-
9
- def test_format_text
10
- assert_equal "text to\nwrap", format_text("text to wrap", 8)
11
- end
12
-
13
- def test_format_text_indent
14
- assert_equal " text to\n wrap", format_text("text to wrap", 8, 2)
15
- end
16
-
17
- def test_format_text_none
18
- assert_equal "text to wrap", format_text("text to wrap", 40)
19
- end
20
-
21
- def test_format_text_none_indent
22
- assert_equal " text to wrap", format_text("text to wrap", 40, 2)
23
- end
24
-
25
- def test_format_text_no_space
26
- assert_equal "texttowr\nap", format_text("texttowrap", 8)
27
- end
28
-
29
- def test_format_text_trailing # for two spaces after .
30
- text = <<-TEXT
31
- This line is really, really long. So long, in fact, that it is more than eighty characters long! The purpose of this line is for testing wrapping behavior because sometimes people don't wrap their text to eighty characters. Without the wrapping, the text might not look good in the RSS feed.
32
- TEXT
33
-
34
- expected = <<-EXPECTED
35
- This line is really, really long. So long, in fact, that it is more than
36
- eighty characters long! The purpose of this line is for testing wrapping
37
- behavior because sometimes people don't wrap their text to eighty characters.
38
- Without the wrapping, the text might not look good in the RSS feed.
39
- EXPECTED
40
-
41
- assert_equal expected, format_text(text, 78)
42
- end
43
-
44
- def test_format_removes_nonprintable_characters
45
- assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
46
- end
47
-
48
- def test_min3
49
- assert_equal 1, min3(1, 1, 1)
50
- assert_equal 1, min3(1, 1, 2)
51
- assert_equal 1, min3(1, 2, 1)
52
- assert_equal 1, min3(2, 1, 1)
53
- assert_equal 1, min3(1, 2, 2)
54
- assert_equal 1, min3(2, 1, 2)
55
- assert_equal 1, min3(2, 2, 1)
56
- assert_equal 1, min3(1, 2, 3)
57
- assert_equal 1, min3(1, 3, 2)
58
- assert_equal 1, min3(2, 1, 3)
59
- assert_equal 1, min3(2, 3, 1)
60
- assert_equal 1, min3(3, 1, 2)
61
- assert_equal 1, min3(3, 2, 1)
62
- end
63
-
64
- def test_levenshtein_distance_add
65
- assert_equal 2, levenshtein_distance("zentest", "zntst")
66
- assert_equal 2, levenshtein_distance("zntst", "zentest")
67
- end
68
-
69
- def test_levenshtein_distance_empty
70
- assert_equal 5, levenshtein_distance("abcde", "")
71
- assert_equal 5, levenshtein_distance("", "abcde")
72
- end
73
-
74
- def test_levenshtein_distance_remove
75
- assert_equal 3, levenshtein_distance("zentest", "zentestxxx")
76
- assert_equal 3, levenshtein_distance("zentestxxx", "zentest")
77
- assert_equal 13, levenshtein_distance("cat", "thundercatsarego")
78
- assert_equal 13, levenshtein_distance("thundercatsarego", "cat")
79
- end
80
-
81
- def test_levenshtein_distance_replace
82
- assert_equal 2, levenshtein_distance("zentest", "ZenTest")
83
- assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
84
- assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
85
- end
86
-
87
- def test_levenshtein_distance_all
88
- assert_equal 6, levenshtein_distance("algorithm", "altruistic")
89
- assert_equal 3, levenshtein_distance("saturday", "sunday")
90
- assert_equal 3, levenshtein_distance("kitten", "sitting")
91
- end
92
-
93
- def test_truncate_text
94
- assert_equal "abc", truncate_text("abc", "desc")
95
- assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
96
- s = "ab" * 500_001
97
- assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
98
- end
99
-
100
- def test_clean_text
101
- assert_equal ".]2;nyan.", clean_text("\e]2;nyan\a")
102
- end
103
- end