X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c1b5ae0aa08be555588de8098b5ea8319f4c7925..cbf6b394644e5eff071ecab3cae3f17842fd3631:/test/controllers/browse_controller_test.rb?ds=sidebyside diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb index e74345f6a..fcdd7c752 100644 --- a/test/controllers/browse_controller_test.rb +++ b/test/controllers/browse_controller_test.rb @@ -166,6 +166,21 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest assert_select ".browse-section.browse-node .longitude", 0 end + def test_redacted_node_unredacted_history + session_for(create(:moderator_user)) + node = create(:node, :with_history, :deleted, :version => 2) + node_v1 = node.old_nodes.find_by(:version => 1) + node_v1.redact!(create(:redaction)) + + get node_history_path(:id => node, :params => { :show_redactions => true }) + assert_response :success + assert_template "browse/history" + + assert_select ".browse-section", 2 + assert_select ".browse-section.browse-redacted", 0 + assert_select ".browse-section.browse-node", 2 + end + def test_redacted_way_history way = create(:way, :with_history, :version => 4) way_v1 = way.old_ways.find_by(:version => 1) @@ -184,6 +199,23 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest assert_select ".browse-section.browse-way", 2 end + def test_redacted_way_unredacted_history + session_for(create(:moderator_user)) + way = create(:way, :with_history, :version => 4) + way_v1 = way.old_ways.find_by(:version => 1) + way_v1.redact!(create(:redaction)) + way_v3 = way.old_ways.find_by(:version => 3) + way_v3.redact!(create(:redaction)) + + get way_history_path(:id => way, :params => { :show_redactions => true }) + assert_response :success + assert_template "browse/history" + + assert_select ".browse-section", 4 + assert_select ".browse-section.browse-redacted", 0 + assert_select ".browse-section.browse-way", 4 + end + def test_redacted_relation_history relation = create(:relation, :with_history, :version => 4) relation_v1 = relation.old_relations.find_by(:version => 1) @@ -202,9 +234,107 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest assert_select ".browse-section.browse-relation", 2 end + def test_redacted_relation_unredacted_history + session_for(create(:moderator_user)) + relation = create(:relation, :with_history, :version => 4) + relation_v1 = relation.old_relations.find_by(:version => 1) + relation_v1.redact!(create(:redaction)) + relation_v3 = relation.old_relations.find_by(:version => 3) + relation_v3.redact!(create(:redaction)) + + get relation_history_path(:id => relation, :params => { :show_redactions => true }) + assert_response :success + assert_template "browse/history" + + assert_select ".browse-section", 4 + assert_select ".browse-section.browse-redacted", 0 + assert_select ".browse-section.browse-relation", 4 + end + def test_query get query_path assert_response :success assert_template "browse/query" end + + def test_anonymous_user_feature_page_secondary_actions + node = create(:node, :with_history) + get node_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 0 + assert_select ".secondary-actions a", :text => "View History", :count => 1 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 0 + end + + def test_regular_user_feature_page_secondary_actions + session_for(create(:user)) + node = create(:node, :with_history) + get node_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 0 + assert_select ".secondary-actions a", :text => "View History", :count => 1 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 0 + end + + def test_moderator_user_feature_page_secondary_actions + session_for(create(:moderator_user)) + node = create(:node, :with_history) + get node_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 0 + assert_select ".secondary-actions a", :text => "View History", :count => 1 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 1 + end + + def test_anonymous_user_history_page_secondary_actions + node = create(:node, :with_history) + get node_history_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 1 + assert_select ".secondary-actions a", :text => "View History", :count => 0 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 0 + end + + def test_regular_user_history_page_secondary_actions + session_for(create(:user)) + node = create(:node, :with_history) + get node_history_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 1 + assert_select ".secondary-actions a", :text => "View History", :count => 0 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 0 + end + + def test_moderator_user_history_page_secondary_actions + session_for(create(:moderator_user)) + node = create(:node, :with_history) + get node_history_path(:id => node) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 1 + assert_select ".secondary-actions a", :text => "View History", :count => 0 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 1 + end + + def test_anonymous_user_unredacted_history_page_secondary_actions + node = create(:node, :with_history) + get node_history_path(:id => node, :params => { :show_redactions => true }) + assert_response :redirect + end + + def test_regular_user_unredacted_history_page_secondary_actions + session_for(create(:user)) + node = create(:node, :with_history) + get node_history_path(:id => node, :params => { :show_redactions => true }) + assert_response :redirect + end + + def test_moderator_user_unredacted_history_page_secondary_actions + session_for(create(:moderator_user)) + node = create(:node, :with_history) + get node_history_path(:id => node, :params => { :show_redactions => true }) + assert_response :success + assert_select ".secondary-actions a", :text => "View Details", :count => 1 + assert_select ".secondary-actions a", :text => "View History", :count => 1 + assert_select ".secondary-actions a", :text => "View Unredacted History", :count => 0 + end end