diff options
| author | aaalex <apeuchert@googlemail.com> | 2009-11-04 22:43:42 +0800 |
|---|---|---|
| committer | Delano Mandelbaum <delano.mandelbaum@gmail.com> | 2009-11-10 04:01:08 +0800 |
| commit | 2fc2d203ed731888ed393449e6ececbc2ad3dfdd (patch) | |
| tree | 7f104d85c83f0084611286a48734d941fab42af2 /test/transport/test_server_version.rb | |
| parent | 63fda966ca5429a694b2f9b654a03a45724072ec (diff) | |
| download | net-ssh-2fc2d203ed731888ed393449e6ececbc2ad3dfdd.tar.gz | |
switched from #readchar to #readpartial(1) in lib/net/ssh/transport/server_version.rb, so that closed sockets are recognized
Diffstat (limited to 'test/transport/test_server_version.rb')
| -rw-r--r-- | test/transport/test_server_version.rb | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/test/transport/test_server_version.rb b/test/transport/test_server_version.rb index 32c8360..2fa957d 100644 --- a/test/transport/test_server_version.rb +++ b/test/transport/test_server_version.rb @@ -28,6 +28,10 @@ module Transport assert_raises(Net::SSH::Exception) { subject(socket(false, "SSH-1.4-Testing_1.0\r\n")) } end + def test_unexpected_server_close_should_raise_exception + assert_raises(Net::SSH::Disconnect) { subject(socket(false, "\r\nDestination server does not have Ssh activated.\r\nContact Cisco Systems, Inc to purchase a\r\nlicense key to activate Ssh.\r\n", true)) } + end + def test_header_lines_should_be_accumulated s = subject(socket(true, "Welcome\r\nAnother line\r\nSSH-2.0-Testing_1.0\r\n")) assert_equal "Welcome\r\nAnother line\r\n", s.header @@ -40,16 +44,21 @@ module Transport private - def socket(good, version_header) + def socket(good, version_header, raise_eot=false) socket = mock("socket") data = version_header.split('') recv_times = data.length - if data[-1] != "\n" - recv_times += 1 - end + recv_times += 1 if data[-1] != "\n" + + unless raise_eot + # socket.expects(:recv).with(1).times(recv_times).returns(*data).then.returns(nil) - socket.expects(:readchar).times(recv_times).returns(*data).then.returns(nil) +# socket.expects(:readchar).times(recv_times).returns(*data).then.returns(nil) + socket.expects(:readpartial).with(1).times(recv_times).returns(*data).then.returns(nil) + else + socket.expects(:readpartial).with(1).times(recv_times+1).returns(*data).then.raises(EOFError, "end of file reached") + end if good socket.expects(:write).with("#{Net::SSH::Transport::ServerVersion::PROTO_VERSION}\r\n") |
