tests, define `Rails.root` before loading Action Mailer.

Since `bin/test` would define `Rails.root` before loading AM but `bundle
exec rake` would define it after loading AM, this lead to the following
test failure when using `bin/test`:

```
--- expected
+++ actual
@@ -1 +1 @@
-{:location=>"/var/folders/_r/9kh50y4j0vn7zgg2p65z1lcm0000gn/T/mails"}
+{:location=>"/Users/senny/Projects/rails/actionmailer/tmp/mails"}
```

This patch ensures that `Rails.root` is defined when loading AM to
achieve consistent test results.
This commit is contained in:
Yves Senn 2015-11-04 16:32:53 -05:00
parent 7b471dbf5b
commit a80fb6f9b3
2 changed files with 8 additions and 8 deletions

View File

@ -8,6 +8,12 @@ silence_warnings do
Encoding.default_external = "UTF-8"
end
module Rails
def self.root
File.expand_path('../', File.dirname(__FILE__))
end
end
require 'active_support/testing/autorun'
require 'active_support/testing/method_call_assertions'
require 'action_mailer'
@ -26,12 +32,6 @@ I18n.enforce_available_locales = false
FIXTURE_LOAD_PATH = File.expand_path('fixtures', File.dirname(__FILE__))
ActionMailer::Base.view_paths = FIXTURE_LOAD_PATH
module Rails
def self.root
File.expand_path('../', File.dirname(__FILE__))
end
end
# Skips the current run on Rubinius using Minitest::Assertions#skip
def rubinius_skip(message = '')
skip message if RUBY_ENGINE == 'rbx'

View File

@ -31,8 +31,8 @@ class DefaultsDeliveryMethodsTest < ActiveSupport::TestCase
assert_equal settings, ActionMailer::Base.smtp_settings
end
test "default file delivery settings" do
settings = {location: "#{Dir.tmpdir}/mails"}
test "default file delivery settings (with Rails.root)" do
settings = {location: "#{Rails.root}/tmp/mails"}
assert_equal settings, ActionMailer::Base.file_settings
end