diff options
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/test/autoloading_fixtures/cross_site_dependency.rb | 2 | ||||
-rw-r--r-- | activesupport/test/dependencies/cross_site_depender.rb | 3 | ||||
-rw-r--r-- | activesupport/test/dependencies_test.rb | 28 |
3 files changed, 33 insertions, 0 deletions
diff --git a/activesupport/test/autoloading_fixtures/cross_site_dependency.rb b/activesupport/test/autoloading_fixtures/cross_site_dependency.rb new file mode 100644 index 0000000000..21ee554e92 --- /dev/null +++ b/activesupport/test/autoloading_fixtures/cross_site_dependency.rb @@ -0,0 +1,2 @@ +class CrossSiteDependency +end
\ No newline at end of file diff --git a/activesupport/test/dependencies/cross_site_depender.rb b/activesupport/test/dependencies/cross_site_depender.rb new file mode 100644 index 0000000000..a31015fc5e --- /dev/null +++ b/activesupport/test/dependencies/cross_site_depender.rb @@ -0,0 +1,3 @@ +class CrossSiteDepender + CrossSiteDependency +end
\ No newline at end of file diff --git a/activesupport/test/dependencies_test.rb b/activesupport/test/dependencies_test.rb index 52f83e0f9f..d5c9cb58cb 100644 --- a/activesupport/test/dependencies_test.rb +++ b/activesupport/test/dependencies_test.rb @@ -702,4 +702,32 @@ class DependenciesTest < Test::Unit::TestCase assert ! defined?(DeleteMe) end + def test_load_once_constants_should_not_be_unloaded + with_loading 'autoloading_fixtures' do + Dependencies.load_once_paths = Dependencies.load_paths + ::A + assert defined?(A) + Dependencies.clear + assert defined?(A) + end + ensure + Dependencies.load_once_paths = [] + Object.send :remove_const, :A rescue nil + end + + def test_load_once_paths_should_behave_when_recursively_loading + with_loading 'dependencies', 'autoloading_fixtures' do + Dependencies.load_once_paths = [Dependencies.load_paths.last] + CrossSiteDepender.nil? + assert defined?(CrossSiteDependency) + assert ! Dependencies.autoloaded?(CrossSiteDependency), + "CrossSiteDependency shouldn't be marked as autoloaded!" + Dependencies.clear + assert defined?(CrossSiteDependency), + "CrossSiteDependency shouldn't have been unloaded!" + end + ensure + Dependencies.load_once_paths = [] + end + end |