summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-02 23:27:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-09-02 23:27:08 +0000
commit074f1c913346abbd6d47b3e1147719e2cf0e023f (patch)
treeb8be35499d5036171385d6676b26cb81432ba621 /test
parentf7717185c86fce4019d2af245143faa981908780 (diff)
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')
-rw-r--r--test/readline/test_readline.rb59
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)