From: Tom Hughes Date: Sun, 1 Dec 2013 19:59:57 +0000 (+0000) Subject: Preserve the bounding box when redirecting history URLs X-Git-Tag: live~4602 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/61bb31ebdddc9e7c317a1c6784a68874d5a0ef80 Preserve the bounding box when redirecting history URLs Using the options style for the redirect seems to cause parameters to be preserved, which the path style of redirect does not. --- diff --git a/config/routes.rb b/config/routes.rb index bae002b7c..d110472bf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -117,21 +117,21 @@ OpenStreetMap::Application.routes.draw do match '/history/friends' => 'changeset#list', :via => :get, :friends => true, :as => "friend_changesets" match '/history/nearby' => 'changeset#list', :via => :get, :nearby => true, :as => "nearby_changesets" - get '/browse/way/:id', :to => redirect('/way/%{id}') - get '/browse/way/:id/history', :to => redirect('/way/%{id}/history') - get '/browse/node/:id', :to => redirect('/node/%{id}') - get '/browse/node/:id/history', :to => redirect('/node/%{id}/history') - get '/browse/relation/:id', :to => redirect('/relation/%{id}') - get '/browse/relation/:id/history', :to => redirect('/relation/%{id}/history') - get '/browse/changeset/:id', :to => redirect('/changeset/%{id}') - get '/browse/note/:id', :to => redirect('/note/%{id}') - get '/user/:display_name/edits', :to => redirect('/user/%{display_name}/history') - get '/user/:display_name/edits/feed', :to => redirect('/user/%{display_name}/history/feed') - get '/browse/friends', :to => redirect('/history/friends') - get '/browse/nearby', :to => redirect('/history/nearby') - get '/browse/changesets/feed', :to => redirect('/history/feed') - get '/browse/changesets', :to => redirect('/history') - get '/browse', :to => redirect('/history') + get '/browse/way/:id', :to => redirect(:path => '/way/%{id}') + get '/browse/way/:id/history', :to => redirect(:path => '/way/%{id}/history') + get '/browse/node/:id', :to => redirect(:path => '/node/%{id}') + get '/browse/node/:id/history', :to => redirect(:path => '/node/%{id}/history') + get '/browse/relation/:id', :to => redirect(:path => '/relation/%{id}') + get '/browse/relation/:id/history', :to => redirect(:path => '/relation/%{id}/history') + get '/browse/changeset/:id', :to => redirect(:path => '/changeset/%{id}') + get '/browse/note/:id', :to => redirect(:path => '/note/%{id}') + get '/user/:display_name/edits', :to => redirect(:path => '/user/%{display_name}/history') + get '/user/:display_name/edits/feed', :to => redirect(:path => '/user/%{display_name}/history/feed') + get '/browse/friends', :to => redirect(:path => '/history/friends') + get '/browse/nearby', :to => redirect(:path => '/history/nearby') + get '/browse/changesets/feed', :to => redirect(:path => '/history/feed') + get '/browse/changesets', :to => redirect(:path => '/history') + get '/browse', :to => redirect(:path => '/history') # web site root :to => 'site#index', :via => [:get, :post] diff --git a/test/integration/redirect_test.rb b/test/integration/redirect_test.rb index db28032f1..5a9ba17ec 100644 --- a/test/integration/redirect_test.rb +++ b/test/integration/redirect_test.rb @@ -16,6 +16,10 @@ class RedirectTest < ActionDispatch::IntegrationTest assert_response :redirect assert_redirected_to "/history" + get "/browse/changesets?bbox=-80.54%2C40.358%2C-79.526%2C40.779" + assert_response :redirect + assert_redirected_to "/history?bbox=-80.54%2C40.358%2C-79.526%2C40.779" + get "/browse/friends" assert_response :redirect assert_redirected_to "/history/friends" @@ -34,6 +38,10 @@ class RedirectTest < ActionDispatch::IntegrationTest assert_response :redirect assert_redirected_to "/history/feed" + get "/browse/changesets/feed?bbox=-80.54%2C40.358%2C-79.526%2C40.779" + assert_response :redirect + assert_redirected_to "/history/feed?bbox=-80.54%2C40.358%2C-79.526%2C40.779" + get "/user/name/edits/feed" assert_response :redirect assert_redirected_to "/user/name/history/feed"