diff options
Diffstat (limited to 'railties/test')
-rw-r--r-- | railties/test/application/runner_test.rb | 23 | ||||
-rw-r--r-- | railties/test/commands/console_test.rb | 19 | ||||
-rw-r--r-- | railties/test/commands/server_test.rb | 20 |
3 files changed, 60 insertions, 2 deletions
diff --git a/railties/test/application/runner_test.rb b/railties/test/application/runner_test.rb index 81ed5873a5..797c7a9470 100644 --- a/railties/test/application/runner_test.rb +++ b/railties/test/application/runner_test.rb @@ -67,5 +67,28 @@ module ApplicationTests assert_match "true", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.application.config.ran"` } end + + def test_default_environment + assert_match "development", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` } + end + + def test_environment_with_rails_env + orig = ENV['RAILS_ENV'] + ENV['RAILS_ENV'] = "production" + assert_match "production", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` } + ensure + ENV['RAILS_ENV'] = orig + end + + def test_environment_with_rails_env + rack, rails = ENV['RACK_ENV'], ENV['RAILS_ENV'] + ENV['RACK_ENV'] = "production" + ENV['RAILS_ENV'] = nil + assert_match "production", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.env"` } + ensure + ENV['RAILS_ENV'] = rails + ENV['RACK_ENV'] = rack + end + end end diff --git a/railties/test/commands/console_test.rb b/railties/test/commands/console_test.rb index f99ea13022..4062905c16 100644 --- a/railties/test/commands/console_test.rb +++ b/railties/test/commands/console_test.rb @@ -78,6 +78,13 @@ class Rails::ConsoleTest < ActiveSupport::TestCase assert_match(/\sspecial-production\s/, output) end end + + def test_default_environment_with_rack_env + with_rack_env 'production' do + start + assert_match(/\sproduction\s/, output) + end + end def test_e_option start ['-e', 'special-production'] @@ -128,10 +135,18 @@ class Rails::ConsoleTest < ActiveSupport::TestCase end def with_rails_env(env) - original_rails_env = ENV['RAILS_ENV'] + rails = ENV['RAILS_ENV'] ENV['RAILS_ENV'] = env yield ensure - ENV['RAILS_ENV'] = original_rails_env + ENV['RAILS_ENV'] = rails + end + + def with_rack_env(env) + rack = ENV['RACK_ENV'] + ENV['RACK_ENV'] = env + with_rails_env(nil) { yield } + ensure + ENV['RACK_ENV'] = rack end end diff --git a/railties/test/commands/server_test.rb b/railties/test/commands/server_test.rb index 4a3ea82e3d..6a75207ebb 100644 --- a/railties/test/commands/server_test.rb +++ b/railties/test/commands/server_test.rb @@ -23,4 +23,24 @@ class Rails::ServerTest < ActiveSupport::TestCase assert_nil options[:environment] assert_equal 'thin', options[:server] end + + def test_environment_with_rails_env + rails = ENV['RAILS_ENV'] + ENV['RAILS_ENV'] = 'production' + server = Rails::Server.new + assert_equal 'production', server.options[:environment] + ensure + ENV['RAILS_ENV'] = rails + end + + def test_environment_with_rack_env + rack, rails = ENV['RACK_ENV'], ENV['RAILS_ENV'] + ENV['RAILS_ENV'] = nil + ENV['RACK_ENV'] = 'production' + server = Rails::Server.new + assert_equal 'production', server.options[:environment] + ensure + ENV['RACK_ENV'] = rack + ENV['RAILS_ENV'] = rails + end end |