From 61bb31ebdddc9e7c317a1c6784a68874d5a0ef80 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 1 Dec 2013 19:59:57 +0000 Subject: [PATCH 1/1] 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. --- config/routes.rb | 30 +++++++++++++++--------------- test/integration/redirect_test.rb | 8 ++++++++ 2 files changed, 23 insertions(+), 15 deletions(-) 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" -- 2.43.2