]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/notes_controller_test.rb
Convert api element history actions to versions resources
[rails.git] / test / controllers / notes_controller_test.rb
index a543342698648aad26dc1991a42fcc3f0ab2330f..a70bb32cd7789d33ae680e2d7a52693aaae68667 100644 (file)
@@ -83,6 +83,15 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
     assert_select "table.note_list tbody tr", :count => 10
   end
 
+  def test_index_invalid_paged
+    user = create(:user)
+
+    %w[-1 0 fred].each do |page|
+      get user_notes_path(user, :page => page)
+      assert_redirected_to :controller => :errors, :action => :bad_request
+    end
+  end
+
   def test_empty_page
     user = create(:user)
     get user_notes_path(user)
@@ -143,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)
@@ -175,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