aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/assertions/assert_routing.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-09-03 20:22:47 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-09-03 20:22:47 +0000
commita4bef314fe888e3f4df51ad77a22075b5965250e (patch)
tree059a5e84351456ad5452bb5980cb1a2b54313974 /actionpack/lib/action_controller/assertions/assert_routing.rb
parentf12fdc50a69c3861add6b3ec53507f1c6a25e1cd (diff)
downloadrails-a4bef314fe888e3f4df51ad77a22075b5965250e.tar.gz
rails-a4bef314fe888e3f4df51ad77a22075b5965250e.tar.bz2
rails-a4bef314fe888e3f4df51ad77a22075b5965250e.zip
Follow proper naming conventions
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4934 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_controller/assertions/assert_routing.rb')
-rw-r--r--actionpack/lib/action_controller/assertions/assert_routing.rb85
1 files changed, 0 insertions, 85 deletions
diff --git a/actionpack/lib/action_controller/assertions/assert_routing.rb b/actionpack/lib/action_controller/assertions/assert_routing.rb
deleted file mode 100644
index a94bb719f2..0000000000
--- a/actionpack/lib/action_controller/assertions/assert_routing.rb
+++ /dev/null
@@ -1,85 +0,0 @@
-require 'test/unit'
-require 'test/unit/assertions'
-
-module ActionController
- module Assertions
- module RoutingAssertions
- # Asserts that the routing of the given path was handled correctly and that the parsed options match.
- #
- # assert_recognizes({:controller => 'items', :action => 'index'}, 'items')
- #
- # Pass a hash in the second argument to specify the request method. This is useful for routes
- # requiring a specific method.
- #
- # assert_recognizes({:controller => 'items', :action => 'create'}, {:path => 'items', :method => :post})
- #
- def assert_recognizes(expected_options, path, extras={}, message=nil)
- if path.is_a? Hash
- request_method = path[:method]
- path = path[:path]
- else
- request_method = nil
- end
-
- clean_backtrace do
- ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?
- request = recognized_request_for(path, request_method)
-
- expected_options = expected_options.clone
- extras.each_key { |key| expected_options.delete key } unless extras.nil?
-
- expected_options.stringify_keys!
- routing_diff = expected_options.diff(request.path_parameters)
- msg = build_message(message, "The recognized options <?> did not match <?>, difference: <?>",
- request.path_parameters, expected_options, expected_options.diff(request.path_parameters))
- assert_block(msg) { request.path_parameters == expected_options }
- end
- end
-
- # Asserts that the provided options can be used to generate the provided path.
- def assert_generates(expected_path, options, defaults={}, extras = {}, message=nil)
- clean_backtrace do
- expected_path = "/#{expected_path}" unless expected_path[0] == ?/
- # Load routes.rb if it hasn't been loaded.
- ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?
-
- generated_path, extra_keys = ActionController::Routing::Routes.generate_extras(options, extras)
- found_extras = options.reject {|k, v| ! extra_keys.include? k}
-
- msg = build_message(message, "found extras <?>, not <?>", found_extras, extras)
- assert_block(msg) { found_extras == extras }
-
- msg = build_message(message, "The generated path <?> did not match <?>", generated_path,
- expected_path)
- assert_block(msg) { expected_path == generated_path }
- end
- end
-
- # Asserts that path and options match both ways; in other words, the URL generated from
- # options is the same as path, and also that the options recognized from path are the same as options
- def assert_routing(path, options, defaults={}, extras={}, message=nil)
- assert_recognizes(options, path, extras, message)
-
- controller, default_controller = options[:controller], defaults[:controller]
- if controller && controller.include?(?/) && default_controller && default_controller.include?(?/)
- options[:controller] = "/#{controller}"
- end
-
- assert_generates(path, options, defaults, extras, message)
- end
-
- private
- def recognized_request_for(path, request_method = nil)
- path = "/#{path}" unless path.first == '/'
-
- # Assume given controller
- request = ActionController::TestRequest.new({}, {}, nil)
- request.env["REQUEST_METHOD"] = request_method.to_s.upcase if request_method
- request.path = path
-
- ActionController::Routing::Routes.recognize(request)
- request
- end
- end
- end
-end \ No newline at end of file