1 require File.dirname(__FILE__) + '/../../../spec_helper'
4 describe "Net::FTP#getmultiline" do
6 @socket = mock("Socket")
9 @ftp.instance_variable_set(:@sock, @socket)
13 @ftp.private_methods.should include("getmultiline")
16 it "returns single line responses read from the socket" do
17 @socket.should_receive(:readline).and_return("200 Command okay.")
18 @ftp.send(:getmultiline).should == "200 Command okay.\n"
21 it "returns multi line responses read from the socket" do
23 "200-Start of multi line response.",
24 "200-Multi line responses, yay!",
25 "200 End of multi line response."
28 @socket.should_receive(:readline).and_return(*responses)
29 @ftp.send(:getmultiline).should == "200-Start of multi line response.\n200-Multi line responses, yay!\n200 End of multi line response.\n"
32 it "only reads till the end of a multi line response" do
34 "200-Start of multi line response.",
35 "200 End of multi line response.",
39 @socket.stub!(:readline).and_return(*responses)
40 @ftp.send(:getmultiline).should == "200-Start of multi line response.\n200 End of multi line response.\n"
43 it "outputs the read lines after sanitizing when in debug mode" do
44 @ftp.debug_mode = true
48 "200-Start of multi line response.",
49 "200 End of multi line response."
52 @socket.should_receive(:readline).and_return(*responses)
54 lambda { @ftp.send(:getmultiline) }.should output("get: PASS ********\n")
55 lambda { @ftp.send(:getmultiline) }.should output("get: 200-Start of multi line response.\nget: 200 End of multi line response.\n")