aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/initializable_test.rb
diff options
context:
space:
mode:
authorYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-10-27 16:48:35 -0700
committerYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-10-27 17:01:33 -0700
commitdf95f165708b6baf93dcc6eff6911ee159cab34c (patch)
tree7a6db766ec81b18b67c6a5700c81974e39c19f1a /railties/test/initializable_test.rb
parentda62a7c5362ee76e8fdc8cb942c4c1eefccfeab0 (diff)
downloadrails-df95f165708b6baf93dcc6eff6911ee159cab34c.tar.gz
rails-df95f165708b6baf93dcc6eff6911ee159cab34c.tar.bz2
rails-df95f165708b6baf93dcc6eff6911ee159cab34c.zip
Update initializable
Diffstat (limited to 'railties/test/initializable_test.rb')
-rw-r--r--railties/test/initializable_test.rb95
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