]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/way_controller_test.rb
additional consistency checks. making the error message for the number of nodes use...
[rails.git] / test / functional / way_controller_test.rb
index 933dfb542edc9be778923735378a9052439b0de0..558e45489cfa9a0f29095b9836136b92cbaae96a 100644 (file)
@@ -42,13 +42,29 @@ class WayControllerTest < Test::Unit::TestCase
     get :ways_for_node, :id => current_nodes(:used_node_1).id
     assert_response :success
     # FIXME check whether this contains the stuff we want!
-    print @response.body
+    #print @response.body
+    # Needs to be updated when changing fixtures
+    # The generator should probably be defined in the environment.rb file
+    # in the same place as the api version
+    assert_select "osm[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
+    assert_select "osm way", 3
+    assert_select "osm way nd", 3
+    assert_select "osm way tag", 3
 
     # check the "full" mode
     get :full, :id => current_ways(:visible_way).id
     assert_response :success
     # FIXME check whether this contains the stuff we want!
-    print @response.body
+    #print @response.body
+    # Check the way is correctly returned
+    way = current_ways(:visible_way)
+    assert_select "osm way[id=#{way.id}][version=#{way.version}][visible=#{way.visible}]", 1
+    assert_select "osm way nd[ref=#{way.way_nodes[0].node_id}]", 1
+    # Check that the node is correctly returned
+    nd = current_ways(:visible_way).nodes
+    assert_equal 1, nd.count
+    nda = nd[0]
+    assert_select "osm node[id=#{nda.id}][version=#{nda.version}][lat=#{nda.lat}][lon=#{nda.lon}]", 1 
   end
 
   # -------------------------------------
@@ -60,6 +76,8 @@ class WayControllerTest < Test::Unit::TestCase
     nid2 = current_nodes(:used_node_2).id
     basic_authorization "test@openstreetmap.org", "test"
 
+    # FIXME create a new changeset and use the id that is returned for the next step
+    
     # create a way with pre-existing nodes
     content "<osm><way><nd ref='#{nid1}'/><nd ref='#{nid2}'/><tag k='test' v='yes' /></way></osm>"
     put :create
@@ -91,6 +109,7 @@ class WayControllerTest < Test::Unit::TestCase
   def test_create_invalid
     basic_authorization "test@openstreetmap.org", "test"
 
+    # FIXME All of these will fail because they don't have a valid changeset 
     # create a way with non-existing node
     content "<osm><way><nd ref='0'/><tag k='test' v='yes' /></way></osm>"
     put :create
@@ -119,9 +138,16 @@ class WayControllerTest < Test::Unit::TestCase
     # now set auth
     basic_authorization("test@openstreetmap.org", "test");  
 
-    # this should work
+    # this shouldn't work as with the 0.6 api we need pay load to delete
     delete :delete, :id => current_ways(:visible_way).id
-    assert_response :success
+    assert_response :bad_request
+    
+    # Now try without having a changeset
+    content "<osm><way id='#{current_ways(:visible_way).id}'</osm>"
+    delete :delete, :id => current_ways(:visible_way).id
+    assert_response :bad_request
+    
+    # Now try and get a changeset
 
     # this won't work since the way is already deleted
     delete :delete, :id => current_ways(:invisible_way).id