X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/bf29550db840c97cafffbe1e836750bef6c7942d..d84d5c68dea2b39fc6f39c0f37847ae3822d157a:/test/functional/way_controller_test.rb diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index be4c41a39..0e6b3ea6a 100644 --- a/test/functional/way_controller_test.rb +++ b/test/functional/way_controller_test.rb @@ -4,14 +4,6 @@ require 'way_controller' class WayControllerTest < ActionController::TestCase api_fixtures - def basic_authorization(user, pass) - @request.env["HTTP_AUTHORIZATION"] = "Basic %s" % Base64.encode64("#{user}:#{pass}") - end - - def content(c) - @request.env["RAW_POST_DATA"] = c.to_s - end - # ------------------------------------- # Test reading ways. # ------------------------------------- @@ -219,6 +211,7 @@ class WayControllerTest < ActionController::TestCase put :update, :id => current_ways(:visible_way).id assert_response :bad_request, "adding a duplicate tag to a way should fail with 'bad request'" + assert_equal "Element way/#{current_ways(:visible_way).id} has duplicate tags with key #{current_way_tags(:t1).k}.", @response.body end ## @@ -243,16 +236,13 @@ class WayControllerTest < ActionController::TestCase put :update, :id => current_ways(:visible_way).id assert_response :bad_request, "adding new duplicate tags to a way should fail with 'bad request'" + assert_equal "Element way/#{current_ways(:visible_way).id} has duplicate tags with key i_am_a_duplicate.", @response.body end ## # Try adding a new duplicate tags to a way. # But be a bit subtle - use unicode decoding ambiguities to use different # binary strings which have the same decoding. - # - # NOTE: I'm not sure this test is working correctly, as a lot of the tag - # keys seem to come out as "addr��housenumber". It might be something to - # do with Ruby's unicode handling...? def test_invalid_duplicate_tags # setup auth basic_authorization(users(:normal_user).email, "test") @@ -260,26 +250,15 @@ class WayControllerTest < ActionController::TestCase # add the tag into the existing xml way_str = "" way_str << "" + way_str << "" + way_str << ""; - # all of these keys have the same unicode decoding, but are binary - # not equal. libxml should make these identical as it decodes the - # XML document... - [ "addr\xc0\xbahousenumber", - "addr\xe0\x80\xbahousenumber", - "addr\xf0\x80\x80\xbahousenumber" ].each do |key| - # copy the XML doc to add the tags - way_str_copy = way_str.clone - - # add all new tags to the way - way_str_copy << "" - way_str_copy << ""; - - # try and upload it - content way_str_copy - put :create - assert_response :bad_request, - "adding new duplicate tags to a way should fail with 'bad request'" - end + # try and upload it + content way_str + put :create + assert_response :bad_request, + "adding new duplicate tags to a way should fail with 'bad request'" + assert_equal "Element way/ has duplicate tags with key addr:housenumber.", @response.body end ##