Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

66 lines (58 sloc) 1.954 kb
require 'spec_helper'
require 'capybara/webkit/connection'
describe Capybara::Webkit::Connection do
it "boots a server to talk to" do
url = @rack_server.url("/")
connection.puts "Visit"
connection.puts 1
connection.puts url.to_s.bytesize
connection.print url
connection.gets.should == "ok\n"
connection.gets.should == "0\n"
connection.puts "Body"
connection.puts 0
connection.gets.should == "ok\n"
response_length = connection.gets.to_i
response = connection.read(response_length)
response.should include("Hey there")
end
it 'forwards stdout to the given IO object' do
io = StringIO.new
redirected_connection = Capybara::Webkit::Connection.new(:stdout => io)
script = 'console.log("hello world")'
redirected_connection.puts "Execute"
redirected_connection.puts 1
redirected_connection.puts script.to_s.bytesize
redirected_connection.print script
sleep(0.5)
io.string.should include "hello world\n"
end
it "returns the server port" do
connection.port.should be_between 0x400, 0xffff
end
it 'sets appropriate options on its socket' do
socket = stub('socket')
TCPSocket.stub(:open).and_return(socket)
if defined?(Socket::TCP_NODELAY)
socket.should_receive(:setsockopt).with(:IPPROTO_TCP, :TCP_NODELAY, 1)
else
socket.should_not_receive(:setsockopt)
end
Capybara::Webkit::Connection.new
end
it "chooses a new port number for a new connection" do
new_connection = Capybara::Webkit::Connection.new
new_connection.port.should_not == connection.port
end
let(:connection) { Capybara::Webkit::Connection.new }
before(:all) do
@app = lambda do |env|
body = "<html><body>Hey there</body></html>"
[200,
{ 'Content-Type' => 'text/html', 'Content-Length' => body.size.to_s },
[body]]
end
@rack_server = Capybara::Server.new(@app)
@rack_server.boot
end
end
Jump to Line
Something went wrong with that request. Please try again.