]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/way_controller_test.rb
Some comment about where to add code to get some more of the functional changesets...
[rails.git] / test / functional / way_controller_test.rb
index afe9e86528c24a110128469661129143f0f1f7ba..b4f4599a407e1857b144e54bee4df7c2313b8281 100644 (file)
@@ -37,6 +37,34 @@ class WayControllerTest < Test::Unit::TestCase
     # check chat a non-existent way is not returned
     get :read, :id => 0
     assert_response :not_found
+
+    # check the "ways for node" mode
+    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
+    # 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
+    # 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
 
   # -------------------------------------
@@ -48,8 +76,10 @@ 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 id='#{nid1}'/><nd id='#{nid2}'/><tag k='test' v='yes' /></way></osm>"
+    content "<osm><way><nd ref='#{nid1}'/><nd ref='#{nid2}'/><tag k='test' v='yes' /></way></osm>"
     put :create
     # hope for success
     assert_response :success, 
@@ -80,7 +110,7 @@ class WayControllerTest < Test::Unit::TestCase
     basic_authorization "test@openstreetmap.org", "test"
 
     # create a way with non-existing node
-    content "<osm><way><nd id='0'/><tag k='test' v='yes' /></way></osm>"
+    content "<osm><way><nd ref='0'/><tag k='test' v='yes' /></way></osm>"
     put :create
     # expect failure
     assert_response :precondition_failed,