From 8397134330c388e562a8f7aa255b36dbcd7efecf Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 23 Dec 2011 21:59:54 +0000 Subject: [PATCH] * test/readline/test_readline.rb (test_line_buffer__point): use lambda not to exit entire method by "return". or "next" for proc. [ruby-dev:45042] [Bug #5802] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ test/readline/test_readline.rb | 24 ++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5790faa1a..47efe0077a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Dec 24 06:59:49 2011 Nobuyoshi Nakada + + * test/readline/test_readline.rb (test_line_buffer__point): use + lambda not to exit entire method by "return". or "next" for + proc. [ruby-dev:45042] [Bug #5802] + Sat Dec 24 01:20:39 2011 Kazuki Tsujimoto * vm_eval.c (send_internal): PASS_PASSED_BLOCK_TH must be placed diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb index a504fa5e2f..e3a7c5d4ec 100644 --- a/test/readline/test_readline.rb +++ b/test/readline/test_readline.rb @@ -136,20 +136,40 @@ class TestReadline < Test::Unit::TestCase actual_text = nil actual_line_buffer = nil actual_point = nil - Readline.completion_proc = proc { |text| + Readline.completion_proc = ->(text) { actual_text = text actual_point = Readline.point - actual_buffer_line = Readline.line_buffer + actual_line_buffer = Readline.line_buffer stdin.write(" finish\n") stdin.close stdout.close return ["complete"] } + stdin.write("first second\t") stdin.flush + Readline.completion_append_character = " " line = replace_stdio(stdin.path, stdout.path) { Readline.readline("> ", false) } + assert_equal("second", actual_text) + assert_equal("first second", actual_line_buffer) + assert_equal(12, actual_point) + assert_equal("first complete finish", Readline.line_buffer) + assert_equal(Encoding.find("locale"), Readline.line_buffer.encoding) + assert_equal(true, Readline.line_buffer.tainted?) + assert_equal(22, Readline.point) + + stdin.open + stdout.open + + stdin.write("first second\t") + stdin.flush + Readline.completion_append_character = nil + line = replace_stdio(stdin.path, stdout.path) { + Readline.readline("> ", false) + } + assert_equal("second", actual_text) assert_equal("first second", actual_line_buffer) assert_equal(12, actual_point) assert_equal("first complete finish", Readline.line_buffer)