diff options
author | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-10-27 16:48:35 -0700 |
---|---|---|
committer | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-10-27 17:01:33 -0700 |
commit | df95f165708b6baf93dcc6eff6911ee159cab34c (patch) | |
tree | 7a6db766ec81b18b67c6a5700c81974e39c19f1a /railties/test | |
parent | da62a7c5362ee76e8fdc8cb942c4c1eefccfeab0 (diff) | |
download | rails-df95f165708b6baf93dcc6eff6911ee159cab34c.tar.gz rails-df95f165708b6baf93dcc6eff6911ee159cab34c.tar.bz2 rails-df95f165708b6baf93dcc6eff6911ee159cab34c.zip |
Update initializable
Diffstat (limited to 'railties/test')
-rw-r--r-- | railties/test/initializable_test.rb | 95 |
1 files changed, 85 insertions, 10 deletions
diff --git a/railties/test/initializable_test.rb b/railties/test/initializable_test.rb index 7c8aed00c9..a1306adb60 100644 --- a/railties/test/initializable_test.rb +++ b/railties/test/initializable_test.rb @@ -31,38 +31,113 @@ module InitializableTests end end + class Parent + extend Rails::Initializable + + initializer :one do + $arr << 1 + end + + initializer :two do + $arr << 2 + end + end + + class Child < Parent + extend Rails::Initializable + + initializer :three, :before => :one do + $arr << 3 + end + + initializer :four, :after => :one do + $arr << 4 + end + end + + class Parent + initializer :five, :before => :one do + $arr << 5 + end + end + + class Instance + include Rails::Initializable + + initializer :one do + $arr << 1 + end + + initializer :two do + $arr << 2 + end + + initializer :three, :global => true do + $arr << 3 + end + + initializer :four, :global => true do + $arr << 4 + end + end + class Basic < ActiveSupport::TestCase include ActiveSupport::Testing::Isolation test "initializers run" do - Foo.initializers.run + Foo.initialize! assert_equal 1, Foo.foo end test "initializers are inherited" do - Bar.initializers.run + Bar.initialize! assert_equal [1, 1], [Bar.foo, Bar.bar] end test "initializers only get run once" do - Foo.initializers.run - Foo.initializers.run + Foo.initialize! + Foo.initialize! assert_equal 1, Foo.foo end test "running initializers on children does not effect the parent" do - Bar.initializers.run + Bar.initialize! 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 - test "initializing with modules" do - Word.initializers.run + Word.initialize! assert_equal "bird", $word end end + + class BeforeAfter < ActiveSupport::TestCase + test "running on parent" do + $arr = [] + Parent.initialize! + assert_equal [5, 1, 2], $arr + end + + test "running on child" do + $arr = [] + Child.initialize! + assert_equal [5, 3, 1, 4, 2], $arr + end + end + + class InstanceTest < ActiveSupport::TestCase + test "running locals" do + $arr = [] + instance = Instance.new + instance.initialize! + assert_equal [1, 2], $arr + end + + test "running globals" do + $arr = [] + Instance.initialize! + assert_equal [3, 4], $arr + end + end end
\ No newline at end of file |