Subdomain Assertions
Working with subdomains with rails can be easy, especially with url_for_domain
. However testing can be a pain.
assert_redirected_to
helped when checking controller / action / parameters, but not asserting the subdomain. I rolled up a small assertion helper that can sit in test_helper.rb
.
def assert_redirect_url(options = {})
opts = {:only_path => false, :controller => @controller.controller_name}.merge(options)
assert_equal url_for(opts), @response.redirect_url, "Error matching redirect url"
end
Example:
assert_redirect_url(:subdomain => "test-subdomain",
:controller => "test-controller", :action => "test-action")
Update 3/21/07
I recently found that assert_redirect_url
collides with an existing rails test helper that is deprecated in Rails 1.2.2. By putting this function definition at the bottom of test_helper.rb
it will be overridden. Of course you can always use an arbitrary name and avoid any conflicts.