X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/e84dd63b166a310c1c451ef2738d9d299e451acf..02628bed1e7b5c2656bc68076403467e92462b4f:/test/functional/changeset_controller_test.rb diff --git a/test/functional/changeset_controller_test.rb b/test/functional/changeset_controller_test.rb index bc1fdb835..f1ecb3cc7 100644 --- a/test/functional/changeset_controller_test.rb +++ b/test/functional/changeset_controller_test.rb @@ -82,7 +82,7 @@ class ChangesetControllerTest < ActionController::TestCase post :create assert_response :method_not_allowed end - + ## # check that the changeset can be read and returns the correct # document structure. @@ -128,7 +128,7 @@ class ChangesetControllerTest < ActionController::TestCase # 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 ## @@ -446,6 +446,31 @@ EOF 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 + + # 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. @@ -645,7 +670,7 @@ EOF 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 ## @@ -1122,6 +1147,21 @@ EOF 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 @@ -1270,7 +1310,7 @@ EOF 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" @@ -1450,11 +1490,11 @@ EOF 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 => "rhtml"} 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 @@ -1465,16 +1505,16 @@ EOF # 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 => "rhtml", :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 => "rhtml", :display_name => "Some random user"} assert_response :not_found assert_template 'user/no_such_user' end