]> git.openstreetmap.org Git - rails.git/blob - test/system/report_diary_entry_test.rb
Improve system tests for issues
[rails.git] / test / system / report_diary_entry_test.rb
1 require "application_system_test_case"
2
3 class ReportDiaryEntryTest < ApplicationSystemTestCase
4   def setup
5     create(:language, :code => "en")
6     @diary_entry = create(:diary_entry)
7   end
8
9   def test_no_link_when_not_logged_in
10     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
11     assert page.has_content?(@diary_entry.title)
12
13     assert_not page.has_content?(I18n.t("diary_entry.diary_entry.report"))
14   end
15
16   def test_it_works
17     sign_in_as(create(:user))
18     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
19     assert page.has_content? @diary_entry.title
20
21     click_on I18n.t("diary_entry.diary_entry.report")
22     assert page.has_content? "Report"
23     assert page.has_content? I18n.t("reports.new.disclaimer.intro")
24
25     choose I18n.t("reports.new.categories.diary_entry.spam")
26     fill_in "report_details", :with => "This is advertising"
27     assert_difference "Issue.count", 1 do
28       click_on "Create Report"
29     end
30
31     assert page.has_content? "Your report has been registered sucessfully"
32
33     assert_equal @diary_entry, Issue.last.reportable
34   end
35
36   def test_it_reopens_issue
37     issue = create(:issue, :reportable => @diary_entry)
38     issue.resolve!
39
40     sign_in_as(create(:user))
41     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
42     assert page.has_content? @diary_entry.title
43
44     click_on I18n.t("diary_entry.diary_entry.report")
45     assert page.has_content? "Report"
46     assert page.has_content? I18n.t("reports.new.disclaimer.intro")
47
48     choose I18n.t("reports.new.categories.diary_entry.spam")
49     fill_in "report_details", :with => "This is advertising"
50     assert_no_difference "Issue.count" do
51       click_on "Create Report"
52     end
53
54     issue.reload
55     assert_not issue.resolved?
56     assert issue.open?
57   end
58
59   def test_missing_report_params
60     sign_in_as(create(:user))
61     visit new_report_path
62     assert page.has_content? I18n.t("reports.new.missing_params")
63   end
64 end