post :create
assert_response :method_not_allowed
end
-
+
##
# check that the changeset can be read and returns the correct
# document structure.
# test that it really is closed now
cs = Changeset.find(cs_id)
assert(!cs.is_open?,
- "changeset should be closed now (#{cs.closed_at} > #{Time.now}.")
+ "changeset should be closed now (#{cs.closed_at} > #{Time.now.getutc}.")
end
##
assert_equal true, Relation.find(current_relations(:visible_relation).id).visible
end
+ ##
+ # upload an element with a really long tag value
+ def test_upload_invalid_too_long_tag
+ basic_authorization users(:public_user).email, "test"
+ cs_id = changesets(:public_user_first_change).id
+
+ # simple diff to create a node way and relation using placeholders
+ diff = <<EOF
+<osmChange>
+ <create>
+ <node id='-1' lon='0' lat='0' changeset='#{cs_id}'>
+ <tag k='foo' v='#{"x"*256}'/>
+ </node>
+ </create>
+</osmChange>
+EOF
+
+ # upload it
+ content diff
+ post :upload, :id => cs_id
+ assert_response :bad_request,
+ "shoudln't be able to upload too long a tag to changeset: #{@response.body}"
+
+ end
+
##
# upload something which creates new objects and inserts them into
# existing containers using placeholders.
content diff
post :upload, :id => cs_id
assert_response :bad_request, "Shouldn't be able to upload a diff with the action ping"
- assert_equal @response.body, "Unknown action ping, choices are create, modify, delete."
+ assert_equal @response.body, "Unknown action ping, choices are create, modify, delete"
end
##
assert_select "osmChange>modify>way", 1
end
+ def test_changeset_download
+ get :download, :id => changesets(:normal_user_first_change).id
+ assert_response :success
+ assert_template nil
+ #print @response.body
+ # FIXME needs more assert_select tests
+ assert_select "osmChange[version='#{API_VERSION}'][generator='#{GENERATOR}']" do
+ assert_select "create", :count => 5
+ assert_select "create>node[id=#{nodes(:used_node_2).id}][visible=#{nodes(:used_node_2).visible?}][version=#{nodes(:used_node_2).version}]" do
+ assert_select "tag[k=#{node_tags(:t3).k}][v=#{node_tags(:t3).v}]"
+ end
+ assert_select "create>node[id=#{nodes(:visible_node).id}]"
+ end
+ end
+
##
# check that the bounding box of a changeset gets updated correctly
## FIXME: This should really be moded to a integration test due to the with_controller
get :query, :time => '2007-12-31T23:59Z,2008-01-01T00:01Z'
assert_response :success, "can't get changesets by time-range"
- assert_changesets [1,4,5,6]
+ assert_changesets [1,5,6]
get :query, :open => 'true'
assert_response :success, "can't get changesets by open-ness"