summaryrefslogtreecommitdiff
path: root/test/reline/test_reline.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/reline/test_reline.rb')
-rw-r--r--test/reline/test_reline.rb63
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