From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- .../rubygems/test_gem_commands_setup_command.rb | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 jni/ruby/test/rubygems/test_gem_commands_setup_command.rb (limited to 'jni/ruby/test/rubygems/test_gem_commands_setup_command.rb') diff --git a/jni/ruby/test/rubygems/test_gem_commands_setup_command.rb b/jni/ruby/test/rubygems/test_gem_commands_setup_command.rb new file mode 100644 index 0000000..974c157 --- /dev/null +++ b/jni/ruby/test/rubygems/test_gem_commands_setup_command.rb @@ -0,0 +1,136 @@ +# coding: UTF-8 + +require 'rubygems/test_case' +require 'rubygems/commands/setup_command' + +class TestGemCommandsSetupCommand < Gem::TestCase + + def setup + super + + @install_dir = File.join @tempdir, 'install' + @cmd = Gem::Commands::SetupCommand.new + @cmd.options[:prefix] = @install_dir + + FileUtils.mkdir_p 'bin' + FileUtils.mkdir_p 'lib/rubygems/ssl_certs' + + open 'bin/gem', 'w' do |io| io.puts '# gem' end + open 'lib/rubygems.rb', 'w' do |io| io.puts '# rubygems.rb' end + open 'lib/rubygems/test_case.rb', 'w' do |io| io.puts '# test_case.rb' end + open 'lib/rubygems/ssl_certs/foo.pem', 'w' do |io| io.puts 'PEM' end + end + + def test_pem_files_in + assert_equal %w[rubygems/ssl_certs/foo.pem], + @cmd.pem_files_in('lib').sort + end + + def test_rb_files_in + assert_equal %w[rubygems.rb rubygems/test_case.rb], + @cmd.rb_files_in('lib').sort + end + + def test_install_lib + @cmd.extend FileUtils + + Dir.mktmpdir 'lib' do |dir| + @cmd.install_lib dir + + assert_path_exists File.join(dir, 'rubygems.rb') + assert_path_exists File.join(dir, 'rubygems/ssl_certs/foo.pem') + end + end + + def test_remove_old_lib_files + lib = File.join @install_dir, 'lib' + lib_rubygems = File.join lib, 'rubygems' + lib_rubygems_defaults = File.join lib_rubygems, 'defaults' + + securerandom_rb = File.join lib, 'securerandom.rb' + + engine_defaults_rb = File.join lib_rubygems_defaults, 'jruby.rb' + os_defaults_rb = File.join lib_rubygems_defaults, 'operating_system.rb' + + old_builder_rb = File.join lib_rubygems, 'builder.rb' + old_format_rb = File.join lib_rubygems, 'format.rb' + + FileUtils.mkdir_p lib_rubygems_defaults + + open securerandom_rb, 'w' do |io| io.puts '# securerandom.rb' end + + open old_builder_rb, 'w' do |io| io.puts '# builder.rb' end + open old_format_rb, 'w' do |io| io.puts '# format.rb' end + + open engine_defaults_rb, 'w' do |io| io.puts '# jruby.rb' end + open os_defaults_rb, 'w' do |io| io.puts '# operating_system.rb' end + + @cmd.remove_old_lib_files lib + + refute_path_exists old_builder_rb + refute_path_exists old_format_rb + + assert_path_exists securerandom_rb + assert_path_exists engine_defaults_rb + assert_path_exists os_defaults_rb + end + + def test_show_release_notes + @default_external = nil + if Object.const_defined? :Encoding + @default_external = @ui.outs.external_encoding + @ui.outs.set_encoding Encoding::US_ASCII + end + + @cmd.options[:previous_version] = Gem::Version.new '2.0.2' + + open 'History.txt', 'w' do |io| + io.puts <<-History_txt +# coding: UTF-8 + +=== #{Gem::VERSION} / 2013-03-26 + +* Bug fixes: + * Fixed release note display for LANG=C when installing rubygems + * π is tasty + +=== 2.0.2 / 2013-03-06 + +* Bug fixes: + * Other bugs fixed + +=== 2.0.1 / 2013-03-05 + +* Bug fixes: + * Yet more bugs fixed + History_txt + end + + use_ui @ui do + @cmd.show_release_notes + end + + expected = <<-EXPECTED +=== #{Gem::VERSION} / 2013-03-26 + +* Bug fixes: + * Fixed release note display for LANG=C when installing rubygems + * π is tasty + +=== 2.0.2 / 2013-03-06 + +* Bug fixes: + * Other bugs fixed + + EXPECTED + + output = @ui.output + output.force_encoding Encoding::UTF_8 if Object.const_defined? :Encoding + + assert_equal expected, output + ensure + @ui.outs.set_encoding @default_external if @default_external + end + +end + -- cgit v1.2.3