Commit 06f644b6b62816857ace58ce472116f5d68f5b3f
1 parent
99802bbe
Exists in
staging
and in
42 other branches
[rails3] Fixed routes
*param is not like 'a/b/c' instead of ['a', 'b', 'c'], so those controllers will need to be changed
Showing
2 changed files
with
34 additions
and
35 deletions
Show diff stats
config/routes.rb
| ... | ... | @@ -23,13 +23,13 @@ Noosfero::Application.routes.draw do |
| 23 | 23 | |
| 24 | 24 | match 'site(/:action)', :controller => 'home' |
| 25 | 25 | |
| 26 | - match 'images/*stuff' => 'not_found#nothing' | |
| 27 | - match 'stylesheets/*stuff' => 'not_found#nothing' | |
| 28 | - match 'designs/*stuff' => 'not_found#nothing' | |
| 29 | - match 'articles/*stuff' => 'not_found#nothing' | |
| 30 | - match 'javascripts/*stuff' => 'not_found#nothing' | |
| 31 | - match 'thumbnails/*stuff' => 'not_found#nothing' | |
| 32 | - match 'user_themes/*stuff' => 'not_found#nothing' | |
| 26 | + match 'images(/*stuff)' => 'not_found#nothing' | |
| 27 | + match 'stylesheets(/*stuff)' => 'not_found#nothing' | |
| 28 | + match 'designs(/*stuff)' => 'not_found#nothing' | |
| 29 | + match 'articles(/*stuff)' => 'not_found#nothing' | |
| 30 | + match 'javascripts(/*stuff)' => 'not_found#nothing' | |
| 31 | + match 'thumbnails(/*stuff)' => 'not_found#nothing' | |
| 32 | + match 'user_themes(/*stuff)' => 'not_found#nothing' | |
| 33 | 33 | |
| 34 | 34 | # online documentation |
| 35 | 35 | match 'doc' => 'doc#index', :as => :doc |
| ... | ... | @@ -41,7 +41,7 @@ Noosfero::Application.routes.draw do |
| 41 | 41 | match 'account(/:action)', :controller => 'account' |
| 42 | 42 | |
| 43 | 43 | # enterprise registration |
| 44 | - match 'enterprise_registration/:action', :controller => 'enterprise_registration' | |
| 44 | + match 'enterprise_registration(/:action)', :controller => 'enterprise_registration' | |
| 45 | 45 | |
| 46 | 46 | # tags |
| 47 | 47 | match 'tag', :controller => 'search', :action => 'tags' |
| ... | ... | @@ -51,7 +51,7 @@ Noosfero::Application.routes.draw do |
| 51 | 51 | match 'cat/*category_path' => 'search#category_index', :as => :category |
| 52 | 52 | match 'assets/:asset(/*category_path)' => 'search#assets', :as => :assets |
| 53 | 53 | # search |
| 54 | - match 'search/:action(/*category_path)', :controller => 'search' | |
| 54 | + match 'search(/:action(/*category_path))', :controller => 'search' | |
| 55 | 55 | |
| 56 | 56 | # events |
| 57 | 57 | match 'profile/:profile/events_by_day', :controller => 'events', :action => 'events_by_day', :profile => /#{Noosfero.identifier_format}/ |
| ... | ... | @@ -77,33 +77,32 @@ Noosfero::Application.routes.draw do |
| 77 | 77 | match 'profile/:profile/search', :controller => 'profile_search', :action => 'index', :profile => /#{Noosfero.identifier_format}/ |
| 78 | 78 | |
| 79 | 79 | # public profile information |
| 80 | - match 'profile/:profile/:action/:id', :controller => 'profile', :action => 'index', :id => /[^\/]*/, :profile => /#{Noosfero.identifier_format}/ | |
| 80 | + match 'profile/:profile(/:action(/:id))', :controller => 'profile', :action => 'index', :id => /[^\/]*/, :profile => /#{Noosfero.identifier_format}/ | |
| 81 | 81 | |
| 82 | 82 | # contact |
| 83 | - match 'contact/:profile/:action/:id', :controller => 'contact', :action => 'index', :id => /.*/, :profile => /#{Noosfero.identifier_format}/ | |
| 83 | + match 'contact/:profile/:action(/:id)', :controller => 'contact', :action => 'index', :id => /.*/, :profile => /#{Noosfero.identifier_format}/ | |
| 84 | 84 | |
| 85 | 85 | # map balloon |
| 86 | 86 | match 'map_balloon/:action/:id', :controller => 'map_balloon', :id => /.*/ |
| 87 | 87 | |
| 88 | 88 | # chat |
| 89 | - match 'chat/:action/:id', :controller => 'chat' | |
| 90 | - match 'chat/:action', :controller => 'chat' | |
| 89 | + match 'chat(/:action(/:id))', :controller => 'chat' | |
| 91 | 90 | |
| 92 | 91 | ###################################################### |
| 93 | 92 | ## Controllers that are profile-specific (for profile admins ) |
| 94 | 93 | ###################################################### |
| 95 | 94 | # profile customization - "My profile" |
| 96 | 95 | match 'myprofile/:profile', :controller => 'profile_editor', :action => 'index', :profile => /#{Noosfero.identifier_format}/ |
| 97 | - match 'myprofile/:profile/:controller/:action/:id', :controller => Noosfero.pattern_for_controllers_in_directory('my_profile'), :profile => /#{Noosfero.identifier_format}/ | |
| 96 | + match 'myprofile/:profile/:controller(/:action(/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('my_profile'), :profile => /#{Noosfero.identifier_format}/ | |
| 98 | 97 | |
| 99 | 98 | |
| 100 | 99 | ###################################################### |
| 101 | 100 | ## Controllers that are used by environment admin |
| 102 | 101 | ###################################################### |
| 103 | 102 | # administrative tasks for a environment |
| 104 | - match 'admin', :controller => 'admin_panel' | |
| 105 | - match 'admin/:controller/:action.:format/:id', :controller => Noosfero.pattern_for_controllers_in_directory('admin') | |
| 106 | - match 'admin/:controller/:action/:id', :controller => Noosfero.pattern_for_controllers_in_directory('admin') | |
| 103 | + match 'admin', :controller => 'admin_panel', :action => :index | |
| 104 | + match 'admin/:controller(/:action((.:format)/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('admin') | |
| 105 | + match 'admin/:controller(/:action(/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('admin') | |
| 107 | 106 | |
| 108 | 107 | |
| 109 | 108 | ###################################################### |
| ... | ... | @@ -111,7 +110,7 @@ Noosfero::Application.routes.draw do |
| 111 | 110 | ###################################################### |
| 112 | 111 | # administrative tasks for a environment |
| 113 | 112 | match 'system', :controller => 'system' |
| 114 | - match 'system/:controller/:action/:id', :controller => Noosfero.pattern_for_controllers_in_directory('system') | |
| 113 | + match 'system/:controller(/:action(/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('system') | |
| 115 | 114 | |
| 116 | 115 | ###################################################### |
| 117 | 116 | # plugin routes | ... | ... |
test/integration/routing_test.rb
| 1 | -require "#{File.dirname(__FILE__)}/../test_helper" | |
| 1 | +require File.expand_path('../../test_helper', __FILE__) | |
| 2 | 2 | |
| 3 | 3 | class RoutingTest < ActionController::IntegrationTest |
| 4 | 4 | |
| ... | ... | @@ -74,14 +74,14 @@ class RoutingTest < ActionController::IntegrationTest |
| 74 | 74 | def test_content_viewer |
| 75 | 75 | |
| 76 | 76 | # profile root: |
| 77 | - assert_routing('/ze', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => []) | |
| 77 | + assert_routing('/ze', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze') | |
| 78 | 78 | |
| 79 | 79 | # some non-root page |
| 80 | - assert_routing('/ze/work/2007', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => ['work', "2007"]) | |
| 80 | + assert_routing('/ze/work/2007', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze', :page => 'work/2007') | |
| 81 | 81 | end |
| 82 | 82 | |
| 83 | 83 | def test_category_browser |
| 84 | - assert_routing('/cat/products/eletronics', :controller => 'search', :action => 'category_index', :category_path => [ 'products', 'eletronics']) | |
| 84 | + assert_routing('/cat/products/eletronics', :controller => 'search', :action => 'category_index', :category_path => 'products/eletronics') | |
| 85 | 85 | end |
| 86 | 86 | |
| 87 | 87 | #FIXME remove this if design_blocks is not going to be used; or uncomment otherwise; |
| ... | ... | @@ -127,19 +127,19 @@ class RoutingTest < ActionController::IntegrationTest |
| 127 | 127 | end |
| 128 | 128 | |
| 129 | 129 | def test_search_routing |
| 130 | - assert_routing('/search', :controller => 'search', :action => 'index', :category_path => []) | |
| 130 | + assert_routing('/search', :controller => 'search', :action => 'index') | |
| 131 | 131 | end |
| 132 | 132 | |
| 133 | 133 | def test_search_filter_routing |
| 134 | - assert_routing('/search/filter/a/b', :controller => 'search', :action => 'filter', :category_path => ['a','b']) | |
| 134 | + assert_routing('/search/filter/a/b', :controller => 'search', :action => 'filter', :category_path => 'a/b') | |
| 135 | 135 | end |
| 136 | 136 | |
| 137 | 137 | def test_assets_routing |
| 138 | - assert_routing('/assets/my-asset/a/b/c', :controller => 'search', :action => 'assets', :asset => 'my-asset', :category_path => ['a', 'b', 'c']) | |
| 138 | + assert_routing('/assets/my-asset/a/b/c', :controller => 'search', :action => 'assets', :asset => 'my-asset', :category_path => 'a/b/c') | |
| 139 | 139 | end |
| 140 | 140 | |
| 141 | 141 | def test_content_view_with_dot |
| 142 | - assert_routing('/ze.withdot', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze.withdot', :page => []) | |
| 142 | + assert_routing('/ze.withdot', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze.withdot') | |
| 143 | 143 | end |
| 144 | 144 | |
| 145 | 145 | def test_content_view_with_dash |
| ... | ... | @@ -147,11 +147,11 @@ class RoutingTest < ActionController::IntegrationTest |
| 147 | 147 | end |
| 148 | 148 | |
| 149 | 149 | def test_content_view_with_underscore |
| 150 | - assert_routing('/ze_with_underscore', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze_with_underscore', :page => []) | |
| 150 | + assert_routing('/ze_with_underscore', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze_with_underscore') | |
| 151 | 151 | end |
| 152 | 152 | |
| 153 | 153 | def test_content_view_with_tilde_routing |
| 154 | - assert_routing('/ze~withtilde', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze~withtilde', :page => []) | |
| 154 | + assert_routing('/ze~withtilde', :controller => 'content_viewer', :action => 'view_page', :profile => 'ze~withtilde') | |
| 155 | 155 | end |
| 156 | 156 | |
| 157 | 157 | def test_catalog_routing |
| ... | ... | @@ -229,31 +229,31 @@ class RoutingTest < ActionController::IntegrationTest |
| 229 | 229 | end |
| 230 | 230 | |
| 231 | 231 | def test_not_found_images_on_nothing |
| 232 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/images/aksdhf') | |
| 232 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/images/aksdhf') | |
| 233 | 233 | end |
| 234 | 234 | |
| 235 | 235 | def test_not_found_stylesheets_on_nothing |
| 236 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/stylesheets/aksdhf') | |
| 236 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/stylesheets/aksdhf') | |
| 237 | 237 | end |
| 238 | 238 | |
| 239 | 239 | def test_not_found_designs_on_nothing |
| 240 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/designs/aksdhf') | |
| 240 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/designs/aksdhf') | |
| 241 | 241 | end |
| 242 | 242 | |
| 243 | 243 | def test_not_found_articles_on_nothing |
| 244 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/articles/aksdhf') | |
| 244 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/articles/aksdhf') | |
| 245 | 245 | end |
| 246 | 246 | |
| 247 | 247 | def test_not_found_javascripts_on_nothing |
| 248 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/javascripts/aksdhf') | |
| 248 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/javascripts/aksdhf') | |
| 249 | 249 | end |
| 250 | 250 | |
| 251 | 251 | def test_not_found_thumbnails_on_nothing |
| 252 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/thumbnails/aksdhf') | |
| 252 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/thumbnails/aksdhf') | |
| 253 | 253 | end |
| 254 | 254 | |
| 255 | 255 | def test_not_found_user_themes_on_nothing |
| 256 | - assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => ['aksdhf']}, '/user_themes/aksdhf') | |
| 256 | + assert_recognizes({:controller => 'not_found', :action => 'nothing', :stuff => 'aksdhf'}, '/user_themes/aksdhf') | |
| 257 | 257 | end |
| 258 | 258 | |
| 259 | 259 | end | ... | ... |