Refactor tests to use factories instead of fixtures

This commit is contained in:
Andy Allan 2016-09-08 11:44:24 +01:00
parent 4f5c8b7956
commit ea610c8c3c

View file

@ -519,34 +519,41 @@ class DiaryEntryControllerTest < ActionController::TestCase
def test_view_hidden_comments
# Get a diary entry that has hidden comments
get :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_geo_entry).id
diary_entry = create(:diary_entry)
visible_comment = create(:diary_comment, :diary_entry => diary_entry)
suspended_user_comment = create(:diary_comment, :diary_entry => diary_entry, :user_id => users(:suspended_user).id)
deleted_user_comment = create(:diary_comment, :diary_entry => diary_entry, :user_id => users(:deleted_user).id)
hidden_comment = create(:diary_comment, :diary_entry => diary_entry, :visible => false)
get :view, :display_name => users(:normal_user).display_name, :id => diary_entry.id
assert_response :success
assert_template :view
assert_select "div.comments" do
assert_select "p#comment1", :count => 1 # visible comment
assert_select "p#comment2", :count => 0 # comment by suspended user
assert_select "p#comment3", :count => 0 # comment by deleted user
assert_select "p#comment4", :count => 0 # hidden comment
assert_select "p#comment#{visible_comment.id}", :count => 1
assert_select "p#comment#{suspended_user_comment.id}", :count => 0
assert_select "p#comment#{deleted_user_comment.id}", :count => 0
assert_select "p#comment#{hidden_comment.id}", :count => 0
end
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
diary_entry = create(:diary_entry)
post :hide, :display_name => users(:normal_user).display_name, :id => diary_entry.id
assert_response :forbidden
assert_equal true, DiaryEntry.find(diary_entries(:normal_user_entry_1).id).visible
assert_equal true, DiaryEntry.find(diary_entry.id).visible
# 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 }
post :hide, { :display_name => users(:normal_user).display_name, :id => diary_entry.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
assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entry.id
assert_equal true, DiaryEntry.find(diary_entry.id).visible
# 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 }
post :hide, { :display_name => users(:normal_user).display_name, :id => diary_entry.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
assert_equal false, DiaryEntry.find(diary_entry.id).visible
end
def test_hidecomment