X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/39963d8c70b6d810ebc396997651a895d1f75344..973d62a25ebf22bf80663a8b6996f0dbe7d5289f:/test/controllers/api/old_nodes_controller_test.rb diff --git a/test/controllers/api/old_nodes_controller_test.rb b/test/controllers/api/old_nodes_controller_test.rb index badc7301b..99c4dbb1b 100644 --- a/test/controllers/api/old_nodes_controller_test.rb +++ b/test/controllers/api/old_nodes_controller_test.rb @@ -40,15 +40,15 @@ module Api # FIXME: Move this test to being an integration test since it spans multiple controllers def test_version private_user = create(:user, :data_public => false) - private_node = create(:node, :with_history, :version => 4, :changeset => create(:changeset, :user => private_user)) + private_node = create(:node, :with_history, :version => 4, :lat => 0, :lon => 0, :changeset => create(:changeset, :user => private_user)) user = create(:user) - node = create(:node, :with_history, :version => 4, :changeset => create(:changeset, :user => user)) + node = create(:node, :with_history, :version => 4, :lat => 0, :lon => 0, :changeset => create(:changeset, :user => user)) create_list(:node_tag, 2, :node => node) # Ensure that the current tags are propagated to the history too propagate_tags(node, node.old_nodes.last) ## First try this with a non-public user - auth_header = basic_authorization_header private_user.email, "test" + auth_header = bearer_authorization_header private_user # setup a simple XML node xml_doc = xml_for_node(private_node) @@ -65,8 +65,8 @@ module Api # randomly move the node about 3.times do # move the node somewhere else - xml_node["lat"] = precision((rand * 180) - 90).to_s - xml_node["lon"] = precision((rand * 360) - 180).to_s + xml_node["lat"] = precision(rand - 0.5).to_s + xml_node["lon"] = precision(rand - 0.5).to_s with_controller(NodesController.new) do put api_node_path(nodeid), :params => xml_doc.to_s, :headers => auth_header assert_response :forbidden, "Should have rejected node update" @@ -95,7 +95,7 @@ module Api # probably should check that they didn't get written to the database ## Now do it with the public user - auth_header = basic_authorization_header user.email, "test" + auth_header = bearer_authorization_header user # setup a simple XML node @@ -113,8 +113,8 @@ module Api # randomly move the node about 3.times do # move the node somewhere else - xml_node["lat"] = precision((rand * 180) - 90).to_s - xml_node["lon"] = precision((rand * 360) - 180).to_s + xml_node["lat"] = precision(rand - 0.5).to_s + xml_node["lon"] = precision(rand - 0.5).to_s with_controller(NodesController.new) do put api_node_path(nodeid), :params => xml_doc.to_s, :headers => auth_header assert_response :success @@ -212,7 +212,7 @@ module Api # test the redaction of an old version of a node, while being # authorised as a normal user. def test_redact_node_normal_user - auth_header = basic_authorization_header create(:user).email, "test" + auth_header = bearer_authorization_header node = create(:node, :with_history, :version => 4) node_v3 = node.old_nodes.find_by(:version => 3) @@ -227,7 +227,7 @@ module Api # test that, even as moderator, the current version of a node # can't be redacted. def test_redact_node_current_version - auth_header = basic_authorization_header create(:moderator_user).email, "test" + auth_header = bearer_authorization_header create(:moderator_user) node = create(:node, :with_history, :version => 4) node_v4 = node.old_nodes.find_by(:version => 4) @@ -287,7 +287,7 @@ module Api assert_response :forbidden, "Redacted node shouldn't be visible via the version API." # not even to a logged-in user - auth_header = basic_authorization_header create(:user).email, "test" + auth_header = bearer_authorization_header get api_old_node_path(node_v1.node_id, node_v1.version), :headers => auth_header assert_response :forbidden, "Redacted node shouldn't be visible via the version API, even when logged in." end @@ -305,7 +305,7 @@ module Api "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history." # not even to a logged-in user - auth_header = basic_authorization_header create(:user).email, "test" + auth_header = bearer_authorization_header get api_node_history_path(node), :headers => auth_header assert_response :success, "Redaction shouldn't have stopped history working." assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, @@ -318,7 +318,7 @@ module Api def test_redact_node_moderator node = create(:node, :with_history, :version => 4) node_v3 = node.old_nodes.find_by(:version => 3) - auth_header = basic_authorization_header create(:moderator_user).email, "test" + auth_header = bearer_authorization_header create(:moderator_user) do_redact_node(node_v3, create(:redaction), auth_header) assert_response :success, "should be OK to redact old version as moderator." @@ -346,13 +346,13 @@ module Api def test_redact_node_is_redacted node = create(:node, :with_history, :version => 4) node_v3 = node.old_nodes.find_by(:version => 3) - auth_header = basic_authorization_header create(:moderator_user).email, "test" + auth_header = bearer_authorization_header create(:moderator_user) do_redact_node(node_v3, create(:redaction), auth_header) assert_response :success, "should be OK to redact old version as moderator." # re-auth as non-moderator - auth_header = basic_authorization_header create(:user).email, "test" + auth_header = bearer_authorization_header # check can't see the redacted data get api_old_node_path(node_v3.node_id, node_v3.version), :headers => auth_header @@ -386,7 +386,7 @@ module Api node_v1 = node.old_nodes.find_by(:version => 1) node_v1.redact!(create(:redaction)) - auth_header = basic_authorization_header user.email, "test" + auth_header = bearer_authorization_header user post node_version_redact_path(node_v1.node_id, node_v1.version), :headers => auth_header assert_response :forbidden, "should need to be moderator to unredact." @@ -401,7 +401,7 @@ module Api node_v1 = node.old_nodes.find_by(:version => 1) node_v1.redact!(create(:redaction)) - auth_header = basic_authorization_header moderator_user.email, "test" + auth_header = bearer_authorization_header moderator_user post node_version_redact_path(node_v1.node_id, node_v1.version), :headers => auth_header assert_response :success, "should be OK to unredact old version as moderator." @@ -417,7 +417,7 @@ module Api assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 1, "node #{node_v1.node_id} version #{node_v1.version} should now be present in the history for moderators without passing flag." - auth_header = basic_authorization_header create(:user).email, "test" + auth_header = bearer_authorization_header # check normal user can now see the redacted data get api_old_node_path(node_v1.node_id, node_v1.version), :headers => auth_header