Instiki 0.16.3: Rails 2.3.0
Instiki now runs on the Rails 2.3.0 Candidate Release. Among other improvements, this means that it now automagically selects between WEBrick and Mongrel. Just run ./instiki --daemon
This commit is contained in:
parent
43aadecc99
commit
4e14ccc74d
893 changed files with 71965 additions and 28511 deletions
117
vendor/rails/actionpack/test/controller/rack_test.rb
vendored
117
vendor/rails/actionpack/test/controller/rack_test.rb
vendored
|
@ -1,11 +1,10 @@
|
|||
require 'abstract_unit'
|
||||
require 'action_controller/rack_process'
|
||||
|
||||
class BaseRackTest < Test::Unit::TestCase
|
||||
def setup
|
||||
@env = {
|
||||
"HTTP_MAX_FORWARDS" => "10",
|
||||
"SERVER_NAME" => "glu.ttono.us:8007",
|
||||
"SERVER_NAME" => "glu.ttono.us",
|
||||
"FCGI_ROLE" => "RESPONDER",
|
||||
"AUTH_TYPE" => "Basic",
|
||||
"HTTP_X_FORWARDED_HOST" => "glu.ttono.us",
|
||||
|
@ -44,10 +43,10 @@ class BaseRackTest < Test::Unit::TestCase
|
|||
"REDIRECT_STATUS" => "200",
|
||||
"REQUEST_METHOD" => "GET"
|
||||
}
|
||||
@request = ActionController::RackRequest.new(@env)
|
||||
@request = ActionController::Request.new(@env)
|
||||
# some Nokia phone browsers omit the space after the semicolon separator.
|
||||
# some developers have grown accustomed to using comma in cookie values.
|
||||
@alt_cookie_fmt_request = ActionController::RackRequest.new(@env.merge({"HTTP_COOKIE"=>"_session_id=c84ace847,96670c052c6ceb2451fb0f2;is_admin=yes"}))
|
||||
@alt_cookie_fmt_request = ActionController::Request.new(@env.merge({"HTTP_COOKIE"=>"_session_id=c84ace847,96670c052c6ceb2451fb0f2;is_admin=yes"}))
|
||||
end
|
||||
|
||||
def default_test; end
|
||||
|
@ -58,67 +57,67 @@ class BaseRackTest < Test::Unit::TestCase
|
|||
@request.env['REQUEST_METHOD'] = 'POST'
|
||||
@request.env['CONTENT_LENGTH'] = data.length
|
||||
@request.env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=utf-8'
|
||||
@request.env['RAW_POST_DATA'] = data
|
||||
@request.env['rack.input'] = StringIO.new(data)
|
||||
end
|
||||
end
|
||||
|
||||
class RackRequestTest < BaseRackTest
|
||||
def test_proxy_request
|
||||
assert_equal 'glu.ttono.us', @request.host_with_port(true)
|
||||
assert_equal 'glu.ttono.us', @request.host_with_port
|
||||
end
|
||||
|
||||
def test_http_host
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env['HTTP_HOST'] = "rubyonrails.org:8080"
|
||||
assert_equal "rubyonrails.org", @request.host(true)
|
||||
assert_equal "rubyonrails.org:8080", @request.host_with_port(true)
|
||||
assert_equal "rubyonrails.org", @request.host
|
||||
assert_equal "rubyonrails.org:8080", @request.host_with_port
|
||||
|
||||
@env['HTTP_X_FORWARDED_HOST'] = "www.firsthost.org, www.secondhost.org"
|
||||
assert_equal "www.secondhost.org", @request.host(true)
|
||||
assert_equal "www.secondhost.org", @request.host
|
||||
end
|
||||
|
||||
def test_http_host_with_default_port_overrides_server_port
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env['HTTP_HOST'] = "rubyonrails.org"
|
||||
assert_equal "rubyonrails.org", @request.host_with_port(true)
|
||||
assert_equal "rubyonrails.org", @request.host_with_port
|
||||
end
|
||||
|
||||
def test_host_with_port_defaults_to_server_name_if_no_host_headers
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env.delete "HTTP_HOST"
|
||||
assert_equal "glu.ttono.us:8007", @request.host_with_port(true)
|
||||
assert_equal "glu.ttono.us:8007", @request.host_with_port
|
||||
end
|
||||
|
||||
def test_host_with_port_falls_back_to_server_addr_if_necessary
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env.delete "HTTP_HOST"
|
||||
@env.delete "SERVER_NAME"
|
||||
assert_equal "207.7.108.53", @request.host(true)
|
||||
assert_equal 8007, @request.port(true)
|
||||
assert_equal "207.7.108.53:8007", @request.host_with_port(true)
|
||||
assert_equal "207.7.108.53", @request.host
|
||||
assert_equal 8007, @request.port
|
||||
assert_equal "207.7.108.53:8007", @request.host_with_port
|
||||
end
|
||||
|
||||
def test_host_with_port_if_http_standard_port_is_specified
|
||||
@env['HTTP_X_FORWARDED_HOST'] = "glu.ttono.us:80"
|
||||
assert_equal "glu.ttono.us", @request.host_with_port(true)
|
||||
assert_equal "glu.ttono.us", @request.host_with_port
|
||||
end
|
||||
|
||||
def test_host_with_port_if_https_standard_port_is_specified
|
||||
@env['HTTP_X_FORWARDED_PROTO'] = "https"
|
||||
@env['HTTP_X_FORWARDED_HOST'] = "glu.ttono.us:443"
|
||||
assert_equal "glu.ttono.us", @request.host_with_port(true)
|
||||
assert_equal "glu.ttono.us", @request.host_with_port
|
||||
end
|
||||
|
||||
def test_host_if_ipv6_reference
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env['HTTP_HOST'] = "[2001:1234:5678:9abc:def0::dead:beef]"
|
||||
assert_equal "[2001:1234:5678:9abc:def0::dead:beef]", @request.host(true)
|
||||
assert_equal "[2001:1234:5678:9abc:def0::dead:beef]", @request.host
|
||||
end
|
||||
|
||||
def test_host_if_ipv6_reference_with_port
|
||||
@env.delete "HTTP_X_FORWARDED_HOST"
|
||||
@env['HTTP_HOST'] = "[2001:1234:5678:9abc:def0::dead:beef]:8008"
|
||||
assert_equal "[2001:1234:5678:9abc:def0::dead:beef]", @request.host(true)
|
||||
assert_equal "[2001:1234:5678:9abc:def0::dead:beef]", @request.host
|
||||
end
|
||||
|
||||
def test_cgi_environment_variables
|
||||
|
@ -146,7 +145,7 @@ class RackRequestTest < BaseRackTest
|
|||
assert_equal "kevin", @request.remote_user
|
||||
assert_equal :get, @request.request_method
|
||||
assert_equal "/dispatch.fcgi", @request.script_name
|
||||
assert_equal "glu.ttono.us:8007", @request.server_name
|
||||
assert_equal "glu.ttono.us", @request.server_name
|
||||
assert_equal 8007, @request.server_port
|
||||
assert_equal "HTTP/1.1", @request.server_protocol
|
||||
assert_equal "lighttpd", @request.server_software
|
||||
|
@ -154,12 +153,12 @@ class RackRequestTest < BaseRackTest
|
|||
|
||||
def test_cookie_syntax_resilience
|
||||
cookies = @request.cookies
|
||||
assert_equal ["c84ace84796670c052c6ceb2451fb0f2"], cookies["_session_id"], cookies.inspect
|
||||
assert_equal ["yes"], cookies["is_admin"], cookies.inspect
|
||||
assert_equal "c84ace84796670c052c6ceb2451fb0f2", cookies["_session_id"], cookies.inspect
|
||||
assert_equal "yes", cookies["is_admin"], cookies.inspect
|
||||
|
||||
alt_cookies = @alt_cookie_fmt_request.cookies
|
||||
assert_equal ["c84ace847,96670c052c6ceb2451fb0f2"], alt_cookies["_session_id"], alt_cookies.inspect
|
||||
assert_equal ["yes"], alt_cookies["is_admin"], alt_cookies.inspect
|
||||
#assert_equal "c84ace847,96670c052c6ceb2451fb0f2", alt_cookies["_session_id"], alt_cookies.inspect
|
||||
assert_equal "yes", alt_cookies["is_admin"], alt_cookies.inspect
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -188,29 +187,6 @@ class RackRequestContentTypeTest < BaseRackTest
|
|||
end
|
||||
end
|
||||
|
||||
class RackRequestMethodTest < BaseRackTest
|
||||
def test_get
|
||||
assert_equal :get, @request.request_method
|
||||
end
|
||||
|
||||
def test_post
|
||||
@request.env['REQUEST_METHOD'] = 'POST'
|
||||
assert_equal :post, @request.request_method
|
||||
end
|
||||
|
||||
def test_put
|
||||
set_content_data '_method=put'
|
||||
|
||||
assert_equal :put, @request.request_method
|
||||
end
|
||||
|
||||
def test_delete
|
||||
set_content_data '_method=delete'
|
||||
|
||||
assert_equal :delete, @request.request_method
|
||||
end
|
||||
end
|
||||
|
||||
class RackRequestNeedsRewoundTest < BaseRackTest
|
||||
def test_body_should_be_rewound
|
||||
data = 'foo'
|
||||
|
@ -219,7 +195,7 @@ class RackRequestNeedsRewoundTest < BaseRackTest
|
|||
@env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=utf-8'
|
||||
|
||||
# Read the request body by parsing params.
|
||||
request = ActionController::RackRequest.new(@env)
|
||||
request = ActionController::Request.new(@env)
|
||||
request.request_parameters
|
||||
|
||||
# Should have rewound the body.
|
||||
|
@ -230,16 +206,15 @@ end
|
|||
class RackResponseTest < BaseRackTest
|
||||
def setup
|
||||
super
|
||||
@response = ActionController::RackResponse.new(@request)
|
||||
@output = StringIO.new('')
|
||||
@response = ActionController::Response.new
|
||||
end
|
||||
|
||||
def test_simple_output
|
||||
@response.body = "Hello, World!"
|
||||
@response.prepare!
|
||||
|
||||
status, headers, body = @response.out(@output)
|
||||
assert_equal "200 OK", status
|
||||
status, headers, body = @response.to_a
|
||||
assert_equal 200, status
|
||||
assert_equal({
|
||||
"Content-Type" => "text/html; charset=utf-8",
|
||||
"Cache-Control" => "private, max-age=0, must-revalidate",
|
||||
|
@ -259,54 +234,36 @@ class RackResponseTest < BaseRackTest
|
|||
end
|
||||
@response.prepare!
|
||||
|
||||
status, headers, body = @response.out(@output)
|
||||
assert_equal "200 OK", status
|
||||
assert_equal({"Content-Type" => "text/html; charset=utf-8", "Cache-Control" => "no-cache", "Set-Cookie" => []}, headers)
|
||||
|
||||
parts = []
|
||||
body.each { |part| parts << part }
|
||||
assert_equal ["0", "1", "2", "3", "4"], parts
|
||||
end
|
||||
|
||||
def test_set_session_cookie
|
||||
cookie = CGI::Cookie.new({"name" => "name", "value" => "Josh"})
|
||||
@request.cgi.send :instance_variable_set, '@output_cookies', [cookie]
|
||||
|
||||
@response.body = "Hello, World!"
|
||||
@response.prepare!
|
||||
|
||||
status, headers, body = @response.out(@output)
|
||||
assert_equal "200 OK", status
|
||||
status, headers, body = @response.to_a
|
||||
assert_equal 200, status
|
||||
assert_equal({
|
||||
"Content-Type" => "text/html; charset=utf-8",
|
||||
"Cache-Control" => "private, max-age=0, must-revalidate",
|
||||
"ETag" => '"65a8e27d8879283831b664bd8b7f0ad4"',
|
||||
"Set-Cookie" => ["name=Josh; path="],
|
||||
"Content-Length" => "13"
|
||||
"Content-Length" => "",
|
||||
"Cache-Control" => "no-cache",
|
||||
"Set-Cookie" => []
|
||||
}, headers)
|
||||
|
||||
parts = []
|
||||
body.each { |part| parts << part }
|
||||
assert_equal ["Hello, World!"], parts
|
||||
assert_equal ["0", "1", "2", "3", "4"], parts
|
||||
end
|
||||
end
|
||||
|
||||
class RackResponseHeadersTest < BaseRackTest
|
||||
def setup
|
||||
super
|
||||
@response = ActionController::RackResponse.new(@request)
|
||||
@output = StringIO.new('')
|
||||
@response.headers['Status'] = "200 OK"
|
||||
@response = ActionController::Response.new
|
||||
@response.status = "200 OK"
|
||||
end
|
||||
|
||||
def test_content_type
|
||||
[204, 304].each do |c|
|
||||
@response.headers['Status'] = c.to_s
|
||||
@response.status = c.to_s
|
||||
assert !response_headers.has_key?("Content-Type"), "#{c} should not have Content-Type header"
|
||||
end
|
||||
|
||||
[200, 302, 404, 500].each do |c|
|
||||
@response.headers['Status'] = c.to_s
|
||||
@response.status = c.to_s
|
||||
assert response_headers.has_key?("Content-Type"), "#{c} did not have Content-Type header"
|
||||
end
|
||||
end
|
||||
|
@ -318,6 +275,6 @@ class RackResponseHeadersTest < BaseRackTest
|
|||
private
|
||||
def response_headers
|
||||
@response.prepare!
|
||||
@response.out(@output)[1]
|
||||
@response.to_a[1]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue