]> git.openstreetmap.org Git - rails.git/blobdiff - test/system/diary_entry_test.rb
Merge remote-tracking branch 'upstream/pull/2226'
[rails.git] / test / system / diary_entry_test.rb
index b8eb5f66750e028a25940f5a03f18d362f761df5..38e2a184727c398d2a6b4953cf54330697217ee6 100644 (file)
@@ -1,6 +1,6 @@
 require "application_system_test_case"
 
-class DiaryEntryTest < ApplicationSystemTestCase
+class DiaryEntrySystemTest < ApplicationSystemTestCase
   def setup
     create(:language, :code => "en")
     @diary_entry = create(:diary_entry)
@@ -8,11 +8,57 @@ class DiaryEntryTest < ApplicationSystemTestCase
 
   test "reply to diary entry should prefill the message subject" do
     sign_in_as(create(:user))
-    visit diary_path
+    visit diary_entries_path
 
     click_on "Reply to this entry"
 
     assert page.has_content? "Send a new message"
     assert_equal "Re: #{@diary_entry.title}", page.find_field("Subject").value
   end
+
+  test "deleted diary entries should be hidden for regular users" do
+    @deleted_entry = create(:diary_entry, :visible => false)
+
+    sign_in_as(create(:user))
+    visit diary_entries_path
+
+    assert_not page.has_content? @deleted_entry.title
+  end
+
+  test "deleted diary entries should be shown to administrators for review" do
+    @deleted_entry = create(:diary_entry, :visible => false)
+
+    sign_in_as(create(:administrator_user))
+    visit diary_entries_path
+
+    assert page.has_content? @deleted_entry.title
+  end
+
+  test "deleted diary entries should not be shown to admins when the user is also deleted" do
+    @deleted_user = create(:user, :status => :deleted)
+    @deleted_entry = create(:diary_entry, :visible => false, :user => @deleted_user)
+
+    sign_in_as(create(:administrator_user))
+    visit diary_entries_path
+
+    assert_not page.has_content? @deleted_entry.title
+  end
+
+  test "deleted diary comments should be hidden for regular users" do
+    @deleted_comment = create(:diary_comment, :diary_entry => @diary_entry, :visible => false)
+
+    sign_in_as(create(:user))
+    visit diary_entry_path(@diary_entry.user, @diary_entry)
+
+    assert_not page.has_content? @deleted_comment.body
+  end
+
+  test "deleted diary comments should be shown to administrators" do
+    @deleted_comment = create(:diary_comment, :diary_entry => @diary_entry, :visible => false)
+
+    sign_in_as(create(:administrator_user))
+    visit diary_entry_path(@diary_entry.user, @diary_entry)
+
+    assert page.has_content? @deleted_comment.body
+  end
 end