rubygems-update 1.8.30 → 2.0.0.preview2
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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +6 -6
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +3 -0
- data/.autotest +6 -3
- data/History.txt +137 -63
- data/LICENSE.txt +1 -5
- data/Manifest.txt +69 -32
- data/README.rdoc +11 -9
- data/Rakefile +24 -38
- data/bin/gem +0 -9
- data/bin/update_rubygems +1 -0
- data/lib/rubygems.rb +193 -405
- data/lib/rubygems/available_set.rb +95 -0
- data/lib/rubygems/command.rb +88 -45
- data/lib/rubygems/command_manager.rb +67 -40
- data/lib/rubygems/commands/build_command.rb +5 -23
- data/lib/rubygems/commands/cert_command.rb +199 -57
- data/lib/rubygems/commands/check_command.rb +14 -39
- data/lib/rubygems/commands/cleanup_command.rb +9 -1
- data/lib/rubygems/commands/contents_command.rb +30 -12
- data/lib/rubygems/commands/dependency_command.rb +3 -8
- data/lib/rubygems/commands/environment_command.rb +13 -8
- data/lib/rubygems/commands/fetch_command.rb +3 -16
- data/lib/rubygems/commands/generate_index_command.rb +7 -47
- data/lib/rubygems/commands/help_command.rb +1 -1
- data/lib/rubygems/commands/install_command.rb +69 -36
- data/lib/rubygems/commands/list_command.rb +6 -4
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/mirror_command.rb +17 -0
- data/lib/rubygems/commands/outdated_command.rb +6 -3
- data/lib/rubygems/commands/owner_command.rb +13 -5
- data/lib/rubygems/commands/pristine_command.rb +19 -4
- data/lib/rubygems/commands/push_command.rb +12 -1
- data/lib/rubygems/commands/query_command.rb +43 -27
- data/lib/rubygems/commands/rdoc_command.rb +23 -28
- data/lib/rubygems/commands/search_command.rb +4 -18
- data/lib/rubygems/commands/server_command.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +124 -38
- data/lib/rubygems/commands/sources_command.rb +16 -16
- data/lib/rubygems/commands/specification_command.rb +11 -13
- data/lib/rubygems/commands/uninstall_command.rb +24 -7
- data/lib/rubygems/commands/unpack_command.rb +7 -3
- data/lib/rubygems/commands/update_command.rb +22 -36
- data/lib/rubygems/commands/yank_command.rb +98 -0
- data/lib/rubygems/compatibility.rb +51 -0
- data/lib/rubygems/config_file.rb +82 -54
- data/lib/rubygems/core_ext/kernel_gem.rb +53 -0
- data/lib/rubygems/core_ext/kernel_require.rb +119 -0
- data/lib/rubygems/defaults.rb +10 -21
- data/lib/rubygems/dependency.rb +61 -10
- data/lib/rubygems/dependency_installer.rb +157 -69
- data/lib/rubygems/dependency_list.rb +11 -19
- data/lib/rubygems/dependency_resolver.rb +562 -0
- data/lib/rubygems/deprecate.rb +40 -40
- data/lib/rubygems/errors.rb +77 -24
- data/lib/rubygems/exceptions.rb +25 -7
- data/lib/rubygems/ext/builder.rb +20 -23
- data/lib/rubygems/ext/configure_builder.rb +2 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +5 -45
- data/lib/rubygems/ext/rake_builder.rb +2 -2
- data/lib/rubygems/gem_runner.rb +3 -16
- data/lib/rubygems/gemcutter_utilities.rb +22 -7
- data/lib/rubygems/indexer.rb +6 -159
- data/lib/rubygems/install_message.rb +12 -0
- data/lib/rubygems/install_update_options.rb +56 -18
- data/lib/rubygems/installer.rb +244 -134
- data/lib/rubygems/installer_test_case.rb +71 -19
- data/lib/rubygems/mock_gem_ui.rb +17 -0
- data/lib/rubygems/name_tuple.rb +110 -0
- data/lib/rubygems/package.rb +514 -43
- data/lib/rubygems/package/digest_io.rb +64 -0
- data/lib/rubygems/package/old.rb +147 -0
- data/lib/rubygems/package/tar_header.rb +18 -55
- data/lib/rubygems/package/tar_reader.rb +20 -3
- data/lib/rubygems/package/tar_writer.rb +63 -7
- data/lib/rubygems/package_task.rb +3 -4
- data/lib/rubygems/path_support.rb +14 -7
- data/lib/rubygems/platform.rb +19 -26
- data/lib/rubygems/rdoc.rb +316 -0
- data/lib/rubygems/remote_fetcher.rb +117 -54
- data/lib/rubygems/request_set.rb +182 -0
- data/lib/rubygems/requirement.rb +63 -26
- data/lib/rubygems/security.rb +295 -555
- data/lib/rubygems/security/policies.rb +115 -0
- data/lib/rubygems/security/policy.rb +227 -0
- data/lib/rubygems/security/signer.rb +136 -0
- data/lib/rubygems/security/trust_dir.rb +104 -0
- data/lib/rubygems/server.rb +45 -55
- data/lib/rubygems/source.rb +144 -0
- data/lib/rubygems/source_list.rb +87 -0
- data/lib/rubygems/source_local.rb +92 -0
- data/lib/rubygems/source_specific_file.rb +28 -0
- data/lib/rubygems/spec_fetcher.rb +116 -184
- data/lib/rubygems/specification.rb +731 -335
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +88 -30
- data/lib/rubygems/ssl_certs/Entrust_net-Secure-Server-Certification-Authority.pem +90 -0
- data/lib/rubygems/ssl_certs/VerisignClass3PublicPrimaryCertificationAuthority-G2.pem +57 -0
- data/lib/rubygems/syck_hack.rb +2 -0
- data/lib/rubygems/test_case.rb +199 -109
- data/lib/rubygems/test_utilities.rb +25 -5
- data/lib/rubygems/uninstaller.rb +62 -20
- data/lib/rubygems/user_interaction.rb +10 -0
- data/lib/rubygems/validator.rb +33 -40
- data/lib/rubygems/version.rb +19 -8
- data/setup.rb +8 -1
- data/test/rubygems/alternate_cert.pem +9 -0
- data/test/rubygems/alternate_cert_32.pem +9 -0
- data/test/rubygems/alternate_key.pem +9 -0
- data/test/rubygems/bad_rake.rb +1 -0
- data/test/rubygems/child_cert.pem +9 -0
- data/test/rubygems/child_cert_32.pem +9 -0
- data/test/rubygems/child_key.pem +9 -0
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/expired_cert.pem +9 -0
- data/test/rubygems/future_cert.pem +9 -0
- data/test/rubygems/future_cert_32.pem +9 -0
- data/test/rubygems/good_rake.rb +1 -0
- data/test/rubygems/grandchild_cert.pem +9 -0
- data/test/rubygems/grandchild_cert_32.pem +9 -0
- data/test/rubygems/grandchild_key.pem +9 -0
- data/test/rubygems/invalid_issuer_cert.pem +9 -0
- data/test/rubygems/invalid_issuer_cert_32.pem +9 -0
- data/test/rubygems/invalid_key.pem +9 -0
- data/test/rubygems/invalid_signer_cert.pem +9 -0
- data/test/rubygems/invalid_signer_cert_32.pem +9 -0
- data/test/rubygems/invalidchild_cert.pem +9 -0
- data/test/rubygems/invalidchild_cert_32.pem +9 -0
- data/test/rubygems/invalidchild_key.pem +9 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_key.pem +7 -25
- data/test/rubygems/public_cert.pem +8 -18
- data/test/rubygems/public_cert_32.pem +10 -0
- data/test/rubygems/public_key.pem +4 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +1 -1
- data/test/rubygems/test_config.rb +4 -6
- data/test/rubygems/test_deprecate.rb +76 -0
- data/test/rubygems/test_gem.rb +318 -83
- data/test/rubygems/test_gem_available_set.rb +106 -0
- data/test/rubygems/test_gem_command.rb +10 -0
- data/test/rubygems/test_gem_command_manager.rb +55 -9
- data/test/rubygems/test_gem_commands_build_command.rb +11 -19
- data/test/rubygems/test_gem_commands_cert_command.rb +441 -42
- data/test/rubygems/test_gem_commands_cleanup_command.rb +29 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +23 -0
- data/test/rubygems/test_gem_commands_dependency_command.rb +5 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +19 -20
- data/test/rubygems/test_gem_commands_generate_index_command.rb +2 -83
- data/test/rubygems/test_gem_commands_help_command.rb +2 -1
- data/test/rubygems/test_gem_commands_install_command.rb +647 -48
- data/test/rubygems/test_gem_commands_mirror.rb +32 -0
- data/test/rubygems/test_gem_commands_owner_command.rb +4 -8
- data/test/rubygems/test_gem_commands_pristine_command.rb +99 -4
- data/test/rubygems/test_gem_commands_push_command.rb +62 -8
- data/test/rubygems/test_gem_commands_query_command.rb +51 -0
- data/test/rubygems/test_gem_commands_search_command.rb +25 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +45 -0
- data/test/rubygems/test_gem_commands_sources_command.rb +21 -6
- data/test/rubygems/test_gem_commands_specification_command.rb +33 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +91 -31
- data/test/rubygems/test_gem_commands_unpack_command.rb +3 -3
- data/test/rubygems/test_gem_commands_update_command.rb +56 -38
- data/test/rubygems/test_gem_commands_which_command.rb +4 -4
- data/test/rubygems/test_gem_commands_yank_command.rb +97 -0
- data/test/rubygems/test_gem_config_file.rb +66 -21
- data/test/rubygems/test_gem_dependency.rb +46 -0
- data/test/rubygems/test_gem_dependency_installer.rb +228 -18
- data/test/rubygems/test_gem_dependency_list.rb +0 -9
- data/test/rubygems/test_gem_dependency_resolver.rb +327 -0
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -4
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +21 -49
- data/test/rubygems/test_gem_ext_rake_builder.rb +13 -13
- data/test/rubygems/test_gem_gem_runner.rb +27 -5
- data/test/rubygems/test_gem_gemcutter_utilities.rb +19 -0
- data/test/rubygems/test_gem_indexer.rb +14 -227
- data/test/rubygems/test_gem_install_update_options.rb +83 -3
- data/test/rubygems/test_gem_installer.rb +211 -236
- data/test/rubygems/test_gem_local_remote_options.rb +8 -2
- data/test/rubygems/test_gem_name_tuple.rb +15 -0
- data/test/rubygems/test_gem_package.rb +547 -0
- data/test/rubygems/test_gem_package_old.rb +37 -0
- data/test/rubygems/test_gem_package_tar_reader.rb +32 -0
- data/test/rubygems/test_gem_package_tar_writer.rb +84 -1
- data/test/rubygems/test_gem_path_support.rb +4 -30
- data/test/rubygems/test_gem_platform.rb +3 -6
- data/test/rubygems/test_gem_rdoc.rb +245 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +51 -5
- data/test/rubygems/test_gem_request_set.rb +70 -0
- data/test/rubygems/test_gem_requirement.rb +53 -24
- data/test/rubygems/test_gem_security.rb +189 -43
- data/test/rubygems/test_gem_security_policy.rb +376 -0
- data/test/rubygems/test_gem_security_signer.rb +184 -0
- data/test/rubygems/test_gem_security_trust_dir.rb +94 -0
- data/test/rubygems/test_gem_server.rb +31 -36
- data/test/rubygems/test_gem_silent_ui.rb +2 -2
- data/test/rubygems/test_gem_source.rb +188 -0
- data/test/rubygems/test_gem_source_list.rb +87 -0
- data/test/rubygems/test_gem_source_local.rb +83 -0
- data/test/rubygems/test_gem_source_specific_file.rb +33 -0
- data/test/rubygems/test_gem_spec_fetcher.rb +91 -255
- data/test/rubygems/test_gem_specification.rb +293 -39
- data/test/rubygems/test_gem_uninstaller.rb +136 -13
- data/test/rubygems/test_gem_validator.rb +14 -41
- data/test/rubygems/test_gem_version.rb +15 -21
- data/test/rubygems/test_require.rb +193 -0
- data/test/rubygems/wrong_key_cert.pem +9 -0
- data/test/rubygems/wrong_key_cert_32.pem +9 -0
- metadata +171 -83
- metadata.gz.sig +1 -0
- data/CVE-2013-4287.txt +0 -36
- data/CVE-2013-4363.txt +0 -45
- data/ci_build.sh +0 -27
- data/cruise_config.rb +0 -32
- data/lib/rbconfig/datadir.rb +0 -13
- data/lib/rubygems/builder.rb +0 -99
- data/lib/rubygems/custom_require.rb +0 -69
- data/lib/rubygems/doc_manager.rb +0 -243
- data/lib/rubygems/format.rb +0 -82
- data/lib/rubygems/gem_openssl.rb +0 -90
- data/lib/rubygems/gem_path_searcher.rb +0 -172
- data/lib/rubygems/old_format.rb +0 -153
- data/lib/rubygems/package/f_sync_dir.rb +0 -23
- data/lib/rubygems/package/tar_input.rb +0 -234
- data/lib/rubygems/package/tar_output.rb +0 -146
- data/lib/rubygems/require_paths_builder.rb +0 -18
- data/lib/rubygems/source_index.rb +0 -406
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
- data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
- data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
- data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
- data/test/rubygems/test_bundled_ca.rb +0 -59
- data/test/rubygems/test_gem_builder.rb +0 -44
- data/test/rubygems/test_gem_doc_manager.rb +0 -32
- data/test/rubygems/test_gem_ext_builder.rb +0 -58
- data/test/rubygems/test_gem_format.rb +0 -88
- data/test/rubygems/test_gem_gem_path_searcher.rb +0 -94
- data/test/rubygems/test_gem_package_tar_input.rb +0 -129
- data/test/rubygems/test_gem_package_tar_output.rb +0 -101
- data/test/rubygems/test_gem_source_index.rb +0 -250
- data/util/update_bundled_ca_certificates.rb +0 -103
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rubygems/test_case'
|
2
|
+
require 'rubygems/simple_gem'
|
3
|
+
|
4
|
+
class TestGemPackageOld < Gem::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
|
9
|
+
open 'old_format.gem', 'wb' do |io|
|
10
|
+
io.write SIMPLE_GEM
|
11
|
+
end
|
12
|
+
|
13
|
+
@package = Gem::Package::Old.new 'old_format.gem'
|
14
|
+
@destination = File.join @tempdir, 'extract'
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_contents
|
18
|
+
assert_equal %w[lib/foo.rb lib/test.rb lib/test/wow.rb], @package.contents
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_extract_files
|
22
|
+
@package.extract_files @destination
|
23
|
+
|
24
|
+
extracted = File.join @destination, 'lib/foo.rb'
|
25
|
+
assert_path_exists extracted
|
26
|
+
|
27
|
+
mask = 0100644 & (~File.umask)
|
28
|
+
|
29
|
+
assert_equal mask, File.stat(extracted).mode unless win_platform?
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_spec
|
33
|
+
assert_equal 'testing', @package.spec.name
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
@@ -42,5 +42,37 @@ class TestGemPackageTarReader < Gem::Package::TarTestCase
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
def test_seek
|
46
|
+
tar = tar_dir_header "foo", "bar", 0
|
47
|
+
tar << tar_file_header("bar", "baz", 0, 0)
|
48
|
+
|
49
|
+
io = TempIO.new tar
|
50
|
+
|
51
|
+
Gem::Package::TarReader.new io do |tar_reader|
|
52
|
+
tar_reader.seek 'baz/bar' do |entry|
|
53
|
+
assert_kind_of Gem::Package::TarReader::Entry, entry
|
54
|
+
|
55
|
+
assert_equal 'baz/bar', entry.full_name
|
56
|
+
end
|
57
|
+
|
58
|
+
assert_equal 0, io.pos
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_seek_missing
|
63
|
+
tar = tar_dir_header "foo", "bar", 0
|
64
|
+
tar << tar_file_header("bar", "baz", 0, 0)
|
65
|
+
|
66
|
+
io = TempIO.new tar
|
67
|
+
|
68
|
+
Gem::Package::TarReader.new io do |tar_reader|
|
69
|
+
tar_reader.seek 'nonexistent' do |entry|
|
70
|
+
flunk 'entry missing but entry-found block was run'
|
71
|
+
end
|
72
|
+
|
73
|
+
assert_equal 0, io.pos
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
45
77
|
end
|
46
78
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rubygems/package/tar_test_case'
|
2
2
|
require 'rubygems/package/tar_writer'
|
3
3
|
|
4
|
-
class
|
4
|
+
class TestGemPackageTarWriter < Gem::Package::TarTestCase
|
5
5
|
|
6
6
|
def setup
|
7
7
|
super
|
@@ -26,6 +26,89 @@ class TestTarWriter < Gem::Package::TarTestCase
|
|
26
26
|
assert_equal 1024, @io.pos
|
27
27
|
end
|
28
28
|
|
29
|
+
def test_add_file_digest
|
30
|
+
digest_algorithms = OpenSSL::Digest::SHA1, OpenSSL::Digest::SHA512
|
31
|
+
|
32
|
+
digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
|
33
|
+
io.write 'a' * 10
|
34
|
+
end
|
35
|
+
|
36
|
+
assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
|
37
|
+
digests['SHA1'].hexdigest
|
38
|
+
assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
|
39
|
+
'1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
|
40
|
+
'4993d6b40a4e4d8424196afc347e97640d68de61' \
|
41
|
+
'e1cf14b0',
|
42
|
+
digests['SHA512'].hexdigest
|
43
|
+
|
44
|
+
assert_headers_equal(tar_file_header('x', '', 0644, 10),
|
45
|
+
@io.string[0, 512])
|
46
|
+
assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
|
47
|
+
assert_equal 1024, @io.pos
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_add_file_digest_multiple
|
51
|
+
digest_algorithms = [OpenSSL::Digest::SHA1, OpenSSL::Digest::SHA512]
|
52
|
+
|
53
|
+
digests = @tar_writer.add_file_digest 'x', 0644, digest_algorithms do |io|
|
54
|
+
io.write 'a' * 10
|
55
|
+
end
|
56
|
+
|
57
|
+
assert_equal '3495ff69d34671d1e15b33a63c1379fdedd3a32a',
|
58
|
+
digests['SHA1'].hexdigest
|
59
|
+
assert_equal '4714870aff6c97ca09d135834fdb58a6389a50c1' \
|
60
|
+
'1fef8ec4afef466fb60a23ac6b7a9c92658f14df' \
|
61
|
+
'4993d6b40a4e4d8424196afc347e97640d68de61' \
|
62
|
+
'e1cf14b0',
|
63
|
+
digests['SHA512'].hexdigest
|
64
|
+
|
65
|
+
assert_headers_equal(tar_file_header('x', '', 0644, 10),
|
66
|
+
@io.string[0, 512])
|
67
|
+
assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
|
68
|
+
assert_equal 1024, @io.pos
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_add_file_signer
|
72
|
+
signer = Gem::Security::Signer.new PRIVATE_KEY, [PUBLIC_CERT]
|
73
|
+
|
74
|
+
@tar_writer.add_file_signed 'x', 0644, signer do |io|
|
75
|
+
io.write 'a' * 10
|
76
|
+
end
|
77
|
+
|
78
|
+
assert_headers_equal(tar_file_header('x', '', 0644, 10),
|
79
|
+
@io.string[0, 512])
|
80
|
+
assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
|
81
|
+
|
82
|
+
digest = signer.digest_algorithm.new
|
83
|
+
digest.update 'a' * 10
|
84
|
+
|
85
|
+
signature = signer.sign digest.digest
|
86
|
+
|
87
|
+
assert_headers_equal(tar_file_header('x.sig', '', 0444, signature.length),
|
88
|
+
@io.string[1024, 512])
|
89
|
+
assert_equal "#{signature}#{"\0" * (512 - signature.length)}",
|
90
|
+
@io.string[1536, 512]
|
91
|
+
|
92
|
+
assert_equal 2048, @io.pos
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_add_file_signer_empty
|
96
|
+
signer = Gem::Security::Signer.new nil, nil
|
97
|
+
|
98
|
+
@tar_writer.add_file_signed 'x', 0644, signer do |io|
|
99
|
+
io.write 'a' * 10
|
100
|
+
end
|
101
|
+
|
102
|
+
assert_headers_equal(tar_file_header('x', '', 0644, 10),
|
103
|
+
@io.string[0, 512])
|
104
|
+
assert_equal "aaaaaaaaaa#{"\0" * 502}", @io.string[512, 512]
|
105
|
+
|
106
|
+
digest = signer.digest_algorithm.new
|
107
|
+
digest.update 'a' * 10
|
108
|
+
|
109
|
+
assert_equal 1024, @io.pos
|
110
|
+
end
|
111
|
+
|
29
112
|
def test_add_file_simple
|
30
113
|
@tar_writer.add_file_simple 'x', 0644, 10 do |io| io.write "a" * 10 end
|
31
114
|
|
@@ -22,10 +22,10 @@ class TestGemPathSupport < Gem::TestCase
|
|
22
22
|
def test_initialize_home
|
23
23
|
ps = Gem::PathSupport.new "GEM_HOME" => "#{@tempdir}/foo"
|
24
24
|
|
25
|
-
|
26
|
-
assert_equal expected, ps.home
|
25
|
+
assert_equal File.join(@tempdir, "foo"), ps.home
|
27
26
|
|
28
|
-
|
27
|
+
expected = util_path + [File.join(@tempdir, 'foo')]
|
28
|
+
assert_equal expected, ps.path
|
29
29
|
end
|
30
30
|
|
31
31
|
if defined?(File::ALT_SEPARATOR) and File::ALT_SEPARATOR
|
@@ -43,9 +43,9 @@ class TestGemPathSupport < Gem::TestCase
|
|
43
43
|
assert_equal ENV["GEM_HOME"], ps.home
|
44
44
|
|
45
45
|
expected = [
|
46
|
-
ENV["GEM_HOME"],
|
47
46
|
File.join(@tempdir, 'foo'),
|
48
47
|
File.join(@tempdir, 'bar'),
|
48
|
+
ENV["GEM_HOME"],
|
49
49
|
]
|
50
50
|
|
51
51
|
assert_equal expected, ps.path
|
@@ -61,32 +61,6 @@ class TestGemPathSupport < Gem::TestCase
|
|
61
61
|
assert_equal expected, ps.path
|
62
62
|
end
|
63
63
|
|
64
|
-
def test_path_equals
|
65
|
-
ps = Gem::PathSupport.new
|
66
|
-
|
67
|
-
ps.send :path=, ['a', 'b']
|
68
|
-
|
69
|
-
assert_equal [@tempdir, 'a', 'b'], ps.path
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_path_equals_empty
|
73
|
-
ps = Gem::PathSupport.new
|
74
|
-
|
75
|
-
ps.send :path=, nil
|
76
|
-
|
77
|
-
assert_equal [@tempdir, 'something'], ps.path
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_path_equals_empty_no_GEM_PATH
|
81
|
-
ENV.delete 'GEM_PATH'
|
82
|
-
|
83
|
-
ps = Gem::PathSupport.new
|
84
|
-
|
85
|
-
ps.send :path=, nil
|
86
|
-
|
87
|
-
assert_equal [@tempdir, *Gem.default_path], ps.path
|
88
|
-
end
|
89
|
-
|
90
64
|
def util_path
|
91
65
|
ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
|
92
66
|
end
|
@@ -51,6 +51,8 @@ class TestGemPlatform < Gem::TestCase
|
|
51
51
|
'i386-freebsd5' => ['x86', 'freebsd', '5'],
|
52
52
|
'i386-freebsd6' => ['x86', 'freebsd', '6'],
|
53
53
|
'i386-freebsd7' => ['x86', 'freebsd', '7'],
|
54
|
+
'i386-freebsd' => ['x86', 'freebsd', nil],
|
55
|
+
'universal-freebsd' => ['universal', 'freebsd', nil],
|
54
56
|
'i386-java1.5' => ['x86', 'java', '1.5'],
|
55
57
|
'x86-java1.6' => ['x86', 'java', '1.6'],
|
56
58
|
'i386-java1.6' => ['x86', 'java', '1.6'],
|
@@ -75,6 +77,7 @@ class TestGemPlatform < Gem::TestCase
|
|
75
77
|
'x86_64-linux' => ['x86_64', 'linux', nil],
|
76
78
|
'x86_64-openbsd3.9' => ['x86_64', 'openbsd', '3.9'],
|
77
79
|
'x86_64-openbsd4.0' => ['x86_64', 'openbsd', '4.0'],
|
80
|
+
'x86_64-openbsd' => ['x86_64', 'openbsd', nil],
|
78
81
|
}
|
79
82
|
|
80
83
|
test_cases.each do |arch, expected|
|
@@ -136,12 +139,6 @@ class TestGemPlatform < Gem::TestCase
|
|
136
139
|
assert_equal '1', platform.version
|
137
140
|
end
|
138
141
|
|
139
|
-
def test_empty
|
140
|
-
platform = Gem::Platform.new 'cpu-other_platform1'
|
141
|
-
assert_respond_to platform, :empty?
|
142
|
-
assert_equal false, Gem::Deprecate.skip_during { platform.empty? }
|
143
|
-
end
|
144
|
-
|
145
142
|
def test_to_s
|
146
143
|
if win_platform? then
|
147
144
|
assert_equal 'x86-mswin32-60', Gem::Platform.local.to_s
|
@@ -0,0 +1,245 @@
|
|
1
|
+
require 'rubygems/test_case'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubygems/rdoc'
|
4
|
+
|
5
|
+
class TestGemRDoc < Gem::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
super
|
9
|
+
|
10
|
+
@a = quick_spec 'a'
|
11
|
+
|
12
|
+
@rdoc = Gem::RDoc.new @a
|
13
|
+
|
14
|
+
begin
|
15
|
+
Gem::RDoc.load_rdoc
|
16
|
+
rescue Gem::DocumentError => e
|
17
|
+
skip e.message
|
18
|
+
end
|
19
|
+
|
20
|
+
Gem.configuration[:rdoc] = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# RDoc 4 ships with its own Gem::RDoc which overrides this one which is
|
25
|
+
# shipped for backwards compatibility.
|
26
|
+
|
27
|
+
def rdoc_3?
|
28
|
+
Gem::Requirement.new('~> 3.0').satisfied_by? @rdoc.class.rdoc_version
|
29
|
+
end
|
30
|
+
|
31
|
+
def rdoc_3_8_or_better?
|
32
|
+
Gem::Requirement.new('>= 3.8').satisfied_by? @rdoc.class.rdoc_version
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_initialize
|
36
|
+
assert @rdoc.generate_rdoc
|
37
|
+
assert @rdoc.generate_ri
|
38
|
+
|
39
|
+
rdoc = Gem::RDoc.new @a, false, false
|
40
|
+
|
41
|
+
refute rdoc.generate_rdoc
|
42
|
+
refute rdoc.generate_ri
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_delete_legacy_args
|
46
|
+
args = %w[
|
47
|
+
--inline-source
|
48
|
+
--one-file
|
49
|
+
--promiscuous
|
50
|
+
-p
|
51
|
+
]
|
52
|
+
|
53
|
+
@rdoc.delete_legacy_args args
|
54
|
+
|
55
|
+
assert_empty args
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_document
|
59
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
60
|
+
|
61
|
+
options = RDoc::Options.new
|
62
|
+
options.files = []
|
63
|
+
|
64
|
+
@rdoc.instance_variable_set :@rdoc, @rdoc.new_rdoc
|
65
|
+
@rdoc.instance_variable_set :@file_info, []
|
66
|
+
|
67
|
+
@rdoc.document 'darkfish', options, @a.doc_dir('rdoc')
|
68
|
+
|
69
|
+
assert @rdoc.rdoc_installed?
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_generate
|
73
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
74
|
+
|
75
|
+
FileUtils.mkdir_p @a.doc_dir
|
76
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
77
|
+
|
78
|
+
@rdoc.generate
|
79
|
+
|
80
|
+
assert @rdoc.rdoc_installed?
|
81
|
+
assert @rdoc.ri_installed?
|
82
|
+
|
83
|
+
rdoc = @rdoc.instance_variable_get :@rdoc
|
84
|
+
|
85
|
+
refute rdoc.options.hyperlink_all
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_generate_configuration_rdoc_array
|
89
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
90
|
+
|
91
|
+
Gem.configuration[:rdoc] = %w[-A]
|
92
|
+
|
93
|
+
FileUtils.mkdir_p @a.doc_dir
|
94
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
95
|
+
|
96
|
+
@rdoc.generate
|
97
|
+
|
98
|
+
rdoc = @rdoc.instance_variable_get :@rdoc
|
99
|
+
|
100
|
+
assert rdoc.options.hyperlink_all
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_generate_configuration_rdoc_string
|
104
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
105
|
+
|
106
|
+
Gem.configuration[:rdoc] = '-A'
|
107
|
+
|
108
|
+
FileUtils.mkdir_p @a.doc_dir
|
109
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
110
|
+
|
111
|
+
@rdoc.generate
|
112
|
+
|
113
|
+
rdoc = @rdoc.instance_variable_get :@rdoc
|
114
|
+
|
115
|
+
assert rdoc.options.hyperlink_all
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_generate_disabled
|
119
|
+
@rdoc.generate_rdoc = false
|
120
|
+
@rdoc.generate_ri = false
|
121
|
+
|
122
|
+
@rdoc.generate
|
123
|
+
|
124
|
+
refute @rdoc.rdoc_installed?
|
125
|
+
refute @rdoc.ri_installed?
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_generate_force
|
129
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
130
|
+
|
131
|
+
FileUtils.mkdir_p @a.doc_dir 'ri'
|
132
|
+
FileUtils.mkdir_p @a.doc_dir 'rdoc'
|
133
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
134
|
+
|
135
|
+
@rdoc.force = true
|
136
|
+
|
137
|
+
@rdoc.generate
|
138
|
+
|
139
|
+
assert_path_exists File.join(@a.doc_dir('rdoc'), 'index.html')
|
140
|
+
assert_path_exists File.join(@a.doc_dir('ri'), 'cache.ri')
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_generate_no_overwrite
|
144
|
+
skip 'RDoc 3 required' unless rdoc_3?
|
145
|
+
|
146
|
+
FileUtils.mkdir_p @a.doc_dir 'ri'
|
147
|
+
FileUtils.mkdir_p @a.doc_dir 'rdoc'
|
148
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
149
|
+
|
150
|
+
@rdoc.generate
|
151
|
+
|
152
|
+
refute_path_exists File.join(@a.doc_dir('rdoc'), 'index.html')
|
153
|
+
refute_path_exists File.join(@a.doc_dir('ri'), 'cache.ri')
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_generate_legacy
|
157
|
+
skip 'RDoc < 3.8 required' if rdoc_3_8_or_better?
|
158
|
+
|
159
|
+
FileUtils.mkdir_p @a.doc_dir
|
160
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
161
|
+
|
162
|
+
@rdoc.generate_legacy
|
163
|
+
|
164
|
+
assert @rdoc.rdoc_installed?
|
165
|
+
assert @rdoc.ri_installed?
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_legacy_rdoc
|
169
|
+
skip 'RDoc < 3.8 required' if rdoc_3_8_or_better?
|
170
|
+
|
171
|
+
FileUtils.mkdir_p @a.doc_dir
|
172
|
+
FileUtils.mkdir_p File.join(@a.gem_dir, 'lib')
|
173
|
+
|
174
|
+
@rdoc.legacy_rdoc '--op', @a.doc_dir('rdoc')
|
175
|
+
|
176
|
+
assert @rdoc.rdoc_installed?
|
177
|
+
end
|
178
|
+
|
179
|
+
def test_new_rdoc
|
180
|
+
assert_kind_of RDoc::RDoc, @rdoc.new_rdoc
|
181
|
+
end
|
182
|
+
|
183
|
+
def test_rdoc_installed?
|
184
|
+
refute @rdoc.rdoc_installed?
|
185
|
+
|
186
|
+
FileUtils.mkdir_p @a.doc_dir 'rdoc'
|
187
|
+
|
188
|
+
assert @rdoc.rdoc_installed?
|
189
|
+
end
|
190
|
+
|
191
|
+
def test_remove
|
192
|
+
FileUtils.mkdir_p @a.doc_dir 'rdoc'
|
193
|
+
FileUtils.mkdir_p @a.doc_dir 'ri'
|
194
|
+
|
195
|
+
@rdoc.remove
|
196
|
+
|
197
|
+
refute @rdoc.rdoc_installed?
|
198
|
+
refute @rdoc.ri_installed?
|
199
|
+
|
200
|
+
assert_path_exists @a.doc_dir
|
201
|
+
end
|
202
|
+
|
203
|
+
def test_remove_unwritable
|
204
|
+
skip 'chmod not supported' if Gem.win_platform?
|
205
|
+
FileUtils.mkdir_p @a.base_dir
|
206
|
+
FileUtils.chmod 0, @a.base_dir
|
207
|
+
|
208
|
+
e = assert_raises Gem::FilePermissionError do
|
209
|
+
@rdoc.remove
|
210
|
+
end
|
211
|
+
|
212
|
+
assert_equal @a.base_dir, e.directory
|
213
|
+
ensure
|
214
|
+
FileUtils.chmod(0755, @a.base_dir) if File.directory?(@a.base_dir)
|
215
|
+
end
|
216
|
+
|
217
|
+
def test_ri_installed?
|
218
|
+
refute @rdoc.ri_installed?
|
219
|
+
|
220
|
+
FileUtils.mkdir_p @a.doc_dir 'ri'
|
221
|
+
|
222
|
+
assert @rdoc.ri_installed?
|
223
|
+
end
|
224
|
+
|
225
|
+
def test_setup
|
226
|
+
@rdoc.setup
|
227
|
+
|
228
|
+
assert_path_exists @a.doc_dir
|
229
|
+
end
|
230
|
+
|
231
|
+
def test_setup_unwritable
|
232
|
+
skip 'chmod not supported' if Gem.win_platform?
|
233
|
+
FileUtils.mkdir_p @a.doc_dir
|
234
|
+
FileUtils.chmod 0, @a.doc_dir
|
235
|
+
|
236
|
+
e = assert_raises Gem::FilePermissionError do
|
237
|
+
@rdoc.setup
|
238
|
+
end
|
239
|
+
|
240
|
+
assert_equal @a.doc_dir, e.directory
|
241
|
+
ensure
|
242
|
+
FileUtils.chmod(0755, @a.doc_dir) if File.directory?(@a.doc_dir)
|
243
|
+
end
|
244
|
+
|
245
|
+
end
|