rubygems-update 2.1.0.rc.1 → 2.1.0.rc.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.txt +11 -3
- data/Manifest.txt +1 -0
- data/Rakefile +22 -18
- data/lib/rubygems.rb +8 -10
- data/lib/rubygems/basic_specification.rb +112 -108
- data/lib/rubygems/commands/build_command.rb +19 -0
- data/lib/rubygems/commands/check_command.rb +7 -0
- data/lib/rubygems/commands/cleanup_command.rb +5 -5
- data/lib/rubygems/commands/contents_command.rb +8 -0
- data/lib/rubygems/commands/dependency_command.rb +11 -0
- data/lib/rubygems/commands/environment_command.rb +3 -0
- data/lib/rubygems/commands/fetch_command.rb +10 -0
- data/lib/rubygems/commands/list_command.rb +12 -1
- data/lib/rubygems/commands/mirror_command.rb +6 -0
- data/lib/rubygems/commands/outdated_command.rb +9 -0
- data/lib/rubygems/commands/owner_command.rb +9 -2
- data/lib/rubygems/commands/pristine_command.rb +12 -11
- data/lib/rubygems/commands/push_command.rb +8 -2
- data/lib/rubygems/commands/query_command.rb +9 -0
- data/lib/rubygems/commands/rdoc_command.rb +6 -2
- data/lib/rubygems/commands/search_command.rb +14 -1
- data/lib/rubygems/commands/sources_command.rb +47 -0
- data/lib/rubygems/commands/specification_command.rb +16 -0
- data/lib/rubygems/commands/stale_command.rb +10 -0
- data/lib/rubygems/commands/uninstall_command.rb +19 -6
- data/lib/rubygems/commands/unpack_command.rb +18 -0
- data/lib/rubygems/commands/update_command.rb +9 -0
- data/lib/rubygems/commands/which_command.rb +11 -0
- data/lib/rubygems/commands/yank_command.rb +16 -2
- data/lib/rubygems/core_ext/kernel_require.rb +4 -4
- data/lib/rubygems/defaults.rb +7 -0
- data/lib/rubygems/dependency_installer.rb +1 -4
- data/lib/rubygems/ext/builder.rb +118 -0
- data/lib/rubygems/installer.rb +7 -60
- data/lib/rubygems/package_task.rb +5 -2
- data/lib/rubygems/remote_fetcher.rb +1 -1
- data/lib/rubygems/security/policy.rb +5 -0
- data/lib/rubygems/security/signer.rb +19 -1
- data/lib/rubygems/source.rb +7 -3
- data/lib/rubygems/source/local.rb +5 -4
- data/lib/rubygems/source/specific_file.rb +28 -0
- data/lib/rubygems/specification.rb +55 -44
- data/lib/rubygems/stub_specification.rb +93 -92
- data/lib/rubygems/test_case.rb +10 -9
- data/test/rubygems/test_gem.rb +27 -0
- data/test/rubygems/test_gem_commands_install_command.rb +1 -0
- data/test/rubygems/test_gem_commands_uninstall_command.rb +17 -8
- data/test/rubygems/test_gem_ext_builder.rb +97 -2
- data/test/rubygems/test_gem_installer.rb +0 -89
- data/test/rubygems/test_gem_package.rb +6 -8
- data/test/rubygems/test_gem_package_task.rb +23 -2
- data/test/rubygems/test_gem_security_policy.rb +11 -0
- data/test/rubygems/test_gem_security_signer.rb +6 -0
- data/test/rubygems/test_gem_source.rb +23 -0
- data/test/rubygems/test_gem_source_installed.rb +28 -0
- data/test/rubygems/test_gem_source_local.rb +29 -6
- data/test/rubygems/test_gem_source_specific_file.rb +38 -0
- data/test/rubygems/test_gem_specification.rb +10 -2
- metadata +7 -5
- metadata.gz.sig +0 -0
    
        data/lib/rubygems/test_case.rb
    CHANGED
    
    | @@ -785,7 +785,7 @@ Also, a list: | |
| 785 785 | 
             
                @a_evil9 = quick_gem('a_evil', '9', &init)
         | 
| 786 786 | 
             
                @b2      = quick_gem('b', '2',      &init)
         | 
| 787 787 | 
             
                @c1_2    = quick_gem('c', '1.2',    &init)
         | 
| 788 | 
            -
                @x       = quick_gem('x', '1', | 
| 788 | 
            +
                @x       = quick_gem('x', '1',      &init)
         | 
| 789 789 | 
             
                @dep_x   = quick_gem('dep_x', '1') do |s|
         | 
| 790 790 | 
             
                  s.files = %w[lib/code.rb]
         | 
| 791 791 | 
             
                  s.require_paths = %w[lib]
         | 
| @@ -805,14 +805,15 @@ Also, a list: | |
| 805 805 | 
             
                  util_build_gem @a2_pre
         | 
| 806 806 | 
             
                end
         | 
| 807 807 |  | 
| 808 | 
            -
                write_file File.join(*%W[gems #{@a1.original_name} | 
| 809 | 
            -
                write_file File.join(*%W[gems #{@a2.original_name} | 
| 810 | 
            -
                write_file File.join(*%W[gems #{@a3a.original_name} | 
| 811 | 
            -
                write_file File.join(*%W[gems #{@ | 
| 812 | 
            -
                write_file File.join(*%W[gems #{@ | 
| 813 | 
            -
                write_file File.join(*%W[gems #{@ | 
| 814 | 
            -
                write_file File.join(*%W[gems #{@ | 
| 815 | 
            -
                write_file File.join(*%W[gems #{@ | 
| 808 | 
            +
                write_file File.join(*%W[gems #{@a1.original_name}      lib code.rb])
         | 
| 809 | 
            +
                write_file File.join(*%W[gems #{@a2.original_name}      lib code.rb])
         | 
| 810 | 
            +
                write_file File.join(*%W[gems #{@a3a.original_name}     lib code.rb])
         | 
| 811 | 
            +
                write_file File.join(*%W[gems #{@a_evil9.original_name} lib code.rb])
         | 
| 812 | 
            +
                write_file File.join(*%W[gems #{@b2.original_name}      lib code.rb])
         | 
| 813 | 
            +
                write_file File.join(*%W[gems #{@c1_2.original_name}    lib code.rb])
         | 
| 814 | 
            +
                write_file File.join(*%W[gems #{@pl1.original_name}     lib code.rb])
         | 
| 815 | 
            +
                write_file File.join(*%W[gems #{@x.original_name}       lib code.rb])
         | 
| 816 | 
            +
                write_file File.join(*%W[gems #{@dep_x.original_name}   lib code.rb])
         | 
| 816 817 |  | 
| 817 818 | 
             
                [@a1, @a2, @a3a, @a_evil9, @b2, @c1_2, @pl1, @x, @dep_x].each do |spec|
         | 
| 818 819 | 
             
                  util_build_gem spec
         | 
    
        data/test/rubygems/test_gem.rb
    CHANGED
    
    | @@ -1181,6 +1181,33 @@ class TestGem < Gem::TestCase | |
| 1181 1181 | 
             
                assert_equal nil, Gem.find_unresolved_default_spec("README")
         | 
| 1182 1182 | 
             
              end
         | 
| 1183 1183 |  | 
| 1184 | 
            +
              def test_default_gems_use_full_paths
         | 
| 1185 | 
            +
                begin
         | 
| 1186 | 
            +
                  if defined?(RUBY_ENGINE) then
         | 
| 1187 | 
            +
                    engine = RUBY_ENGINE
         | 
| 1188 | 
            +
                    Object.send :remove_const, :RUBY_ENGINE
         | 
| 1189 | 
            +
                  end
         | 
| 1190 | 
            +
                  Object.const_set :RUBY_ENGINE, 'ruby'
         | 
| 1191 | 
            +
             | 
| 1192 | 
            +
                  refute Gem.default_gems_use_full_paths?
         | 
| 1193 | 
            +
                ensure
         | 
| 1194 | 
            +
                  Object.send :remove_const, :RUBY_ENGINE
         | 
| 1195 | 
            +
                  Object.const_set :RUBY_ENGINE, engine if engine
         | 
| 1196 | 
            +
                end
         | 
| 1197 | 
            +
             | 
| 1198 | 
            +
                begin
         | 
| 1199 | 
            +
                  if defined?(RUBY_ENGINE) then
         | 
| 1200 | 
            +
                    engine = RUBY_ENGINE
         | 
| 1201 | 
            +
                    Object.send :remove_const, :RUBY_ENGINE
         | 
| 1202 | 
            +
                  end
         | 
| 1203 | 
            +
                  Object.const_set :RUBY_ENGINE, 'jruby'
         | 
| 1204 | 
            +
                  assert Gem.default_gems_use_full_paths?
         | 
| 1205 | 
            +
                ensure
         | 
| 1206 | 
            +
                  Object.send :remove_const, :RUBY_ENGINE
         | 
| 1207 | 
            +
                  Object.const_set :RUBY_ENGINE, engine if engine
         | 
| 1208 | 
            +
                end
         | 
| 1209 | 
            +
              end
         | 
| 1210 | 
            +
             | 
| 1184 1211 | 
             
              def with_plugin(path)
         | 
| 1185 1212 | 
             
                test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
         | 
| 1186 1213 | 
             
                                                    @@project_dir)
         | 
| @@ -26,8 +26,8 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase | |
| 26 26 | 
             
                  end
         | 
| 27 27 | 
             
                end
         | 
| 28 28 |  | 
| 29 | 
            -
                 | 
| 30 | 
            -
                             @ui.error
         | 
| 29 | 
            +
                assert_match(/\A(?:WARNING:  Unable to use symlinks on Windows, installing wrapper\n)?ERROR:  Gem names and --all may not be used together\n\z/,
         | 
| 30 | 
            +
                             @ui.error)
         | 
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              def test_execute_dependency_order
         | 
| @@ -191,21 +191,30 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase | |
| 191 191 | 
             
              end
         | 
| 192 192 |  | 
| 193 193 | 
             
              def test_execute_all
         | 
| 194 | 
            -
                ui = Gem::MockGemUi.new "y\n"
         | 
| 195 | 
            -
             | 
| 196 194 | 
             
                util_make_gems
         | 
| 197 | 
            -
                util_setup_gem ui
         | 
| 198 195 |  | 
| 199 | 
            -
                 | 
| 196 | 
            +
                default = new_default_spec 'default', '1'
         | 
| 197 | 
            +
                install_default_gems default
         | 
| 198 | 
            +
             | 
| 199 | 
            +
                gemhome2 = "#{@gemhome}2"
         | 
| 200 | 
            +
             | 
| 201 | 
            +
                a_4 = quick_spec 'a', 4
         | 
| 202 | 
            +
                install_gem a_4, :install_dir => gemhome2
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                Gem::Specification.dirs = [@gemhome, gemhome2]
         | 
| 205 | 
            +
             | 
| 206 | 
            +
                assert_includes Gem::Specification.all_names, 'a-1'
         | 
| 207 | 
            +
                assert_includes Gem::Specification.all_names, 'a-4'
         | 
| 208 | 
            +
                assert_includes Gem::Specification.all_names, 'default-1'
         | 
| 200 209 |  | 
| 201 210 | 
             
                @cmd.options[:all] = true
         | 
| 202 211 | 
             
                @cmd.options[:args] = []
         | 
| 203 212 |  | 
| 204 | 
            -
                use_ui ui do
         | 
| 213 | 
            +
                use_ui @ui do
         | 
| 205 214 | 
             
                  @cmd.execute
         | 
| 206 215 | 
             
                end
         | 
| 207 216 |  | 
| 208 | 
            -
                 | 
| 217 | 
            +
                assert_equal %w[a-4 default-1], Gem::Specification.all_names.sort
         | 
| 209 218 | 
             
              end
         | 
| 210 219 |  | 
| 211 220 | 
             
            end
         | 
| @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require 'rubygems/test_case'
         | 
| 2 2 | 
             
            require 'rubygems/ext'
         | 
| 3 | 
            +
            require 'rubygems/installer'
         | 
| 3 4 |  | 
| 4 5 | 
             
            class TestGemExtBuilder < Gem::TestCase
         | 
| 5 6 |  | 
| @@ -13,6 +14,10 @@ class TestGemExtBuilder < Gem::TestCase | |
| 13 14 | 
             
                FileUtils.mkdir_p @dest_path
         | 
| 14 15 |  | 
| 15 16 | 
             
                @orig_DESTDIR = ENV['DESTDIR']
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                @spec = quick_spec 'a'
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                @builder = Gem::Ext::Builder.new @spec, ''
         | 
| 16 21 | 
             
              end
         | 
| 17 22 |  | 
| 18 23 | 
             
              def teardown
         | 
| @@ -50,8 +55,98 @@ install: | |
| 50 55 | 
             
                  refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
         | 
| 51 56 | 
             
                end
         | 
| 52 57 |  | 
| 53 | 
            -
                 | 
| 54 | 
            -
             | 
| 58 | 
            +
                if /nmake/ !~ results
         | 
| 59 | 
            +
                  assert_match %r%^all: destination$%,     results
         | 
| 60 | 
            +
                  assert_match %r%^install: destination$%, results
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              def test_build_extensions_none
         | 
| 65 | 
            +
                use_ui @ui do
         | 
| 66 | 
            +
                  @builder.build_extensions
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                assert_equal '', @ui.output
         | 
| 70 | 
            +
                assert_equal '', @ui.error
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                refute File.exist?('gem_make.out')
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
              def test_build_extensions_extconf_bad
         | 
| 76 | 
            +
                @spec.extensions << 'extconf.rb'
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                e = assert_raises Gem::Installer::ExtensionBuildError do
         | 
| 79 | 
            +
                  use_ui @ui do
         | 
| 80 | 
            +
                    @builder.build_extensions
         | 
| 81 | 
            +
                  end
         | 
| 82 | 
            +
                end
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                assert_match(/\AERROR: Failed to build gem native extension.$/, e.message)
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                assert_equal "Building native extensions.  This could take a while...\n",
         | 
| 87 | 
            +
                             @ui.output
         | 
| 88 | 
            +
                assert_equal '', @ui.error
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                assert_match %r%#{Regexp.escape Gem.ruby} extconf\.rb%,
         | 
| 93 | 
            +
                             File.read(gem_make_out)
         | 
| 94 | 
            +
                assert_match %r%#{Regexp.escape Gem.ruby}: No such file%,
         | 
| 95 | 
            +
                             File.read(gem_make_out)
         | 
| 96 | 
            +
              end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
              def test_build_extensions_unsupported
         | 
| 99 | 
            +
                FileUtils.mkdir_p @spec.gem_dir
         | 
| 100 | 
            +
                gem_make_out = File.join @spec.gem_dir, 'gem_make.out'
         | 
| 101 | 
            +
                @spec.extensions << nil
         | 
| 102 | 
            +
             | 
| 103 | 
            +
                e = assert_raises Gem::Installer::ExtensionBuildError do
         | 
| 104 | 
            +
                  use_ui @ui do
         | 
| 105 | 
            +
                    @builder.build_extensions
         | 
| 106 | 
            +
                  end
         | 
| 107 | 
            +
                end
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                assert_match(/^\s*No builder for extension ''$/, e.message)
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                assert_equal "Building native extensions.  This could take a while...\n",
         | 
| 112 | 
            +
                             @ui.output
         | 
| 113 | 
            +
                assert_equal '', @ui.error
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                assert_equal "No builder for extension ''\n", File.read(gem_make_out)
         | 
| 116 | 
            +
              ensure
         | 
| 117 | 
            +
                FileUtils.rm_f gem_make_out
         | 
| 118 | 
            +
              end
         | 
| 119 | 
            +
             | 
| 120 | 
            +
              def test_build_extensions_with_build_args
         | 
| 121 | 
            +
                args = ["--aa", "--bb"]
         | 
| 122 | 
            +
                @builder.build_args = args
         | 
| 123 | 
            +
                @spec.extensions << 'extconf.rb'
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                FileUtils.mkdir_p @spec.gem_dir
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                open File.join(@spec.gem_dir, "extconf.rb"), "w" do |f|
         | 
| 128 | 
            +
                  f.write <<-'RUBY'
         | 
| 129 | 
            +
                    puts "IN EXTCONF"
         | 
| 130 | 
            +
                    extconf_args = File.join File.dirname(__FILE__), 'extconf_args'
         | 
| 131 | 
            +
                    File.open extconf_args, 'w' do |f|
         | 
| 132 | 
            +
                      f.puts ARGV.inspect
         | 
| 133 | 
            +
                    end
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                    File.open 'Makefile', 'w' do |f|
         | 
| 136 | 
            +
                      f.puts "default:\n\techo built"
         | 
| 137 | 
            +
                      f.puts "install:\n\techo installed"
         | 
| 138 | 
            +
                    end
         | 
| 139 | 
            +
                  RUBY
         | 
| 140 | 
            +
                end
         | 
| 141 | 
            +
             | 
| 142 | 
            +
                use_ui @ui do
         | 
| 143 | 
            +
                  @builder.build_extensions
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                path = File.join @spec.gem_dir, "extconf_args"
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                assert_equal args.inspect, File.read(path).strip
         | 
| 149 | 
            +
                assert File.directory? File.join(@spec.gem_dir, 'lib')
         | 
| 55 150 | 
             
              end
         | 
| 56 151 |  | 
| 57 152 | 
             
            end
         | 
| @@ -55,95 +55,6 @@ load Gem.bin_path('a', 'executable', version) | |
| 55 55 | 
             
                assert_equal expected, wrapper
         | 
| 56 56 | 
             
              end
         | 
| 57 57 |  | 
| 58 | 
            -
              def test_build_extensions_none
         | 
| 59 | 
            -
                use_ui @ui do
         | 
| 60 | 
            -
                  @installer.build_extensions
         | 
| 61 | 
            -
                end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                assert_equal '', @ui.output
         | 
| 64 | 
            -
                assert_equal '', @ui.error
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                refute File.exist?('gem_make.out')
         | 
| 67 | 
            -
              end
         | 
| 68 | 
            -
             | 
| 69 | 
            -
              def test_build_extensions_extconf_bad
         | 
| 70 | 
            -
                @installer.spec = @spec
         | 
| 71 | 
            -
                @spec.extensions << 'extconf.rb'
         | 
| 72 | 
            -
             | 
| 73 | 
            -
                e = assert_raises Gem::Installer::ExtensionBuildError do
         | 
| 74 | 
            -
                  use_ui @ui do
         | 
| 75 | 
            -
                    @installer.build_extensions
         | 
| 76 | 
            -
                  end
         | 
| 77 | 
            -
                end
         | 
| 78 | 
            -
             | 
| 79 | 
            -
                assert_match(/\AERROR: Failed to build gem native extension.$/, e.message)
         | 
| 80 | 
            -
             | 
| 81 | 
            -
                assert_equal "Building native extensions.  This could take a while...\n",
         | 
| 82 | 
            -
                             @ui.output
         | 
| 83 | 
            -
                assert_equal '', @ui.error
         | 
| 84 | 
            -
             | 
| 85 | 
            -
                gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                assert_match %r%#{Regexp.escape Gem.ruby} extconf\.rb%,
         | 
| 88 | 
            -
                             File.read(gem_make_out)
         | 
| 89 | 
            -
                assert_match %r%#{Regexp.escape Gem.ruby}: No such file%,
         | 
| 90 | 
            -
                             File.read(gem_make_out)
         | 
| 91 | 
            -
              end
         | 
| 92 | 
            -
             | 
| 93 | 
            -
              def test_build_extensions_unsupported
         | 
| 94 | 
            -
                @installer.spec = @spec
         | 
| 95 | 
            -
                FileUtils.mkdir_p @spec.gem_dir
         | 
| 96 | 
            -
                gem_make_out = File.join @spec.gem_dir, 'gem_make.out'
         | 
| 97 | 
            -
                @spec.extensions << nil
         | 
| 98 | 
            -
             | 
| 99 | 
            -
                e = assert_raises Gem::Installer::ExtensionBuildError do
         | 
| 100 | 
            -
                  use_ui @ui do
         | 
| 101 | 
            -
                    @installer.build_extensions
         | 
| 102 | 
            -
                  end
         | 
| 103 | 
            -
                end
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                assert_match(/^\s*No builder for extension ''$/, e.message)
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                assert_equal "Building native extensions.  This could take a while...\n",
         | 
| 108 | 
            -
                             @ui.output
         | 
| 109 | 
            -
                assert_equal '', @ui.error
         | 
| 110 | 
            -
             | 
| 111 | 
            -
                assert_equal "No builder for extension ''\n", File.read(gem_make_out)
         | 
| 112 | 
            -
              ensure
         | 
| 113 | 
            -
                FileUtils.rm_f gem_make_out
         | 
| 114 | 
            -
              end
         | 
| 115 | 
            -
             | 
| 116 | 
            -
              def test_build_extensions_with_build_args
         | 
| 117 | 
            -
                args = ["--aa", "--bb"]
         | 
| 118 | 
            -
                @installer.build_args = args
         | 
| 119 | 
            -
                @installer.spec = @spec
         | 
| 120 | 
            -
                @spec.extensions << 'extconf.rb'
         | 
| 121 | 
            -
             | 
| 122 | 
            -
                File.open File.join(@spec.gem_dir, "extconf.rb"), "w" do |f|
         | 
| 123 | 
            -
                  f.write <<-'RUBY'
         | 
| 124 | 
            -
                    puts "IN EXTCONF"
         | 
| 125 | 
            -
                    extconf_args = File.join File.dirname(__FILE__), 'extconf_args'
         | 
| 126 | 
            -
                    File.open extconf_args, 'w' do |f|
         | 
| 127 | 
            -
                      f.puts ARGV.inspect
         | 
| 128 | 
            -
                    end
         | 
| 129 | 
            -
             | 
| 130 | 
            -
                    File.open 'Makefile', 'w' do |f|
         | 
| 131 | 
            -
                      f.puts "default:\n\techo built"
         | 
| 132 | 
            -
                      f.puts "install:\n\techo installed"
         | 
| 133 | 
            -
                    end
         | 
| 134 | 
            -
                  RUBY
         | 
| 135 | 
            -
                end
         | 
| 136 | 
            -
             | 
| 137 | 
            -
                use_ui @ui do
         | 
| 138 | 
            -
                  @installer.build_extensions
         | 
| 139 | 
            -
                end
         | 
| 140 | 
            -
             | 
| 141 | 
            -
                path = File.join @spec.gem_dir, "extconf_args"
         | 
| 142 | 
            -
             | 
| 143 | 
            -
                assert_equal args.inspect, File.read(path).strip
         | 
| 144 | 
            -
                assert File.directory? File.join(@spec.gem_dir, 'lib')
         | 
| 145 | 
            -
              end
         | 
| 146 | 
            -
             | 
| 147 58 | 
             
              def test_check_executable_overwrite
         | 
| 148 59 | 
             
                @installer.generate_bin
         | 
| 149 60 |  | 
| @@ -64,13 +64,16 @@ class TestGemPackage < Gem::Package::TarTestCase | |
| 64 64 | 
             
                reader = Gem::Package::TarReader.new gem_io
         | 
| 65 65 |  | 
| 66 66 | 
             
                checksums = nil
         | 
| 67 | 
            +
                tar       = nil
         | 
| 67 68 |  | 
| 68 69 | 
             
                reader.each_entry do |entry|
         | 
| 69 70 | 
             
                  case entry.full_name
         | 
| 70 | 
            -
                  when 'checksums.yaml.gz'
         | 
| 71 | 
            +
                  when 'checksums.yaml.gz' then
         | 
| 71 72 | 
             
                    Zlib::GzipReader.wrap entry do |io|
         | 
| 72 73 | 
             
                      checksums = io.read
         | 
| 73 74 | 
             
                    end
         | 
| 75 | 
            +
                  when 'data.tar.gz' then
         | 
| 76 | 
            +
                    tar = entry.read
         | 
| 74 77 | 
             
                  end
         | 
| 75 78 | 
             
                end
         | 
| 76 79 |  | 
| @@ -83,22 +86,17 @@ class TestGemPackage < Gem::Package::TarTestCase | |
| 83 86 | 
             
                metadata_sha1   = Digest::SHA1.hexdigest s.string
         | 
| 84 87 | 
             
                metadata_sha512 = Digest::SHA512.hexdigest s.string
         | 
| 85 88 |  | 
| 86 | 
            -
                data_digests = nil
         | 
| 87 | 
            -
                util_tar do |tar|
         | 
| 88 | 
            -
                  data_digests = package.add_contents tar
         | 
| 89 | 
            -
                end
         | 
| 90 | 
            -
             | 
| 91 89 | 
             
                expected = {
         | 
| 92 90 | 
             
                  'SHA512' => {
         | 
| 93 91 | 
             
                    'metadata.gz' => metadata_sha512,
         | 
| 94 | 
            -
                    'data.tar.gz' =>  | 
| 92 | 
            +
                    'data.tar.gz' => Digest::SHA512.hexdigest(tar),
         | 
| 95 93 | 
             
                  }
         | 
| 96 94 | 
             
                }
         | 
| 97 95 |  | 
| 98 96 | 
             
                if defined?(OpenSSL::Digest) then
         | 
| 99 97 | 
             
                  expected['SHA1'] = {
         | 
| 100 98 | 
             
                    'metadata.gz' => metadata_sha1,
         | 
| 101 | 
            -
                    'data.tar.gz' =>  | 
| 99 | 
            +
                    'data.tar.gz' => Digest::SHA1.hexdigest(tar),
         | 
| 102 100 | 
             
                  }
         | 
| 103 101 | 
             
                end
         | 
| 104 102 |  | 
| @@ -4,16 +4,37 @@ require 'rubygems/package_task' | |
| 4 4 |  | 
| 5 5 | 
             
            class TestGemPackageTask < Gem::TestCase
         | 
| 6 6 |  | 
| 7 | 
            +
              def setup
         | 
| 8 | 
            +
                super
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                Rake.application = Rake::Application.new
         | 
| 11 | 
            +
                RakeFileUtils.verbose_flag = false
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 7 14 | 
             
              def test_gem_package
         | 
| 8 15 | 
             
                gem = Gem::Specification.new do |g|
         | 
| 9 16 | 
             
                  g.name = "pkgr"
         | 
| 10 17 | 
             
                  g.version = "1.2.3"
         | 
| 11 | 
            -
             | 
| 18 | 
            +
             | 
| 19 | 
            +
                  g.authors = %w[author]
         | 
| 20 | 
            +
                  g.files = %w[x]
         | 
| 21 | 
            +
                  g.summary = 'summary'
         | 
| 12 22 | 
             
                end
         | 
| 23 | 
            +
             | 
| 13 24 | 
             
                pkg = Gem::PackageTask.new(gem)  do |p|
         | 
| 14 25 | 
             
                  p.package_files << "y"
         | 
| 15 26 | 
             
                end
         | 
| 16 | 
            -
             | 
| 27 | 
            +
             | 
| 28 | 
            +
                assert_equal %w[x y], pkg.package_files
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                Dir.chdir @tempdir do
         | 
| 31 | 
            +
                  FileUtils.touch 'x'
         | 
| 32 | 
            +
                  FileUtils.touch 'y'
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  Rake.application['package'].invoke
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  assert_path_exists 'pkg/pkgr-1.2.3.gem'
         | 
| 37 | 
            +
                end
         | 
| 17 38 | 
             
              end
         | 
| 18 39 |  | 
| 19 40 | 
             
              def test_gem_package_with_current_platform
         | 
| @@ -351,6 +351,17 @@ class TestGemSecurityPolicy < Gem::TestCase | |
| 351 351 | 
             
                end
         | 
| 352 352 | 
             
              end
         | 
| 353 353 |  | 
| 354 | 
            +
              def test_verify_no_signatures_no_digests
         | 
| 355 | 
            +
                Gem::Security.trust_dir.trust_cert PUBLIC_CERT
         | 
| 356 | 
            +
             | 
| 357 | 
            +
                use_ui @ui do
         | 
| 358 | 
            +
                  @no.verify [PUBLIC_CERT], nil, {}, {}, 'some_gem'
         | 
| 359 | 
            +
                end
         | 
| 360 | 
            +
             | 
| 361 | 
            +
                assert_empty @ui.output
         | 
| 362 | 
            +
                assert_empty @ui.error
         | 
| 363 | 
            +
              end
         | 
| 364 | 
            +
             | 
| 354 365 | 
             
              def test_verify_not_enough_signatures
         | 
| 355 366 | 
             
                Gem::Security.trust_dir.trust_cert PUBLIC_CERT
         | 
| 356 367 |  | 
| @@ -84,6 +84,12 @@ class TestGemSecuritySigner < Gem::TestCase | |
| 84 84 | 
             
                assert_equal ENCRYPTED_PRIVATE_KEY.to_s, signer.key.to_s
         | 
| 85 85 | 
             
              end
         | 
| 86 86 |  | 
| 87 | 
            +
              def test_extract_name
         | 
| 88 | 
            +
                signer = Gem::Security::Signer.new nil, nil
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                assert_equal 'child@example', signer.extract_name(CHILD_CERT)
         | 
| 91 | 
            +
              end
         | 
| 92 | 
            +
             | 
| 87 93 | 
             
              def test_load_cert_chain
         | 
| 88 94 | 
             
                Gem::Security.trust_dir.trust_cert PUBLIC_CERT
         | 
| 89 95 |  |