diff --git a/app/views/browse/feature.html.erb b/app/views/browse/feature.html.erb
index 86b9020a2..3b7c64a8d 100644
--- a/app/views/browse/feature.html.erb
+++ b/app/views/browse/feature.html.erb
@@ -4,10 +4,19 @@
<%= render :partial => @type, :object => @feature %>
-
- <% if @feature.visible? %>
+<% if @feature.visible? %>
+
<%= link_to(t("browse.download_xml"), :controller => "api/#{@type.pluralize}", :action => :show) %>
+
+<% end %>
+
+ <% if @feature.version > 1 %>
+ <%= link_to "<< #{t('browse.version')} #1", :controller => "old_#{@type.pluralize}", :action => :show, :version => 1 %>
·
<% end %>
- <%= link_to(t("browse.view_history"), :action => "#{@type}_history") %>
+ <%= link_to t("browse.view_history"), :action => "#{@type}_history" %>
+ <% if @feature.version > 1 %>
+ ·
+ <%= link_to "#{t('browse.version')} ##{@feature.version} >>", :controller => "old_#{@type.pluralize}", :action => :show, :version => @feature.version %>
+ <% end %>
diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb
index ed71e83fc..7df246c57 100644
--- a/test/controllers/browse_controller_test.rb
+++ b/test/controllers/browse_controller_test.rb
@@ -44,7 +44,17 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
assert_select "h4", /^Version/ do
assert_select "a[href='#{old_relation_path relation, 1}']", :text => "1", :count => 1
end
- assert_select "a[href='#{api_relation_path relation}']", :count => 1
+ assert_select ".secondary-actions a[href='#{api_relation_path relation}']", :count => 1
+ assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 0
+ end
+
+ def test_multiple_version_relation_links
+ relation = create(:relation, :with_history, :version => 2)
+ browse_check :relation_path, relation.id, "browse/feature"
+ assert_select ".secondary-actions a[href='#{relation_history_path relation}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_relation_path relation, 1}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_relation_path relation, 2}']", :count => 1
end
def test_read_relation_history
@@ -61,7 +71,17 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
assert_select "h4", /^Version/ do
assert_select "a[href='#{old_way_path way, 1}']", :text => "1", :count => 1
end
- assert_select "a[href='#{api_way_path way}']", :count => 1
+ assert_select ".secondary-actions a[href='#{api_way_path way}']", :count => 1
+ assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 0
+ end
+
+ def test_multiple_version_way_links
+ way = create(:way, :with_history, :version => 2)
+ browse_check :way_path, way.id, "browse/feature"
+ assert_select ".secondary-actions a[href='#{way_history_path way}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_way_path way, 1}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_way_path way, 2}']", :count => 1
end
def test_read_way_history
@@ -78,7 +98,17 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
assert_select "h4", /^Version/ do
assert_select "a[href='#{old_node_path node, 1}']", :text => "1", :count => 1
end
- assert_select "a[href='#{api_node_path node}']", :count => 1
+ assert_select ".secondary-actions a[href='#{api_node_path node}']", :count => 1
+ assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 0
+ end
+
+ def test_multiple_version_node_links
+ node = create(:node, :with_history, :version => 2)
+ browse_check :node_path, node.id, "browse/feature"
+ assert_select ".secondary-actions a[href='#{node_history_path node}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_node_path node, 1}']", :count => 1
+ assert_select ".secondary-actions a[href='#{old_node_path node, 2}']", :count => 1
end
def test_read_deleted_node