diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2019-04-25 23:53:57 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-04-26 00:47:43 +0900 |
commit | 0c54d2e2c7697aa5d6a1315b79c16b88d34f5e81 (patch) | |
tree | c3b0b9e1cdc7108c20a74fcf330a1b82d417e6ca /test/irb | |
parent | 022cbb278f381e5774a5d0277a83127c6f6b4802 (diff) | |
download | ruby-0c54d2e2c7697aa5d6a1315b79c16b88d34f5e81.tar.gz |
Force IRB::Color to recognize TERM
Closes: https://github.com/ruby/ruby/pull/2150
Diffstat (limited to 'test/irb')
-rw-r--r-- | test/irb/test_color.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/test/irb/test_color.rb b/test/irb/test_color.rb index 088611c645..d5f9286e36 100644 --- a/test/irb/test_color.rb +++ b/test/irb/test_color.rb @@ -1,6 +1,7 @@ # frozen_string_literal: false require 'test/unit' require 'irb/color' +require 'stringio' module TestIRB class TestColor < Test::Unit::TestCase @@ -23,7 +24,7 @@ module TestIRB 'ERB.new("a#{nil}b", trim_mode: "-")' => "#{BLUE}#{BOLD}#{UNDERLINE}ERB#{CLEAR}.new(#{RED}\"#{CLEAR}#{RED}a#{CLEAR}#{RED}\#{#{CLEAR}#{CYAN}#{BOLD}nil#{CLEAR}#{RED}}#{CLEAR}#{RED}b#{CLEAR}#{RED}\"#{CLEAR}, #{MAGENTA}trim_mode:#{CLEAR} #{RED}\"#{CLEAR}#{RED}-#{CLEAR}#{RED}\"#{CLEAR})", "# comment" => "#{BLUE}#{BOLD}# comment#{CLEAR}", }.each do |code, result| - assert_equal(result, IRB::Color.colorize_code(code)) + assert_equal(result, with_term { IRB::Color.colorize_code(code) }) end end @@ -40,5 +41,22 @@ module TestIRB assert_equal(result, IRB::Color.inspect_colorable?(object)) end end + + private + + def with_term + stdout = $stdout + io = StringIO.new + def io.tty?; true; end + $stdout = io + + env = ENV.to_h.dup + ENV['TERM'] = 'xterm-256color' + + yield + ensure + $stdout = stdout + ENV.replace(env) if env + end end end |