aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/initializable_test.rb
diff options
context:
space:
mode:
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