From e4d7e5090c928e5b64350be9a1fb3aaf6f968e4c Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Thu, 8 Oct 2009 12:14:57 -0700 Subject: Moving more initializers into the application object --- railties/test/initializable_test.rb | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 railties/test/initializable_test.rb (limited to 'railties/test/initializable_test.rb') 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 -- cgit v1.2.3