mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #3845 from sumbach/test-return-value-from-require
Add tests for the return value of require
This commit is contained in:
commit
c24928c3ad
1 changed files with 79 additions and 0 deletions
|
@ -258,6 +258,85 @@ 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 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 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 do
|
||||
require 'loaded_constant'
|
||||
assert_equal false, require('loaded_constant')
|
||||
end
|
||||
ensure
|
||||
remove_constants(:LoadedConstant)
|
||||
$".replace(original_features)
|
||||
$:.replace(original_path)
|
||||
end
|
||||
|
||||
def test_require_raises_load_error_when_file_not_found
|
||||
with_loading do
|
||||
assert_raise(LoadError) { require 'this_file_dont_exist_dude' }
|
||||
end
|
||||
ensure
|
||||
remove_constants(:LoadedConstant)
|
||||
end
|
||||
|
||||
def test_load_returns_true_when_file_found
|
||||
path = File.expand_path("../autoloading_fixtures/load_path", __FILE__)
|
||||
original_path = $:.dup
|
||||
original_features = $".dup
|
||||
$:.push(path)
|
||||
|
||||
with_loading do
|
||||
assert_equal true, load('loaded_constant.rb')
|
||||
assert_equal true, load('loaded_constant.rb')
|
||||
end
|
||||
ensure
|
||||
remove_constants(:LoadedConstant)
|
||||
$".replace(original_features)
|
||||
$:.replace(original_path)
|
||||
end
|
||||
|
||||
def test_load_raises_load_error_when_file_not_found
|
||||
with_loading do
|
||||
assert_raise(LoadError) { load 'this_file_dont_exist_dude.rb' }
|
||||
end
|
||||
ensure
|
||||
remove_constants(:LoadedConstant)
|
||||
end
|
||||
|
||||
def failing_test_access_thru_and_upwards_fails
|
||||
with_autoloading_fixtures do
|
||||
assert ! defined?(ModuleFolder)
|
||||
|
|
Loading…
Reference in a new issue