- do_redact_redactable_relation(auth_header)
- assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
- end
-
- ##
- # test the redaction of an old version of a relation, while being
- # authorised as a moderator.
- def test_redact_relation_moderator
- relation = create(:relation, :with_history, :version => 4)
- relation_v3 = relation.old_relations.find_by(:version => 3)
-
- auth_header = bearer_authorization_header create(:moderator_user)
-
- do_redact_relation(relation_v3, create(:redaction), auth_header)
- assert_response :success, "should be OK to redact old version as moderator."
-
- # check moderator can still see the redacted data, when passing
- # the appropriate flag
- get api_relation_version_path(relation_v3.relation_id, relation_v3.version), :headers => auth_header
- assert_response :forbidden, "After redaction, relation should be gone for moderator, when flag not passed."
- get api_relation_version_path(relation_v3.relation_id, relation_v3.version, :show_redactions => "true"), :headers => auth_header
- assert_response :success, "After redaction, relation should not be gone for moderator, when flag passed."
-
- # and when accessed via history
- get api_relation_versions_path(relation), :headers => auth_header
- assert_response :success, "Redaction shouldn't have stopped history working."
- assert_select "osm relation[id='#{relation_v3.relation_id}'][version='#{relation_v3.version}']", 0,
- "relation #{relation_v3.relation_id} version #{relation_v3.version} should not be present in the history for moderators when not passing flag."
- get api_relation_versions_path(relation, :show_redactions => "true"), :headers => auth_header
- assert_response :success, "Redaction shouldn't have stopped history working."
- assert_select "osm relation[id='#{relation_v3.relation_id}'][version='#{relation_v3.version}']", 1,
- "relation #{relation_v3.relation_id} version #{relation_v3.version} should still be present in the history for moderators when passing flag."
- end
-
- # testing that if the moderator drops auth, he can't see the
- # redacted stuff any more.
- def test_redact_relation_is_redacted
- relation = create(:relation, :with_history, :version => 4)
- relation_v3 = relation.old_relations.find_by(:version => 3)
-
- auth_header = bearer_authorization_header create(:moderator_user)
-
- do_redact_relation(relation_v3, create(:redaction), auth_header)
- assert_response :success, "should be OK to redact old version as moderator."