2015-05-03 20:25:56 -04:00
|
|
|
require 'isolation/abstract_unit'
|
|
|
|
|
|
|
|
module ApplicationTests
|
|
|
|
module ConfigurationTests
|
|
|
|
class CustomTest < ActiveSupport::TestCase
|
|
|
|
def setup
|
|
|
|
build_app
|
|
|
|
boot_rails
|
|
|
|
FileUtils.rm_rf("#{app_path}/config/environments")
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
teardown_app
|
|
|
|
FileUtils.rm_rf(new_app) if File.directory?(new_app)
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'access custom configuration point' do
|
|
|
|
add_to_config <<-RUBY
|
|
|
|
config.x.payment_processing.schedule = :daily
|
|
|
|
config.x.payment_processing.retries = 3
|
|
|
|
config.x.super_debugger = true
|
|
|
|
config.x.hyper_debugger = false
|
|
|
|
config.x.nil_debugger = nil
|
|
|
|
RUBY
|
|
|
|
require_environment
|
|
|
|
|
|
|
|
x = Rails.configuration.x
|
|
|
|
assert_equal :daily, x.payment_processing.schedule
|
|
|
|
assert_equal 3, x.payment_processing.retries
|
|
|
|
assert_equal true, x.super_debugger
|
|
|
|
assert_equal false, x.hyper_debugger
|
|
|
|
assert_equal nil, x.nil_debugger
|
|
|
|
assert_nil x.i_do_not_exist.zomg
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
def new_app
|
|
|
|
File.expand_path("#{app_path}/../new_app")
|
|
|
|
end
|
|
|
|
|
|
|
|
def copy_app
|
|
|
|
FileUtils.cp_r(app_path, new_app)
|
|
|
|
end
|
|
|
|
|
|
|
|
def app
|
|
|
|
@app ||= Rails.application
|
|
|
|
end
|
|
|
|
|
|
|
|
def require_environment
|
|
|
|
require "#{app_path}/config/environment"
|
|
|
|
end
|
|
|
|
end
|
2014-08-03 18:48:14 -04:00
|
|
|
end
|
|
|
|
end
|