X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/fe1e28b4f45f6aa4bb53dc5163c187c5206b66a7..2c7f2b117bdda7c4ad04af7621a6b39016475db6:/test/controllers/changeset_controller_test.rb diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index 654682ac0..329be5be1 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -98,16 +98,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 @@ -327,7 +327,7 @@ class ChangesetControllerTest < ActionController::TestCase # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -343,7 +343,7 @@ class ChangesetControllerTest < ActionController::TestCase -EOF +CHANGESET # upload it content diff @@ -357,7 +357,7 @@ EOF # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -373,7 +373,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -387,7 +387,7 @@ EOF # simple diff to change a node, way and relation by removing # their tags - diff = < @@ -403,7 +403,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -429,7 +429,7 @@ EOF basic_authorization user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -448,7 +448,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -561,8 +561,8 @@ EOF basic_authorization create(:user).email, "test" # create a temporary changeset - content "" + - "" + + content "" \ + "" \ "" assert_difference "Changeset.count", 1 do put :create @@ -582,7 +582,7 @@ EOF # upload some widely-spaced nodes, spiralling positive and negative to cause # largest bbox over-expansion possible. - diff = < @@ -605,7 +605,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. @@ -739,7 +739,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -747,7 +747,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -770,7 +770,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -790,7 +790,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -832,7 +832,7 @@ EOF basic_authorization changeset.user.email, "test" # simple diff to create a node way and relation using placeholders - diff = < @@ -854,7 +854,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -878,7 +878,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 +891,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -914,14 +914,14 @@ EOF basic_authorization changeset.user.email, "test" - diff = < -EOF +CHANGESET # upload it content diff @@ -937,13 +937,13 @@ EOF basic_authorization changeset.user.email, "test" - diff = < -EOF +CHANGESET # upload it content diff @@ -959,13 +959,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 +985,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -997,7 +997,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1021,7 +1021,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1035,7 +1035,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1056,7 +1056,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1064,7 +1064,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1082,7 +1082,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1096,7 +1096,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1106,7 +1106,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 +1120,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1139,7 +1139,7 @@ EOF basic_authorization changeset.user.email, "test" - diff = < @@ -1153,7 +1153,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1163,7 +1163,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 +1177,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1193,8 +1193,8 @@ EOF def test_upload_node_move basic_authorization create(:user).email, "test" - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success @@ -1231,8 +1231,8 @@ EOF def test_upload_way_extend basic_authorization create(:user).email, "test" - content "" + - "" + + content "" \ + "" \ "" put :create assert_response :success @@ -1280,7 +1280,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 +1321,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 +1355,7 @@ EOF -EOF +CHANGESET # upload it content diff @@ -1377,11 +1377,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 +1439,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 +1470,7 @@ OSMFILE -EOF +CHANGESET # upload it content diff @@ -1880,7 +1880,7 @@ EOF # check that the changeset is now closed as well assert(!changeset.is_open?, - "changeset should have been auto-closed by exceeding " + + "changeset should have been auto-closed by exceeding " \ "element limit.") end @@ -2060,6 +2060,8 @@ 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) @@ -2075,6 +2077,8 @@ 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) @@ -2092,6 +2096,8 @@ 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 } @@ -2147,7 +2153,7 @@ EOF deleted_user = create(:user, :deleted) private_user_closed_changeset = create(:changeset, :closed, :user => private_user) - basic_authorization(user.email, "test") + basic_authorization user.email, "test" assert_difference "ChangesetComment.count", 1 do assert_no_difference "ActionMailer::Base.deliveries.size" do @@ -2176,7 +2182,7 @@ EOF ActionMailer::Base.deliveries.clear - basic_authorization(user2.email, "test") + basic_authorization user2.email, "test" assert_difference "ChangesetComment.count", 1 do assert_difference "ActionMailer::Base.deliveries.size", 2 do @@ -2205,7 +2211,7 @@ EOF post :comment, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" } assert_response :unauthorized - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" # bad changeset id assert_no_difference "ChangesetComment.count" do @@ -2235,13 +2241,20 @@ EOF ## # test subscribe success def test_subscribe_success - basic_authorization(create(:user).email, "test") + basic_authorization create(:user).email, "test" changeset = create(:changeset, :closed) assert_difference "changeset.subscribers.count", 1 do post :subscribe, :params => { :id => changeset.id } end assert_response :success + + # not closed changeset + changeset = create(:changeset) + assert_difference "changeset.subscribers.count", 1 do + post :subscribe, :params => { :id => changeset.id } + end + assert_response :success end ## @@ -2256,7 +2269,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 +2277,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 +2290,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 +2298,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 +2319,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 +2327,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 @@ -2338,14 +2346,14 @@ EOF assert_response :unauthorized assert_equal true, comment.reload.visible - basic_authorization(create(:user).email, "test") + 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") + basic_authorization create(:moderator_user).email, "test" # bad comment id post :hide_comment, :params => { :id => 999111 } @@ -2359,7 +2367,7 @@ EOF comment = create(:changeset_comment) assert_equal true, comment.visible - basic_authorization(create(:moderator_user).email, "test") + basic_authorization create(:moderator_user).email, "test" post :hide_comment, :params => { :id => comment.id } assert_response :success @@ -2377,14 +2385,14 @@ EOF assert_response :unauthorized assert_equal false, comment.reload.visible - basic_authorization(create(:user).email, "test") + 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") + basic_authorization create(:moderator_user).email, "test" # bad comment id post :unhide_comment, :params => { :id => 999111 } @@ -2398,7 +2406,7 @@ EOF comment = create(:changeset_comment, :visible => false) assert_equal false, comment.visible - basic_authorization(create(:moderator_user).email, "test") + basic_authorization create(:moderator_user).email, "test" post :unhide_comment, :params => { :id => comment.id } assert_response :success