diff options
author | Derek Watson <watson@dcw.ca> | 2013-04-11 22:12:19 -0400 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2013-04-18 17:12:40 +0100 |
commit | 6183e1a460ccab6df1d07c3e99e98b61b2cc450b (patch) | |
tree | d585a05a0202f30b2e51d27d11e59fae20b5c320 /actionpack/test | |
parent | 296830ed0f8732c6779dcdfed0f0e3d59947e47c (diff) | |
download | rails-6183e1a460ccab6df1d07c3e99e98b61b2cc450b.tar.gz rails-6183e1a460ccab6df1d07c3e99e98b61b2cc450b.tar.bz2 rails-6183e1a460ccab6df1d07c3e99e98b61b2cc450b.zip |
Passing subdomain: '' to url_for removes the subdomain (instead of adding a leading .)
Adding a boolean route constraint checks for presence/absence of request property
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/controller/url_for_test.rb | 7 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/actionpack/test/controller/url_for_test.rb b/actionpack/test/controller/url_for_test.rb index ba24e7fac5..088ad73f2f 100644 --- a/actionpack/test/controller/url_for_test.rb +++ b/actionpack/test/controller/url_for_test.rb @@ -89,6 +89,13 @@ module AbstractController ) end + def test_subdomain_may_be_removed_with_blank_string + W.default_url_options[:host] = 'api.basecamphq.com' + assert_equal('http://basecamphq.com/c/a/i', + W.new.url_for(:subdomain => '', :controller => 'c', :action => 'a', :id => 'i') + ) + end + def test_multiple_subdomains_may_be_removed W.default_url_options[:host] = 'mobile.www.api.basecamphq.com' assert_equal('http://basecamphq.com/c/a/i', diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 29703dd5b1..208c0d38a3 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -3322,6 +3322,10 @@ class TestUrlConstraints < ActionDispatch::IntegrationTest end get '/' => ok, :as => :alternate_root, :constraints => { :port => 8080 } + + get '/search' => ok, :constraints => { :subdomain => false } + + get '/logs' => ok, :constraints => { :subdomain => true } end end @@ -3348,6 +3352,22 @@ class TestUrlConstraints < ActionDispatch::IntegrationTest get 'http://www.example.com:8080/' assert_response :success end + + test "false constraint expressions check for absence of values" do + get 'http://example.com/search' + assert_response :success + + get 'http://api.example.com/search' + assert_response :not_found + end + + test "true constraint expressions check for presence of values" do + get 'http://api.example.com/logs' + assert_response :success + + get 'http://example.com/logs' + assert_response :not_found + end end class TestInvalidUrls < ActionDispatch::IntegrationTest |