class ChangesetControllerTest < ActionController::TestCase
api_fixtures
- def basic_authorization(user, pass)
- @request.env["HTTP_AUTHORIZATION"] = "Basic %s" % Base64.encode64("#{user}:#{pass}")
- end
-
- def content(c)
- @request.env["RAW_POST_DATA"] = c.to_s
- end
-
# -----------------------
# Test simple changeset creation
# -----------------------
assert_equal Rational(1,24), duration , "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
else
# must be number of seconds...
- assert_equal 3600.0, duration , "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
+ assert_equal 3600, duration.round, "initial idle timeout should be an hour (#{cs.created_at} -> #{cs.closed_at})"
end
end
assert_response :bad_request, "creating a invalid changeset should fail"
end
+ def test_create_invalid_no_content
+ basic_authorization "test@openstreetmap.org", "test"
+ put :create
+ assert_response :bad_request, "creating a changeset with no content should fail"
+ end
+
+ def test_create_wrong_method
+ basic_authorization "test@openstreetmap.org", "test"
+ get :create
+ assert_response :method_not_allowed
+ end
+
##
# check that the changeset can be read and returns the correct
# document structure.
assert_equal false, Node.find(node.id).visible
end
+ def test_repeated_changeset_create
+ 30.times do
+ basic_authorization "test@openstreetmap.org", "test"
+
+ # create a temporary changeset
+ content "<osm><changeset>" +
+ "<tag k='created_by' v='osm test suite checking changesets'/>" +
+ "</changeset></osm>"
+ assert_difference('Changeset.count', 1) do
+ put :create
+ end
+ assert_response :success
+ changeset_id = @response.body.to_i
+ end
+ end
+
##
# test that deleting stuff in a transaction doesn't bypass the checks
# to ensure that used elements are not deleted.