From 755585e2306c9384365f61b68c6c6c85565db098 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 4 Aug 2013 11:12:09 +0100 Subject: [PATCH] Add functional tests for nodes/ways/relations API methods --- test/functional/node_controller_test.rb | 28 +++++++++++++++++++++ test/functional/relation_controller_test.rb | 27 ++++++++++++++++++++ test/functional/way_controller_test.rb | 27 ++++++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/test/functional/node_controller_test.rb b/test/functional/node_controller_test.rb index 32667d9c9..5c01cba3d 100644 --- a/test/functional/node_controller_test.rb +++ b/test/functional/node_controller_test.rb @@ -418,6 +418,34 @@ class NodeControllerTest < ActionController::TestCase assert_response :success, "a valid update request failed" end + ## + # test fetching multiple nodes + def test_nodes + # check error when no parameter provided + get :nodes + assert_response :bad_request + + # check error when no parameter value provided + get :nodes, :nodes => "" + assert_response :bad_request + + # test a working call + get :nodes, :nodes => "1,2,4,15,17" + assert_response :success + assert_select "osm" do + assert_select "node", :count => 5 + assert_select "node[id=1][visible=true]", :count => 1 + assert_select "node[id=2][visible=false]", :count => 1 + assert_select "node[id=4][visible=true]", :count => 1 + assert_select "node[id=15][visible=true]", :count => 1 + assert_select "node[id=17][visible=false]", :count => 1 + end + + # check error when a non-existent node is included + get :nodes, :nodes => "1,2,4,15,17,400" + assert_response :not_found + end + ## # test adding tags to a node def test_duplicate_tags diff --git a/test/functional/relation_controller_test.rb b/test/functional/relation_controller_test.rb index 502404cca..4737fdf51 100644 --- a/test/functional/relation_controller_test.rb +++ b/test/functional/relation_controller_test.rb @@ -114,6 +114,33 @@ class RelationControllerTest < ActionController::TestCase end end + ## + # test fetching multiple relations + def test_relations + # check error when no parameter provided + get :relations + assert_response :bad_request + + # check error when no parameter value provided + get :relations, :relations => "" + assert_response :bad_request + + # test a working call + get :relations, :relations => "1,2,4,7" + assert_response :success + assert_select "osm" do + assert_select "relation", :count => 4 + assert_select "relation[id=1][visible=true]", :count => 1 + assert_select "relation[id=2][visible=false]", :count => 1 + assert_select "relation[id=4][visible=true]", :count => 1 + assert_select "relation[id=7][visible=true]", :count => 1 + end + + # check error when a non-existent relation is included + get :relations, :relations => "1,2,4,7,400" + assert_response :not_found + end + # ------------------------------------- # Test simple relation creation. # ------------------------------------- diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index a4b5a192a..a69612350 100644 --- a/test/functional/way_controller_test.rb +++ b/test/functional/way_controller_test.rb @@ -79,6 +79,33 @@ class WayControllerTest < ActionController::TestCase end end + ## + # test fetching multiple ways + def test_ways + # check error when no parameter provided + get :ways + assert_response :bad_request + + # check error when no parameter value provided + get :ways, :ways => "" + assert_response :bad_request + + # test a working call + get :ways, :ways => "1,2,4,6" + assert_response :success + assert_select "osm" do + assert_select "way", :count => 4 + assert_select "way[id=1][visible=true]", :count => 1 + assert_select "way[id=2][visible=false]", :count => 1 + assert_select "way[id=4][visible=true]", :count => 1 + assert_select "way[id=6][visible=true]", :count => 1 + end + + # check error when a non-existent way is included + get :ways, :ways => "1,2,4,6,400" + assert_response :not_found + end + # ------------------------------------- # Test simple way creation. # ------------------------------------- -- 2.43.2