aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2009-10-14 16:13:45 -0700
committerCarl Lerche <carllerche@mac.com>2009-10-14 16:40:25 -0700
commitbf9819f73d74e19052b7b8a7a9885972a27e8876 (patch)
tree05a1acddbcfa4f697b8f7af1685055104017d344 /railties/test
parent00eb09e016837e361fb9dcf6a46d1715ec59beca (diff)
downloadrails-bf9819f73d74e19052b7b8a7a9885972a27e8876.tar.gz
rails-bf9819f73d74e19052b7b8a7a9885972a27e8876.tar.bz2
rails-bf9819f73d74e19052b7b8a7a9885972a27e8876.zip
Have Rails.root be based off of config.ru
Diffstat (limited to 'railties/test')
-rw-r--r--railties/test/application/configuration_test.rb36
-rw-r--r--railties/test/isolation/abstract_unit.rb10
2 files changed, 42 insertions, 4 deletions
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index 1bf59c2b8e..d90582d3db 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -7,11 +7,43 @@ module ApplicationTests
def setup
build_app
boot_rails
+ Object.send(:remove_const, :RAILS_ROOT)
end
test "the application root is set correctly" do
- # require "#{app_path}/config/environment"
- # assert_equal app_path, Rails.application.root
+ require "#{app_path}/config/environment"
+ assert_equal app_path, Rails.application.root
+ end
+
+ test "the application root can be set" do
+ FileUtils.mkdir_p("#{app_path}/hello")
+ add_to_config <<-RUBY
+ config.frameworks = []
+ config.root = '#{app_path}/hello'
+ RUBY
+ require "#{app_path}/config/environment"
+ assert_equal "#{app_path}/hello", Rails.application.root
+ end
+
+ test "the application root is detected as where config.ru is located" do
+ add_to_config <<-RUBY
+ config.frameworks = []
+ RUBY
+ FileUtils.mv "#{app_path}/config.ru", "#{app_path}/config/config.ru"
+ require "#{app_path}/config/environment"
+ assert_equal "#{app_path}/config", Rails.application.root
+ end
+
+ test "the application root is Dir.pwd if there is no config.ru" do
+ File.delete("#{app_path}/config.ru")
+ add_to_config <<-RUBY
+ config.frameworks = []
+ RUBY
+
+ Dir.chdir("#{app_path}/app") do
+ require "#{app_path}/config/environment"
+ assert_equal "#{app_path}/app", Rails.application.root
+ end
end
end
end \ No newline at end of file
diff --git a/railties/test/isolation/abstract_unit.rb b/railties/test/isolation/abstract_unit.rb
index f83e0151a4..245577e8c0 100644
--- a/railties/test/isolation/abstract_unit.rb
+++ b/railties/test/isolation/abstract_unit.rb
@@ -25,8 +25,10 @@ module TestHelpers
module Paths
module_function
+ TMP_PATH = File.expand_path(File.join(File.dirname(__FILE__), *%w[.. .. tmp]))
+
def tmp_path(*args)
- File.expand_path(File.join(File.dirname(__FILE__), *%w[.. .. tmp] + args))
+ File.join(TMP_PATH, *args)
end
def app_path(*args)
@@ -88,10 +90,14 @@ module TestHelpers
end
end
+ add_to_config 'config.action_controller.session = { :key => "_myapp_session", :secret => "bac838a849c1d5c4de2e6a50af826079" }'
+ end
+
+ def add_to_config(str)
environment = File.read("#{app_path}/config/environment.rb")
if environment =~ /(\n\s*end\s*)\Z/
File.open("#{app_path}/config/environment.rb", 'w') do |f|
- f.puts $` + %'\nconfig.action_controller.session = { :key => "_myapp_session", :secret => "bac838a849c1d5c4de2e6a50af826079" }\n' + $1
+ f.puts $` + "\n#{str}\n" + $1
end
end
end