Fixed up way controller tests for API 0.6.
This commit is contained in:
parent
fb5f39f19a
commit
1e5782f579
3 changed files with 38 additions and 10 deletions
|
@ -68,7 +68,7 @@ class WayController < ApplicationController
|
||||||
way = Way.find(params[:id])
|
way = Way.find(params[:id])
|
||||||
new_way = Way.from_xml(request.raw_post)
|
new_way = Way.from_xml(request.raw_post)
|
||||||
if new_way and new_way.id == way.id
|
if new_way and new_way.id == way.id
|
||||||
way.delete_with_history(@user)
|
way.delete_with_history(new_way, @user)
|
||||||
|
|
||||||
# if we get here, all is fine, otherwise something will catch below.
|
# if we get here, all is fine, otherwise something will catch below.
|
||||||
render :nothing => true
|
render :nothing => true
|
||||||
|
|
5
test/fixtures/changesets.yml
vendored
5
test/fixtures/changesets.yml
vendored
|
@ -11,3 +11,8 @@ second_user_first_change:
|
||||||
created_at: "2008-05-01 01:23:45"
|
created_at: "2008-05-01 01:23:45"
|
||||||
open: 1
|
open: 1
|
||||||
|
|
||||||
|
normal_user_closed_change:
|
||||||
|
id: 3
|
||||||
|
user_id: 1
|
||||||
|
created_at: "2007-01-01 00:00:00"
|
||||||
|
open: 0
|
||||||
|
|
|
@ -18,7 +18,7 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def content(c)
|
def content(c)
|
||||||
@request.env["RAW_POST_DATA"] = c
|
@request.env["RAW_POST_DATA"] = c.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
@ -76,10 +76,13 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
nid2 = current_nodes(:used_node_2).id
|
nid2 = current_nodes(:used_node_2).id
|
||||||
basic_authorization "test@openstreetmap.org", "test"
|
basic_authorization "test@openstreetmap.org", "test"
|
||||||
|
|
||||||
# FIXME create a new changeset and use the id that is returned for the next step
|
# use the first user's open changeset
|
||||||
|
changeset_id = changesets(:normal_user_first_change).id
|
||||||
|
|
||||||
# create a way with pre-existing nodes
|
# create a way with pre-existing nodes
|
||||||
content "<osm><way><nd ref='#{nid1}'/><nd ref='#{nid2}'/><tag k='test' v='yes' /></way></osm>"
|
content "<osm><way changeset='#{changeset_id}'>" +
|
||||||
|
"<nd ref='#{nid1}'/><nd ref='#{nid2}'/>" +
|
||||||
|
"<tag k='test' v='yes' /></way></osm>"
|
||||||
put :create
|
put :create
|
||||||
# hope for success
|
# hope for success
|
||||||
assert_response :success,
|
assert_response :success,
|
||||||
|
@ -96,7 +99,9 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
"saved way does not contain the right node on pos 0"
|
"saved way does not contain the right node on pos 0"
|
||||||
assert_equal checkway.nds[1], nid2,
|
assert_equal checkway.nds[1], nid2,
|
||||||
"saved way does not contain the right node on pos 1"
|
"saved way does not contain the right node on pos 1"
|
||||||
assert_equal users(:normal_user).id, checkway.user_id,
|
assert_equal checkway.changeset_id, changeset_id,
|
||||||
|
"saved way does not belong to the correct changeset"
|
||||||
|
assert_equal users(:normal_user).id, checkway.changeset.user_id,
|
||||||
"saved way does not belong to user that created it"
|
"saved way does not belong to user that created it"
|
||||||
assert_equal true, checkway.visible,
|
assert_equal true, checkway.visible,
|
||||||
"saved way is not visible"
|
"saved way is not visible"
|
||||||
|
@ -109,20 +114,34 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
def test_create_invalid
|
def test_create_invalid
|
||||||
basic_authorization "test@openstreetmap.org", "test"
|
basic_authorization "test@openstreetmap.org", "test"
|
||||||
|
|
||||||
# FIXME All of these will fail because they don't have a valid changeset
|
# use the first user's open changeset
|
||||||
|
open_changeset_id = changesets(:normal_user_first_change).id
|
||||||
|
closed_changeset_id = changesets(:normal_user_closed_change).id
|
||||||
|
nid1 = current_nodes(:used_node_1).id
|
||||||
|
|
||||||
# create a way with non-existing node
|
# create a way with non-existing node
|
||||||
content "<osm><way><nd ref='0'/><tag k='test' v='yes' /></way></osm>"
|
content "<osm><way changeset='#{open_changeset_id}'>" +
|
||||||
|
"<nd ref='0'/><tag k='test' v='yes' /></way></osm>"
|
||||||
put :create
|
put :create
|
||||||
# expect failure
|
# expect failure
|
||||||
assert_response :precondition_failed,
|
assert_response :precondition_failed,
|
||||||
"way upload with invalid node did not return 'precondition failed'"
|
"way upload with invalid node did not return 'precondition failed'"
|
||||||
|
|
||||||
# create a way with no nodes
|
# create a way with no nodes
|
||||||
content "<osm><way><tag k='test' v='yes' /></way></osm>"
|
content "<osm><way changeset='#{open_changeset_id}'>" +
|
||||||
|
"<tag k='test' v='yes' /></way></osm>"
|
||||||
put :create
|
put :create
|
||||||
# expect failure
|
# expect failure
|
||||||
assert_response :precondition_failed,
|
assert_response :precondition_failed,
|
||||||
"way upload with no node did not return 'precondition failed'"
|
"way upload with no node did not return 'precondition failed'"
|
||||||
|
|
||||||
|
# create a way inside a closed changeset
|
||||||
|
content "<osm><way changeset='#{closed_changeset_id}'>" +
|
||||||
|
"<nd ref='#{nid1}'/></way></osm>"
|
||||||
|
put :create
|
||||||
|
# expect failure
|
||||||
|
assert_response :precondition_failed,
|
||||||
|
"way upload to closed changeset did not return 'precondition failed'"
|
||||||
end
|
end
|
||||||
|
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
@ -130,7 +149,6 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
|
|
||||||
def test_delete
|
def test_delete
|
||||||
|
|
||||||
# first try to delete way without auth
|
# first try to delete way without auth
|
||||||
delete :delete, :id => current_ways(:visible_way).id
|
delete :delete, :id => current_ways(:visible_way).id
|
||||||
assert_response :unauthorized
|
assert_response :unauthorized
|
||||||
|
@ -143,13 +161,18 @@ class WayControllerTest < Test::Unit::TestCase
|
||||||
assert_response :bad_request
|
assert_response :bad_request
|
||||||
|
|
||||||
# Now try without having a changeset
|
# Now try without having a changeset
|
||||||
content "<osm><way id='#{current_ways(:visible_way).id}'</osm>"
|
content "<osm><way id='#{current_ways(:visible_way).id}'></osm>"
|
||||||
delete :delete, :id => current_ways(:visible_way).id
|
delete :delete, :id => current_ways(:visible_way).id
|
||||||
assert_response :bad_request
|
assert_response :bad_request
|
||||||
|
|
||||||
# Now try and get a changeset
|
# Now try and get a changeset
|
||||||
|
changeset_id = changesets(:normal_user_first_change).id
|
||||||
|
content current_ways(:visible_way).to_xml
|
||||||
|
delete :delete, :id => current_ways(:visible_way).id
|
||||||
|
assert_response :success
|
||||||
|
|
||||||
# this won't work since the way is already deleted
|
# this won't work since the way is already deleted
|
||||||
|
content current_ways(:invisible_way).to_xml
|
||||||
delete :delete, :id => current_ways(:invisible_way).id
|
delete :delete, :id => current_ways(:invisible_way).id
|
||||||
assert_response :gone
|
assert_response :gone
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue