X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/a2bb4388e41796edd7d5e117e44084d0b3b41253..a2e7b5db56a1bc61d90ea2c74e9961fcafd46218:/test/mailers/user_mailer_test.rb
diff --git a/test/mailers/user_mailer_test.rb b/test/mailers/user_mailer_test.rb
index 23136951c..25123b392 100644
--- a/test/mailers/user_mailer_test.rb
+++ b/test/mailers/user_mailer_test.rb
@@ -6,4 +6,81 @@ class UserMailerTest < ActionMailer::TestCase
assert_match(/ t, :tag => "one")
+ create(:tracetag, :trace => t, :tag => "two")
+ create(:tracetag, :trace => t, :tag => "three")
+ end
+ email = UserMailer.gpx_success(trace, 100)
+
+ assert_match("one, two, three", email.html_part.body.to_s)
+ end
+
+ def test_gpx_success_all_traces_link
+ trace = create(:trace)
+ email = UserMailer.gpx_success(trace, 100)
+ body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+ url = Rails.application.routes.url_helpers.url_for(:controller => "traces", :action => "mine", :host => Settings.server_url, :protocol => Settings.server_protocol)
+ assert_select body, "a[href='#{url}']"
+ end
+
+ def test_gpx_success_trace_link
+ trace = create(:trace)
+ email = UserMailer.gpx_success(trace, 100)
+ body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+ url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ assert_select body, "a[href='#{url}']", :text => trace.name
+ end
+
+ def test_gpx_failure_no_trace_link
+ trace = create(:trace)
+ email = UserMailer.gpx_failure(trace, "some error")
+ body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+ url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ assert_select body, "a[href='#{url}']", :count => 0
+ end
+
+ def test_html_encoding
+ user = create(:user, :display_name => "Jack & Jill
")
+ message = create(:message, :sender => user)
+ email = UserMailer.message_notification(message)
+
+ assert_match("Jack & Jill
", email.text_part.body.to_s)
+ assert_match("Jack & Jill <br>", email.html_part.body.to_s)
+ end
+
+ def test_diary_comment_notification
+ create(:language, :code => "en")
+ user = create(:user)
+ other_user = create(:user)
+ diary_entry = create(:diary_entry, :user => user)
+ diary_comment = create(:diary_comment, :diary_entry => diary_entry)
+ email = UserMailer.diary_comment_notification(diary_comment, other_user)
+ body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+ url = Rails.application.routes.url_helpers.diary_entry_url(user, diary_entry, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ unsubscribe_url = Rails.application.routes.url_helpers.diary_entry_unsubscribe_url(user, diary_entry, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ assert_select body, "a[href^='#{url}']"
+ assert_select body, "a[href='#{unsubscribe_url}']", :count => 1
+ end
+
+ def test_changeset_comment_notification
+ create(:language, :code => "en")
+ user = create(:user)
+ other_user = create(:user)
+ changeset = create(:changeset, :user => user)
+ changeset_comment = create(:changeset_comment, :changeset => changeset)
+ email = UserMailer.changeset_comment_notification(changeset_comment, other_user)
+ body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body)
+
+ url = Rails.application.routes.url_helpers.changeset_url(changeset, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ unsubscribe_url = Rails.application.routes.url_helpers.unsubscribe_changeset_url(changeset, :host => Settings.server_url, :protocol => Settings.server_protocol)
+ assert_select body, "a[href^='#{url}']"
+ assert_select body, "a[href='#{unsubscribe_url}']", :count => 1
+ end
end