# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/api/0.6/changeset/create", :method => :put },
+ { :path => "/api/0.6/changesets", :method => :post },
{ :controller => "api/changesets", :action => "create" }
)
assert_routing(
{ :path => "/api/0.6/changesets.json", :method => :get },
{ :controller => "api/changesets", :action => "index", :format => "json" }
)
+
+ assert_recognizes(
+ { :controller => "api/changesets", :action => "create" },
+ { :path => "/api/0.6/changeset/create", :method => :put }
+ )
end
# -----------------------
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_require_public_data
auth_header = bearer_authorization_header
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "Creation of changeset did not return success status"
newid = @response.body.to_i
def test_create_invalid
auth_header = bearer_authorization_header create(:user, :data_public => false)
xml = "<osm><changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_require_public_data
## Try the public user
auth_header = bearer_authorization_header
xml = "<osm><changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :bad_request, "creating a invalid changeset should fail"
end
def test_create_invalid_no_content
## First check with no auth
- put changeset_create_path
+ post api_changesets_path
assert_response :unauthorized, "shouldn't be able to create a changeset with no auth"
## Now try to with a non-public user
auth_header = bearer_authorization_header create(:user, :data_public => false)
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_require_public_data
## Try an inactive user
auth_header = bearer_authorization_header create(:user, :pending)
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_inactive_user
## Now try to use a normal user
auth_header = bearer_authorization_header
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_response :bad_request, "creating a changeset with no content should fail"
end
def test_create_wrong_method
auth_header = bearer_authorization_header
- get changeset_create_path, :headers => auth_header
+ put api_changesets_path, :headers => auth_header
assert_response :not_found
assert_template "rescues/routing_error"
+ end
- post changeset_create_path, :headers => auth_header
- assert_response :not_found
- assert_template "rescues/routing_error"
+ def test_create_legacy_path
+ auth_header = bearer_authorization_header
+ xml = "<osm><changeset></changeset></osm>"
+
+ assert_difference "Changeset.count", 1 do
+ put "/api/0.6/changeset/create", :params => xml, :headers => auth_header
+ end
+
+ assert_response :success, "Creation of changeset did not return success status"
+ assert_equal Changeset.last.id, @response.body.to_i
end
##
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
assert_difference "Changeset.count", 1 do
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
end
assert_response :success
end
create(:changeset, :user => user, :created_at => Time.now.utc - 28.days)
# create a changeset
- put changeset_create_path, :params => "<osm><changeset/></osm>", :headers => auth_header
+ post api_changesets_path, :params => "<osm><changeset/></osm>", :headers => auth_header
assert_response :success, "Should be able to create a changeset: #{@response.body}"
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :forbidden
## Now try with a normal user
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
# create a new changeset
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "Creating of changeset failed."
changeset_id = @response.body.to_i
# open a new changeset
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "can't create a new changeset"
cs_id = @response.body.to_i