From 326bdb2d1adc7050644a95711dcdc4402a4b18ba Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sun, 4 May 2025 02:14:03 +0300 Subject: [PATCH] Move api changeset upload xml error test --- .../api/changesets/uploads_controller_test.rb | 26 +++++++++++++++++ .../api/changesets_controller_test.rb | 28 ------------------- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/test/controllers/api/changesets/uploads_controller_test.rb b/test/controllers/api/changesets/uploads_controller_test.rb index dac7dff37..93a538a3a 100644 --- a/test/controllers/api/changesets/uploads_controller_test.rb +++ b/test/controllers/api/changesets/uploads_controller_test.rb @@ -163,6 +163,32 @@ module Api end end + ## + # test that the X-Error-Format header works to request XML errors + def test_upload_xml_errors + changeset = create(:changeset) + node = create(:node) + create(:relation_member, :member => node) + + # try and delete a node that is in use + diff = XML::Document.new + diff.root = XML::Node.new "osmChange" + delete = XML::Node.new "delete" + diff.root << delete + delete << xml_node_for_node(node) + + auth_header = bearer_authorization_header changeset.user + error_header = error_format_header "xml" + + post api_changeset_upload_path(changeset), :params => diff.to_s, :headers => auth_header.merge(error_header) + + assert_response :success + + assert_dom "osmError[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 + assert_dom "osmError>status", 1 + assert_dom "osmError>message", 1 + end + # ------------------------------------- # Test creating elements. # ------------------------------------- diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index 691febb0e..5d6a48357 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -787,34 +787,6 @@ module Api assert_equal 0.3 * GeoRecord::SCALE, changeset.max_lat, "max_lat should be 0.3 degrees" end - ## - # test that the X-Error-Format header works to request XML errors - def test_upload_xml_errors - changeset = create(:changeset) - node = create(:node) - create(:relation_member, :member => node) - - auth_header = bearer_authorization_header changeset.user - - # try and delete a node that is in use - diff = XML::Document.new - diff.root = XML::Node.new "osmChange" - delete = XML::Node.new "delete" - diff.root << delete - delete << xml_node_for_node(node) - - # upload it - error_header = error_format_header "xml" - post api_changeset_upload_path(changeset), :params => diff.to_s, :headers => auth_header.merge(error_header) - assert_response :success, - "failed to return error in XML format" - - # check the returned payload - assert_select "osmError[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 - assert_select "osmError>status", 1 - assert_select "osmError>message", 1 - end - def test_upload_not_found changeset = create(:changeset) -- 2.39.5