aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models/application_mailer_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/application_mailer_spec.rb')
-rw-r--r--spec/models/application_mailer_spec.rb158
1 files changed, 0 insertions, 158 deletions
diff --git a/spec/models/application_mailer_spec.rb b/spec/models/application_mailer_spec.rb
deleted file mode 100644
index cc4609e5a..000000000
--- a/spec/models/application_mailer_spec.rb
+++ /dev/null
@@ -1,158 +0,0 @@
-require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-
-
-describe ApplicationMailer do
-
- context 'when using plugins' do
-
- def set_base_views
- ApplicationMailer.class_eval do
- @previous_view_paths = self.view_paths.dup
- self.view_paths = [File.join(Rails.root, 'spec', 'fixtures', 'theme_views', 'core')]
- end
- end
-
- def add_mail_methods(method_names)
- method_names.each{ |method_name| ApplicationMailer.send(:define_method, method_name){} }
- end
-
- def remove_mail_methods(method_names)
- method_names.each do |method_name|
- if ApplicationMailer.respond_to?(method_name)
- ApplicationMailer.send(:remove_method, method_name)
- end
- end
- end
-
- def prepend_theme_views(theme_name)
- ApplicationMailer.class_eval do
- prepend_view_path File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
- end
- end
-
- def append_theme_views(theme_name)
- ApplicationMailer.class_eval do
- append_view_path File.join(Rails.root, 'spec', 'fixtures', 'theme_views', theme_name)
- end
- end
-
- def reset_views
- ApplicationMailer.class_eval do
- self.view_paths = @previous_view_paths
- end
- end
-
- def create_multipart_method(method_name)
- ApplicationMailer.send(:define_method, method_name) do
- attachments['original.eml'] = 'xxx'
- mail
- end
- end
-
- before do
- set_base_views
- add_mail_methods(['simple', 'theme_only', 'core_only', 'neither'])
- end
-
- describe 'when a plugin prepends its mail templates to the view paths' do
-
- it 'should render a theme template in preference to a core template' do
- prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_simple()
- @mail.body.should match('Theme simple')
- end
-
- it 'should render the template provided by the theme if no template is available in core' do
- prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_theme_only()
- @mail.body.should match('Theme only')
- end
-
- it 'should render the template provided by core if there is no theme template' do
- prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_core_only()
- @mail.body.should match('Core only')
- end
-
- it 'should render an empty body if the template is in neither core nor theme' do
- prepend_theme_views('theme_one')
- @mail = ApplicationMailer.create_neither()
- @mail.body.should be_empty
- end
-
- it 'should render a multipart email using a theme template' do
- prepend_theme_views('theme_one')
- create_multipart_method('multipart_theme_only')
- @mail = ApplicationMailer.create_multipart_theme_only()
- @mail.parts.size.should == 2
- message_part = @mail.parts[0].to_s
- message_part.should match("Theme multipart")
- end
-
- it 'should render a multipart email using a core template' do
- prepend_theme_views('theme_one')
- create_multipart_method('multipart_core_only')
- @mail = ApplicationMailer.create_multipart_core_only()
- @mail.parts.size.should == 2
- message_part = @mail.parts[0].to_s
- message_part.should match("Core multipart")
- end
-
- end
-
- describe 'when a plugin appends its mail templates to the view paths' do
-
- it 'should render a core template in preference to a theme template' do
- append_theme_views('theme_one')
- @mail = ApplicationMailer.create_simple()
- @mail.body.should match('Core simple')
- end
-
- it 'should render the template provided by the theme if no template is available in core' do
- append_theme_views('theme_one')
- @mail = ApplicationMailer.create_theme_only()
- @mail.body.should match('Theme only')
- end
-
- it 'should render the template provided by core if there is no theme template' do
- append_theme_views('theme_one')
- @mail = ApplicationMailer.create_core_only()
- @mail.body.should match('Core only')
- end
-
- it 'should render an empty body if the template is in neither core nor theme' do
- append_theme_views('theme_one')
- @mail = ApplicationMailer.create_neither()
- @mail.body.should be_empty
- end
-
- it 'should render a multipart email using a core template' do
- append_theme_views('theme_one')
- create_multipart_method('multipart_core_only')
- @mail = ApplicationMailer.create_multipart_core_only()
- @mail.parts.size.should == 2
- message_part = @mail.parts[0].to_s
- message_part.should match("Core multipart")
- end
-
- it 'should render a multipart email using a theme template' do
- append_theme_views('theme_one')
- create_multipart_method('multipart_theme_only')
- @mail = ApplicationMailer.create_multipart_theme_only()
- @mail.parts.size.should == 2
- message_part = @mail.parts[0].to_s
- message_part.should match("Theme multipart")
- end
-
- end
-
- after do
- reset_views
- remove_mail_methods(['simple', 'theme_only', 'core_only', 'neither', 'multipart'])
- end
- end
-
-end
-
-
-