Bug #5802 » 0002-test-in-both-cases-of-Readline.completion_append_cha.patch
| test/readline/test_readline.rb | ||
|---|---|---|
|
return
|
||
|
end
|
||
|
stdin = Tempfile.new("test_readline_stdin")
|
||
|
stdout = Tempfile.new("test_readline_stdout")
|
||
|
begin
|
||
|
actual_text = nil
|
||
|
actual_line_buffer = nil
|
||
|
actual_point = nil
|
||
|
Readline.completion_proc = proc { |text|
|
||
|
actual_text = text
|
||
|
actual_point = Readline.point
|
||
|
actual_line_buffer = Readline.line_buffer
|
||
|
stdin.write(" finish\n")
|
||
|
stdin.close
|
||
|
stdout.close
|
||
|
["complete"]
|
||
|
}
|
||
|
stdin.write("first second\t")
|
||
|
stdin.flush
|
||
|
replace_stdio(stdin.path, stdout.path) {
|
||
|
Readline.readline("> ", false)
|
||
|
}
|
||
|
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(21, Readline.point)
|
||
|
ensure
|
||
|
stdin.close(true)
|
||
|
stdout.close(true)
|
||
|
[" ", nil].each do |append_character|
|
||
|
Readline.completion_append_character = append_character
|
||
|
stdin = Tempfile.new("test_readline_stdin")
|
||
|
stdout = Tempfile.new("test_readline_stdout")
|
||
|
begin
|
||
|
actual_text = nil
|
||
|
actual_line_buffer = nil
|
||
|
actual_point = nil
|
||
|
Readline.completion_proc = proc { |text|
|
||
|
actual_text = text
|
||
|
actual_point = Readline.point
|
||
|
actual_line_buffer = Readline.line_buffer
|
||
|
stdin.write("%sfinish\n" % (" " unless append_character))
|
||
|
stdin.close
|
||
|
stdout.close
|
||
|
["complete"]
|
||
|
}
|
||
|
stdin.write("first second\t")
|
||
|
stdin.flush
|
||
|
replace_stdio(stdin.path, stdout.path) {
|
||
|
Readline.readline("> ", false)
|
||
|
}
|
||
|
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(21, Readline.point)
|
||
|
ensure
|
||
|
stdin.close(true)
|
||
|
stdout.close(true)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
- « Previous
- 1
- 2
- Next »