]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/amf_controller_test.rb
Potlatch 1.0
[rails.git] / test / functional / amf_controller_test.rb
index 08f3effe9c9f84fc48ba4f66d42f2683a78e8b9d..06aa3ad5c2e40128dd4b51670a3cfaac1809f7d3 100644 (file)
@@ -5,10 +5,6 @@ include Potlatch
 class AmfControllerTest < ActionController::TestCase
   api_fixtures
 
-  # this should be what AMF controller returns when the bbox of a request
-  # is invalid or too large.
-  BOUNDARY_ERROR = [-2,"Sorry - I can't get the map for that area."]
-
   def test_getway
     # check a visible way
     id = current_ways(:visible_way).id
@@ -99,7 +95,7 @@ class AmfControllerTest < ActionController::TestCase
   def test_whichways_toobig
     bbox = [-0.1,-0.1,1.1,1.1]
     check_bboxes_are_bad [bbox] do |map,bbox|
-      assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error."
+      assert_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm"
     end
   end
 
@@ -111,7 +107,7 @@ class AmfControllerTest < ActionController::TestCase
   def test_whichways_badlat
     bboxes = [[0,0.1,0.1,0], [-0.1,80,0.1,70], [0.24,54.35,0.25,54.33]]
     check_bboxes_are_bad bboxes do |map, bbox|
-      assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error #{bbox.inspect}."
+      assert_boundary_error map, " The server said: The minimum latitude must be less than the maximum latitude, but it wasn't", bbox.inspect
     end
   end
 
@@ -122,7 +118,7 @@ class AmfControllerTest < ActionController::TestCase
   def test_whichways_badlon
     bboxes = [[80,-0.1,70,0.1], [54.35,0.24,54.33,0.25]]
     check_bboxes_are_bad bboxes do |map, bbox|
-      assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error #{bbox.inspect}."
+      assert_boundary_error map, " The server said: The minimum longitude must be less than the maximum longitude, but it wasn't", bbox.inspect
     end
   end
 
@@ -157,7 +153,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_parse_response 
 
     map = amf_result "/1"
-    assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error."
+    assert_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm"
   end
 
   def test_getrelation
@@ -329,7 +325,8 @@ class AmfControllerTest < ActionController::TestCase
   # AMF Write tests
   def test_putpoi_update_valid
     nd = current_nodes(:visible_node)
-    amf_content "putpoi", "/1", ["test@openstreetmap.org:test", nd.changeset_id, nd.version, nd.id, nd.lon, nd.lat, nd.tags, nd.visible]
+    cs_id = changesets(:public_user_first_change).id
+    amf_content "putpoi", "/1", ["test@example.com:test", cs_id, nd.version, nd.id, nd.lon, nd.lat, nd.tags, nd.visible]
     post :amf_write
     assert_response :success
     amf_parse_response
@@ -343,7 +340,7 @@ class AmfControllerTest < ActionController::TestCase
     # Now try to update again, with a different lat/lon, using the updated version number
     lat = nd.lat+0.1
     lon = nd.lon-0.1
-    amf_content "putpoi", "/2", ["test@openstreetmap.org:test", nd.changeset_id, nd.version+1, nd.id, lon, lat, nd.tags, nd.visible]
+    amf_content "putpoi", "/2", ["test@example.com:test", cs_id, nd.version+1, nd.id, lon, lat, nd.tags, nd.visible]
     post :amf_write
     assert_response :success
     amf_parse_response
@@ -364,9 +361,9 @@ class AmfControllerTest < ActionController::TestCase
     lat = rand(100)-50 + rand
     lon = rand(100)-50 + rand
     # normal user has a changeset open
-    changeset = changesets(:normal_user_first_change)
+    changeset = changesets(:public_user_first_change)
     
-    amf_content "putpoi", "/1", ["test@openstreetmap.org:test", changeset.id, nil, nil, lon, lat, {}, nil]
+    amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, {}, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
@@ -403,9 +400,9 @@ class AmfControllerTest < ActionController::TestCase
     lat = rand(100)-50 + rand
     lon = rand(100)-50 + rand
     # normal user has a changeset open
-    changeset = changesets(:normal_user_first_change)
+    changeset = changesets(:public_user_first_change)
     
-    amf_content "putpoi", "/2", ["test@openstreetmap.org:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil]
+    amf_content "putpoi", "/2", ["test@example.com:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
@@ -532,4 +529,11 @@ class AmfControllerTest < ActionController::TestCase
       yield map, bbox
     end
   end
+  
+  # this should be what AMF controller returns when the bbox of a request
+  # is invalid or too large.
+  def assert_boundary_error(map, msg=nil, error_hint=nil)
+    expected_map = [-2, "Sorry - I can't get the map for that area.#{msg}"]
+    assert_equal expected_map, map, "AMF controller should have returned an error. (#{error_hint})"
+  end
 end