Upgrade to Rails 2.0.2
Upgraded to Rails 2.0.2, except that we maintain vendor/rails/actionpack/lib/action_controller/routing.rb from Rail 1.2.6 (at least for now), so that Routes don't change. We still get to enjoy Rails's many new features. Also fixed a bug in Chunk-handling: disable WikiWord processing in tags (for real this time).
This commit is contained in:
parent
0f6889e09f
commit
6873fc8026
1083 changed files with 52810 additions and 41058 deletions
|
@ -1,5 +1,7 @@
|
|||
require File.dirname(__FILE__) + '/../abstract_unit'
|
||||
|
||||
ActionController::UrlRewriter
|
||||
|
||||
class UrlRewriterTests < Test::Unit::TestCase
|
||||
def setup
|
||||
@request = ActionController::TestRequest.new
|
||||
|
@ -7,6 +9,43 @@ class UrlRewriterTests < Test::Unit::TestCase
|
|||
@rewriter = ActionController::UrlRewriter.new(@request, @params)
|
||||
end
|
||||
|
||||
def test_port
|
||||
assert_equal('http://test.host:1271/c/a/i',
|
||||
@rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :port => 1271)
|
||||
)
|
||||
end
|
||||
|
||||
def test_protocol_with_and_without_separator
|
||||
assert_equal('https://test.host/c/a/i',
|
||||
@rewriter.rewrite(:protocol => 'https', :controller => 'c', :action => 'a', :id => 'i')
|
||||
)
|
||||
|
||||
assert_equal('https://test.host/c/a/i',
|
||||
@rewriter.rewrite(:protocol => 'https://', :controller => 'c', :action => 'a', :id => 'i')
|
||||
)
|
||||
end
|
||||
|
||||
def test_user_name_and_password
|
||||
assert_equal(
|
||||
'http://david:secret@test.host/c/a/i',
|
||||
@rewriter.rewrite(:user => "david", :password => "secret", :controller => 'c', :action => 'a', :id => 'i')
|
||||
)
|
||||
end
|
||||
|
||||
def test_user_name_and_password_with_escape_codes
|
||||
assert_equal(
|
||||
'http://openid.aol.com%2Fnextangler:one+two%3F@test.host/c/a/i',
|
||||
@rewriter.rewrite(:user => "openid.aol.com/nextangler", :password => "one two?", :controller => 'c', :action => 'a', :id => 'i')
|
||||
)
|
||||
end
|
||||
|
||||
def test_anchor
|
||||
assert_equal(
|
||||
'http://test.host/c/a/i#anchor',
|
||||
@rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :anchor => 'anchor')
|
||||
)
|
||||
end
|
||||
|
||||
def test_overwrite_params
|
||||
@params[:controller] = 'hi'
|
||||
@params[:action] = 'bye'
|
||||
|
@ -17,11 +56,32 @@ class UrlRewriterTests < Test::Unit::TestCase
|
|||
assert_match %r(/hi/hi/2$), u
|
||||
end
|
||||
|
||||
def test_anchor
|
||||
assert_equal(
|
||||
'http://test.host/c/a/i#anchor',
|
||||
@rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :anchor => 'anchor')
|
||||
)
|
||||
def test_overwrite_removes_original
|
||||
@params[:controller] = 'search'
|
||||
@params[:action] = 'list'
|
||||
@params[:list_page] = 1
|
||||
|
||||
assert_equal '/search/list?list_page=2', @rewriter.rewrite(:only_path => true, :overwrite_params => {"list_page" => 2})
|
||||
u = @rewriter.rewrite(:only_path => false, :overwrite_params => {:list_page => 2})
|
||||
assert_equal 'http://test.host/search/list?list_page=2', u
|
||||
end
|
||||
|
||||
def test_to_str
|
||||
@params[:controller] = 'hi'
|
||||
@params[:action] = 'bye'
|
||||
@request.parameters[:id] = '2'
|
||||
|
||||
assert_equal 'http://, test.host, /, hi, bye, {"id"=>"2"}', @rewriter.to_str
|
||||
end
|
||||
|
||||
def test_trailing_slash
|
||||
options = {:controller => 'foo', :action => 'bar', :id => '3', :only_path => true}
|
||||
assert_equal '/foo/bar/3', @rewriter.rewrite(options)
|
||||
assert_equal '/foo/bar/3?query=string', @rewriter.rewrite(options.merge({:query => 'string'}))
|
||||
options.update({:trailing_slash => true})
|
||||
assert_equal '/foo/bar/3/', @rewriter.rewrite(options)
|
||||
options.update({:query => 'string'})
|
||||
assert_equal '/foo/bar/3/?query=string', @rewriter.rewrite(options)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -44,6 +104,12 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
W.new.url_for :controller => 'c', :action => 'a', :id => 'i'
|
||||
end
|
||||
end
|
||||
|
||||
def test_anchor
|
||||
assert_equal('/c/a#anchor',
|
||||
W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => 'anchor')
|
||||
)
|
||||
end
|
||||
|
||||
def test_default_host
|
||||
add_host!
|
||||
|
@ -72,15 +138,20 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https')
|
||||
)
|
||||
end
|
||||
|
||||
def test_anchor
|
||||
assert_equal('/c/a#anchor',
|
||||
W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => 'anchor')
|
||||
|
||||
def test_protocol_with_and_without_separator
|
||||
add_host!
|
||||
assert_equal('https://www.basecamphq.com/c/a/i',
|
||||
W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https')
|
||||
)
|
||||
assert_equal('https://www.basecamphq.com/c/a/i',
|
||||
W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https://')
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
def test_named_route
|
||||
ActionController::Routing::Routes.draw do |map|
|
||||
map.no_args '/this/is/verbose', :controller => 'home', :action => 'index'
|
||||
map.home '/home/sweet/home/:user', :controller => 'home', :action => 'index'
|
||||
map.connect ':controller/:action/:id'
|
||||
end
|
||||
|
@ -93,6 +164,8 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
controller.send(:home_url, :host => 'www.basecamphq.com', :user => 'again')
|
||||
|
||||
assert_equal("/home/sweet/home/alabama", controller.send(:home_path, :user => 'alabama', :host => 'unused'))
|
||||
assert_equal("http://www.basecamphq.com/home/sweet/home/alabama", controller.send(:home_url, :user => 'alabama', :host => 'www.basecamphq.com'))
|
||||
assert_equal("http://www.basecamphq.com/this/is/verbose", controller.send(:no_args_url, :host=>'www.basecamphq.com'))
|
||||
ensure
|
||||
ActionController::Routing::Routes.load!
|
||||
end
|
||||
|
@ -111,6 +184,7 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
controller.send(:url_for, :controller => 'brave', :action => 'new', :id => 'world', :only_path => true)
|
||||
|
||||
assert_equal("/home/sweet/home/alabama", controller.send(:home_url, :user => 'alabama', :host => 'unused', :only_path => true))
|
||||
assert_equal("/home/sweet/home/alabama", controller.send(:home_path, 'alabama'))
|
||||
ensure
|
||||
ActionController::Routing::Routes.load!
|
||||
end
|
||||
|
@ -156,8 +230,8 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
params = extract_params(url)
|
||||
assert_equal params[0], { 'query[hobby]' => 'piercing' }.to_query
|
||||
assert_equal params[1], { 'query[person][name]' => 'Bob' }.to_query
|
||||
assert_equal params[2], { 'query[person][position][]' => 'art director' }.to_query
|
||||
assert_equal params[3], { 'query[person][position][]' => 'prof' }.to_query
|
||||
assert_equal params[2], { 'query[person][position][]' => 'prof' }.to_query
|
||||
assert_equal params[3], { 'query[person][position][]' => 'art director' }.to_query
|
||||
end
|
||||
|
||||
def test_path_generation_for_symbol_parameter_keys
|
||||
|
@ -168,4 +242,5 @@ class UrlWriterTests < Test::Unit::TestCase
|
|||
def extract_params(url)
|
||||
url.split('?', 2).last.split('&')
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue