Remove diary_entry and diary_comment fixtures, and refactor tests.
Note that you might need to empty the tables in your local test database, since the removed fixtures may still linger there.
This commit is contained in:
parent
ea610c8c3c
commit
f1713320c2
3 changed files with 61 additions and 131 deletions
|
@ -1,7 +1,7 @@
|
|||
require "test_helper"
|
||||
|
||||
class DiaryEntryControllerTest < ActionController::TestCase
|
||||
fixtures :users, :user_roles, :diary_entries, :diary_comments, :languages, :friends
|
||||
fixtures :users, :user_roles, :languages, :friends
|
||||
|
||||
include ActionView::Helpers::NumberHelper
|
||||
|
||||
|
@ -199,7 +199,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_edit
|
||||
entry = diary_entries(:normal_user_entry_1)
|
||||
entry = create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
|
||||
# Make sure that you are redirected to the login page when you are
|
||||
# not logged in, without and with the id of the entry you want to edit
|
||||
|
@ -296,13 +296,14 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_edit_i18n
|
||||
get :edit, { :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id }, { :user => users(:normal_user).id }
|
||||
diary_entry = create(:diary_entry, :language_code => "en")
|
||||
get :edit, { :display_name => users(:normal_user).display_name, :id => diary_entry.id }, { :user => users(:normal_user).id }
|
||||
assert_response :success
|
||||
assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry"
|
||||
end
|
||||
|
||||
def test_comment
|
||||
entry = diary_entries(:normal_user_entry_1)
|
||||
entry = create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
|
||||
# Make sure that you are denied when you are not logged in
|
||||
post :comment, :display_name => entry.user.display_name, :id => entry.id
|
||||
|
@ -356,7 +357,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
|
||||
def test_comment_spammy
|
||||
# Find the entry to comment on
|
||||
entry = diary_entries(:normal_user_entry_1)
|
||||
entry = create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
|
||||
# Generate some spammy content
|
||||
spammy_text = 1.upto(50).map { |n| "http://example.com/spam#{n}" }.join(" ")
|
||||
|
@ -393,15 +394,22 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_list_all
|
||||
diary_entry = create(:diary_entry)
|
||||
geo_entry = create(:diary_entry, :latitude => 51.50763, :longitude => -0.10781)
|
||||
public_entry = create(:diary_entry, :user_id => users(:public_user).id)
|
||||
|
||||
# Try a list of all diary entries
|
||||
get :list
|
||||
check_diary_list :normal_user_entry_1, :normal_user_geo_entry, :public_user_entry_1
|
||||
check_diary_list diary_entry, geo_entry, public_entry
|
||||
end
|
||||
|
||||
def test_list_user
|
||||
diary_entry = create(:diary_entry)
|
||||
geo_entry = create(:diary_entry, :latitude => 51.50763, :longitude => -0.10781)
|
||||
|
||||
# Try a list of diary entries for a valid user
|
||||
get :list, :display_name => users(:normal_user).display_name
|
||||
check_diary_list :normal_user_entry_1, :normal_user_geo_entry
|
||||
check_diary_list diary_entry, geo_entry
|
||||
|
||||
# Try a list of diary entries for an invalid user
|
||||
get :list, :display_name => "No Such User"
|
||||
|
@ -410,6 +418,8 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_list_friends
|
||||
diary_entry = create(:diary_entry, :user_id => friends(:normal_user_with_second_user).friend_user_id)
|
||||
|
||||
# Try a list of diary entries for your friends when not logged in
|
||||
get :list, :friends => true
|
||||
assert_response :redirect
|
||||
|
@ -417,12 +427,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
|
||||
# Try a list of diary entries for your friends when logged in
|
||||
get :list, { :friends => true }, { :user => users(:normal_user).id }
|
||||
check_diary_list :public_user_entry_1
|
||||
check_diary_list diary_entry
|
||||
get :list, { :friends => true }, { :user => users(:public_user).id }
|
||||
check_diary_list
|
||||
end
|
||||
|
||||
def test_list_nearby
|
||||
diary_entry = create(:diary_entry, :user_id => users(:public_user).id)
|
||||
# Try a list of diary entries for nearby users when not logged in
|
||||
get :list, :nearby => true
|
||||
assert_response :redirect
|
||||
|
@ -430,19 +441,23 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
|
||||
# Try a list of diary entries for nearby users when logged in
|
||||
get :list, { :nearby => true }, { :user => users(:german_user).id }
|
||||
check_diary_list :public_user_entry_1
|
||||
check_diary_list diary_entry
|
||||
get :list, { :nearby => true }, { :user => users(:public_user).id }
|
||||
check_diary_list
|
||||
end
|
||||
|
||||
def test_list_language
|
||||
diary_entry_en = create(:diary_entry, :language_code => "en")
|
||||
diary_entry_en2 = create(:diary_entry, :language_code => "en")
|
||||
diary_entry_de = create(:diary_entry, :language_code => "de")
|
||||
|
||||
# Try a list of diary entries in english
|
||||
get :list, :language => "en"
|
||||
check_diary_list :normal_user_entry_1, :public_user_entry_1
|
||||
check_diary_list diary_entry_en, diary_entry_en2
|
||||
|
||||
# Try a list of diary entries in german
|
||||
get :list, :language => "de"
|
||||
check_diary_list :normal_user_geo_entry
|
||||
check_diary_list diary_entry_de
|
||||
|
||||
# Try a list of diary entries in slovenian
|
||||
get :list, :language => "sl"
|
||||
|
@ -450,6 +465,10 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_rss
|
||||
create(:diary_entry, :language_code => "en")
|
||||
create(:diary_entry, :language_code => "en")
|
||||
create(:diary_entry, :language_code => "de")
|
||||
|
||||
get :rss, :format => :rss
|
||||
assert_response :success, "Should be able to get a diary RSS"
|
||||
assert_select "rss", :count => 1 do
|
||||
|
@ -462,7 +481,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_rss_language
|
||||
get :rss, :language => diary_entries(:normal_user_entry_1).language_code, :format => :rss
|
||||
create(:diary_entry, :language_code => "en")
|
||||
create(:diary_entry, :language_code => "en")
|
||||
create(:diary_entry, :language_code => "de")
|
||||
|
||||
get :rss, :language => "en", :format => :rss
|
||||
assert_response :success, "Should be able to get a specific language diary RSS"
|
||||
assert_select "rss>channel>item", :count => 2 # , "Diary entries should be filtered by language"
|
||||
end
|
||||
|
@ -473,12 +496,18 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
# end
|
||||
|
||||
def test_rss_language_with_no_entries
|
||||
create(:diary_entry, :language_code => "en")
|
||||
|
||||
get :rss, :language => "sl", :format => :rss
|
||||
assert_response :success, "Should be able to get a specific language diary RSS"
|
||||
assert_select "rss>channel>item", :count => 0 # , "Diary entries should be filtered by language"
|
||||
end
|
||||
|
||||
def test_rss_user
|
||||
create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
create(:diary_entry, :user_id => users(:public_user).id)
|
||||
|
||||
get :rss, :display_name => users(:normal_user).display_name, :format => :rss
|
||||
assert_response :success, "Should be able to get a specific users diary RSS"
|
||||
assert_select "rss>channel>item", :count => 2 # , "Diary entries should be filtered by user"
|
||||
|
@ -500,20 +529,24 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
|
||||
def test_view
|
||||
# Try a normal entry that should work
|
||||
get :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id
|
||||
diary_entry = create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
get :view, :display_name => users(:normal_user).display_name, :id => diary_entry.id
|
||||
assert_response :success
|
||||
assert_template :view
|
||||
|
||||
# Try a deleted entry
|
||||
get :view, :display_name => users(:normal_user).display_name, :id => diary_entries(:deleted_entry).id
|
||||
diary_entry_deleted = create(:diary_entry, :user_id => users(:normal_user).id, :visible => false)
|
||||
get :view, :display_name => users(:normal_user).display_name, :id => diary_entry_deleted.id
|
||||
assert_response :not_found
|
||||
|
||||
# Try an entry by a suspended user
|
||||
get :view, :display_name => users(:suspended_user).display_name, :id => diary_entries(:entry_by_suspended_user).id
|
||||
diary_entry_suspended = create(:diary_entry, :user_id => users(:suspended_user).id)
|
||||
get :view, :display_name => users(:suspended_user).display_name, :id => diary_entry_suspended.id
|
||||
assert_response :not_found
|
||||
|
||||
# Try an entry by a deleted user
|
||||
get :view, :display_name => users(:deleted_user).display_name, :id => diary_entries(:entry_by_deleted_user).id
|
||||
diary_entry_deleted = create(:diary_entry, :user_id => users(:deleted_user).id)
|
||||
get :view, :display_name => users(:deleted_user).display_name, :id => diary_entry_deleted.id
|
||||
assert_response :not_found
|
||||
end
|
||||
|
||||
|
@ -557,22 +590,24 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_hidecomment
|
||||
diary_entry = create(:diary_entry, :user_id => users(:normal_user).id)
|
||||
diary_comment = create(:diary_comment, :diary_entry => diary_entry)
|
||||
# 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
|
||||
post :hidecomment, :display_name => users(:normal_user).display_name, :id => diary_entry.id, :comment => diary_comment.id
|
||||
assert_response :forbidden
|
||||
assert_equal true, DiaryComment.find(diary_comments(:comment_for_geo_post).id).visible
|
||||
assert_equal true, DiaryComment.find(diary_comment.id).visible
|
||||
|
||||
# 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 }
|
||||
post :hidecomment, { :display_name => users(:normal_user).display_name, :id => diary_entry.id, :comment => diary_comment.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
|
||||
assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entry.id
|
||||
assert_equal true, DiaryComment.find(diary_comment.id).visible
|
||||
|
||||
# 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 }
|
||||
post :hidecomment, { :display_name => users(:normal_user).display_name, :id => diary_entry.id, :comment => diary_comment.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
|
||||
assert_redirected_to :action => :view, :display_name => users(:normal_user).display_name, :id => diary_entry.id
|
||||
assert_equal false, DiaryComment.find(diary_comment.id).visible
|
||||
end
|
||||
|
||||
def test_comments
|
||||
|
@ -585,6 +620,8 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
# Test a user with a comment
|
||||
create(:diary_comment, :user_id => users(:public_user).id)
|
||||
|
||||
get :comments, :display_name => users(:public_user).display_name
|
||||
assert_response :success
|
||||
assert_template :comments
|
||||
|
@ -610,7 +647,6 @@ class DiaryEntryControllerTest < ActionController::TestCase
|
|||
assert_select "div.diary_post", entries.count
|
||||
|
||||
entries.each do |entry|
|
||||
entry = diary_entries(entry)
|
||||
assert_select "a[href=?]", "/user/#{entry.user.display_name}/diary/#{entry.id}"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue