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"
def test_list
changesets = Changeset.find(:all, :order => "created_at DESC", :conditions => ['min_lat IS NOT NULL'], :limit=> 20)
assert changesets.size <= 20
- get :list
+ get :list, {:format => "html"}
assert_response :success
assert_template "list"
# Now check that all 20 (or however many were returned) changesets are in the html
- assert_select "h1", :text => "Recent Changes", :count => 1
+ assert_select "h1", :text => "Changesets", :count => 1
assert_select "table[id='changeset_list'] tr", :count => changesets.size + 1
changesets.each do |changeset|
# FIXME this test needs rewriting - test for table contents
# Checks the display of the user changesets listing
def test_list_user
user = users(:public_user)
- get :list_user, {:display_name => user.display_name}
+ get :list, {:format => "html", :display_name => user.display_name}
assert_response :success
- assert_template 'list_user'
+ assert_template "list"
## FIXME need to add more checks to see which if edits are actually shown if your data is public
end
##
# Check the not found of the list user changesets
def test_list_user_not_found
- get :list_user, {:display_name => "Some random user"}
+ get :list, {:format => "html", :display_name => "Some random user"}
assert_response :not_found
assert_template 'user/no_such_user'
end