X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/5f2a5cadcb693b34b81a9232b8879c3b4f12843d..51dab659f55476460a5c89aac43c148ff0e4dba4:/test/system/issues_test.rb diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index ab2330e31..e26ae89ac 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -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 @@ -114,15 +114,15 @@ class IssuesTest < ApplicationSystemTestCase assert_equal("test comment", issue.comments.first.body) end - def test_reassign_issue - issue = create(:issue) - assert_equal "administrator", issue.assigned_role + def test_reassign_issue_to_moderators + issue = create(:issue, :assigned_role => "administrator") sign_in_as(create(:administrator_user)) visit issue_path(issue) + assert_unchecked_field "Reassign Issue to Moderators" fill_in :issue_comment_body, :with => "reassigning to moderators" - check :reassign + check "Reassign Issue to Moderators" click_on "Add Comment" assert_content "and the issue was reassigned" @@ -132,6 +132,24 @@ class IssuesTest < ApplicationSystemTestCase assert_equal "moderator", issue.assigned_role end + def test_reassign_issue_to_administrators + issue = create(:issue, :assigned_role => "moderator") + sign_in_as(create(:moderator_user)) + + visit issue_path(issue) + + assert_unchecked_field "Reassign Issue to Administrators" + fill_in :issue_comment_body, :with => "reassigning to administrators" + check "Reassign Issue to Administrators" + click_on "Add Comment" + + assert_content "and the issue was reassigned" + assert_current_path issues_path(:status => "open") + + issue.reload + assert_equal "administrator", issue.assigned_role + end + def test_reassign_issue_as_super_user issue = create(:issue) sign_in_as(create(:super_user)) @@ -139,7 +157,7 @@ class IssuesTest < ApplicationSystemTestCase visit issue_path(issue) fill_in :issue_comment_body, :with => "reassigning to moderators" - check :reassign + check "Reassign Issue to Moderators" click_on "Add Comment" assert_content "and the issue was reassigned" @@ -163,30 +181,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