summaryrefslogtreecommitdiff
path: root/trunk/test/readline
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/test/readline')
-rw-r--r--trunk/test/readline/test_readline.rb233
-rw-r--r--trunk/test/readline/test_readline_history.rb313
2 files changed, 0 insertions, 546 deletions
diff --git a/trunk/test/readline/test_readline.rb b/trunk/test/readline/test_readline.rb
deleted file mode 100644
index 071accf68b..0000000000
--- a/trunk/test/readline/test_readline.rb
+++ /dev/null
@@ -1,233 +0,0 @@
-begin
- require "readline"
-=begin
- class << Readline
- [
- "vi_editing_mode",
- "emacs_editing_mode",
- "completion_append_character=",
- "completion_append_character",
- "basic_word_break_characters=",
- "basic_word_break_characters",
- "completer_word_break_characters=",
- "completer_word_break_characters",
- "basic_quote_characters=",
- "basic_quote_characters",
- "completer_quote_characters=",
- "completer_quote_characters",
- "filename_quote_characters=",
- "filename_quote_characters",
- ].each do |method_name|
- define_method(method_name.to_sym) do |*args|
- raise NotImplementedError
- end
- end
- end
-=end
-rescue LoadError
-else
- require "test/unit"
- require "tempfile"
-end
-
-class TestReadline < Test::Unit::TestCase
- def teardown
- Readline.instance_variable_set("@completion_proc", nil)
- end
-
- def test_safe_level_4
- method_args =
- [
- ["readline"],
- ["input=", $stdin],
- ["output=", $stdout],
- ["completion_proc=", proc {}],
- ["completion_proc"],
- ["completion_case_fold=", true],
- ["completion_case_fold"],
- ["vi_editing_mode"],
- ["vi_editing_mode?"],
- ["emacs_editing_mode"],
- ["emacs_editing_mode?"],
- ["completion_append_character=", "s"],
- ["completion_append_character"],
- ["basic_word_break_characters=", "s"],
- ["basic_word_break_characters"],
- ["completer_word_break_characters=", "s"],
- ["completer_word_break_characters"],
- ["basic_quote_characters=", "\\"],
- ["basic_quote_characters"],
- ["completer_quote_characters=", "\\"],
- ["completer_quote_characters"],
- ["filename_quote_characters=", "\\"],
- ["filename_quote_characters"],
- ]
- method_args.each do |method_name, *args|
- assert_raises(SecurityError, NotImplementedError,
- "method=<#{method_name}>") do
- Thread.start {
- $SAFE = 4
- Readline.send(method_name.to_sym, *args)
- assert(true)
- }.join
- end
- end
- end
-
- def test_readline
- stdin = Tempfile.new("test_readline_stdin")
- stdout = Tempfile.new("test_readline_stdout")
- begin
- stdin.write("hello\n")
- stdin.close
- stdout.close
- line = replace_stdio(stdin.path, stdout.path) {
- Readline.readline("> ", true)
- }
- assert_equal("hello", line)
- assert_equal(true, line.tainted?)
- stdout.open
- assert_equal("> ", stdout.read(2))
- assert_equal(1, Readline::HISTORY.length)
- assert_equal("hello", Readline::HISTORY[0])
- assert_raises(SecurityError) do
- Thread.start {
- $SAFE = 1
- replace_stdio(stdin.path, stdout.path) do
- Readline.readline("> ".taint)
- end
- }.join
- end
- assert_raises(SecurityError) do
- Thread.start {
- $SAFE = 4
- replace_stdio(stdin.path, stdout.path) { Readline.readline("> ") }
- }.join
- end
- ensure
- stdin.close(true)
- stdout.close(true)
- end
- end if !/EditLine/n.match(Readline::VERSION)
-
- def test_input=
- assert_raise(TypeError) do
- Readline.input = "This is not a file."
- end
- end
-
- def test_output=
- assert_raise(TypeError) do
- Readline.output = "This is not a file."
- end
- end
-
- def test_completion_proc
- expected = proc { |input| input }
- Readline.completion_proc = expected
- assert_equal(expected, Readline.completion_proc)
-
- assert_raise(ArgumentError) do
- Readline.completion_proc = "This does not have call method."
- end
- end
-
- def test_completion_case_fold
- expected = [true, false, "string", {"a" => "b"}]
- expected.each do |e|
- Readline.completion_case_fold = e
- assert_equal(e, Readline.completion_case_fold)
- end
- end
-
- # vi_editing_mode
- # emacs_editing_mode
- def test_editing_mode
- begin
- assert_equal(false, Readline.vi_editing_mode?)
- assert_equal(true, Readline.emacs_editing_mode?)
-
- assert_equal(nil, Readline.vi_editing_mode)
- assert_equal(true, Readline.vi_editing_mode?)
- assert_equal(false, Readline.emacs_editing_mode?)
- assert_equal(nil, Readline.vi_editing_mode)
- assert_equal(true, Readline.vi_editing_mode?)
- assert_equal(false, Readline.emacs_editing_mode?)
-
- assert_equal(nil, Readline.emacs_editing_mode)
- assert_equal(false, Readline.vi_editing_mode?)
- assert_equal(true, Readline.emacs_editing_mode?)
- assert_equal(nil, Readline.emacs_editing_mode)
- assert_equal(false, Readline.vi_editing_mode?)
- assert_equal(true, Readline.emacs_editing_mode?)
- rescue NotImplementedError
- end
- end
-
- def test_completion_append_character
- begin
- Readline.completion_append_character = "x"
- assert_equal("x", Readline.completion_append_character)
- Readline.completion_append_character = "xyz"
- assert_equal("x", Readline.completion_append_character)
- Readline.completion_append_character = nil
- assert_equal(nil, Readline.completion_append_character)
- Readline.completion_append_character = ""
- assert_equal(nil, Readline.completion_append_character)
- rescue NotImplementedError
- end
- end
-
- # basic_word_break_characters
- # completer_word_break_characters
- # basic_quote_characters
- # completer_quote_characters
- # filename_quote_characters
- def test_some_characters_methods
- method_names = [
- "basic_word_break_characters",
- "completer_word_break_characters",
- "basic_quote_characters",
- "completer_quote_characters",
- "filename_quote_characters",
- ]
- method_names.each do |method_name|
- begin
- begin
- saved = Readline.send(method_name.to_sym)
- expecteds = [" ", " .,|\t", ""]
- expecteds.each do |e|
- Readline.send((method_name + "=").to_sym, e)
- assert_equal(e, Readline.send(method_name.to_sym))
- end
- ensure
- Readline.send((method_name + "=").to_sym, saved) if saved
- end
- rescue NotImplementedError
- end
- end
- end
-
- private
-
- def replace_stdio(stdin_path, stdout_path)
- open(stdin_path, "r"){|stdin|
- open(stdout_path, "w"){|stdout|
- orig_stdin = STDIN.dup
- orig_stdout = STDOUT.dup
- STDIN.reopen(stdin)
- STDOUT.reopen(stdout)
- begin
- Readline.input = STDIN
- Readline.output = STDOUT
- yield
- ensure
- STDIN.reopen(orig_stdin)
- STDOUT.reopen(orig_stdout)
- orig_stdin.close
- orig_stdout.close
- end
- }
- }
- end
-end if defined?(::Readline)
diff --git a/trunk/test/readline/test_readline_history.rb b/trunk/test/readline/test_readline_history.rb
deleted file mode 100644
index 8033a9a827..0000000000
--- a/trunk/test/readline/test_readline_history.rb
+++ /dev/null
@@ -1,313 +0,0 @@
-begin
- require "readline"
-=begin
- class << Readline::HISTORY
- def []=(index, str)
- raise NotImplementedError
- end
-
- def pop
- raise NotImplementedError
- end
-
- def shift
- raise NotImplementedError
- end
-
- def delete_at(index)
- raise NotImplementedError
- end
- end
-=end
-
-=begin
- class << Readline::HISTORY
- def clear
- raise NotImplementedError
- end
- end
-=end
-rescue LoadError
-else
- require "test/unit"
-end
-
-class Readline::TestHistory < Test::Unit::TestCase
- include Readline
-
- def setup
- HISTORY.clear
- end
-
- def test_safe_level_4
- method_args =
- [
- ["[]", [0]],
- ["[]=", [0, "s"]],
- ["\<\<", ["s"]],
- ["push", ["s"]],
- ["pop", []],
- ["shift", []],
- ["length", []],
- ["delete_at", [0]],
- ["clear", []],
- ]
- method_args.each do |method_name, args|
- assert_raises(SecurityError, NotImplementedError,
- "method=<#{method_name}>") do
- Thread.start {
- $SAFE = 4
- HISTORY.send(method_name.to_sym, *args)
- assert(true)
- }.join
- end
- end
-
- assert_raises(SecurityError, NotImplementedError,
- "method=<each>") do
- Thread.start {
- $SAFE = 4
- HISTORY.each { |s|
- assert(true)
- }
- }.join
- end
- end
-
- def test_to_s
- assert_equal("HISTORY", HISTORY.to_s)
- end
-
- def test_get
- lines = push_history(5)
- lines.each_with_index do |s, i|
- assert_equal(s, HISTORY[i])
- end
- end
-
- def test_get__negative
- lines = push_history(5)
- (1..5).each do |i|
- assert_equal(lines[-i], HISTORY[-i])
- end
- end
-
- def test_get__out_of_range
- lines = push_history(5)
- invalid_indexes = [5, 6, 100, -6, -7, -100]
- invalid_indexes.each do |i|
- assert_raise(IndexError, "i=<#{i}>") do
- HISTORY[i]
- end
- end
-
- invalid_indexes = [100_000_000_000_000_000_000,
- -100_000_000_000_000_000_000]
- invalid_indexes.each do |i|
- assert_raise(RangeError, "i=<#{i}>") do
- HISTORY[i]
- end
- end
- end
-
- def test_set
- begin
- lines = push_history(5)
- 5.times do |i|
- expected = "set: #{i}"
- HISTORY[i] = expected
- assert_equal(expected, HISTORY[i])
- end
- rescue NotImplementedError
- end
- end
-
- def test_set__out_of_range
- assert_raises(IndexError, NotImplementedError, "index=<0>") do
- HISTORY[0] = "set: 0"
- end
-
- lines = push_history(5)
- invalid_indexes = [5, 6, 100, -6, -7, -100]
- invalid_indexes.each do |i|
- assert_raises(IndexError, NotImplementedError, "index=<#{i}>") do
- HISTORY[i] = "set: #{i}"
- end
- end
-
- invalid_indexes = [100_000_000_000_000_000_000,
- -100_000_000_000_000_000_000]
- invalid_indexes.each do |i|
- assert_raise(RangeError, NotImplementedError, "index=<#{i}>") do
- HISTORY[i] = "set: #{i}"
- end
- end
- end
-
- def test_push
- 5.times do |i|
- assert_equal(HISTORY, HISTORY.push(i.to_s))
- assert_equal(i.to_s, HISTORY[i])
- end
- assert_equal(5, HISTORY.length)
- end
-
- def test_push__operator
- 5.times do |i|
- assert_equal(HISTORY, HISTORY << i.to_s)
- assert_equal(i.to_s, HISTORY[i])
- end
- assert_equal(5, HISTORY.length)
- end
-
- def test_push__plural
- assert_equal(HISTORY, HISTORY.push("0", "1", "2", "3", "4"))
- (0..4).each do |i|
- assert_equal(i.to_s, HISTORY[i])
- end
- assert_equal(5, HISTORY.length)
-
- assert_equal(HISTORY, HISTORY.push("5", "6", "7", "8", "9"))
- (5..9).each do |i|
- assert_equal(i.to_s, HISTORY[i])
- end
- assert_equal(10, HISTORY.length)
- end
-
- def test_pop
- begin
- assert_equal(nil, HISTORY.pop)
-
- lines = push_history(5)
- (1..5).each do |i|
- assert_equal(lines[-i], HISTORY.pop)
- assert_equal(lines.length - i, HISTORY.length)
- end
-
- assert_equal(nil, HISTORY.pop)
- rescue NotImplementedError
- end
- end
-
- def test_shift
- begin
- assert_equal(nil, HISTORY.shift)
-
- lines = push_history(5)
- (0..4).each do |i|
- assert_equal(lines[i], HISTORY.shift)
- assert_equal(lines.length - (i + 1), HISTORY.length)
- end
-
- assert_equal(nil, HISTORY.shift)
- rescue NotImplementedError
- end
- end
-
- def test_each
- HISTORY.each do |s|
- assert(false) # not reachable
- end
- lines = push_history(5)
- i = 0
- HISTORY.each do |s|
- assert_equal(HISTORY[i], s)
- assert_equal(lines[i], s)
- i += 1
- end
- end
-
- def test_each__enumerator
- e = HISTORY.each
- assert_instance_of(Enumerator, e)
- end
-
- def test_length
- assert_equal(0, HISTORY.length)
- push_history(1)
- assert_equal(1, HISTORY.length)
- push_history(4)
- assert_equal(5, HISTORY.length)
- HISTORY.clear
- assert_equal(0, HISTORY.length)
- end
-
- def test_empty_p
- 2.times do
- assert(HISTORY.empty?)
- HISTORY.push("s")
- assert_equal(false, HISTORY.empty?)
- HISTORY.clear
- assert(HISTORY.empty?)
- end
- end
-
- def test_delete_at
- begin
- lines = push_history(5)
- (0..4).each do |i|
- assert_equal(lines[i], HISTORY.delete_at(0))
- end
- assert(HISTORY.empty?)
-
- lines = push_history(5)
- (1..5).each do |i|
- assert_equal(lines[lines.length - i], HISTORY.delete_at(-1))
- end
- assert(HISTORY.empty?)
-
- lines = push_history(5)
- assert_equal(lines[0], HISTORY.delete_at(0))
- assert_equal(lines[4], HISTORY.delete_at(3))
- assert_equal(lines[1], HISTORY.delete_at(0))
- assert_equal(lines[3], HISTORY.delete_at(1))
- assert_equal(lines[2], HISTORY.delete_at(0))
- assert(HISTORY.empty?)
- rescue NotImplementedError
- end
- end
-
- def test_delete_at__out_of_range
- assert_raises(IndexError, NotImplementedError, "index=<0>") do
- HISTORY.delete_at(0)
- end
-
- lines = push_history(5)
- invalid_indexes = [5, 6, 100, -6, -7, -100]
- invalid_indexes.each do |i|
- assert_raises(IndexError, NotImplementedError, "index=<#{i}>") do
- HISTORY.delete_at(i)
- end
- end
-
- invalid_indexes = [100_000_000_000_000_000_000,
- -100_000_000_000_000_000_000]
- invalid_indexes.each do |i|
- assert_raises(RangeError, NotImplementedError, "index=<#{i}>") do
- HISTORY.delete_at(i)
- end
- end
- end
-
- private
-
- def push_history(num)
- lines = []
- num.times do |i|
- s = "a"
- i.times do
- s = s.succ
- end
- lines.push("#{i + 1}:#{s}")
- end
- HISTORY.push(*lines)
- return lines
- end
-end if defined?(::Readline) && defined?(::Readline::HISTORY) &&
- (
- begin
- Readline::HISTORY.clear
- rescue NotImplementedError
- false
- end
- )