1require 'rubygems/test_case' 2require 'rubygems/commands/environment_command' 3 4class TestGemCommandsEnvironmentCommand < Gem::TestCase 5 6 def setup 7 super 8 9 @cmd = Gem::Commands::EnvironmentCommand.new 10 end 11 12 def test_execute 13 orig_sources = Gem.sources.dup 14 Gem.sources.replace %w[http://gems.example.com] 15 Gem.configuration['gemcutter_key'] = 'blah' 16 17 @cmd.send :handle_options, %w[] 18 19 use_ui @ui do 20 @cmd.execute 21 end 22 23 assert_match %r|RUBYGEMS VERSION: (\d\.)+\d|, @ui.output 24 assert_match %r|RUBY VERSION: \d\.\d\.\d \(.*\) \[.*\]|, @ui.output 25 assert_match %r|INSTALLATION DIRECTORY: #{Regexp.escape @gemhome}|, 26 @ui.output 27 assert_match %r|RUBYGEMS PREFIX: |, @ui.output 28 assert_match %r|RUBY EXECUTABLE:.*#{Gem::ConfigMap[:ruby_install_name]}|, 29 @ui.output 30 assert_match %r|EXECUTABLE DIRECTORY:|, @ui.output 31 assert_match %r|RUBYGEMS PLATFORMS:|, @ui.output 32 assert_match %r|- #{Gem::Platform.local}|, @ui.output 33 assert_match %r|GEM PATHS:|, @ui.output 34 assert_match %r|- #{Regexp.escape @gemhome}|, @ui.output 35 assert_match %r|GEM CONFIGURATION:|, @ui.output 36 assert_match %r|"gemcutter_key" => "\*\*\*\*"|, @ui.output 37 assert_match %r|:verbose => |, @ui.output 38 assert_match %r|REMOTE SOURCES:|, @ui.output 39 assert_equal '', @ui.error 40 41 ensure 42 Gem.sources.replace orig_sources 43 end 44 45 def test_execute_gemdir 46 @cmd.send :handle_options, %w[gemdir] 47 48 use_ui @ui do 49 @cmd.execute 50 end 51 52 assert_equal "#{@gemhome}\n", @ui.output 53 assert_equal '', @ui.error 54 end 55 56 def test_execute_gempath 57 @cmd.send :handle_options, %w[gempath] 58 59 use_ui @ui do 60 @cmd.execute 61 end 62 63 assert_equal "#{@gemhome}\n", @ui.output 64 assert_equal '', @ui.error 65 end 66 67 def test_execute_gempath_multiple 68 Gem.clear_paths 69 path = [@gemhome, "#{@gemhome}2"].join File::PATH_SEPARATOR 70 ENV['GEM_PATH'] = path 71 72 @cmd.send :handle_options, %w[gempath] 73 74 use_ui @ui do 75 @cmd.execute 76 end 77 78 assert_equal "#{Gem.path.join File::PATH_SEPARATOR}\n", @ui.output 79 assert_equal '', @ui.error 80 end 81 82 def test_execute_packageversion 83 @cmd.send :handle_options, %w[packageversion] 84 85 use_ui @ui do 86 @cmd.execute 87 end 88 89 assert_equal "#{Gem::RubyGemsPackageVersion}\n", @ui.output 90 assert_equal '', @ui.error 91 end 92 93 def test_execute_remotesources 94 orig_sources = Gem.sources.dup 95 Gem.sources.replace %w[http://gems.example.com] 96 97 @cmd.send :handle_options, %w[remotesources] 98 99 use_ui @ui do 100 @cmd.execute 101 end 102 103 assert_equal "http://gems.example.com\n", @ui.output 104 assert_equal '', @ui.error 105 106 ensure 107 Gem.sources.replace orig_sources 108 end 109 110 def test_execute_unknown 111 @cmd.send :handle_options, %w[unknown] 112 113 assert_raises Gem::CommandLineError do 114 use_ui @ui do 115 @cmd.execute 116 end 117 end 118 119 assert_equal '', @ui.output 120 assert_equal '', @ui.error 121 end 122 123 def test_execute_version 124 @cmd.send :handle_options, %w[version] 125 126 use_ui @ui do 127 @cmd.execute 128 end 129 130 assert_equal "#{Gem::VERSION}\n", @ui.output 131 assert_equal '', @ui.error 132 end 133 134 def test_execute_platform 135 @cmd.send :handle_options, %w[platform] 136 137 use_ui @ui do 138 @cmd.execute 139 end 140 141 assert_equal "#{Gem.platforms.join File::PATH_SEPARATOR}\n", @ui.output 142 assert_equal '', @ui.error 143 end 144end 145