]> git.openstreetmap.org Git - rails.git/blobdiff - test/system/issues_test.rb
Merge remote-tracking branch 'upstream/pull/5573'
[rails.git] / test / system / issues_test.rb
index ab2330e317b1fdfecbadbec79f8f39c861d7292b..a961ea80f7a54099597920e2073c0055a573cad9 100644 (file)
@@ -5,7 +5,7 @@ class IssuesTest < ApplicationSystemTestCase
 
   def test_view_issues_not_logged_in
     visit issues_path
-    assert_content I18n.t("sessions.new.title")
+    assert_content "Log in"
   end
 
   def test_view_issues_normal_user
@@ -163,30 +163,89 @@ class IssuesTest < ApplicationSystemTestCase
   end
 
   def test_issues_pagination
-    1.upto(80).each do
-      user = create(:user)
+    1.upto(8).each do |n|
+      user = create(:user, :display_name => "extra_#{n}")
       create(:issue, :reportable => user, :reported_user => user, :assigned_role => "administrator")
     end
 
     sign_in_as(create(:administrator_user))
 
-    visit issues_path
+    visit issues_path(:limit => 5)
 
     # First Page
     assert_no_content I18n.t("issues.page.user_not_found")
     assert_no_content I18n.t("issues.page.issues_not_found")
-    assert_css "tr", :count => 51
+    4.upto(8).each do |n|
+      assert_content(/extra_#{n}[^\d]/i, :count => 2)
+    end
+    1.upto(3).each do |n|
+      assert_no_content(/extra_#{n}[^\d]/i)
+    end
 
     # Second Page
-    click_on I18n.t("issues.page.older_issues")
+    click_on "Older Issues"
     assert_no_content I18n.t("issues.page.user_not_found")
     assert_no_content I18n.t("issues.page.issues_not_found")
-    assert_css "tr", :count => 31
+    4.upto(8).each do |n|
+      assert_no_content(/extra_#{n}[^\d]/i)
+    end
+    1.upto(3).each do |n|
+      assert_content(/extra_#{n}[^\d]/i, :count => 2)
+    end
 
     # Back to First Page
-    click_on I18n.t("issues.page.newer_issues")
+    click_on "Newer Issues"
     assert_no_content I18n.t("issues.page.user_not_found")
     assert_no_content I18n.t("issues.page.issues_not_found")
-    assert_css "tr", :count => 51
+    4.upto(8).each do |n|
+      assert_content(/extra_#{n}[^\d]/i, :count => 2)
+    end
+    1.upto(3).each do |n|
+      assert_no_content(/extra_#{n}[^\d]/i)
+    end
+  end
+
+  def test_single_issue_reporters
+    sign_in_as(create(:moderator_user))
+    issue = create(:issue, :assigned_role => "moderator")
+    issue.reports << create(:report, :user => create(:user, :display_name => "Test Name"))
+
+    visit issues_path
+    assert_content issue.reported_user.display_name
+    assert_content issue.reports.first.user.display_name
+  end
+
+  def test_multiple_issue_reporters
+    sign_in_as(create(:moderator_user))
+    issue = create(:issue, :assigned_role => "moderator")
+
+    create_list(:report, 5, :issue => issue)
+
+    visit issues_path
+    0.upto(1).each do |n|
+      assert_no_content issue.reports[n].user.display_name
+    end
+    2.upto(4).each do |n|
+      assert_content issue.reports[n].user.display_name
+    end
+  end
+
+  def test_ordering_issue_reporters
+    sign_in_as(create(:moderator_user))
+    issue = create(:issue, :assigned_role => "moderator")
+
+    create_list(:report, 5, :issue => issue)
+
+    4.downto(0).each do |n|
+      issue.reports << create(:report, :user => issue.reports[n].user)
+    end
+
+    visit issues_path
+    0.upto(2).each do |n|
+      assert_content issue.reports[n].user.display_name
+    end
+    3.upto(4).each do |n|
+      assert_no_content issue.reports[n].user.display_name
+    end
   end
 end