diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 20:46:49 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 20:46:49 +0000 |
commit | 5130fc84c602001d31454a5631ee7b354d197663 (patch) | |
tree | 8cec1213c1c5013e1f42f24f6c5f3bb24c5ba5c9 /actionpack/test/controller | |
parent | 01e389c965af85901ee8ea77fe099fd3081e07ea (diff) | |
download | rails-5130fc84c602001d31454a5631ee7b354d197663.tar.gz rails-5130fc84c602001d31454a5631ee7b354d197663.tar.bz2 rails-5130fc84c602001d31454a5631ee7b354d197663.zip |
Remove duplicate routes from mapped resources (closes #5712) [eigentone@gmail.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4669 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/resources_test.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/actionpack/test/controller/resources_test.rb b/actionpack/test/controller/resources_test.rb index 845f8878f2..7e0299e834 100644 --- a/actionpack/test/controller/resources_test.rb +++ b/actionpack/test/controller/resources_test.rb @@ -133,6 +133,18 @@ class ResourcesTest < Test::Unit::TestCase :options => { :thread_id => '1', :message_id => '2' } end end + + def test_restful_routes_dont_generate_duplicates + with_restful_routing :messages do + routes = ActionController::Routing::Routes.routes + routes.each do |route| + routes.each do |r| + next if route === r # skip the comparison instance + assert distinct_routes?(route, r), "Duplicate Route: #{route}" + end + end + end + end protected def with_restful_routing(*args) @@ -212,4 +224,14 @@ class ResourcesTest < Test::Unit::TestCase "#{method} not in #{action_method} methods: #{resource.send("#{action_method}_methods")[method].inspect}" end end + + def distinct_routes? (r1, r2) + if r1.conditions == r2.conditions and r1.requirements == r2.requirements then + if r1.segments.collect(&:to_s) == r2.segments.collect(&:to_s) then + return false + end + end + true + end + end |