aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorMarcos Arias <markus@agil-e.com>2008-05-05 09:53:30 +0200
committerMichael Koziarski <michael@koziarski.com>2008-05-06 21:48:07 +1200
commit2c39836dc3c06813fce031d1bb390149b53ebd1c (patch)
tree84a6e5a1f873ed3eedebc5722890a4a7adabbf41 /actionpack/test
parent8ded457b1b31b157d6fe89b553749579e5ac4a27 (diff)
downloadrails-2c39836dc3c06813fce031d1bb390149b53ebd1c.tar.gz
rails-2c39836dc3c06813fce031d1bb390149b53ebd1c.tar.bz2
rails-2c39836dc3c06813fce031d1bb390149b53ebd1c.zip
Refactored and fixed Resources.map_member_actions to make use of custom ActionController::Base.resources_path_names when the option :path_names is not directly specified. Added a specific test for this functionality and fixed assert_restful_routes_for test helper to make use of ActionController::Base.resources_path_names instead of just "new" or "edit".
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#111 state:resolved]
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/resources_test.rb30
1 files changed, 26 insertions, 4 deletions
diff --git a/actionpack/test/controller/resources_test.rb b/actionpack/test/controller/resources_test.rb
index b138cee29f..0d089d0f23 100644
--- a/actionpack/test/controller/resources_test.rb
+++ b/actionpack/test/controller/resources_test.rb
@@ -226,6 +226,28 @@ class ResourcesTest < Test::Unit::TestCase
end
end
+ def test_member_when_changed_default_restful_actions_and_path_names_not_specified
+ default_path_names = ActionController::Base.resources_path_names
+ ActionController::Base.resources_path_names = {:new => 'nuevo', :edit => 'editar'}
+
+ with_restful_routing :messages do
+ new_options = { :action => 'new', :controller => 'messages' }
+ new_path = "/messages/nuevo"
+ edit_options = { :action => 'edit', :id => '1', :controller => 'messages' }
+ edit_path = "/messages/1/editar"
+
+ assert_restful_routes_for :messages do |options|
+ assert_recognizes(options.merge(new_options), :path => new_path, :method => :get)
+ end
+
+ assert_restful_routes_for :messages do |options|
+ assert_recognizes(options.merge(edit_options), :path => edit_path, :method => :get)
+ end
+ end
+ ensure
+ ActionController::Base.resources_path_names = default_path_names
+ end
+
def test_with_two_member_actions_with_same_method
[:put, :post].each do |method|
with_restful_routing :messages, :member => { :mark => method, :unmark => method } do
@@ -691,11 +713,11 @@ class ResourcesTest < Test::Unit::TestCase
options[:options] ||= {}
options[:options][:controller] = options[:controller] || controller_name.to_s
- new_action = "new"
- edit_action = "edit"
+ new_action = ActionController::Base.resources_path_names[:new] || "new"
+ edit_action = ActionController::Base.resources_path_names[:edit] || "edit"
if options[:path_names]
- new_action = options[:path_names][:new] || "new"
- edit_action = options[:path_names][:edit] || "edit"
+ new_action = options[:path_names][:new] if options[:path_names][:new]
+ edit_action = options[:path_names][:edit] if options[:path_names][:edit]
end
collection_path = "/#{options[:path_prefix]}#{options[:as] || controller_name}"