diff options
author | Carl Lerche <carllerche@mac.com> | 2009-10-08 12:14:57 -0700 |
---|---|---|
committer | Carl Lerche <carllerche@mac.com> | 2009-10-08 12:31:09 -0700 |
commit | e4d7e5090c928e5b64350be9a1fb3aaf6f968e4c (patch) | |
tree | 27fe4309341ed992a1f9ca4867f3db6ee46802eb /railties/test/initializable_test.rb | |
parent | 6d6ae0841c94d3c0ce0c91311028ff7396c44a4a (diff) | |
download | rails-e4d7e5090c928e5b64350be9a1fb3aaf6f968e4c.tar.gz rails-e4d7e5090c928e5b64350be9a1fb3aaf6f968e4c.tar.bz2 rails-e4d7e5090c928e5b64350be9a1fb3aaf6f968e4c.zip |
Moving more initializers into the application object
Diffstat (limited to 'railties/test/initializable_test.rb')
-rw-r--r-- | railties/test/initializable_test.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/railties/test/initializable_test.rb b/railties/test/initializable_test.rb new file mode 100644 index 0000000000..4d8b429a4f --- /dev/null +++ b/railties/test/initializable_test.rb @@ -0,0 +1,56 @@ +require 'abstract_unit' +require 'rails/initializable' + +module InitializableTests + + class Foo + extend Rails::Initializable + + class << self + attr_accessor :foo, :bar + end + + initializer :omg do + @foo ||= 0 + @foo += 1 + end + end + + class Bar < Foo + initializer :bar do + @bar ||= 0 + @bar += 1 + end + end + + class Basic < ActiveSupport::TestCase + include ActiveSupport::Testing::Isolation + + test "initializers run" do + Foo.initializers.run + assert_equal 1, Foo.foo + end + + test "initializers are inherited" do + Bar.initializers.run + assert_equal [1, 1], [Bar.foo, Bar.bar] + end + + test "initializers only get run once" do + Foo.initializers.run + Foo.initializers.run + assert_equal 1, Foo.foo + end + + test "running initializers on children does not effect the parent" do + Bar.initializers.run + assert_nil Foo.foo + assert_nil Foo.bar + end + + test "inherited initializers are the same objects" do + assert Foo.initializers[:foo].eql?(Bar.initializers[:foo]) + end + + end +end
\ No newline at end of file |