Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/pull/5051'
Browse files Browse the repository at this point in the history
  • Loading branch information
tomhughes committed Aug 6, 2024
2 parents 0f50292 + 7556059 commit 4c00c57
Showing 1 changed file with 12 additions and 30 deletions.
42 changes: 12 additions & 30 deletions test/controllers/api/nodes_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,8 @@ def test_delete
# tests whether the API works and prevents incorrect use while trying
# to update nodes.
def test_update
invalid_attr_values = [["lat", 91.0], ["lat", -91.0], ["lon", 181.0], ["lon", -181.0]]

## First test with no user credentials
# try and update a node without authorisation
# first try to delete node without auth
Expand Down Expand Up @@ -334,21 +336,11 @@ def test_update
assert_require_public_data "update with changeset=0 should be forbidden, when data isn't public"

## try and submit invalid updates
xml = xml_attr_rewrite(xml_for_node(private_node), "lat", 91.0)
put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
assert_require_public_data "node at lat=91 should be forbidden, when data isn't public"

xml = xml_attr_rewrite(xml_for_node(private_node), "lat", -91.0)
put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
assert_require_public_data "node at lat=-91 should be forbidden, when data isn't public"

xml = xml_attr_rewrite(xml_for_node(private_node), "lon", 181.0)
put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
assert_require_public_data "node at lon=181 should be forbidden, when data isn't public"

xml = xml_attr_rewrite(xml_for_node(private_node), "lon", -181.0)
put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
assert_require_public_data "node at lon=-181 should be forbidden, when data isn't public"
invalid_attr_values.each do |name, value|
xml = xml_attr_rewrite(xml_for_node(private_node), name, value)
put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
assert_require_public_data "node at #{name}=#{value} should be forbidden, when data isn't public"
end

## finally, produce a good request which still won't work
xml = xml_for_node(private_node)
Expand Down Expand Up @@ -386,21 +378,11 @@ def test_update
assert_response :conflict, "update with changeset=0 should be rejected"

## try and submit invalid updates
xml = xml_attr_rewrite(xml_for_node(node), "lat", 91.0)
put api_node_path(node), :params => xml.to_s, :headers => auth_header
assert_response :bad_request, "node at lat=91 should be rejected"

xml = xml_attr_rewrite(xml_for_node(node), "lat", -91.0)
put api_node_path(node), :params => xml.to_s, :headers => auth_header
assert_response :bad_request, "node at lat=-91 should be rejected"

xml = xml_attr_rewrite(xml_for_node(node), "lon", 181.0)
put api_node_path(node), :params => xml.to_s, :headers => auth_header
assert_response :bad_request, "node at lon=181 should be rejected"

xml = xml_attr_rewrite(xml_for_node(node), "lon", -181.0)
put api_node_path(node), :params => xml.to_s, :headers => auth_header
assert_response :bad_request, "node at lon=-181 should be rejected"
invalid_attr_values.each do |name, value|
xml = xml_attr_rewrite(xml_for_node(node), name, value)
put api_node_path(node), :params => xml.to_s, :headers => auth_header
assert_response :bad_request, "node at #{name}=#{value} should be rejected"
end

## next, attack the versioning
current_node_version = node.version
Expand Down

0 comments on commit 4c00c57

Please sign in to comment.