1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Test return value of ActiveSupport::Dependencies::Loadable#require

- Add tests to protect from regressions in require's return value behavior
- See a10606c490 (require needs to return true or false) for the original bug fix
This commit is contained in:
Sam Umbach 2011-12-03 09:41:03 -05:00
parent baa93a1c2e
commit 93580f4936

View file

@ -258,6 +258,53 @@ class DependenciesTest < Test::Unit::TestCase
$:.replace(original_path)
end
def test_require_returns_true_when_file_not_yet_required
path = File.expand_path("../autoloading_fixtures/load_path", __FILE__)
original_path = $:.dup
original_features = $".dup
$:.push(path)
with_loading('autoloading_fixtures/load_path') do
assert_equal true, require('loaded_constant')
end
ensure
remove_constants(:LoadedConstant)
$".replace(original_features)
$:.replace(original_path)
end
def test_require_returns_true_when_file_not_yet_required_even_when_no_new_constants_added
path = File.expand_path("../autoloading_fixtures/load_path", __FILE__)
original_path = $:.dup
original_features = $".dup
$:.push(path)
with_loading('autoloading_fixtures/load_path') do
Object.module_eval "module LoadedConstant; end"
assert_equal true, require('loaded_constant')
end
ensure
remove_constants(:LoadedConstant)
$".replace(original_features)
$:.replace(original_path)
end
def test_require_returns_false_when_file_already_required
path = File.expand_path("../autoloading_fixtures/load_path", __FILE__)
original_path = $:.dup
original_features = $".dup
$:.push(path)
with_loading('autoloading_fixtures/load_path') do
require 'loaded_constant'
assert_equal false, require('loaded_constant')
end
ensure
remove_constants(:LoadedConstant)
$".replace(original_features)
$:.replace(original_path)
end
def failing_test_access_thru_and_upwards_fails
with_autoloading_fixtures do
assert ! defined?(ModuleFolder)