ruby/test/io/console/test_io_console.rb
akr 2acc30eead add sleep.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-11 16:14:15 +00:00

93 lines
2 KiB
Ruby

require 'io/console'
require 'pty'
require 'test/unit'
class TestIO_Console < Test::Unit::TestCase
def test_raw
PTY.open {|m, s|
s.print "abc\n"
assert_equal("abc\r\n", m.gets)
s.raw {
s.print "def\n"
assert_equal("def\n", m.gets)
}
s.print "ghi\n"
assert_equal("ghi\r\n", m.gets)
}
end
def test_noecho
PTY.open {|m, s|
assert(s.echo?)
m.print "a\n"
sleep 0.1
s.print "b\n"
sleep 0.1
assert_equal("a\r\nb\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
s.noecho {
assert(!s.echo?)
m.print "a\n"
s.print "b\n"
assert_equal("b\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
}
assert(s.echo?)
m.print "a\n"
sleep 0.1
s.print "b\n"
sleep 0.1
assert_equal("a\r\nb\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
}
end
def test_setecho
PTY.open {|m, s|
assert(s.echo?)
m.print "a\n"
sleep 0.1
s.print "b\n"
sleep 0.1
assert_equal("a\r\nb\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
s.echo = false
assert(!s.echo?)
m.print "a\n"
s.print "b\n"
assert_equal("b\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
s.echo = true
assert(s.echo?)
m.print "a\n"
sleep 0.1
s.print "b\n"
sleep 0.1
assert_equal("a\r\nb\r\n", m.readpartial(10))
assert_equal("a\n", s.readpartial(10))
}
end
def test_iflush
PTY.open {|m, s|
m.print "a\n"
sleep 0.1
s.iflush
sleep 0.1
m.print "b\n"
sleep 0.1
assert_equal("a\r\nb\r\n", m.readpartial(10))
assert_equal("b\n", s.readpartial(10))
}
end
def test_oflush
PTY.open {|m, s|
s.print "a\n"
s.oflush
s.print "b\n"
assert_equal("b\r\n", m.readpartial(10))
}
end
end