Skip to content

Commit

Permalink
Merge pull request #3845 from sumbach/test-return-value-from-require
Browse files Browse the repository at this point in the history
Add tests for the return value of require
  • Loading branch information
tenderlove committed Dec 4, 2011
2 parents 3134b46 + cfc467f commit c24928c
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions activesupport/test/dependencies_test.rb
Expand Up @@ -258,6 +258,85 @@ def test_doesnt_break_normal_require_nested
$:.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)
Expand Down

0 comments on commit c24928c

Please sign in to comment.