X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/04dbf32b73f38adec4d1209bbde87510f279fbe7..c2447e5ba1efb157296f968783b9575291b1e48b:/test/functional/relation_controller_test.rb
diff --git a/test/functional/relation_controller_test.rb b/test/functional/relation_controller_test.rb
index 10762f48d..1f2640d46 100644
--- a/test/functional/relation_controller_test.rb
+++ b/test/functional/relation_controller_test.rb
@@ -4,6 +4,48 @@ require 'relation_controller'
class RelationControllerTest < ActionController::TestCase
api_fixtures
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/relation/create", :method => :put },
+ { :controller => "relation", :action => "create" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1/full", :method => :get },
+ { :controller => "relation", :action => "full", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1", :method => :get },
+ { :controller => "relation", :action => "read", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1", :method => :put },
+ { :controller => "relation", :action => "update", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1", :method => :delete },
+ { :controller => "relation", :action => "delete", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relations", :method => :get },
+ { :controller => "relation", :action => "relations" }
+ )
+
+ assert_routing(
+ { :path => "/api/0.6/node/1/relations", :method => :get },
+ { :controller => "relation", :action => "relations_for_node", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/way/1/relations", :method => :get },
+ { :controller => "relation", :action => "relations_for_way", :id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1/relations", :method => :get },
+ { :controller => "relation", :action => "relations_for_relation", :id => "1" }
+ )
+ end
+
# -------------------------------------
# Test reading relations.
# -------------------------------------
@@ -433,10 +475,10 @@ class RelationControllerTest < ActionController::TestCase
assert_response :bad_request
# try to delete without specifying a changeset
- content ""
+ content ""
delete :delete, :id => current_relations(:visible_relation).id
assert_response :bad_request
- assert_match(/You are missing the required changeset in the relation/, @response.body)
+ assert_match(/Changeset id is missing/, @response.body)
# try to delete with an invalid (closed) changeset
content update_changeset(current_relations(:visible_relation).to_xml,
@@ -506,7 +548,7 @@ class RelationControllerTest < ActionController::TestCase
def test_tag_modify_bounding_box
# in current fixtures, relation 5 contains nodes 3 and 5 (node 3
# indirectly via way 3), so the bbox should be [3,3,5,5].
- check_changeset_modify([3,3,5,5]) do |changeset_id|
+ check_changeset_modify(BoundingBox.new(3,3,5,5)) do |changeset_id|
# add a tag to an existing relation
relation_xml = current_relations(:visible_relation).to_xml
relation_element = relation_xml.find("//osm/relation").first
@@ -536,7 +578,7 @@ class RelationControllerTest < ActionController::TestCase
current_ways(:used_way),
current_ways(:way_with_versions)
].each_with_index do |element, version|
- bbox = element.bbox.collect { |x| x / SCALE }
+ bbox = element.bbox.to_unscaled
check_changeset_modify(bbox) do |changeset_id|
relation_xml = Relation.find(relation_id).to_xml
relation_element = relation_xml.find("//osm/relation").first
@@ -566,7 +608,7 @@ class RelationControllerTest < ActionController::TestCase
# remove a member from a relation and check the bounding box is
# only that element.
def test_remove_member_bounding_box
- check_changeset_modify([5,5,5,5]) do |changeset_id|
+ check_changeset_modify(BoundingBox.new(5,5,5,5)) do |changeset_id|
# remove node 5 (5,5) from an existing relation
relation_xml = current_relations(:visible_relation).to_xml
relation_xml.
@@ -769,10 +811,10 @@ OSM
assert_response :success, "can't re-read changeset for modify test"
assert_select "osm>changeset", 1, "Changeset element doesn't exist in #{@response.body}"
assert_select "osm>changeset[id=#{changeset_id}]", 1, "Changeset id=#{changeset_id} doesn't exist in #{@response.body}"
- assert_select "osm>changeset[min_lon=#{bbox[0].to_f}]", 1, "Changeset min_lon wrong in #{@response.body}"
- assert_select "osm>changeset[min_lat=#{bbox[1].to_f}]", 1, "Changeset min_lat wrong in #{@response.body}"
- assert_select "osm>changeset[max_lon=#{bbox[2].to_f}]", 1, "Changeset max_lon wrong in #{@response.body}"
- assert_select "osm>changeset[max_lat=#{bbox[3].to_f}]", 1, "Changeset max_lat wrong in #{@response.body}"
+ assert_select "osm>changeset[min_lon=#{bbox.min_lon}]", 1, "Changeset min_lon wrong in #{@response.body}"
+ assert_select "osm>changeset[min_lat=#{bbox.min_lat}]", 1, "Changeset min_lat wrong in #{@response.body}"
+ assert_select "osm>changeset[max_lon=#{bbox.max_lon}]", 1, "Changeset max_lon wrong in #{@response.body}"
+ assert_select "osm>changeset[max_lat=#{bbox.max_lat}]", 1, "Changeset max_lat wrong in #{@response.body}"
end
end