X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dbd88d893f3c3fce9cafd666b94396988646d81f..70d6880e10881dfd4b68f51cf16609a9f8aaff24:/test/controllers/changeset_controller_test.rb diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index 654682ac0..7dc479cad 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -41,29 +41,13 @@ class ChangesetControllerTest < ActionController::TestCase { :path => "/api/0.6/changeset/1/close", :method => :put }, { :controller => "changeset", :action => "close", :id => "1" } ) - assert_routing( - { :path => "/api/0.6/changeset/1/comment", :method => :post }, - { :controller => "changeset", :action => "comment", :id => "1" } - ) - assert_routing( - { :path => "/api/0.6/changeset/comment/1/hide", :method => :post }, - { :controller => "changeset", :action => "hide_comment", :id => "1" } - ) - assert_routing( - { :path => "/api/0.6/changeset/comment/1/unhide", :method => :post }, - { :controller => "changeset", :action => "unhide_comment", :id => "1" } - ) assert_routing( { :path => "/api/0.6/changesets", :method => :get }, { :controller => "changeset", :action => "query" } ) - assert_routing( - { :path => "/changeset/1/comments/feed", :method => :get }, - { :controller => "changeset", :action => "comments_feed", :id => "1", :format => "rss" } - ) assert_routing( { :path => "/user/name/history", :method => :get }, - { :controller => "changeset", :action => "list", :display_name => "name" } + { :controller => "changeset", :action => "index", :display_name => "name" } ) assert_routing( { :path => "/user/name/history/feed", :method => :get }, @@ -71,24 +55,20 @@ class ChangesetControllerTest < ActionController::TestCase ) assert_routing( { :path => "/history/friends", :method => :get }, - { :controller => "changeset", :action => "list", :friends => true, :format => :html } + { :controller => "changeset", :action => "index", :friends => true, :format => :html } ) assert_routing( { :path => "/history/nearby", :method => :get }, - { :controller => "changeset", :action => "list", :nearby => true, :format => :html } + { :controller => "changeset", :action => "index", :nearby => true, :format => :html } ) assert_routing( { :path => "/history", :method => :get }, - { :controller => "changeset", :action => "list" } + { :controller => "changeset", :action => "index" } ) assert_routing( { :path => "/history/feed", :method => :get }, { :controller => "changeset", :action => "feed", :format => :atom } ) - assert_routing( - { :path => "/history/comments/feed", :method => :get }, - { :controller => "changeset", :action => "comments_feed", :format => "rss" } - ) end # ----------------------- @@ -98,16 +78,16 @@ class ChangesetControllerTest < ActionController::TestCase def test_create basic_authorization create(:user, :data_public => false).email, "test" # Create the first user's changeset - content "" + - "" + + content "" \ + "" \ "" put :create assert_require_public_data basic_authorization create(:user).email, "test" # Create the first user's changeset - content "" + - "" + + content "" \ + "" \ "" put :create @@ -213,7 +193,7 @@ class ChangesetControllerTest < ActionController::TestCase get :read, :params => { :id => id } assert_response :not_found, "should get a not found" rescue ActionController::UrlGenerationError => ex - assert_match /No route matches/, ex.to_s + assert_match(/No route matches/, ex.to_s) end end end @@ -244,8 +224,8 @@ 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.getutc}.") + assert_not(cs.is_open?, + "changeset should be closed now (#{cs.closed_at} > #{Time.now.getutc}.") end ## @@ -287,7 +267,7 @@ class ChangesetControllerTest < ActionController::TestCase put :close, :params => { :id => id } assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized" rescue ActionController::UrlGenerationError => ex - assert_match /No route matches/, ex.to_s + assert_match(/No route matches/, ex.to_s) end end @@ -298,7 +278,7 @@ class ChangesetControllerTest < ActionController::TestCase put :close, :params => { :id => id } assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed" rescue ActionController::UrlGenerationError => ex - assert_match /No route matches/, ex.to_s + assert_match(/No route matches/, ex.to_s) end end end @@ -327,7 +307,7 @@ class ChangesetControllerTest < ActionController::TestCase # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -343,7 +323,7 @@ class ChangesetControllerTest < ActionController::TestCase -EOF +CHANGESET # upload it content diff @@ -357,7 +337,7 @@ EOF # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -373,7 +353,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -387,7 +367,7 @@ EOF # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -403,7 +383,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -429,7 +409,7 @@ EOF basic_authorization user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -448,7 +428,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -469,9 +449,9 @@ EOF new_rel_id = doc.find("//diffResult/relation").first["new_id"].to_i # check the old IDs are all present and negative one - assert_equal -1, doc.find("//diffResult/node").first["old_id"].to_i - assert_equal -1, doc.find("//diffResult/way").first["old_id"].to_i - assert_equal -1, doc.find("//diffResult/relation").first["old_id"].to_i + assert_equal(-1, doc.find("//diffResult/node").first["old_id"].to_i) + assert_equal(-1, doc.find("//diffResult/way").first["old_id"].to_i) + assert_equal(-1, doc.find("//diffResult/relation").first["old_id"].to_i) # check the versions are present and equal one assert_equal 1, doc.find("//diffResult/node").first["new_version"].to_i @@ -557,12 +537,12 @@ EOF end def test_repeated_changeset_create - 30.times do + 3.times do basic_authorization create(:user).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" assert_difference "Changeset.count", 1 do put :create @@ -580,9 +560,8 @@ EOF assert_response :success, "Should be able to create a changeset: #{@response.body}" changeset_id = @response.body.to_i - # upload some widely-spaced nodes, spiralling positive and negative to cause - # largest bbox over-expansion possible. - diff = < @@ -605,7 +584,7 @@ EOF -EOF +CHANGESET # upload it, which used to cause an error like "PGError: ERROR: # integer out of range" (bug #2152). but shouldn't any more. @@ -619,7 +598,7 @@ EOF assert cs.min_lon >= -180 * GeoRecord::SCALE, "Minimum longitude (#{cs.min_lon / GeoRecord::SCALE}) should be >= -180 to be valid." assert cs.max_lon <= 180 * GeoRecord::SCALE, "Maximum longitude (#{cs.max_lon / GeoRecord::SCALE}) should be <= 180 to be valid." assert cs.min_lat >= -90 * GeoRecord::SCALE, "Minimum latitude (#{cs.min_lat / GeoRecord::SCALE}) should be >= -90 to be valid." - assert cs.max_lat >= 90 * GeoRecord::SCALE, "Maximum latitude (#{cs.max_lat / GeoRecord::SCALE}) should be <= 90 to be valid." + assert cs.max_lat <= 90 * GeoRecord::SCALE, "Maximum latitude (#{cs.max_lat / GeoRecord::SCALE}) should be <= 90 to be valid." end ## @@ -739,7 +718,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -747,7 +726,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -770,7 +749,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -790,7 +769,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -812,9 +791,7 @@ EOF assert_equal 2, Node.find(new_node_id).tags.size, "new node should have two tags" assert_equal [new_node_id, node.id], Way.find(way.id).nds, "way nodes should match" Relation.find(relation.id).members.each do |type, id, _role| - if type == "node" - assert_equal new_node_id, id, "relation should contain new node" - end + assert_equal new_node_id, id, "relation should contain new node" if type == "node" end end @@ -832,7 +809,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -854,7 +831,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -878,7 +855,7 @@ EOF # change the location of a node multiple times, each time referencing # the last version. doesn't this depend on version numbers being # sequential? - diff = < @@ -891,7 +868,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -914,14 +891,14 @@ EOF basic_authorization changeset.user.email, "test" - diff = < -EOF +CHANGESET # upload it content diff @@ -937,13 +914,13 @@ EOF basic_authorization changeset.user.email, "test" - diff = < -EOF +CHANGESET # upload it content diff @@ -959,13 +936,13 @@ EOF basic_authorization changeset.user.email, "test" - diff = < -EOF +CHANGESET content diff post :upload, :params => { :id => changeset.id } assert_response :bad_request, "Shouldn't be able to upload a diff with the action ping" @@ -985,7 +962,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -997,7 +974,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1021,7 +998,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1035,7 +1012,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1056,7 +1033,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1064,7 +1041,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1082,7 +1059,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1096,7 +1073,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1106,7 +1083,7 @@ EOF assert_equal "Placeholder node not found for reference -4 in way -1", @response.body # the same again, but this time use an existing way - diff = < @@ -1120,7 +1097,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1139,7 +1116,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1153,7 +1130,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1163,7 +1140,7 @@ EOF assert_equal "Placeholder Node not found for reference -4 in relation -1.", @response.body # the same again, but this time use an existing relation - diff = < @@ -1177,7 +1154,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1193,8 +1170,8 @@ EOF def test_upload_node_move basic_authorization create(:user).email, "test" - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success @@ -1231,8 +1208,8 @@ EOF def test_upload_way_extend basic_authorization create(:user).email, "test" - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success @@ -1280,7 +1257,7 @@ EOF # upload it content diff post :upload, :params => { :id => changeset.id } - assert_response(:success, "should be able to upload " + + assert_response(:success, "should be able to upload " \ "empty changeset: " + diff) end end @@ -1321,28 +1298,28 @@ EOF node = create(:node) ## First try with a non-public user, which should get a forbidden - basic_authorization(create(:user, :data_public => false).email, "test") + basic_authorization create(:user, :data_public => false).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :forbidden ## Now try with a normal user - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success changeset_id = @response.body.to_i # add a diff to it - diff = < @@ -1355,7 +1332,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1377,11 +1354,11 @@ EOF # # NOTE: the error turned out to be something else completely! def test_josm_upload - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success @@ -1439,18 +1416,18 @@ OSMFILE node = create(:node) node2 = create(:node) way = create(:way) - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success changeset_id = @response.body.to_i # add a diff to it - diff = < @@ -1470,7 +1447,7 @@ OSMFILE -EOF +CHANGESET # upload it content diff @@ -1531,7 +1508,7 @@ EOF changeset_id = @response.body.to_i # add a single node to it - with_controller(NodeController.new) do + with_controller(NodesController.new) do content "" put :create assert_response :success, "Couldn't create node." @@ -1546,7 +1523,7 @@ EOF assert_select "osm>changeset[max_lat='2.0000000']", 1 # add another node to it - with_controller(NodeController.new) do + with_controller(NodesController.new) do content "" put :create assert_response :success, "Couldn't create second node." @@ -1561,7 +1538,7 @@ EOF assert_select "osm>changeset[max_lat='2.0000000']", 1 # add (delete) a way to it, which contains a point at (3,3) - with_controller(WayController.new) do + with_controller(WaysController.new) do content update_changeset(way.to_xml, changeset_id) put :delete, :params => { :id => way.id } assert_response :success, "Couldn't delete a way." @@ -1570,11 +1547,10 @@ EOF # get the bounding box back from the changeset get :read, :params => { :id => changeset_id } assert_response :success, "Couldn't read back changeset for the third time." - # note that the 3.1 here is because of the bbox overexpansion assert_select "osm>changeset[min_lon='1.0000000']", 1 - assert_select "osm>changeset[max_lon='3.1000000']", 1 + assert_select "osm>changeset[max_lon='3.0000000']", 1 assert_select "osm>changeset[min_lat='1.0000000']", 1 - assert_select "osm>changeset[max_lat='3.1000000']", 1 + assert_select "osm>changeset[max_lat='3.0000000']", 1 end ## @@ -1842,7 +1818,7 @@ EOF changeset.num_changes = Changeset::MAX_ELEMENTS - offset changeset.save! - with_controller(NodeController.new) do + with_controller(NodesController.new) do # create a new node content "" put :create @@ -1879,180 +1855,180 @@ EOF assert_equal Changeset::MAX_ELEMENTS + 1, changeset.num_changes # check that the changeset is now closed as well - assert(!changeset.is_open?, - "changeset should have been auto-closed by exceeding " + - "element limit.") + assert_not(changeset.is_open?, + "changeset should have been auto-closed by exceeding " \ + "element limit.") end ## # This should display the last 20 changesets closed - def test_list - get :list, :params => { :format => "html" } + def test_index + get :index, :params => { :format => "html" } assert_response :success assert_template "history" assert_template :layout => "map" assert_select "h2", :text => "Changesets", :count => 1 - get :list, :params => { :format => "html", :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.all) + check_index_result(Changeset.all) end ## # This should display the last 20 changesets closed - def test_list_xhr - get :list, :params => { :format => "html" }, :xhr => true + def test_index_xhr + get :index, :params => { :format => "html" }, :xhr => true assert_response :success assert_template "history" assert_template :layout => "xhr" assert_select "h2", :text => "Changesets", :count => 1 - get :list, :params => { :format => "html", :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.all) + check_index_result(Changeset.all) end ## # This should display the last 20 changesets closed in a specific area - def test_list_bbox - get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" } + def test_index_bbox + get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" } assert_response :success assert_template "history" assert_template :layout => "map" assert_select "h2", :text => "Changesets", :count => 1 - get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000")) + check_index_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000")) end ## # Checks the display of the user changesets listing - def test_list_user + def test_index_user user = create(:user) create(:changeset, :user => user) create(:changeset, :closed, :user => user) - get :list, :params => { :format => "html", :display_name => user.display_name } + get :index, :params => { :format => "html", :display_name => user.display_name } assert_response :success assert_template "history" - get :list, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(user.changesets) + check_index_result(user.changesets) end ## # Checks the display of the user changesets listing for a private user - def test_list_private_user + def test_index_private_user private_user = create(:user, :data_public => false) create(:changeset, :user => private_user) create(:changeset, :closed, :user => private_user) - get :list, :params => { :format => "html", :display_name => private_user.display_name } + get :index, :params => { :format => "html", :display_name => private_user.display_name } assert_response :success assert_template "history" - get :list, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.none) + check_index_result(Changeset.none) end ## - # Check the not found of the list user changesets - def test_list_user_not_found - get :list, :params => { :format => "html", :display_name => "Some random user" } + # Check the not found of the index user changesets + def test_index_user_not_found + get :index, :params => { :format => "html", :display_name => "Some random user" } assert_response :not_found - assert_template "user/no_such_user" + assert_template "users/no_such_user" - get :list, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true + get :index, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true assert_response :not_found - assert_template "user/no_such_user" + assert_template "users/no_such_user" end ## # Checks the display of the friends changesets listing - def test_list_friends + def test_index_friends private_user = create(:user, :data_public => true) friend = create(:friend, :befriender => private_user) create(:changeset, :user => friend.befriendee) - get :list, :params => { :friends => true } + get :index, :params => { :friends => true } assert_response :redirect - assert_redirected_to :controller => :user, :action => :login, :referer => friend_changesets_path + assert_redirected_to :controller => :users, :action => :login, :referer => friend_changesets_path session[:user] = private_user.id - get :list, :params => { :friends => true } + get :index, :params => { :friends => true } assert_response :success assert_template "history" - get :list, :params => { :friends => true, :list => "1" }, :xhr => true + get :index, :params => { :friends => true, :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.where(:user => private_user.friend_users.identifiable)) + check_index_result(Changeset.where(:user => private_user.friend_users.identifiable)) end ## # Checks the display of the nearby user changesets listing - def test_list_nearby + def test_index_nearby private_user = create(:user, :data_public => false, :home_lat => 51.1, :home_lon => 1.0) user = create(:user, :home_lat => 51.0, :home_lon => 1.0) create(:changeset, :user => user) - get :list, :params => { :nearby => true } + get :index, :params => { :nearby => true } assert_response :redirect - assert_redirected_to :controller => :user, :action => :login, :referer => nearby_changesets_path + assert_redirected_to :controller => :users, :action => :login, :referer => nearby_changesets_path session[:user] = private_user.id - get :list, :params => { :nearby => true } + get :index, :params => { :nearby => true } assert_response :success assert_template "history" - get :list, :params => { :nearby => true, :list => "1" }, :xhr => true + get :index, :params => { :nearby => true, :list => "1" }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.where(:user => user.nearby)) + check_index_result(Changeset.where(:user => user.nearby)) end ## - # Check that we can't request later pages of the changesets list - def test_list_max_id - get :list, :params => { :format => "html", :max_id => 4 }, :xhr => true + # Check that we can't request later pages of the changesets index + def test_index_max_id + get :index, :params => { :format => "html", :max_id => 4 }, :xhr => true assert_response :success assert_template "history" assert_template :layout => "xhr" assert_select "h2", :text => "Changesets", :count => 1 - get :list, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true + get :index, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true assert_response :success - assert_template "list" + assert_template "index" - check_list_result(Changeset.where("id <= 4")) + check_index_result(Changeset.where("id <= 4")) end ## # Check that a list with a next page link works - def test_list_more + def test_index_more create_list(:changeset, 50) - get :list, :params => { :format => "html" } + get :index, :params => { :format => "html" } assert_response :success - get :list, :params => { :format => "html" }, :xhr => true + get :index, :params => { :format => "html" }, :xhr => true assert_response :success end @@ -2060,12 +2036,14 @@ EOF # This should display the last 20 non-empty changesets def test_feed changeset = create(:changeset, :num_changes => 1) + create(:changeset_tag, :changeset => changeset) + create(:changeset_tag, :changeset => changeset, :k => "website", :v => "http://example.com/") closed_changeset = create(:changeset, :closed, :num_changes => 1) _empty_changeset = create(:changeset, :num_changes => 0) get :feed, :params => { :format => :atom } assert_response :success - assert_template "list" + assert_template "index" assert_equal "application/atom+xml", response.content_type check_feed_result([changeset, closed_changeset]) @@ -2075,13 +2053,15 @@ EOF # This should display the last 20 changesets closed in a specific area def test_feed_bbox changeset = create(:changeset, :num_changes => 1, :min_lat => 5 * GeoRecord::SCALE, :min_lon => 5 * GeoRecord::SCALE, :max_lat => 5 * GeoRecord::SCALE, :max_lon => 5 * GeoRecord::SCALE) + create(:changeset_tag, :changeset => changeset) + create(:changeset_tag, :changeset => changeset, :k => "website", :v => "http://example.com/") closed_changeset = create(:changeset, :closed, :num_changes => 1, :min_lat => 5 * GeoRecord::SCALE, :min_lon => 5 * GeoRecord::SCALE, :max_lat => 5 * GeoRecord::SCALE, :max_lon => 5 * GeoRecord::SCALE) _elsewhere_changeset = create(:changeset, :num_changes => 1, :min_lat => -5 * GeoRecord::SCALE, :min_lon => -5 * GeoRecord::SCALE, :max_lat => -5 * GeoRecord::SCALE, :max_lon => -5 * GeoRecord::SCALE) _empty_changeset = create(:changeset, :num_changes => 0, :min_lat => -5 * GeoRecord::SCALE, :min_lon => -5 * GeoRecord::SCALE, :max_lat => -5 * GeoRecord::SCALE, :max_lon => -5 * GeoRecord::SCALE) get :feed, :params => { :format => :atom, :bbox => "4.5,4.5,5.5,5.5" } assert_response :success - assert_template "list" + assert_template "index" assert_equal "application/atom+xml", response.content_type check_feed_result([changeset, closed_changeset]) @@ -2092,12 +2072,14 @@ EOF def test_feed_user user = create(:user) changesets = create_list(:changeset, 3, :user => user, :num_changes => 4) + create(:changeset_tag, :changeset => changesets[1]) + create(:changeset_tag, :changeset => changesets[1], :k => "website", :v => "http://example.com/") _other_changeset = create(:changeset) get :feed, :params => { :format => :atom, :display_name => user.display_name } assert_response :success - assert_template "list" + assert_template "index" assert_equal "application/atom+xml", response.content_type check_feed_result(changesets) @@ -2138,106 +2120,18 @@ EOF end ## - # create comment success - def test_create_comment_success - user = create(:user) - user2 = create(:user) - private_user = create(:user, :data_public => false) - suspended_user = create(:user, :suspended) - deleted_user = create(:user, :deleted) - private_user_closed_changeset = create(:changeset, :closed, :user => private_user) - - basic_authorization(user.email, "test") - - assert_difference "ChangesetComment.count", 1 do - assert_no_difference "ActionMailer::Base.deliveries.size" do - post :comment, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" } - end - end - assert_response :success - - changeset = create(:changeset, :closed, :user => private_user) - changeset.subscribers.push(private_user) - changeset.subscribers.push(user) - changeset.subscribers.push(suspended_user) - changeset.subscribers.push(deleted_user) - - assert_difference "ChangesetComment.count", 1 do - assert_difference "ActionMailer::Base.deliveries.size", 1 do - post :comment, :params => { :id => changeset.id, :text => "This is a comment" } - end - end - assert_response :success - - email = ActionMailer::Base.deliveries.first - assert_equal 1, email.to.length - assert_equal "[OpenStreetMap] #{user.display_name} has commented on one of your changesets", email.subject - assert_equal private_user.email, email.to.first - - ActionMailer::Base.deliveries.clear - - basic_authorization(user2.email, "test") + # test subscribe success + def test_subscribe_success + basic_authorization create(:user).email, "test" + changeset = create(:changeset, :closed) - assert_difference "ChangesetComment.count", 1 do - assert_difference "ActionMailer::Base.deliveries.size", 2 do - post :comment, :params => { :id => changeset.id, :text => "This is a comment" } - end + assert_difference "changeset.subscribers.count", 1 do + post :subscribe, :params => { :id => changeset.id } end assert_response :success - email = ActionMailer::Base.deliveries.find { |e| e.to.first == private_user.email } - assert_not_nil email - assert_equal 1, email.to.length - assert_equal "[OpenStreetMap] #{user2.display_name} has commented on one of your changesets", email.subject - - email = ActionMailer::Base.deliveries.find { |e| e.to.first == user.email } - assert_not_nil email - assert_equal 1, email.to.length - assert_equal "[OpenStreetMap] #{user2.display_name} has commented on a changeset you are interested in", email.subject - - ActionMailer::Base.deliveries.clear - end - - ## - # create comment fail - def test_create_comment_fail - # unauthorized - post :comment, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" } - assert_response :unauthorized - - basic_authorization(create(:user).email, "test") - - # bad changeset id - assert_no_difference "ChangesetComment.count" do - post :comment, :params => { :id => 999111, :text => "This is a comment" } - end - assert_response :not_found - # not closed changeset - assert_no_difference "ChangesetComment.count" do - post :comment, :params => { :id => create(:changeset).id, :text => "This is a comment" } - end - assert_response :conflict - - # no text - assert_no_difference "ChangesetComment.count" do - post :comment, :params => { :id => create(:changeset, :closed).id } - end - assert_response :bad_request - - # empty text - assert_no_difference "ChangesetComment.count" do - post :comment, :params => { :id => create(:changeset, :closed).id, :text => "" } - end - assert_response :bad_request - end - - ## - # test subscribe success - def test_subscribe_success - basic_authorization(create(:user).email, "test") - changeset = create(:changeset, :closed) - + changeset = create(:changeset) assert_difference "changeset.subscribers.count", 1 do post :subscribe, :params => { :id => changeset.id } end @@ -2256,7 +2150,7 @@ EOF end assert_response :unauthorized - basic_authorization(user.email, "test") + basic_authorization user.email, "test" # bad changeset id assert_no_difference "changeset.subscribers.count" do @@ -2264,13 +2158,6 @@ EOF end assert_response :not_found - # not closed changeset - changeset = create(:changeset) - assert_no_difference "changeset.subscribers.count" do - post :subscribe, :params => { :id => changeset.id } - end - assert_response :conflict - # trying to subscribe when already subscribed changeset = create(:changeset, :closed) changeset.subscribers.push(user) @@ -2284,7 +2171,7 @@ EOF # test unsubscribe success def test_unsubscribe_success user = create(:user) - basic_authorization(user.email, "test") + basic_authorization user.email, "test" changeset = create(:changeset, :closed) changeset.subscribers.push(user) @@ -2292,6 +2179,15 @@ EOF post :unsubscribe, :params => { :id => changeset.id } end assert_response :success + + # not closed changeset + changeset = create(:changeset) + changeset.subscribers.push(user) + + assert_difference "changeset.subscribers.count", -1 do + post :unsubscribe, :params => { :id => changeset.id } + end + assert_response :success end ## @@ -2304,7 +2200,7 @@ EOF end assert_response :unauthorized - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" # bad changeset id assert_no_difference "changeset.subscribers.count" do @@ -2312,13 +2208,6 @@ EOF end assert_response :not_found - # not closed changeset - changeset = create(:changeset) - assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :params => { :id => changeset.id } - end - assert_response :conflict - # trying to unsubscribe when not subscribed changeset = create(:changeset, :closed) assert_no_difference "changeset.subscribers.count" do @@ -2327,128 +2216,6 @@ EOF assert_response :not_found end - ## - # test hide comment fail - def test_hide_comment_fail - # unauthorized - comment = create(:changeset_comment) - assert_equal true, comment.visible - - post :hide_comment, :params => { :id => comment.id } - assert_response :unauthorized - assert_equal true, comment.reload.visible - - basic_authorization(create(:user).email, "test") - - # not a moderator - post :hide_comment, :params => { :id => comment.id } - assert_response :forbidden - assert_equal true, comment.reload.visible - - basic_authorization(create(:moderator_user).email, "test") - - # bad comment id - post :hide_comment, :params => { :id => 999111 } - assert_response :not_found - assert_equal true, comment.reload.visible - end - - ## - # test hide comment succes - def test_hide_comment_success - comment = create(:changeset_comment) - assert_equal true, comment.visible - - basic_authorization(create(:moderator_user).email, "test") - - post :hide_comment, :params => { :id => comment.id } - assert_response :success - assert_equal false, comment.reload.visible - end - - ## - # test unhide comment fail - def test_unhide_comment_fail - # unauthorized - comment = create(:changeset_comment, :visible => false) - assert_equal false, comment.visible - - post :unhide_comment, :params => { :id => comment.id } - assert_response :unauthorized - assert_equal false, comment.reload.visible - - basic_authorization(create(:user).email, "test") - - # not a moderator - post :unhide_comment, :params => { :id => comment.id } - assert_response :forbidden - assert_equal false, comment.reload.visible - - basic_authorization(create(:moderator_user).email, "test") - - # bad comment id - post :unhide_comment, :params => { :id => 999111 } - assert_response :not_found - assert_equal false, comment.reload.visible - end - - ## - # test unhide comment succes - def test_unhide_comment_success - comment = create(:changeset_comment, :visible => false) - assert_equal false, comment.visible - - basic_authorization(create(:moderator_user).email, "test") - - post :unhide_comment, :params => { :id => comment.id } - assert_response :success - assert_equal true, comment.reload.visible - end - - ## - # test comments feed - def test_comments_feed - changeset = create(:changeset, :closed) - create_list(:changeset_comment, 3, :changeset => changeset) - - get :comments_feed, :params => { :format => "rss" } - assert_response :success - assert_equal "application/rss+xml", @response.content_type - assert_select "rss", :count => 1 do - assert_select "channel", :count => 1 do - assert_select "item", :count => 3 - end - end - - get :comments_feed, :params => { :format => "rss", :limit => 2 } - assert_response :success - assert_equal "application/rss+xml", @response.content_type - assert_select "rss", :count => 1 do - assert_select "channel", :count => 1 do - assert_select "item", :count => 2 - end - end - - get :comments_feed, :params => { :id => changeset.id, :format => "rss" } - assert_response :success - assert_equal "application/rss+xml", @response.content_type - assert_select "rss", :count => 1 do - assert_select "channel", :count => 1 do - assert_select "item", :count => 3 - end - end - end - - ## - # test comments feed - def test_comments_feed_bad_limit - get :comments_feed, :params => { :format => "rss", :limit => 0 } - assert_response :bad_request - - get :comments_feed, :params => { :format => "rss", :limit => 100001 } - assert_response :bad_request - end - private ## @@ -2495,8 +2262,8 @@ EOF end ## - # check the result of a list - def check_list_result(changesets) + # check the result of a index + def check_index_result(changesets) changesets = changesets.where("num_changes > 0") .order(:created_at => :desc) .limit(20)