Add more tests for hidden diary entries and comments
authorTom Hughes <tom@compton.nu>
Tue, 15 Oct 2013 18:16:33 +0000 (19:16 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 15 Oct 2013 18:21:39 +0000 (19:21 +0100)
test/fixtures/diary_comments.yml
test/fixtures/diary_entries.yml
test/functional/diary_entry_controller_test.rb
test/unit/diary_comment_test.rb
test/unit/diary_entry_test.rb

index b8fb5c853e8f549409175df53d9c749d966c4270..247fc3abd484e5da29dddbdfdc93339e04fce0fd 100644 (file)
@@ -5,6 +5,7 @@ comment_for_geo_post:
   body: Some comment text
   created_at: "2008-11-08 09:45:34"
   updated_at: "2008-11-08 10:34:34"
+  visible: true
 
 comment_by_suspended_user:
   id: 2
@@ -13,6 +14,7 @@ comment_by_suspended_user:
   body: Some comment text
   created_at: "2008-11-08 09:45:34"
   updated_at: "2008-11-08 10:34:34"
+  visible: true
 
 comment_by_deleted_user:
   id: 3
@@ -21,3 +23,13 @@ comment_by_deleted_user:
   body: Some comment text
   created_at: "2008-11-08 09:45:34"
   updated_at: "2008-11-08 10:34:34"
+  visible: true
+
+hidden_comment:
+  id: 4
+  diary_entry_id: 2
+  user_id: 2
+  body: Some comment text
+  created_at: "2008-11-08 09:45:34"
+  updated_at: "2008-11-08 10:34:34"
+  visible: false
index 864dc250d6cbae7924b0749e9666d07b5f9ce44e..27717302defc2f4d7002dc4a0f21ad9c0d4e0d99 100644 (file)
@@ -23,7 +23,6 @@ normal_user_geo_entry:
   visible: true
 
 deleted_entry:
-
   id: 3
   user_id: 1
   title: Deleted Entry 1
@@ -34,3 +33,27 @@ deleted_entry:
   longitude: 
   language_code: en
   visible: false
+
+entry_by_suspended_user:
+  id: 4
+  user_id: 10
+  title: Entry by suspended user
+  body: This is the body of a diary entry by a suspended user.
+  created_at: "2008-11-07 17:43:34"
+  updated_at: "2008-11-07 17:43:34"
+  latitude: 
+  longitude: 
+  language_code: en
+  visible: true
+
+entry_by_deleted_user:
+  id: 5
+  user_id: 11
+  title: Entry by deleted user
+  body: This is the body of a diary entry by a deleted user.
+  created_at: "2008-11-07 17:43:34"
+  updated_at: "2008-11-07 17:43:34"
+  latitude: 
+  longitude: 
+  language_code: en
+  visible: true
index be4dbe87ae1957093871ca50c80167a2677f9d21..7e0f10790fe771687e6fcba4c9057493403ba63d 100644 (file)
@@ -310,7 +310,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     end
     assert_response :redirect
     assert_redirected_to :action => :list, :display_name => users(:normal_user).display_name
-    entry = DiaryEntry.find(4)
+    entry = DiaryEntry.find(6)
     assert_equal users(:normal_user).id, entry.user_id
     assert_equal new_title, entry.title
     assert_equal new_body, entry.body
@@ -354,7 +354,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_match /New comment/, email.text_part.decoded
     assert_match /New comment/, email.html_part.decoded
     ActionMailer::Base.deliveries.clear
-    comment = DiaryComment.find(4)
+    comment = DiaryComment.find(5)
     assert_equal entry.id, comment.diary_entry_id
     assert_equal users(:public_user).id, comment.user_id
     assert_equal "New comment", comment.body
@@ -363,7 +363,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     get :view, :display_name => entry.user.display_name, :id => entry.id
     assert_response :success
     assert_select ".diary-comment", :count => 1 do
-      assert_select "#comment4", :count => 1 do
+      assert_select "#comment5", :count => 1 do
         assert_select "a[href='/user/#{users(:public_user).display_name}']", :text => users(:public_user).display_name, :count => 1
       end
       assert_select ".richtext", :text => /New comment/, :count => 1
@@ -421,14 +421,49 @@ class DiaryEntryControllerTest < ActionController::TestCase
   end
   
   def test_rss_nonexisting_user
+    # Try a user that has never existed
     get :rss, {:display_name => 'fakeUsername76543', :format => :rss}
     assert_response :not_found, "Should not be able to get a nonexisting users diary RSS"
+
+    # Try a suspended user
+    get :rss, {:display_name => users(:suspended_user).display_name, :format => :rss}
+    assert_response :not_found, "Should not be able to get a suspended users diary RSS"
+
+    # Try a deleted user
+    get :rss, {:display_name => users(:deleted_user).display_name, :format => :rss}
+    assert_response :not_found, "Should not be able to get a deleted users diary RSS"
   end
 
   def test_viewing_diary_entry
+    # Try a normal entry that should work
     get :view, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}
     assert_response :success
-    assert_template 'view'
+    assert_template :view
+
+    # Try a deleted entry
+    get :view, {:display_name => users(:normal_user).display_name, :id => diary_entries(:deleted_entry).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}
+    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}
+    assert_response :not_found
+  end
+
+  def test_viewing_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}
+    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
+    end
   end
 
   def test_hide
index e4ac3d4225a31faa742d67fe3655784067cfa789..e6d7a71b443e95f7fabc27a64263775bc0031f0f 100644 (file)
@@ -5,6 +5,6 @@ class DiaryCommentTest < ActiveSupport::TestCase
   fixtures :diary_comments
   
   def test_diary_comment_count
-    assert_equal 3, DiaryComment.count
+    assert_equal 4, DiaryComment.count
   end
 end
index 0b64cbac38b3a524fd610493c8df502bcb2e6bca..0801aa299a9ca74f86ff0f9575a22caee5e14c5f 100644 (file)
@@ -5,7 +5,7 @@ class DiaryEntryTest < ActiveSupport::TestCase
   fixtures :diary_entries, :diary_comments, :languages
   
   def test_diary_entry_count
-    assert_equal 3, DiaryEntry.count
+    assert_equal 5, DiaryEntry.count
   end
   
   def test_diary_entry_validations
@@ -25,7 +25,7 @@ class DiaryEntryTest < ActiveSupport::TestCase
   end
 
   def test_diary_entry_visible
-    assert_equal 2, DiaryEntry.visible.count
+    assert_equal 4, DiaryEntry.visible.count
     assert_raise ActiveRecord::RecordNotFound do
       DiaryEntry.visible.find(diary_entries(:deleted_entry).id)
     end
@@ -33,7 +33,7 @@ class DiaryEntryTest < ActiveSupport::TestCase
   
   def test_diary_entry_comments
     assert_equal 0, diary_entries(:normal_user_entry_1).comments.count
-    assert_equal 3, diary_entries(:normal_user_geo_entry).comments.count
+    assert_equal 4, diary_entries(:normal_user_geo_entry).comments.count
   end
   
   def test_diary_entry_visible_comments