diff options
Diffstat (limited to 'test/reline/test_reline.rb')
-rw-r--r-- | test/reline/test_reline.rb | 63 |
1 files changed, 28 insertions, 35 deletions
diff --git a/test/reline/test_reline.rb b/test/reline/test_reline.rb index 82447fd16c..a20a5c9f44 100644 --- a/test/reline/test_reline.rb +++ b/test/reline/test_reline.rb @@ -8,6 +8,7 @@ class Reline::Test < Reline::TestCase end def setup + Reline.send(:test_mode) Reline.output_modifier_proc = nil Reline.completion_proc = nil Reline.prompt_proc = nil @@ -46,35 +47,6 @@ class Reline::Test < Reline::TestCase Reline.completion_append_character = completion_append_character end - def test_dialog_color_configuration - # defaults - assert_equal(:cyan, Reline.dialog_default_bg_color) - assert_equal(:white, Reline.dialog_default_fg_color) - assert_equal(:magenta, Reline.dialog_highlight_bg_color) - assert_equal(:white, Reline.dialog_highlight_fg_color) - - Reline.dialog_default_bg_color = :black - assert_equal(:black, Reline.dialog_default_bg_color) - assert_equal(40, Reline.dialog_default_bg_color_sequence) - - Reline.dialog_default_fg_color = :white - assert_equal(:white, Reline.dialog_default_fg_color) - assert_equal(37, Reline.dialog_default_fg_color_sequence) - - Reline.dialog_highlight_bg_color = :white - assert_equal(:white, Reline.dialog_highlight_bg_color) - assert_equal(47, Reline.dialog_highlight_bg_color_sequence) - - Reline.dialog_highlight_fg_color = :black - assert_equal(:black, Reline.dialog_highlight_fg_color) - assert_equal(30, Reline.dialog_highlight_fg_color_sequence) - - # test value validation - assert_raise(ArgumentError) do - Reline.dialog_highlight_fg_color = :foo - end - end - def test_basic_word_break_characters basic_word_break_characters = Reline.basic_word_break_characters @@ -313,7 +285,7 @@ class Reline::Test < Reline::TestCase input, to_write = IO.pipe to_read, output = IO.pipe unless Reline.__send__(:input=, input) - omit "Setting to input is not effective on #{Reline::IOGate}" + omit "Setting to input is not effective on #{Reline.core.io_gate}" end Reline.output = output @@ -331,12 +303,12 @@ class Reline::Test < Reline::TestCase def test_vi_editing_mode Reline.vi_editing_mode - assert_equal(Reline::KeyActor::ViInsert, Reline.send(:core).config.editing_mode.class) + assert_equal(Reline::KeyActor::ViInsert, Reline.core.config.editing_mode.class) end def test_emacs_editing_mode Reline.emacs_editing_mode - assert_equal(Reline::KeyActor::Emacs, Reline.send(:core).config.editing_mode.class) + assert_equal(Reline::KeyActor::Emacs, Reline.core.config.editing_mode.class) end def test_add_dialog_proc @@ -350,6 +322,9 @@ class Reline::Test < Reline::TestCase d = Reline.dialog_proc(:test_proc) assert_equal(dummy_proc_2, d.dialog_proc) + Reline.add_dialog_proc(:test_proc, nil) + assert_nil(Reline.dialog_proc(:test_proc)) + l = lambda {} Reline.add_dialog_proc(:test_lambda, l) d = Reline.dialog_proc(:test_lambda) @@ -399,14 +374,32 @@ class Reline::Test < Reline::TestCase def test_dumb_terminal lib = File.expand_path("../../lib", __dir__) - out = IO.popen([{"TERM"=>"dumb"}, "ruby", "-I#{lib}", "-rreline", "-e", "p Reline::IOGate"], &:read) + out = IO.popen([{"TERM"=>"dumb"}, Reline.test_rubybin, "-I#{lib}", "-rreline", "-e", "p Reline.core.io_gate"], &:read) assert_equal("Reline::GeneralIO", out.chomp) end + def test_require_reline_should_not_trigger_winsize + pend if win? + lib = File.expand_path("../../lib", __dir__) + code = <<~RUBY + require "io/console" + def STDIN.tty?; true; end + def STDOUT.tty?; true; end + def STDIN.winsize; raise; end + require("reline") && p(Reline.core.io_gate) + RUBY + out = IO.popen([{}, Reline.test_rubybin, "-I#{lib}", "-e", code], &:read) + assert_equal("Reline::ANSI", out.chomp) + end + + def win? + /mswin|mingw/.match?(RUBY_PLATFORM) + end + def get_reline_encoding - if encoding = Reline::IOGate.encoding + if encoding = Reline.core.encoding encoding - elsif RUBY_PLATFORM =~ /mswin|mingw/ + elsif win? Encoding::UTF_8 else Encoding::default_external |