Added tests for browsing object histories with redacted elements

This commit is contained in:
Matt Amos 2012-03-29 17:07:24 +01:00 committed by Tom Hughes
parent e01a309970
commit 9c098816e5
5 changed files with 63 additions and 0 deletions

View file

@ -1,3 +1,6 @@
<% if node_details.redacted? %>
<p><%= raw t 'browse.redacted.message', :type => t('browse.redacted.type.node'), :redaction_link => link_to(node_details.redaction) %></p>
<% else %>
<table class="browse_details" id="<%= node_details.version %>">
<%= render :partial => "common_details", :object => node_details %>
@ -22,3 +25,4 @@
<% end %>
</table>
<% end %>

View file

@ -1,3 +1,6 @@
<% if relation_details.redacted? %>
<p><%= raw t 'browse.redacted.message', :type => t('browse.redacted.type.relation'), :redaction_link => link_to(relation_details.redaction) %></p>
<% else %>
<table class="browse_details" id="<%= relation_details.version %>">
<%= render :partial => "common_details", :object => relation_details %>
@ -25,3 +28,4 @@
<% end %>
</table>
<% end %>

View file

@ -1,3 +1,6 @@
<% if way_details.redacted? %>
<p><%= raw t 'browse.redacted.message', :type => t('browse.redacted.type.way'), :redaction_link => link_to(way_details.redaction) %></p>
<% else %>
<table class="browse_details" id="<%= way_details.version %>">
<%= render :partial => "common_details", :object => way_details %>
@ -33,3 +36,4 @@
<% end %>
</table>
<% end %>

View file

@ -195,6 +195,12 @@ en:
paging_nav:
showing_page: "Showing page"
of: "of"
redacted:
message: "This #{type} version cannot be shown as it has been redacted. Please see %{redaction_link} for details."
type:
node: "node"
way: "way"
relation: "relation"
relation_details:
members: "Members:"
part_of: "Part of:"

View file

@ -73,6 +73,51 @@ class BrowseControllerTest < ActionController::TestCase
def test_read_changeset
browse_check 'changeset', changesets(:normal_user_first_change).id
end
##
# Methods to check redaction.
#
# note that these are presently highly reliant on the structure of the
# page for the selection tests, which doesn't work out particularly
# well if that structure changes. so... if you change the page layout
# then please make it more easily (and robustly) testable!
##
def test_redacted_node_history
get :node_history, :id => nodes(:redacted_node_redacted_version).node_id
assert_response :success
assert_template 'node_history'
# there are 2 revisions of the redacted node, but only one
# should be showing up here.
assert_select "body div[id=content] table[class=browse_details]", 1
assert_select "body div[id=content] table[class=browse_details][id=1]", 0
end
def test_redacted_way_history
get :way_history, :id => ways(:way_with_redacted_versions_v1).way_id
assert_response :success
assert_template 'way_history'
# there are 4 revisions of the redacted way, but only 2
# should be showing up here.
assert_select "body div[id=content] table[class=browse_details]", 2
# redacted revisions are 2 & 3
assert_select "body div[id=content] table[class=browse_details][id=2]", 0
assert_select "body div[id=content] table[class=browse_details][id=3]", 0
end
def test_redacted_relation_history
get :relation_history, :id => relations(:relation_with_redacted_versions_v1).relation_id
assert_response :success
assert_template 'relation_history'
# there are 4 revisions of the redacted relation, but only 2
# should be showing up here.
assert_select "body div[id=content] table[class=browse_details]", 2
# redacted revisions are 2 & 3
assert_select "body div[id=content] table[class=browse_details][id=2]", 0
assert_select "body div[id=content] table[class=browse_details][id=3]", 0
end
# This is a convenience method for most of the above checks
# First we check that when we don't have an id, it will correctly return a 404