parent
965fb0b3ae
commit
042ecee695
2 changed files with 71 additions and 12 deletions
|
@ -321,12 +321,12 @@ class AmfController < ApplicationController
|
|||
# Ideally we would do ":include => :nodes" here but if we do that
|
||||
# then rails only seems to return the first copy of a node when a
|
||||
# way includes a node more than once
|
||||
way = Way.where(:id => wayid).preload(:nodes => :node_tags).first
|
||||
way = Way.where(:id => wayid).first
|
||||
|
||||
# check case where way has been deleted or doesn't exist
|
||||
return [-4, 'way', wayid] if way.nil? or !way.visible
|
||||
|
||||
points = way.nodes.collect do |node|
|
||||
points = way.nodes.preload(:node_tags).collect do |node|
|
||||
nodetags=node.tags
|
||||
nodetags.delete('created_by')
|
||||
[node.lon, node.lat, node.id, nodetags, node.version]
|
||||
|
|
|
@ -26,8 +26,13 @@ class AmfControllerTest < ActionController::TestCase
|
|||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal way[0], 0
|
||||
assert_equal way[2], id
|
||||
assert_equal 0, way[0]
|
||||
assert_equal "", way[1]
|
||||
assert_equal id, way[2]
|
||||
assert_equal 1, way[3].length
|
||||
assert_equal 3, way[3][0][2]
|
||||
assert_equal 1, way[5]
|
||||
assert_equal 2, way[6]
|
||||
end
|
||||
|
||||
def test_getway_invisible
|
||||
|
@ -38,10 +43,64 @@ class AmfControllerTest < ActionController::TestCase
|
|||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal way[0], -4
|
||||
assert_equal way[1], "way"
|
||||
assert_equal way[2], id
|
||||
assert way[3].nil? and way[4].nil?
|
||||
assert_equal -4, way[0], -4
|
||||
assert_equal "way", way[1]
|
||||
assert_equal id, way[2]
|
||||
assert way[3].nil? and way[4].nil? and way[5].nil? and way[6].nil?
|
||||
end
|
||||
|
||||
def test_getway_with_versions
|
||||
# check a way with multiple versions
|
||||
id = current_ways(:way_with_versions).id
|
||||
amf_content "getway", "/1", [id]
|
||||
post :amf_read
|
||||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal 0, way[0]
|
||||
assert_equal "", way[1]
|
||||
assert_equal id, way[2]
|
||||
assert_equal 1, way[3].length
|
||||
assert_equal 15, way[3][0][2]
|
||||
assert_equal 4, way[5]
|
||||
assert_equal 2, way[6]
|
||||
end
|
||||
|
||||
def test_getway_with_duplicate_nodes
|
||||
# check a way with duplicate nodes
|
||||
id = current_ways(:way_with_duplicate_nodes).id
|
||||
amf_content "getway", "/1", [id]
|
||||
post :amf_read
|
||||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal 0, way[0]
|
||||
assert_equal "", way[1]
|
||||
assert_equal id, way[2]
|
||||
assert_equal 2, way[3].length
|
||||
assert_equal 4, way[3][0][2]
|
||||
assert_equal 4, way[3][1][2]
|
||||
assert_equal 1, way[5]
|
||||
assert_equal 2, way[6]
|
||||
end
|
||||
|
||||
def test_getway_with_multiple_nodes
|
||||
# check a way with multiple nodes
|
||||
id = current_ways(:way_with_multiple_nodes).id
|
||||
amf_content "getway", "/1", [id]
|
||||
post :amf_read
|
||||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal 0, way[0]
|
||||
assert_equal "", way[1]
|
||||
assert_equal id, way[2]
|
||||
assert_equal 3, way[3].length
|
||||
assert_equal 4, way[3][0][2]
|
||||
assert_equal 15, way[3][1][2]
|
||||
assert_equal 6, way[3][2][2]
|
||||
assert_equal 2, way[5]
|
||||
assert_equal 2, way[6]
|
||||
end
|
||||
|
||||
def test_getway_nonexistent
|
||||
|
@ -51,10 +110,10 @@ class AmfControllerTest < ActionController::TestCase
|
|||
assert_response :success
|
||||
amf_parse_response
|
||||
way = amf_result("/1")
|
||||
assert_equal way[0], -4
|
||||
assert_equal way[1], "way"
|
||||
assert_equal way[2], 0
|
||||
assert way[3].nil? and way[4].nil?
|
||||
assert_equal -4, way[0]
|
||||
assert_equal "way", way[1]
|
||||
assert_equal 0, way[2]
|
||||
assert way[3].nil? and way[4].nil? and way[5].nil? and way[6].nil?
|
||||
end
|
||||
|
||||
def test_whichways
|
||||
|
|
Loading…
Add table
Reference in a new issue