diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-02 23:27:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-02 23:27:08 +0000 |
commit | 074f1c913346abbd6d47b3e1147719e2cf0e023f (patch) | |
tree | b8be35499d5036171385d6676b26cb81432ba621 /test/readline | |
parent | f7717185c86fce4019d2af245143faa981908780 (diff) | |
download | ruby-074f1c913346abbd6d47b3e1147719e2cf0e023f.tar.gz |
Readline: expose rl_completion_quote_character variable
[Feature #13050]
From: georgebrock (George Brocklehurst) <ruby@georgebrock.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/readline')
-rw-r--r-- | test/readline/test_readline.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb index cfa90fe3f1..5adeca251a 100644 --- a/test/readline/test_readline.rb +++ b/test/readline/test_readline.rb @@ -553,6 +553,65 @@ class TestReadline < Test::Unit::TestCase Readline.completer_word_break_characters = saved_completer_word_break_characters end + def test_completion_quote_character_completing_unquoted_argument + return unless Readline.respond_to?(:completion_quote_character) + + quote_character = "original value" + Readline.completion_proc = -> (_) do + quote_character = Readline.completion_quote_character + [] + end + Readline.completer_quote_characters = "'\"" + + with_temp_stdio do |stdin, stdout| + replace_stdio(stdin.path, stdout.path) do + stdin.write("input\t") + stdin.flush + Readline.readline("> ", false) + end + end + + assert_nil(quote_character) + end + + def test_completion_quote_character_completing_quoted_argument + return unless Readline.respond_to?(:completion_quote_character) + + quote_character = "original value" + Readline.completion_proc = -> (_) do + quote_character = Readline.completion_quote_character + [] + end + Readline.completer_quote_characters = "'\"" + + with_temp_stdio do |stdin, stdout| + replace_stdio(stdin.path, stdout.path) do + stdin.write("'input\t") + stdin.flush + Readline.readline("> ", false) + end + end + + assert_equal("'", quote_character) + end + + def test_completion_quote_character_after_completion + return unless Readline.respond_to?(:completion_quote_character) + + Readline.completion_proc = -> (_) { [] } + Readline.completer_quote_characters = "'\"" + + with_temp_stdio do |stdin, stdout| + replace_stdio(stdin.path, stdout.path) do + stdin.write("'input\t") + stdin.flush + Readline.readline("> ", false) + end + end + + assert_nil(Readline.completion_quote_character) + end + private def replace_stdio(stdin_path, stdout_path) |