aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/initializable_test.rb
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2009-10-08 12:14:57 -0700
committerCarl Lerche <carllerche@mac.com>2009-10-08 12:31:09 -0700
commite4d7e5090c928e5b64350be9a1fb3aaf6f968e4c (patch)
tree27fe4309341ed992a1f9ca4867f3db6ee46802eb /railties/test/initializable_test.rb
parent6d6ae0841c94d3c0ce0c91311028ff7396c44a4a (diff)
downloadrails-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.rb56
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