X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/57219d516a6bfa5ce105c6356ff065e193409513..4f05b6a8accae4877f81e617262a52cf0428cf8f:/test/functional/diary_entry_controller_test.rb diff --git a/test/functional/diary_entry_controller_test.rb b/test/functional/diary_entry_controller_test.rb index 2b85f9f49..be4dbe87a 100644 --- a/test/functional/diary_entry_controller_test.rb +++ b/test/functional/diary_entry_controller_test.rb @@ -430,4 +430,76 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_response :success assert_template 'view' end + + def test_hide + # Try without logging in + post :hide, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id} + assert_response :forbidden + assert_equal true, DiaryEntry.find(diary_entries(:normal_user_entry_1).id).visible + + @request.cookies["_osm_username"] = users(:normal_user).display_name + + # Now try as a normal user + post :hide, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}, {:user => users(:normal_user).id} + assert_response :redirect + assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id + assert_equal true, DiaryEntry.find(diary_entries(:normal_user_entry_1).id).visible + + @request.cookies["_osm_username"] = users(:administrator_user).display_name + + # Finally try as an administrator + post :hide, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}, {:user => users(:administrator_user).id} + assert_response :redirect + assert_redirected_to :action => :list, :display_name => users(:normal_user).display_name + assert_equal false, DiaryEntry.find(diary_entries(:normal_user_entry_1).id).visible + end + + def test_hidecomment + # Try without logging in + post :hidecomment, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id, :comment => diary_comments(:comment_for_geo_post).id} + assert_response :forbidden + assert_equal true, DiaryComment.find(diary_comments(:comment_for_geo_post).id).visible + + @request.cookies["_osm_username"] = users(:normal_user).display_name + + # Now try as a normal user + post :hidecomment, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id, :comment => diary_comments(:comment_for_geo_post).id}, {:user => users(:normal_user).id} + assert_response :redirect + assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id + assert_equal true, DiaryComment.find(diary_comments(:comment_for_geo_post).id).visible + + @request.cookies["_osm_username"] = users(:administrator_user).display_name + + # Finally try as an administrator + post :hidecomment, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id, :comment => diary_comments(:comment_for_geo_post).id}, {:user => users(:administrator_user).id} + assert_response :redirect + assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id + assert_equal false, DiaryComment.find(diary_comments(:comment_for_geo_post).id).visible + end + + def test_comments + # Test a user with no comments + get :comments, :display_name => users(:normal_user).display_name + assert_response :success + assert_template :comments + assert_select "table.messages" do + assert_select "tr", :count => 1 # header, no comments + end + + # Test a user with a comment + get :comments, :display_name => users(:public_user).display_name + assert_response :success + assert_template :comments + assert_select "table.messages" do + assert_select "tr", :count => 2 # header and one comment + end + + # Test a suspended user + get :comments, :display_name => users(:suspended_user).display_name + assert_response :not_found + + # Test a deleted user + get :comments, :display_name => users(:deleted_user).display_name + assert_response :not_found + end end