- ##
- # check that the changeset download for a changeset with a redacted
- # element in it doesn't contain that element.
- def test_diff_download_redacted
- changeset = create(:changeset)
- node = create(:node, :with_history, :version => 2, :changeset => changeset)
- node_v1 = node.old_nodes.find_by(:version => 1)
- node_v1.redact!(create(:redaction))
-
- get changeset_download_path(changeset)
- assert_response :success
-
- assert_select "osmChange", 1
- # this changeset contains the node in versions 1 & 2, but 1 should
- # be hidden.
- assert_select "osmChange node[id='#{node.id}']", 1
- assert_select "osmChange node[id='#{node.id}'][version='1']", 0
- end
-
- ##
- # test subscribe success
- def test_subscribe_success
- auth_header = bearer_authorization_header
- changeset = create(:changeset, :closed)
-
- assert_difference "changeset.subscribers.count", 1 do
- post api_changeset_subscribe_path(changeset), :headers => auth_header
- end
- assert_response :success
-
- # not closed changeset
- changeset = create(:changeset)
- assert_difference "changeset.subscribers.count", 1 do
- post api_changeset_subscribe_path(changeset), :headers => auth_header
- end
- assert_response :success
- end
-
- ##
- # test subscribe fail
- def test_subscribe_fail
- user = create(:user)
-
- # unauthorized
- changeset = create(:changeset, :closed)
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_subscribe_path(changeset)
- end
- assert_response :unauthorized
-
- auth_header = bearer_authorization_header user
-
- # bad changeset id
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_subscribe_path(999111), :headers => auth_header
- end
- assert_response :not_found
-
- # trying to subscribe when already subscribed
- changeset = create(:changeset, :closed)
- changeset.subscribers.push(user)
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_subscribe_path(changeset), :headers => auth_header
- end
- assert_response :conflict
- end
-
- ##
- # test unsubscribe success
- def test_unsubscribe_success
- user = create(:user)
- auth_header = bearer_authorization_header user
- changeset = create(:changeset, :closed)
- changeset.subscribers.push(user)
-
- assert_difference "changeset.subscribers.count", -1 do
- post api_changeset_unsubscribe_path(changeset), :headers => auth_header
- end
- assert_response :success
-
- # not closed changeset
- changeset = create(:changeset)
- changeset.subscribers.push(user)
-
- assert_difference "changeset.subscribers.count", -1 do
- post api_changeset_unsubscribe_path(changeset), :headers => auth_header
- end
- assert_response :success
- end
-
- ##
- # test unsubscribe fail
- def test_unsubscribe_fail
- # unauthorized
- changeset = create(:changeset, :closed)
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_unsubscribe_path(changeset)
- end
- assert_response :unauthorized
-
- auth_header = bearer_authorization_header
-
- # bad changeset id
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_unsubscribe_path(999111), :headers => auth_header
- end
- assert_response :not_found
-
- # trying to unsubscribe when not subscribed
- changeset = create(:changeset, :closed)
- assert_no_difference "changeset.subscribers.count" do
- post api_changeset_unsubscribe_path(changeset), :headers => auth_header
- end
- assert_response :not_found
- end
-