]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/notes_controller_test.rb
Test showing note by suspended user with comment by other user
[rails.git] / test / controllers / notes_controller_test.rb
index 4092ad7326599cfe964b7adc97d8790a57f7570e..a70bb32cd7789d33ae680e2d7a52693aaae68667 100644 (file)
@@ -152,6 +152,24 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
     assert_select "div.note-comments ul li", :count => 1
   end
 
+  def test_read_note_hidden_opener
+    hidden_user = create(:user, :deleted)
+    note_with_hidden_opener = create(:note)
+    create(:note_comment, :author => hidden_user, :note => note_with_hidden_opener)
+
+    sidebar_browse_check :note_path, note_with_hidden_opener.id, "notes/show"
+    assert_select "div.note-comments ul li", :count => 0
+  end
+
+  def test_read_note_suspended_opener_and_comment
+    note = create(:note)
+    create(:note_comment, :note => note, :author => create(:user, :suspended))
+    create(:note_comment, :note => note)
+
+    sidebar_browse_check :note_path, note.id, "notes/show"
+    assert_select "div.note-comments ul li", :count => 1
+  end
+
   def test_read_closed_note
     user = create(:user)
     closed_note = create(:note_with_comments, :closed, :closed_by => user, :comments_count => 2)
@@ -184,4 +202,38 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
     assert_template "notes/new"
     assert_select "#sidebar_content a[href='#{login_path(:referer => new_note_path)}']", :count => 0
   end
+
+  def test_index_filter_by_status
+    user = create(:user)
+    other_user = create(:user)
+
+    open_note = create(:note, :status => "open")
+    create(:note_comment, :note => open_note, :author => user)
+
+    closed_note = create(:note, :status => "closed")
+    create(:note_comment, :note => closed_note, :author => user)
+
+    hidden_note = create(:note, :status => "hidden")
+    create(:note_comment, :note => hidden_note, :author => user)
+
+    commented_note = create(:note, :status => "open")
+    create(:note_comment, :note => commented_note, :author => other_user)
+    create(:note_comment, :note => commented_note, :author => user)
+
+    get user_notes_path(user, :status => "all")
+    assert_response :success
+    assert_select "table.note_list tbody tr", :count => 3
+
+    get user_notes_path(user, :status => "open")
+    assert_response :success
+    assert_select "table.note_list tbody tr", :count => 2
+
+    get user_notes_path(user, :status => "closed")
+    assert_response :success
+    assert_select "table.note_list tbody tr", :count => 1
+
+    get user_notes_path(user)
+    assert_response :success
+    assert_select "table.note_list tbody tr", :count => 3
+  end
 end