+ api_fixtures
+
+ def test_getway
+ # check a visible way
+ id = current_ways(:visible_way).id
+ amf_content "getway", "/1", [id]
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+ assert_equal amf_result("/1")[0], id
+ end
+
+ def test_getway_invisible
+ # check an invisible way
+ id = current_ways(:invisible_way).id
+ amf_content "getway", "/1", [id]
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+ way = amf_result("/1")
+ assert_equal way[0], id
+ assert way[1].empty? and way[2].empty?
+ end
+
+ def test_getway_nonexistent
+ # check chat a non-existent way is not returned
+ amf_content "getway", "/1", [0]
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+ way = amf_result("/1")
+ assert_equal way[0], 0
+ assert way[1].empty? and way[2].empty?
+ end
+
+ def test_whichways
+ node = current_nodes(:used_node_1)
+ minlon = node.lon-0.1
+ minlat = node.lat-0.1
+ maxlon = node.lon+0.1
+ maxlat = node.lat+0.1
+ amf_content "whichways", "/1", [minlon, minlat, maxlon, maxlat]
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+
+ # check contents of message
+ map = amf_result "/1"
+ assert map[0].include?(current_ways(:used_way).id)
+ assert !map[0].include?(current_ways(:invisible_way).id)
+ end
+
+ def test_whichways_toobig
+ bbox = [-0.1,-0.1,1.1,1.1]
+ amf_content "whichways", "/1", bbox
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+
+ # FIXME: whichways needs to reject large bboxes and the test needs to check for this
+ map = amf_result "/1"
+ assert map[0].empty? and map[1].empty? and map[2].empty?
+ end
+
+ def test_whichways_badlat
+ bboxes = [[0,0.1,0.1,0], [-0.1,80,0.1,70], [0.24,54.34,0.25,54.33]]
+ bboxes.each do |bbox|
+ amf_content "whichways", "/1", bbox
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+
+ # FIXME: whichways needs to reject bboxes with illegal lats and the test needs to check for this
+ map = amf_result "/1"
+ assert map[0].empty? and map[1].empty? and map[2].empty?
+ end
+ end
+
+ def test_whichways_badlon
+ bboxes = [[80,-0.1,70,0.1], [54.34,0.24,54.33,0.25]]
+ bboxes.each do |bbox|
+ amf_content "whichways", "/1", bbox
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+
+ # FIXME: whichways needs to reject bboxes with illegal lons and the test needs to check for this
+ map = amf_result "/1"
+ assert map[0].empty? and map[1].empty? and map[2].empty?
+ end
+ end
+
+ def test_whichways_deleted
+ node = current_nodes(:used_node_1)
+ minlon = node.lon-0.1
+ minlat = node.lat-0.1
+ maxlon = node.lon+0.1
+ maxlat = node.lat+0.1
+ amf_content "whichways_deleted", "/1", [minlon, minlat, maxlon, maxlat]
+ post :amf_read
+ assert_response :success
+ amf_parse_response
+
+ # check contents of message
+ ways = amf_result "/1"
+ assert ways[0].include?(current_ways(:invisible_way).id)
+ assert !ways[0].include?(current_ways(:used_way).id)