aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-05-05 16:26:47 -0500
committerRafael França <rafaelmfranca@gmail.com>2016-05-05 16:26:47 -0500
commit063bc008b3705abc7e762484efb1a3d2081910bc (patch)
treea77f6a409c0d3778b5956c5feb3d8083d2574033 /actionmailer
parent9c86a1804d2e658a7067eecfe5d00646a5b6b749 (diff)
parentcbb25c4b1cb96cc6e857c3c05896056ec81931bf (diff)
downloadrails-063bc008b3705abc7e762484efb1a3d2081910bc.tar.gz
rails-063bc008b3705abc7e762484efb1a3d2081910bc.tar.bz2
rails-063bc008b3705abc7e762484efb1a3d2081910bc.zip
Merge pull request #24589 from vipulnsward/am-fragment-cache
Expand on Action Mailer Fragment caching tests
Diffstat (limited to 'actionmailer')
-rw-r--r--actionmailer/test/caching_test.rb48
-rw-r--r--actionmailer/test/fixtures/caching_mailer/fragment_caching_options.html.erb3
-rw-r--r--actionmailer/test/fixtures/caching_mailer/multipart_cache.html.erb3
-rw-r--r--actionmailer/test/fixtures/caching_mailer/multipart_cache.text.erb3
-rw-r--r--actionmailer/test/mailers/caching_mailer.rb8
5 files changed, 62 insertions, 3 deletions
diff --git a/actionmailer/test/caching_test.rb b/actionmailer/test/caching_test.rb
index b4344eb167..22e1bdb5f1 100644
--- a/actionmailer/test/caching_test.rb
+++ b/actionmailer/test/caching_test.rb
@@ -125,15 +125,16 @@ class FunctionalFragmentCachingTest < BaseCachingTest
expected_body = "\"Welcome\""
assert_match expected_body, email.body.encoded
- assert_match "\"Welcome\"",
+ assert_match expected_body,
@store.read("views/caching/#{template_digest("caching_mailer/fragment_cache")}")
end
def test_fragment_caching_in_partials
email = @mailer.fragment_cache_in_partials
- assert_match(/Old fragment caching in a partial/, email.body.encoded)
+ expected_body = 'Old fragment caching in a partial'
+ assert_match(expected_body, email.body.encoded)
- assert_match("Old fragment caching in a partial",
+ assert_match(expected_body,
@store.read("views/caching/#{template_digest("caching_mailer/_partial")}"))
end
@@ -145,6 +146,47 @@ class FunctionalFragmentCachingTest < BaseCachingTest
assert_match expected_body, @store.read("views/no_digest")
end
+ def test_fragment_caching_options
+ time = Time.now
+ email = @mailer.fragment_caching_options
+ expected_body = "No Digest"
+
+ assert_match expected_body, email.body.encoded
+ Time.stub(:now, time + 11) do
+ assert_nil @store.read("views/no_digest")
+ end
+ end
+
+ def test_multipart_fragment_caching
+ email = @mailer.multipart_cache
+
+ expected_text_body = "\"Welcome text\""
+ expected_html_body = "\"Welcome html\""
+ encoded_body = email.body.encoded
+ assert_match expected_text_body, encoded_body
+ assert_match expected_html_body, encoded_body
+ assert_match expected_text_body,
+ @store.read("views/text_caching")
+ assert_match expected_html_body,
+ @store.read("views/html_caching")
+ end
+
+ def test_fragment_cache_instrumentation
+ payload = nil
+
+ subscriber = proc do |*args|
+ event = ActiveSupport::Notifications::Event.new(*args)
+ payload = event.payload
+ end
+
+ ActiveSupport::Notifications.subscribed(subscriber, "read_fragment.action_mailer") do
+ @mailer.fragment_cache
+ end
+
+ assert_equal "caching_mailer", payload[:mailer]
+ assert_equal "views/caching/#{template_digest("caching_mailer/fragment_cache")}", payload[:key]
+ end
+
private
def template_digest(name)
diff --git a/actionmailer/test/fixtures/caching_mailer/fragment_caching_options.html.erb b/actionmailer/test/fixtures/caching_mailer/fragment_caching_options.html.erb
new file mode 100644
index 0000000000..0541ac321b
--- /dev/null
+++ b/actionmailer/test/fixtures/caching_mailer/fragment_caching_options.html.erb
@@ -0,0 +1,3 @@
+<%= cache :no_digest, skip_digest: true, expires_in: 0 do %>
+ No Digest
+<% end %>
diff --git a/actionmailer/test/fixtures/caching_mailer/multipart_cache.html.erb b/actionmailer/test/fixtures/caching_mailer/multipart_cache.html.erb
new file mode 100644
index 0000000000..0d26baa2d7
--- /dev/null
+++ b/actionmailer/test/fixtures/caching_mailer/multipart_cache.html.erb
@@ -0,0 +1,3 @@
+<% cache :html_caching, skip_digest: true do %>
+ "Welcome html"
+<% end %>
diff --git a/actionmailer/test/fixtures/caching_mailer/multipart_cache.text.erb b/actionmailer/test/fixtures/caching_mailer/multipart_cache.text.erb
new file mode 100644
index 0000000000..ef97326e03
--- /dev/null
+++ b/actionmailer/test/fixtures/caching_mailer/multipart_cache.text.erb
@@ -0,0 +1,3 @@
+<% cache :text_caching, skip_digest: true do %>
+ "Welcome text"
+<% end %>
diff --git a/actionmailer/test/mailers/caching_mailer.rb b/actionmailer/test/mailers/caching_mailer.rb
index 345d267a36..92d3cff7c9 100644
--- a/actionmailer/test/mailers/caching_mailer.rb
+++ b/actionmailer/test/mailers/caching_mailer.rb
@@ -12,4 +12,12 @@ class CachingMailer < ActionMailer::Base
def skip_fragment_cache_digesting
mail(subject: "welcome", template_name: "skip_fragment_cache_digesting")
end
+
+ def fragment_caching_options
+ mail(subject: "welcome", template_name: "fragment_caching_options")
+ end
+
+ def multipart_cache
+ mail(subject: "welcome", template_name: "multipart_cache")
+ end
end