Vendor Rack 1.1
Also clean up some View stuff.
This commit is contained in:
parent
77014652a3
commit
a705709f9a
74 changed files with 3080 additions and 608 deletions
154
vendor/plugins/rack/test/spec_rackup.rb
vendored
Normal file
154
vendor/plugins/rack/test/spec_rackup.rb
vendored
Normal file
|
@ -0,0 +1,154 @@
|
|||
require 'test/spec'
|
||||
require 'testrequest'
|
||||
require 'rack/server'
|
||||
require 'open3'
|
||||
|
||||
begin
|
||||
require "mongrel"
|
||||
|
||||
context "rackup" do
|
||||
include TestRequest::Helpers
|
||||
|
||||
def run_rackup(*args)
|
||||
options = args.last.is_a?(Hash) ? args.pop : {}
|
||||
flags = args.first
|
||||
@host = options[:host] || "0.0.0.0"
|
||||
@port = options[:port] || 9292
|
||||
|
||||
Dir.chdir("#{root}/test/rackup") do
|
||||
@in, @rackup, @err = Open3.popen3("#{Gem.ruby} -S #{rackup} #{flags}")
|
||||
end
|
||||
|
||||
return if options[:port] == false
|
||||
|
||||
# Wait until the server is available
|
||||
begin
|
||||
GET("/")
|
||||
rescue
|
||||
sleep 0.05
|
||||
retry
|
||||
end
|
||||
end
|
||||
|
||||
def output
|
||||
@rackup.read
|
||||
end
|
||||
|
||||
after do
|
||||
# This doesn't actually return a response, so we rescue
|
||||
GET "/die" rescue nil
|
||||
|
||||
Dir["#{root}/**/*.pid"].each do |file|
|
||||
File.delete(file)
|
||||
end
|
||||
|
||||
File.delete("#{root}/log_output") if File.exist?("#{root}/log_output")
|
||||
end
|
||||
|
||||
specify "rackup" do
|
||||
run_rackup
|
||||
response["PATH_INFO"].should.equal '/'
|
||||
response["test.$DEBUG"].should.be false
|
||||
response["test.$EVAL"].should.be nil
|
||||
response["test.$VERBOSE"].should.be false
|
||||
response["test.Ping"].should.be nil
|
||||
response["SERVER_SOFTWARE"].should.not =~ /webrick/
|
||||
end
|
||||
|
||||
specify "rackup --help" do
|
||||
run_rackup "--help", :port => false
|
||||
output.should.match /--port/
|
||||
end
|
||||
|
||||
specify "rackup --port" do
|
||||
run_rackup "--port 9000", :port => 9000
|
||||
response["SERVER_PORT"].should.equal "9000"
|
||||
end
|
||||
|
||||
specify "rackup --debug" do
|
||||
run_rackup "--debug"
|
||||
response["test.$DEBUG"].should.be true
|
||||
end
|
||||
|
||||
specify "rackup --eval" do
|
||||
run_rackup %{--eval "BUKKIT = 'BUKKIT'"}
|
||||
response["test.$EVAL"].should.equal "BUKKIT"
|
||||
end
|
||||
|
||||
specify "rackup --warn" do
|
||||
run_rackup %{--warn}
|
||||
response["test.$VERBOSE"].should.be true
|
||||
end
|
||||
|
||||
specify "rackup --include" do
|
||||
run_rackup %{--include /foo/bar}
|
||||
response["test.$LOAD_PATH"].should.include "/foo/bar"
|
||||
end
|
||||
|
||||
specify "rackup --require" do
|
||||
run_rackup %{--require ping}
|
||||
response["test.Ping"].should.equal "constant"
|
||||
end
|
||||
|
||||
specify "rackup --server" do
|
||||
run_rackup %{--server webrick}
|
||||
response["SERVER_SOFTWARE"].should =~ /webrick/i
|
||||
end
|
||||
|
||||
specify "rackup --host" do
|
||||
run_rackup %{--host 127.0.0.1}, :host => "127.0.0.1"
|
||||
response["REMOTE_ADDR"].should.equal "127.0.0.1"
|
||||
end
|
||||
|
||||
specify "rackup --daemonize --pid" do
|
||||
run_rackup %{--daemonize --pid testing.pid}
|
||||
status.should.be 200
|
||||
@rackup.should.be.eof?
|
||||
Dir["#{root}/**/testing.pid"].should.not.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --pid" do
|
||||
run_rackup %{--pid testing.pid}
|
||||
status.should.be 200
|
||||
Dir["#{root}/**/testing.pid"].should.not.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --version" do
|
||||
run_rackup %{--version}, :port => false
|
||||
output.should =~ /1.0/
|
||||
end
|
||||
|
||||
specify "rackup --env development includes lint" do
|
||||
run_rackup
|
||||
GET("/broken_lint")
|
||||
status.should.be 500
|
||||
end
|
||||
|
||||
specify "rackup --env deployment does not include lint" do
|
||||
run_rackup %{--env deployment}
|
||||
GET("/broken_lint")
|
||||
status.should.be 200
|
||||
end
|
||||
|
||||
specify "rackup --env none does not include lint" do
|
||||
run_rackup %{--env none}
|
||||
GET("/broken_lint")
|
||||
status.should.be 200
|
||||
end
|
||||
|
||||
specify "rackup --env deployment does log" do
|
||||
run_rackup %{--env deployment}
|
||||
log = File.read(response["test.stderr"])
|
||||
log.should.be.empty?
|
||||
end
|
||||
|
||||
specify "rackup --env none does not log" do
|
||||
run_rackup %{--env none}
|
||||
GET("/")
|
||||
log = File.read(response["test.stderr"])
|
||||
log.should.be.empty?
|
||||
end
|
||||
end
|
||||
rescue LoadError
|
||||
$stderr.puts "Skipping rackup --server tests (mongrel is required). `gem install thin` and try again."
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue