rubygems-update 3.0.0 → 3.0.9

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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +2 -0
  4. data/CODE_OF_CONDUCT.md +10 -8
  5. data/CONTRIBUTING.md +7 -0
  6. data/History.txt +180 -0
  7. data/Manifest.txt +5 -3
  8. data/README.md +6 -0
  9. data/Rakefile +33 -7
  10. data/bundler/CHANGELOG.md +11 -0
  11. data/bundler/lib/bundler/build_metadata.rb +2 -2
  12. data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
  13. data/bundler/lib/bundler/source/metadata.rb +2 -3
  14. data/bundler/lib/bundler/version.rb +1 -1
  15. data/bundler/man/bundle.ronn +3 -0
  16. data/lib/rubygems/command_manager.rb +12 -4
  17. data/lib/rubygems/commands/build_command.rb +28 -13
  18. data/lib/rubygems/commands/owner_command.rb +6 -1
  19. data/lib/rubygems/commands/push_command.rb +2 -0
  20. data/lib/rubygems/commands/setup_command.rb +14 -16
  21. data/lib/rubygems/commands/uninstall_command.rb +16 -6
  22. data/lib/rubygems/commands/which_command.rb +1 -3
  23. data/lib/rubygems/defaults.rb +1 -8
  24. data/lib/rubygems/dependency.rb +1 -1
  25. data/lib/rubygems/dependency_installer.rb +1 -2
  26. data/lib/rubygems/dependency_list.rb +1 -1
  27. data/lib/rubygems/exceptions.rb +0 -4
  28. data/lib/rubygems/gemcutter_utilities.rb +14 -7
  29. data/lib/rubygems/install_update_options.rb +1 -1
  30. data/lib/rubygems/installer.rb +37 -15
  31. data/lib/rubygems/installer_test_case.rb +2 -2
  32. data/lib/rubygems/package/old.rb +1 -1
  33. data/lib/rubygems/package/tar_header.rb +11 -2
  34. data/lib/rubygems/package.rb +12 -2
  35. data/lib/rubygems/rdoc.rb +2 -2
  36. data/lib/rubygems/remote_fetcher.rb +15 -54
  37. data/lib/rubygems/request.rb +1 -1
  38. data/lib/rubygems/request_set/gem_dependency_api.rb +11 -10
  39. data/lib/rubygems/requirement.rb +16 -5
  40. data/lib/rubygems/resolver.rb +4 -1
  41. data/lib/rubygems/s3_uri_signer.rb +183 -0
  42. data/lib/rubygems/security_option.rb +0 -1
  43. data/lib/rubygems/specification.rb +21 -23
  44. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  45. data/lib/rubygems/stub_specification.rb +1 -2
  46. data/lib/rubygems/test_case.rb +23 -12
  47. data/lib/rubygems/uninstaller.rb +1 -1
  48. data/lib/rubygems/user_interaction.rb +4 -1
  49. data/lib/rubygems/util.rb +13 -1
  50. data/lib/rubygems.rb +8 -13
  51. data/rubygems-update.gemspec +1 -1
  52. data/test/rubygems/ca_cert.pem +74 -65
  53. data/test/rubygems/client.pem +103 -45
  54. data/test/rubygems/ssl_cert.pem +78 -17
  55. data/test/rubygems/ssl_key.pem +25 -13
  56. data/test/rubygems/test_bundled_ca.rb +8 -5
  57. data/test/rubygems/test_gem.rb +55 -13
  58. data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
  59. data/test/rubygems/test_gem_command_manager.rb +10 -0
  60. data/test/rubygems/test_gem_commands_build_command.rb +1 -0
  61. data/test/rubygems/test_gem_commands_push_command.rb +15 -0
  62. data/test/rubygems/test_gem_commands_setup_command.rb +11 -7
  63. data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -1
  64. data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -1
  65. data/test/rubygems/test_gem_indexer.rb +15 -8
  66. data/test/rubygems/test_gem_installer.rb +191 -22
  67. data/test/rubygems/test_gem_package.rb +37 -0
  68. data/test/rubygems/test_gem_package_tar_header.rb +41 -0
  69. data/test/rubygems/test_gem_package_tar_writer.rb +3 -0
  70. data/test/rubygems/test_gem_rdoc.rb +1 -135
  71. data/test/rubygems/test_gem_remote_fetcher.rb +133 -14
  72. data/test/rubygems/test_gem_request.rb +4 -4
  73. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +80 -57
  74. data/test/rubygems/test_gem_requirement.rb +6 -0
  75. data/test/rubygems/test_gem_security_policy.rb +1 -1
  76. data/test/rubygems/test_gem_specification.rb +32 -0
  77. data/test/rubygems/test_gem_stream_ui.rb +2 -2
  78. data/test/rubygems/test_gem_text.rb +5 -0
  79. data/test/rubygems/test_gem_uninstaller.rb +21 -2
  80. data/test/rubygems/test_gem_util.rb +25 -0
  81. data/util/ci +6 -1
  82. data/util/cops/deprecations.rb +52 -0
  83. data/util/create_certs.sh +27 -0
  84. data/util/create_encrypted_key.rb +4 -4
  85. data/util/update_bundled_ca_certificates.rb +1 -3
  86. metadata +12 -10
  87. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  88. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  89. /data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.0.0"
5
+ s.version = "3.0.9"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -1,68 +1,77 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIID0DCCArigAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
3
- MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
4
- DTA0MDEzMDAwNDIzMloXDTM2MDEyMjAwNDIzMlowPDELMAkGA1UEBgwCSlAxEjAQ
5
- BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQswCQYDVQQDDAJDQTCCASIw
6
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbv0x42BTKFEQOE+KJ2XmiSdZpR
7
- wjzQLAkPLRnLB98tlzs4xo+y4RyY/rd5TT9UzBJTIhP8CJi5GbS1oXEerQXB3P0d
8
- L5oSSMwGGyuIzgZe5+vZ1kgzQxMEKMMKlzA73rbMd4Jx3u5+jdbP0EDrPYfXSvLY
9
- bS04n2aX7zrN3x5KdDrNBfwBio2/qeaaj4+9OxnwRvYP3WOvqdW0h329eMfHw0pi
10
- JI0drIVdsEqClUV4pebT/F+CPUPkEh/weySgo9wANockkYu5ujw2GbLFcO5LXxxm
11
- dEfcVr3r6t6zOA4bJwL0W/e6LBcrwiG/qPDFErhwtgTLYf6Er67SzLyA66UCAwEA
12
- AaOB3DCB2TAPBgNVHRMBAf8EBTADAQH/MDEGCWCGSAGG+EIBDQQkFiJSdWJ5L09w
13
- ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRJ7Xd380KzBV7f
14
- USKIQ+O/vKbhDzAOBgNVHQ8BAf8EBAMCAQYwZAYDVR0jBF0wW4AUSe13d/NCswVe
15
- 31EiiEPjv7ym4Q+hQKQ+MDwxCzAJBgNVBAYMAkpQMRIwEAYDVQQKDAlKSU4uR1Iu
16
- SlAxDDAKBgNVBAsMA1JSUjELMAkGA1UEAwwCQ0GCAQAwDQYJKoZIhvcNAQEFBQAD
17
- ggEBAIu/mfiez5XN5tn2jScgShPgHEFJBR0BTJBZF6xCk0jyqNx/g9HMj2ELCuK+
18
- r/Y7KFW5c5M3AQ+xWW0ZSc4kvzyTcV7yTVIwj2jZ9ddYMN3nupZFgBK1GB4Y05GY
19
- MJJFRkSu6d/Ph5ypzBVw2YMT/nsOo5VwMUGLgS7YVjU+u/HNWz80J3oO17mNZllj
20
- PvORJcnjwlroDnS58KoJ7GDgejv3ESWADvX1OHLE4cRkiQGeLoEU4pxdCxXRqX0U
21
- PbwIkZN9mXVcrmPHq8MWi4eC/V7hnbZETMHuWhUoiNdOEfsAXr3iP4KjyyRdwc7a
22
- d/xgcK06UVQRL/HbEYGiQL056mc=
23
- -----END CERTIFICATE-----
24
-
25
- -----BEGIN CERTIFICATE-----
26
- MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
27
- MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
28
- DTA0MDEzMDAwNDMyN1oXDTM1MDEyMjAwNDMyN1owPzELMAkGA1UEBgwCSlAxEjAQ
29
- BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQ4wDAYDVQQDDAVTdWJDQTCC
30
- ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ0Ou7AyRcRXnB/kVHv/6kwe
31
- ANzgg/DyJfsAUqW90m7Lu1nqyug8gK0RBd77yU0w5HOAMHTVSdpjZK0g2sgx4Mb1
32
- d/213eL9TTl5MRVEChTvQr8q5DVG/8fxPPE7fMI8eOAzd98/NOAChk+80r4Sx7fC
33
- kGVEE1bKwY1MrUsUNjOY2d6t3M4HHV3HX1V8ShuKfsHxgCmLzdI8U+5CnQedFgkm
34
- 3e+8tr8IX5RR1wA1Ifw9VadF7OdI/bGMzog/Q8XCLf+WPFjnK7Gcx6JFtzF6Gi4x
35
- 4dp1Xl45JYiVvi9zQ132wu8A1pDHhiNgQviyzbP+UjcB/tsOpzBQF8abYzgEkWEC
36
- AwEAAaNyMHAwDwYDVR0TAQH/BAUwAwEB/zAxBglghkgBhvhCAQ0EJBYiUnVieS9P
37
- cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUlCjXWLsReYzH
38
- LzsxwVnCXmKoB/owCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCJ/OyN
39
- rT8Cq2Y+G2yA/L1EMRvvxwFBqxavqaqHl/6rwsIBFlB3zbqGA/0oec6MAVnYynq4
40
- c4AcHTjx3bQ/S4r2sNTZq0DH4SYbQzIobx/YW8PjQUJt8KQdKMcwwi7arHP7A/Ha
41
- LKu8eIC2nsUBnP4NhkYSGhbmpJK+PFD0FVtD0ZIRlY/wsnaZNjWWcnWF1/FNuQ4H
42
- ySjIblqVQkPuzebv3Ror6ZnVDukn96Mg7kP4u6zgxOeqlJGRe1M949SS9Vudjl8X
43
- SF4aZUUB9pQGhsqQJVqaz2OlhGOp9D0q54xko/rekjAIcuDjl1mdX4F2WRrzpUmZ
44
- uY/bPeOBYiVsOYVe
45
- -----END CERTIFICATE-----
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 0 (0x0)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
7
+ Validity
8
+ Not Before: Jan 1 00:00:00 2009 GMT
9
+ Not After : Dec 31 23:59:59 2049 GMT
10
+ Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ RSA Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:c8:19:2c:5a:1d:4d:2a:65:1d:9a:0b:d6:3a:5c:
16
+ 5f:54:90:ac:17:6f:58:18:8f:e6:0f:33:36:ca:a0:
17
+ 92:02:b8:49:85:96:e9:74:16:14:40:67:98:4a:1f:
18
+ 4d:1c:d8:0b:c4:4e:f8:78:0a:68:70:39:d8:66:64:
19
+ c6:d5:ca:49:e9:02:c7:1a:1c:03:ba:a1:85:68:0a:
20
+ 03:05:27:b5:7f:97:21:94:20:f3:fe:ea:2e:f5:2e:
21
+ 99:34:6b:e0:e7:96:ca:51:4e:4d:40:48:09:d6:5f:
22
+ 64:7b:e5:df:eb:3d:44:bf:42:25:f7:84:c7:2d:22:
23
+ e0:7f:00:37:c6:c3:16:75:75:37:6a:e5:56:da:1c:
24
+ 77:37:3c:00:d3:1f:f4:9d:3b:27:08:ff:cd:cf:1e:
25
+ 60:74:65:90:c2:59:b4:12:3e:a0:7f:22:47:87:ff:
26
+ 52:f3:47:39:d1:91:02:1c:bb:8c:c9:20:1f:00:db:
27
+ d1:3a:b0:e0:ba:ee:55:05:8f:1a:f8:1e:dd:6d:83:
28
+ 1c:1d:18:01:44:92:27:22:f1:2a:07:fe:43:83:08:
29
+ 82:d3:2b:f1:ec:b1:68:b3:f8:94:1b:81:29:54:01:
30
+ 56:12:54:66:ba:60:e7:5c:27:04:4d:a3:61:e3:f9:
31
+ 8f:86:53:0b:83:eb:1f:1d:89:0c:83:66:88:c8:50:
32
+ 8d:c5
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Subject Key Identifier:
36
+ D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
37
+ X509v3 Authority Key Identifier:
38
+ keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
46
39
 
40
+ X509v3 Basic Constraints: critical
41
+ CA:TRUE
42
+ Signature Algorithm: sha256WithRSAEncryption
43
+ 06:92:f7:9a:0f:40:da:1a:7f:9f:0c:9e:04:37:4d:be:a4:1e:
44
+ 86:65:b3:4a:be:87:13:a1:e4:6b:3b:d6:58:9d:ca:f8:ba:6d:
45
+ e4:dd:de:c5:e3:a2:ec:ef:32:2d:c0:06:01:3a:d5:81:5a:e1:
46
+ e4:f7:5f:68:67:ea:cd:28:90:b1:9c:82:d3:4e:00:51:b6:eb:
47
+ d5:8d:ec:ab:c3:18:b2:8b:8d:5b:63:6d:f8:f5:40:c6:c6:7e:
48
+ 72:7b:ed:98:c5:5e:24:b9:ad:4f:5b:8f:1d:53:a3:d7:6a:4f:
49
+ 07:2e:6a:b6:63:5c:dc:05:22:ac:77:af:b0:72:9d:39:6f:77:
50
+ 9c:45:8b:ad:de:e8:bf:6a:b5:87:0b:58:47:af:11:1a:9e:84:
51
+ 25:21:68:48:2a:b3:3c:5a:97:54:20:03:bd:87:34:dd:db:24:
52
+ a6:c7:50:e9:6c:87:55:f2:e5:33:9c:83:8f:8c:9e:f3:3a:38:
53
+ a0:92:a1:a7:c4:89:31:bd:33:83:11:dd:ad:bb:e0:47:19:bb:
54
+ 62:6c:49:58:b3:13:12:c3:d0:dd:02:5f:6f:4f:13:07:6d:aa:
55
+ 7b:2c:46:5a:74:52:6d:13:10:9c:f7:3d:5d:84:5b:b8:5b:a9:
56
+ c5:ae:56:4b:9a:8c:e2:fd:7f:55:80:cb:b0:2d:56:d7:a4:3c:
57
+ cf:3c:b2:ff
47
58
  -----BEGIN CERTIFICATE-----
48
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 3yzJQ1IOQl+xeEO0WVVhPIx5Mx3VtjjcDyl8aewPkYkzia6UOrAyQZnl5sIzWGOb
57
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
68
77
  -----END CERTIFICATE-----
@@ -1,49 +1,107 @@
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 2 (0x2)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
7
+ Validity
8
+ Not Before: Jan 1 00:00:00 2009 GMT
9
+ Not After : Dec 31 23:59:59 2049 GMT
10
+ Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=client
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ RSA Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:c7:87:4a:f4:77:32:54:0e:56:0a:80:04:ac:b5:
16
+ 71:b6:29:9f:c6:aa:f5:9b:3b:75:0a:c2:55:2c:cf:
17
+ 34:c8:78:b7:38:ed:af:48:7d:7e:6c:4c:39:d8:0f:
18
+ cf:fc:ba:f5:e0:50:47:a0:76:72:cf:c7:de:91:a6:
19
+ 1a:99:8b:5f:6f:0c:06:fc:f1:78:6b:0f:c5:bc:91:
20
+ cc:91:f0:85:05:5d:66:d3:cb:ac:54:a1:bc:9b:6c:
21
+ e8:17:f2:17:20:b8:b0:b2:03:cc:9d:a6:8e:c0:33:
22
+ 6c:8b:5f:ef:1a:f6:38:6d:80:3f:4d:b5:e3:a5:a4:
23
+ f1:86:15:76:62:8b:6c:9d:fa:24:59:32:8f:60:b0:
24
+ 80:f4:22:a2:68:57:13:aa:60:e4:cd:01:34:87:76:
25
+ 2a:15:ca:86:9b:b7:aa:b5:66:fd:72:d8:35:86:7e:
26
+ c8:1d:a1:71:71:85:ac:65:64:c2:ea:19:52:7b:34:
27
+ 1e:12:c4:87:8f:75:d7:65:35:85:dd:5a:33:5d:2c:
28
+ 31:f8:2f:b4:84:a7:b6:56:56:2b:e1:9c:c9:c8:f9:
29
+ 41:18:40:19:d9:bb:d4:3c:0d:c4:93:dc:b8:d1:99:
30
+ 44:d0:3d:a2:de:de:29:7f:d6:0c:a8:07:df:bc:ed:
31
+ 66:5b:aa:cc:64:44:b8:79:49:ed:48:77:88:e2:d1:
32
+ 94:b9
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Basic Constraints:
36
+ CA:FALSE
37
+ Netscape Comment:
38
+ OpenSSL Generated Certificate
39
+ X509v3 Subject Key Identifier:
40
+ EF:5A:B6:46:3A:44:5F:0F:E4:F9:E0:6B:B2:C8:45:8D:07:0D:70:15
41
+ X509v3 Authority Key Identifier:
42
+ keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
43
+
44
+ Signature Algorithm: sha256WithRSAEncryption
45
+ 55:b5:5a:51:cd:0b:2a:81:10:e6:d1:d9:d6:6c:78:99:9b:01:
46
+ 18:e7:91:32:89:6c:fd:3b:eb:c0:03:82:f8:5c:e2:19:c1:04:
47
+ 5d:37:10:5b:97:0b:be:76:8b:98:71:d4:63:68:8c:0e:61:c9:
48
+ ec:3d:cf:ed:01:57:9f:9b:53:07:27:1a:7e:20:f3:8a:13:8c:
49
+ 4f:30:bd:e6:a0:eb:d7:2c:a1:95:35:3f:a6:53:c9:00:11:f9:
50
+ f6:b3:9d:53:e4:b5:71:33:f1:dc:86:47:94:6f:a9:64:01:d4:
51
+ c5:1b:7c:95:0a:02:0e:6f:d1:70:94:5a:5f:7b:ac:77:f7:56:
52
+ 35:6b:ad:a2:e2:fc:74:91:1e:c3:46:fc:32:01:19:a1:a5:27:
53
+ f3:31:14:79:86:7c:4d:9a:83:7c:28:03:9f:ac:3c:8c:e4:d9:
54
+ c8:b0:4e:a3:fe:75:cd:a9:8e:34:57:3b:6b:14:d6:df:35:42:
55
+ 7b:c9:3d:88:0d:ea:5f:1e:c6:5f:80:0e:a5:b9:bf:25:06:ac:
56
+ ac:38:7f:cc:f9:a5:9e:68:cc:08:77:1e:de:45:0d:91:e5:38:
57
+ d2:b3:62:ea:03:ec:3c:18:9f:16:ec:43:21:30:7a:a7:8b:42:
58
+ c6:cb:e4:a8:ac:0b:15:82:a5:9c:93:b2:2c:20:1f:d2:de:e1:
59
+ cf:c0:74:bc
1
60
  -----BEGIN CERTIFICATE-----
2
- MIIDgTCCAmmgAwIBAgICEAIwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQVUx
3
- EzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMg
4
- UHR5IEx0ZDAeFw0xMzA1MDExNTAxMzFaFw0yMzAzMTAxNTAxMzFaMEUxCzAJBgNV
5
- BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
6
- aWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCw
7
- +lcrpdWcloQCgAlxcM3GjvBxZ3yjzi6SgXKRBSi54i0J1LXxznWKcJ5P/O1+j+7i
8
- LjHK+OWqsa0+EbKTwSu+0tx20h0z++YJF9GWEoCwT5aH1kor/0+EQLgYnxBaF8GC
9
- 2xAbkRkWmbSu2aLDIey3lg7lqAazYqdS2wH0UjSDjFKDLxz9LwpfFm0yGL3DgwLW
10
- +dobYkgt1A6F/8Pz6D2FjwYKcM8JE6w7KJSJDUvXcv2E18wmhZ/qF/MtFAF4coB1
11
- f5ALnz8YqY6eyDF5aY/VfaHZvXdirLlMH6/miie9GBVMnJWF0ah5ssbsMvcpmnDJ
12
- qkiYju2e1oLFEE7zztU/AgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgEN
13
- BB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTcOELj
14
- hSUdiLrdRF3CFZDZkWaGzDAfBgNVHSMEGDAWgBS7B027H/ZIkW3ngm1SrR0X/aTC
15
- wDANBgkqhkiG9w0BAQUFAAOCAQEAlQMzHlnT6L1qqA4hL6tABPbiMsVwXyKCcfNB
16
- zBn82Wkxgbg7Mp31fbR6/qvGeXOtaX6IdPdgtVf8nh1NURk0MmFBP+gfnwfNBD+m
17
- Q1cldDt9kY2LGIrPii40xbugF1/xqEYcZMgXU08aEvQ2IHX46J8wZoqMa2KhrU8/
18
- mzY0F+UEFOGWtKDgUzz3dyBPsdzVrX+SXULwH0lqZX8Nsw5LyfrlVt3xQvS5Ogm4
19
- kYlt8kqhF8lUS3WTbuADrIs3NaDPRWSs1iLRRFgosgUtHN7tkrkrVaHeBo0KbAJG
20
- mMqtxSY0XZI9WBxffP9UtoY3EiTWNVWLtuCN3OSvryP6NDe4BA==
61
+ MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO
62
+ MAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDELMAkGA1UEAwwC
63
+ Q0EwHhcNMDkwMTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjBFMQswCQYDVQQGEwJK
64
+ UDEOMAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDEPMA0GA1UE
65
+ AwwGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4dK9Hcy
66
+ VA5WCoAErLVxtimfxqr1mzt1CsJVLM80yHi3OO2vSH1+bEw52A/P/Lr14FBHoHZy
67
+ z8fekaYamYtfbwwG/PF4aw/FvJHMkfCFBV1m08usVKG8m2zoF/IXILiwsgPMnaaO
68
+ wDNsi1/vGvY4bYA/TbXjpaTxhhV2YotsnfokWTKPYLCA9CKiaFcTqmDkzQE0h3Yq
69
+ FcqGm7eqtWb9ctg1hn7IHaFxcYWsZWTC6hlSezQeEsSHj3XXZTWF3VozXSwx+C+0
70
+ hKe2VlYr4ZzJyPlBGEAZ2bvUPA3Ek9y40ZlE0D2i3t4pf9YMqAffvO1mW6rMZES4
71
+ eUntSHeI4tGUuQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
72
+ cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU71q2RjpEXw/k
73
+ +eBrsshFjQcNcBUwHwYDVR0jBBgwFoAU1tuHrdNF/NSNayuX9M+VCLb6YqQwDQYJ
74
+ KoZIhvcNAQELBQADggEBAFW1WlHNCyqBEObR2dZseJmbARjnkTKJbP0768ADgvhc
75
+ 4hnBBF03EFuXC752i5hx1GNojA5hyew9z+0BV5+bUwcnGn4g84oTjE8wveag69cs
76
+ oZU1P6ZTyQAR+faznVPktXEz8dyGR5RvqWQB1MUbfJUKAg5v0XCUWl97rHf3VjVr
77
+ raLi/HSRHsNG/DIBGaGlJ/MxFHmGfE2ag3woA5+sPIzk2ciwTqP+dc2pjjRXO2sU
78
+ 1t81QnvJPYgN6l8exl+ADqW5vyUGrKw4f8z5pZ5ozAh3Ht5FDZHlONKzYuoD7DwY
79
+ nxbsQyEweqeLQsbL5KisCxWCpZyTsiwgH9Le4c/AdLw=
21
80
  -----END CERTIFICATE-----
22
-
23
81
  -----BEGIN RSA PRIVATE KEY-----
24
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- QOvmL9H45Tg/sP7KaXLLIw8IQLu2OezPcwQvF1u//6gXxyLR1bhClIQjFBjlMuUv
43
- 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
- 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
- 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
- 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
- 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
- 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
49
107
  -----END RSA PRIVATE KEY-----
@@ -1,19 +1,80 @@
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 1 (0x1)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
7
+ Validity
8
+ Not Before: Jan 1 00:00:00 2009 GMT
9
+ Not After : Dec 31 23:59:59 2049 GMT
10
+ Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=localhost
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ RSA Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:c1:9b:13:e1:65:2a:87:a9:3c:84:2e:c3:21:e1:
16
+ 63:a2:8c:7c:6e:63:9a:ac:3e:45:f5:fa:37:08:aa:
17
+ c0:a7:6b:ff:42:27:1a:66:13:b9:ad:ca:d0:35:62:
18
+ 52:00:56:56:71:cd:dc:74:04:fe:2a:a6:7d:00:61:
19
+ e2:b8:9a:0f:d1:2c:56:b7:50:c4:23:f1:52:68:f3:
20
+ fd:cf:6c:6b:86:93:91:f0:d8:7a:67:d8:55:fc:0d:
21
+ d1:30:f8:aa:a4:79:f2:17:ca:11:b3:8c:e5:01:34:
22
+ ad:21:bc:a8:4d:ea:18:bc:13:9c:0a:94:bf:fb:46:
23
+ cf:29:d2:52:03:e4:97:4e:92:ae:b7:9d:b0:d9:19:
24
+ 49:5f:7a:5b:20:80:87:05:db:f4:73:df:04:69:12:
25
+ e8:14:1e:d2:c8:dd:d0:d3:81:72:04:f5:34:d7:9c:
26
+ 61:b5:b6:d3:4b:61:ee:a9:04:36:60:79:c8:77:74:
27
+ 24:70:89:a8:16:f8:6e:21:51:e9:30:61:fb:21:f6:
28
+ b3:6b:c1:b1:09:fa:26:ed:9f:3d:d2:2a:b6:34:d9:
29
+ b8:e8:46:d7:08:c3:3c:5d:0e:96:7a:e5:a1:ff:0a:
30
+ e2:36:bc:b4:06:3e:32:5a:9e:a5:4b:38:9e:0a:cc:
31
+ 08:3a:9f:07:4e:74:d0:16:4b:0f:51:e4:d5:24:f3:
32
+ 76:5d
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Basic Constraints:
36
+ CA:FALSE
37
+ Netscape Comment:
38
+ OpenSSL Generated Certificate
39
+ X509v3 Subject Key Identifier:
40
+ 1E:0A:57:4F:0E:BC:B5:26:26:B9:01:80:E8:9A:25:98:4A:C0:D6:05
41
+ X509v3 Authority Key Identifier:
42
+ keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
43
+
44
+ Signature Algorithm: sha256WithRSAEncryption
45
+ 85:13:fa:00:1d:65:c4:f3:82:12:94:67:e3:34:a1:ac:0c:7b:
46
+ f1:2c:e7:20:db:ea:b8:d1:54:52:3e:34:00:bf:d3:1f:04:be:
47
+ df:c3:7d:96:20:b6:e5:cf:d3:67:b4:27:95:57:41:e9:51:9e:
48
+ 90:88:a9:0e:97:4f:37:42:35:21:b5:e3:6e:82:c9:4c:66:1c:
49
+ 61:df:84:28:00:6a:93:d4:dd:25:96:18:55:89:cc:3d:70:a5:
50
+ 50:a4:e0:b9:db:c1:8e:aa:b1:aa:cc:89:dc:c1:1d:2d:c8:49:
51
+ ad:5b:96:eb:62:57:2e:0e:c0:5d:de:0a:86:27:b9:3c:92:bd:
52
+ 2d:db:0a:3c:ed:ef:1a:cf:0e:33:c9:61:a2:44:c1:ad:53:e6:
53
+ ca:28:ee:4c:19:6f:dd:75:a2:cc:d8:9a:36:e7:8c:64:35:da:
54
+ 1b:cb:9b:31:53:ca:a0:7b:d8:ac:ff:ee:a3:e8:9b:32:8f:5d:
55
+ 0d:ce:0c:eb:b5:ed:82:d6:70:0e:c3:ca:9e:8b:e4:c1:fc:c0:
56
+ 1e:ed:81:7e:5a:0a:a7:34:26:f7:0e:28:a0:7b:ba:21:42:14:
57
+ 84:48:12:df:e8:9e:21:91:fc:c8:c0:f5:f8:6a:9f:c7:27:d4:
58
+ 73:c5:9d:1a:5c:c8:62:24:71:d5:ae:4c:f2:c4:ad:14:c3:6d:
59
+ db:d6:56:bb
1
60
  -----BEGIN CERTIFICATE-----
2
- MIIC/zCCAeegAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGDAJKUDES
3
- MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxDjAMBgNVBAMMBVN1YkNB
4
- MB4XDTA0MDEzMTAzMTMxNloXDTMzMDEyMzAzMTMxNlowQzELMAkGA1UEBgwCSlAx
5
- EjAQBgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMRIwEAYDVQQDDAlsb2Nh
6
- bGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANFJTxWqup3nV9dsJAku
7
- p+WaXnPNIzcpAA3qMGZDJTJsfa8Du7ZxTP0XJK5mETttBrn711cJxAuP3KjqnW9S
8
- vtZ9lY2sXJ6Zj62sN5LwG3VVe25dI28yR1EsbHjJ5Zjf9tmggMC6am52dxuHbt5/
9
- vHo4ngJuKE/U+eeGRivMn6gFAgMBAAGjgYUwgYIwDAYDVR0TAQH/BAIwADAxBglg
10
- hkgBhvhCAQ0EJBYiUnVieS9PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAd
11
- BgNVHQ4EFgQUpZIyygD9JxFYHHOTEuWOLbCKfckwCwYDVR0PBAQDAgWgMBMGA1Ud
12
- JQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4IBAQBwAIj5SaBHaA5X31IP
13
- CFCJiep96awfp7RANO0cuUj+ZpGoFn9d6FXY0g+Eg5wAkCNIzZU5NHN9xsdOpnUo
14
- zIBbyTfQEPrge1CMWMvL6uGaoEXytq84VTitF/xBTky4KtTn6+es4/e7jrrzeUXQ
15
- RC46gkHObmDT91RkOEGjHLyld2328jo3DIN/VTHIryDeVHDWjY5dENwpwdkhhm60
16
- DR9IrNBbXWEe9emtguNXeN0iu1ux0lG1Hc6pWGQxMlRKNvGh0yZB9u5EVe38tOV0
17
- jQaoNyL7qzcQoXD3Dmbi1p0iRmg/+HngISsz8K7k7MBNVsSclztwgCzTZOBiVtkM
18
- rRlQ
61
+ MIIDfzCCAmegAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO
62
+ MAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDELMAkGA1UEAwwC
63
+ Q0EwHhcNMDkwMTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjBIMQswCQYDVQQGEwJK
64
+ UDEOMAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDESMBAGA1UE
65
+ AwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZsT
66
+ 4WUqh6k8hC7DIeFjoox8bmOarD5F9fo3CKrAp2v/QicaZhO5rcrQNWJSAFZWcc3c
67
+ dAT+KqZ9AGHiuJoP0SxWt1DEI/FSaPP9z2xrhpOR8Nh6Z9hV/A3RMPiqpHnyF8oR
68
+ s4zlATStIbyoTeoYvBOcCpS/+0bPKdJSA+SXTpKut52w2RlJX3pbIICHBdv0c98E
69
+ aRLoFB7SyN3Q04FyBPU015xhtbbTS2HuqQQ2YHnId3QkcImoFvhuIVHpMGH7Ifaz
70
+ a8GxCfom7Z890iq2NNm46EbXCMM8XQ6WeuWh/wriNry0Bj4yWp6lSzieCswIOp8H
71
+ TnTQFksPUeTVJPN2XQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf
72
+ Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUHgpXTw68
73
+ tSYmuQGA6JolmErA1gUwHwYDVR0jBBgwFoAU1tuHrdNF/NSNayuX9M+VCLb6YqQw
74
+ DQYJKoZIhvcNAQELBQADggEBAIUT+gAdZcTzghKUZ+M0oawMe/Es5yDb6rjRVFI+
75
+ NAC/0x8Evt/DfZYgtuXP02e0J5VXQelRnpCIqQ6XTzdCNSG1426CyUxmHGHfhCgA
76
+ apPU3SWWGFWJzD1wpVCk4LnbwY6qsarMidzBHS3ISa1blutiVy4OwF3eCoYnuTyS
77
+ vS3bCjzt7xrPDjPJYaJEwa1T5soo7kwZb911oszYmjbnjGQ12hvLmzFTyqB72Kz/
78
+ 7qPomzKPXQ3ODOu17YLWcA7Dyp6L5MH8wB7tgX5aCqc0JvcOKKB7uiFCFIRIEt/o
79
+ niGR/MjA9fhqn8cn1HPFnRpcyGIkcdWuTPLErRTDbdvWVrs=
19
80
  -----END CERTIFICATE-----
@@ -1,15 +1,27 @@
1
1
  -----BEGIN RSA PRIVATE KEY-----
2
- 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
- cUz9FySuZhE7bQa5+9dXCcQLj9yo6p1vUr7WfZWNrFyemY+trDeS8Bt1VXtuXSNv
4
- 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
- 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
- rk9fa+lU9vhzPc0NMB0GIDZ9GcHuhW5hD1Wg9OSCbTOkZDoH3CAFqonjh4Qfwv5W
7
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
15
27
  -----END RSA PRIVATE KEY-----
@@ -37,7 +37,7 @@ if ENV["CI"] || ENV["TEST_SSL"]
37
37
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
38
38
  http.cert_store = bundled_certificate_store
39
39
  http.get('/')
40
- rescue Errno::ENOENT, Errno::ETIMEDOUT
40
+ rescue Errno::ENOENT, Errno::ETIMEDOUT, SocketError
41
41
  skip "#{host} seems offline, I can't tell whether ssl would work."
42
42
  rescue OpenSSL::SSL::SSLError => e
43
43
  # Only fail for certificate verification errors
@@ -51,13 +51,16 @@ if ENV["CI"] || ENV["TEST_SSL"]
51
51
  assert_https('rubygems.org')
52
52
  end
53
53
 
54
- def test_accessing_fastly
55
- assert_https('rubygems.global.ssl.fastly.net')
54
+ def test_accessing_www_rubygems
55
+ assert_https('www.rubygems.org')
56
56
  end
57
57
 
58
- def test_accessing_new_index
59
- assert_https('fastly.rubygems.org')
58
+ def test_accessing_staging
59
+ assert_https('staging.rubygems.org')
60
60
  end
61
61
 
62
+ def test_accessing_new_index
63
+ assert_https('index.rubygems.org')
64
+ end
62
65
  end
63
66
  end
@@ -150,25 +150,28 @@ class TestGem < Gem::TestCase
150
150
  File.umask(umask)
151
151
  end
152
152
 
153
+ def test_self_install_permissions_with_format_executable
154
+ @format_executable = true
155
+ assert_self_install_permissions
156
+ end
157
+
153
158
  def assert_self_install_permissions
154
- mask = /mingw|mswin/ =~ RUBY_PLATFORM ? 0700 : 0777
159
+ mask = win_platform? ? 0700 : 0777
155
160
  options = {
156
161
  :dir_mode => 0500,
157
162
  :prog_mode => 0510,
158
163
  :data_mode => 0640,
159
164
  :wrappers => true,
165
+ :format_executable => !!(@format_executable if defined?(@format_executable))
160
166
  }
161
167
  Dir.chdir @tempdir do
162
168
  Dir.mkdir 'bin'
163
- File.open 'bin/foo.cmd', 'w' do |fp|
164
- fp.chmod(0755)
165
- fp.puts 'p'
166
- end
167
-
168
169
  Dir.mkdir 'data'
169
- File.open 'data/foo.txt', 'w' do |fp|
170
- fp.puts 'blah'
171
- end
170
+
171
+ File.write 'bin/foo.cmd', "p\n"
172
+ File.chmod 0755, 'bin/foo.cmd'
173
+
174
+ File.write 'data/foo.txt', "blah\n"
172
175
 
173
176
  spec_fetcher do |f|
174
177
  f.gem 'foo', 1 do |s|
@@ -182,14 +185,19 @@ class TestGem < Gem::TestCase
182
185
  prog_mode = (options[:prog_mode] & mask).to_s(8)
183
186
  dir_mode = (options[:dir_mode] & mask).to_s(8)
184
187
  data_mode = (options[:data_mode] & mask).to_s(8)
188
+ prog_name = 'foo.cmd'
189
+ prog_name = RUBY_INSTALL_NAME.sub('ruby', 'foo.cmd') if options[:format_executable]
185
190
  expected = {
186
- "bin/#{RUBY_INSTALL_NAME.sub('ruby', 'foo.cmd')}" => prog_mode,
191
+ "bin/#{prog_name}" => prog_mode,
187
192
  'gems/foo-1' => dir_mode,
188
193
  'gems/foo-1/bin' => dir_mode,
189
194
  'gems/foo-1/data' => dir_mode,
190
195
  'gems/foo-1/bin/foo.cmd' => prog_mode,
191
196
  'gems/foo-1/data/foo.txt' => data_mode,
192
197
  }
198
+ # below is for intermittent errors on Appveyor & Travis 2019-01,
199
+ # see https://github.com/rubygems/rubygems/pull/2568
200
+ sleep 0.2
193
201
  result = {}
194
202
  Dir.chdir @gemhome do
195
203
  expected.each_key do |n|
@@ -198,7 +206,7 @@ class TestGem < Gem::TestCase
198
206
  end
199
207
  assert_equal(expected, result)
200
208
  ensure
201
- File.chmod(0700, *Dir.glob(@gemhome+'/gems/**/').map {|path| path.untaint})
209
+ File.chmod(0755, *Dir.glob(@gemhome+'/gems/**/').map {|path| path.untaint})
202
210
  end
203
211
 
204
212
  def test_require_missing
@@ -315,6 +323,40 @@ class TestGem < Gem::TestCase
315
323
  refute_includes e.message, "can't find gem bundler (>= 0.a) with executable bundle"
316
324
  end
317
325
 
326
+ def test_activate_bin_path_respects_underscore_selection_if_given
327
+ bundler_latest = util_spec 'bundler', '2.0.1' do |s|
328
+ s.executables = ['bundle']
329
+ end
330
+
331
+ bundler_previous = util_spec 'bundler', '1.17.3' do |s|
332
+ s.executables = ['bundle']
333
+ end
334
+
335
+ install_specs bundler_latest, bundler_previous
336
+
337
+ File.open("Gemfile.lock", "w") do |f|
338
+ f.write <<-L.gsub(/ {8}/, "")
339
+ GEM
340
+ remote: https://rubygems.org/
341
+ specs:
342
+
343
+ PLATFORMS
344
+ ruby
345
+
346
+ DEPENDENCIES
347
+
348
+ BUNDLED WITH
349
+ 2.0.1
350
+ L
351
+ end
352
+
353
+ File.open("Gemfile", "w") { |f| f.puts('source "https://rubygems.org"') }
354
+
355
+ load Gem.activate_bin_path("bundler", "bundle", "= 1.17.3")
356
+
357
+ assert_equal %w(bundler-1.17.3), loaded_spec_names
358
+ end
359
+
318
360
  def test_self_bin_path_no_exec_name
319
361
  e = assert_raises ArgumentError do
320
362
  Gem.bin_path 'a'
@@ -536,7 +578,7 @@ class TestGem < Gem::TestCase
536
578
 
537
579
  Gem.ensure_gem_subdirectories @gemhome, 0750
538
580
 
539
- assert File.directory? File.join(@gemhome, "cache")
581
+ assert_directory_exists File.join(@gemhome, "cache")
540
582
 
541
583
  assert_equal 0750, File::Stat.new(@gemhome).mode & 0777
542
584
  assert_equal 0750, File::Stat.new(File.join(@gemhome, "cache")).mode & 0777
@@ -565,7 +607,7 @@ class TestGem < Gem::TestCase
565
607
 
566
608
  Gem.ensure_gem_subdirectories gemdir
567
609
 
568
- assert File.directory?(util_cache_dir)
610
+ assert_directory_exists util_cache_dir
569
611
  end
570
612
 
571
613
  unless win_platform? || Process.uid.zero? # only for FS that support write protection
@@ -3,6 +3,8 @@ require 'rubygems/test_case'
3
3
 
4
4
  class TestGemBundlerVersionFinder < Gem::TestCase
5
5
  def setup
6
+ super
7
+
6
8
  @argv = ARGV.dup
7
9
  @env = ENV.to_hash.clone
8
10
  ENV.delete("BUNDLER_VERSION")
@@ -13,6 +15,8 @@ class TestGemBundlerVersionFinder < Gem::TestCase
13
15
  ARGV.replace @argv
14
16
  ENV.replace @env
15
17
  $0 = @dollar_0
18
+
19
+ super
16
20
  end
17
21
 
18
22
  def bvf
@@ -103,6 +103,16 @@ class TestGemCommandManager < Gem::TestCase
103
103
  assert_match(/invalid option: --bad-arg/i, @ui.error)
104
104
  end
105
105
 
106
+ def test_process_args_bad_no_ri
107
+ use_ui @ui do
108
+ assert_raises Gem::MockGemUi::TermError do
109
+ @command_manager.process_args %w[--no-ri]
110
+ end
111
+ end
112
+
113
+ assert_match(/invalid option: --no-ri. Use --no-document instead./i, @ui.error)
114
+ end
115
+
106
116
  # HACK move to install command test
107
117
  def test_process_args_install
108
118
  #capture all install options