aboutsummaryrefslogtreecommitdiffstats
path: root/test/reline
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2020-07-20 20:52:07 +0900
committeraycabta <aycabta@gmail.com>2020-08-18 19:08:40 +0900
commit80a7358cfcafa9748c232be851e5f70bede32acb (patch)
tree86908b6827c8d925c20874791d2f57a4fa3bbee7 /test/reline
parent44b24ab4c1bd1833aab37cba83801b2023b8e0a9 (diff)
downloadruby-80a7358cfcafa9748c232be851e5f70bede32acb.tar.gz
[ruby/reline] Keep original characters in inputrc
https://github.com/ruby/reline/commit/96583c6336
Diffstat (limited to 'test/reline')
-rw-r--r--test/reline/test_config.rb45
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb50
2 files changed, 95 insertions, 0 deletions
diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb
index d24d4e837e..c1455cd136 100644
--- a/test/reline/test_config.rb
+++ b/test/reline/test_config.rb
@@ -36,6 +36,51 @@ class Reline::Config::Test < Reline::TestCase
assert_equal true, @config.instance_variable_get(:@disable_completion)
end
+ def test_string_value
+ @config.read_lines(<<~LINES.lines)
+ set show-mode-in-prompt on
+ set emacs-mode-string Emacs
+ LINES
+
+ assert_equal 'Emacs', @config.instance_variable_get(:@emacs_mode_string)
+ end
+
+ def test_string_value_with_brackets
+ @config.read_lines(<<~LINES.lines)
+ set show-mode-in-prompt on
+ set emacs-mode-string [Emacs]
+ LINES
+
+ assert_equal '[Emacs]', @config.instance_variable_get(:@emacs_mode_string)
+ end
+
+ def test_string_value_with_brackets_and_quotes
+ @config.read_lines(<<~LINES.lines)
+ set show-mode-in-prompt on
+ set emacs-mode-string "[Emacs]"
+ LINES
+
+ assert_equal '[Emacs]', @config.instance_variable_get(:@emacs_mode_string)
+ end
+
+ def test_string_value_with_parens
+ @config.read_lines(<<~LINES.lines)
+ set show-mode-in-prompt on
+ set emacs-mode-string (Emacs)
+ LINES
+
+ assert_equal '(Emacs)', @config.instance_variable_get(:@emacs_mode_string)
+ end
+
+ def test_string_value_with_parens_and_quotes
+ @config.read_lines(<<~LINES.lines)
+ set show-mode-in-prompt on
+ set emacs-mode-string "(Emacs)"
+ LINES
+
+ assert_equal '(Emacs)', @config.instance_variable_get(:@emacs_mode_string)
+ end
+
def test_comment_line
@config.read_lines([" #a: error\n"])
assert_not_include @config.key_bindings, nil
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index 0d04e38308..d348b877d3 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -115,6 +115,56 @@ begin
(cmd)prompt> :a
EOC
end
+
+ def test_original_mode_icon_emacs
+ File.open(@inputrc_file, 'w') do |f|
+ f.write <<~LINES
+ set show-mode-in-prompt on
+ set emacs-mode-string [emacs]
+ LINES
+ end
+ start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
+ close
+ assert_screen(<<~EOC)
+ Multiline REPL.
+ [emacs]prompt>
+ EOC
+ end
+
+ def test_original_mode_icon_with_quote
+ File.open(@inputrc_file, 'w') do |f|
+ f.write <<~LINES
+ set show-mode-in-prompt on
+ set emacs-mode-string "[emacs]"
+ LINES
+ end
+ start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
+ close
+ assert_screen(<<~EOC)
+ Multiline REPL.
+ [emacs]prompt>
+ EOC
+ end
+
+ def test_original_mode_icon_vi
+ File.open(@inputrc_file, 'w') do |f|
+ f.write <<~LINES
+ set editing-mode vi
+ set show-mode-in-prompt on
+ set vi-ins-mode-string "{InS}"
+ set vi-cmd-mode-string "{CmD}"
+ LINES
+ end
+ start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
+ write(":a\n\C-[k")
+ close
+ assert_screen(<<~EOC)
+ Multiline REPL.
+ {InS}prompt> :a
+ => :a
+ {CmD}prompt> :a
+ EOC
+ end
end
rescue LoadError, NameError
# On Ruby repository, this test suit doesn't run because Ruby repo doesn't