sinatra/test/integration_test.rb

42 lines
1.2 KiB
Ruby
Raw Normal View History

2011-10-31 21:40:22 +00:00
require File.expand_path('../helper', __FILE__)
require File.expand_path('../integration_helper', __FILE__)
2011-10-31 21:40:22 +00:00
2012-03-07 22:05:37 +00:00
# These tests start a real server and talk to it over TCP.
# Every test runs with every detected server.
#
# See test/integration/app.rb for the code of the app we test against.
2011-10-31 21:40:22 +00:00
class IntegrationTest < Test::Unit::TestCase
extend IntegrationHelper
attr_accessor :server
it('sets the app_file') { assert_equal server.app_file, server.get("/app_file") }
it('only extends main') { assert_equal "true", server.get("/mainonly") }
2011-10-31 21:59:09 +00:00
it 'logs once in development mode' do
random = "%064x" % Kernel.rand(2**256-1)
server.get "/ping?x=#{random}"
assert_equal 1, server.log.scan("GET /ping?x=#{random}").count
2011-10-31 21:59:09 +00:00
end
2012-03-07 21:58:59 +00:00
it 'streams' do
next if server.name == "webrick"
times, chunks = [], []
server.get_stream do |chunk|
chunks << chunk
times << Time.now
end
assert_equal ["", "a", "b"], chunks
assert times[1] - times[0] < 1
assert times[2] - times[1] > 1
end
it 'starts the correct server' do
exp = %r{
==\sSinatra/#{Sinatra::VERSION}\s
has\staken\sthe\sstage\son\s\d+\sfor\sdevelopment\s
with\sbackup\sfrom\s#{server}
}ix
2012-03-07 16:15:05 +00:00
assert_match exp, server.log
2012-03-07 16:15:05 +00:00
end
end