mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
87 lines
2.1 KiB
Ruby
87 lines
2.1 KiB
Ruby
require_relative '../spec_helper'
|
|
|
|
describe 'Socket#initialize' do
|
|
before do
|
|
@socket = nil
|
|
end
|
|
|
|
after do
|
|
@socket.close if @socket
|
|
end
|
|
|
|
describe 'using an Integer as the 1st and 2nd arguments' do
|
|
it 'returns a Socket' do
|
|
@socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM)
|
|
|
|
@socket.should be_an_instance_of(Socket)
|
|
end
|
|
end
|
|
|
|
describe 'using Symbols as the 1st and 2nd arguments' do
|
|
it 'returns a Socket' do
|
|
@socket = Socket.new(:INET, :STREAM)
|
|
|
|
@socket.should be_an_instance_of(Socket)
|
|
end
|
|
end
|
|
|
|
describe 'using Strings as the 1st and 2nd arguments' do
|
|
it 'returns a Socket' do
|
|
@socket = Socket.new('INET', 'STREAM')
|
|
|
|
@socket.should be_an_instance_of(Socket)
|
|
end
|
|
end
|
|
|
|
describe 'using objects that respond to #to_str' do
|
|
it 'returns a Socket' do
|
|
family = mock(:family)
|
|
type = mock(:type)
|
|
|
|
family.stub!(:to_str).and_return('AF_INET')
|
|
type.stub!(:to_str).and_return('STREAM')
|
|
|
|
@socket = Socket.new(family, type)
|
|
|
|
@socket.should be_an_instance_of(Socket)
|
|
end
|
|
|
|
it 'raises TypeError when the #to_str method does not return a String' do
|
|
family = mock(:family)
|
|
type = mock(:type)
|
|
|
|
family.stub!(:to_str).and_return(Socket::AF_INET)
|
|
type.stub!(:to_str).and_return(Socket::SOCK_STREAM)
|
|
|
|
-> { Socket.new(family, type) }.should raise_error(TypeError)
|
|
end
|
|
end
|
|
|
|
describe 'using a custom protocol' do
|
|
it 'returns a Socket when using an Integer' do
|
|
@socket = Socket.new(:INET, :STREAM, Socket::IPPROTO_TCP)
|
|
|
|
@socket.should be_an_instance_of(Socket)
|
|
end
|
|
|
|
it 'raises TypeError when using a Symbol' do
|
|
-> { Socket.new(:INET, :STREAM, :TCP) }.should raise_error(TypeError)
|
|
end
|
|
end
|
|
|
|
it 'sets the do_not_reverse_lookup option' do
|
|
@socket = Socket.new(:INET, :STREAM)
|
|
|
|
@socket.do_not_reverse_lookup.should == Socket.do_not_reverse_lookup
|
|
end
|
|
|
|
it "sets basic IO accessors" do
|
|
@socket = Socket.new(:INET, :STREAM)
|
|
@socket.lineno.should == 0
|
|
end
|
|
|
|
it "sets the socket to binary mode" do
|
|
@socket = Socket.new(:INET, :STREAM)
|
|
@socket.binmode?.should be_true
|
|
end
|
|
end
|