X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/da2277505faa4b327df7bd0dd03aaf6317e77c11..9bb8dd739a4342441e97254bbf5073f9df022672:/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 de3ab3f75..a87f30258 100644 --- a/test/controllers/api/old_nodes_controller_test.rb +++ b/test/controllers/api/old_nodes_controller_test.rb @@ -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 * 180) - 90).to_s + xml_node["lon"] = precision((rand * 360) - 180).to_s with_controller(NodesController.new) do put api_node_path(:id => nodeid), :params => xml_doc.to_s, :headers => auth_header assert_response :forbidden, "Should have rejected node update" @@ -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 * 180) - 90).to_s + xml_node["lon"] = precision((rand * 360) - 180).to_s with_controller(NodesController.new) do put api_node_path(:id => nodeid), :params => xml_doc.to_s, :headers => auth_header assert_response :success @@ -187,6 +187,15 @@ module Api check_current_version(node_with_versions) end + # Ensure the lat/lon is formatted as a decimal e.g. not 4.0e-05 + def test_lat_lon_xml_format + old_node = create(:old_node, :latitude => (0.00004 * OldNode::SCALE).to_i, :longitude => (0.00008 * OldNode::SCALE).to_i) + + get api_node_history_path(:id => old_node.node_id, :version => old_node.version) + assert_match(/lat="0.0000400"/, response.body) + assert_match(/lon="0.0000800"/, response.body) + end + ## # test the redaction of an old version of a node, while not being # authorised. @@ -255,13 +264,15 @@ module Api get api_node_history_path(:id => node_v1.node_id) assert_response :success, "Redaction shouldn't have stopped history working." - assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history." + assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, + "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" get api_node_history_path(:id => node_v1.node_id), :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, "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history, even when logged in." + assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, + "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history, even when logged in." end ## @@ -285,10 +296,12 @@ module Api # and when accessed via history get api_node_history_path(:id => node_v3.node_id) assert_response :success, "Redaction shouldn't have stopped history working." - assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 0, "node #{node_v3.node_id} version #{node_v3.version} should not be present in the history for moderators when not passing flag." + assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 0, + "node #{node_v3.node_id} version #{node_v3.version} should not be present in the history for moderators when not passing flag." get api_node_history_path(:id => node_v3.node_id), :params => { :show_redactions => "true" }, :headers => auth_header assert_response :success, "Redaction shouldn't have stopped history working." - assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 1, "node #{node_v3.node_id} version #{node_v3.version} should still be present in the history for moderators when passing flag." + assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 1, + "node #{node_v3.node_id} version #{node_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 @@ -311,7 +324,8 @@ module Api # and when accessed via history get api_node_history_path(:id => node_v3.node_id), :headers => auth_header assert_response :success, "Redaction shouldn't have stopped history working." - assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 0, "redacted node #{node_v3.node_id} version #{node_v3.version} shouldn't be present in the history." + assert_select "osm node[id='#{node_v3.node_id}'][version='#{node_v3.version}']", 0, + "redacted node #{node_v3.node_id} version #{node_v3.version} shouldn't be present in the history." end ## @@ -363,7 +377,8 @@ module Api # and when accessed via history get api_node_history_path(:id => node_v1.node_id) assert_response :success, "Unredaction shouldn't have stopped history working." - 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." + 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" @@ -374,7 +389,8 @@ module Api # and when accessed via history get api_node_history_path(:id => node_v1.node_id) assert_response :success, "Unredaction shouldn't have stopped history working." - 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 normal users without passing flag." + 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 normal users without passing flag." end private @@ -420,7 +436,7 @@ module Api ("a".."z").to_a, ("A".."Z").to_a, ("0".."9").to_a].flatten - (1..16).map { |_i| letters[rand(letters.length)] }.join + (1..16).map { letters[rand(letters.length)] }.join end ##