aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/constantize_test_cases.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/test/constantize_test_cases.rb')
-rw-r--r--activesupport/test/constantize_test_cases.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/activesupport/test/constantize_test_cases.rb b/activesupport/test/constantize_test_cases.rb
new file mode 100644
index 0000000000..81d200a0c8
--- /dev/null
+++ b/activesupport/test/constantize_test_cases.rb
@@ -0,0 +1,37 @@
+module Ace
+ module Base
+ class Case
+ end
+ end
+end
+
+module ConstantizeTestCases
+ def run_constantize_tests_on
+ assert_nothing_raised { assert_equal Ace::Base::Case, yield("Ace::Base::Case") }
+ assert_nothing_raised { assert_equal Ace::Base::Case, yield("::Ace::Base::Case") }
+ assert_nothing_raised { assert_equal ConstantizeTestCases, yield("ConstantizeTestCases") }
+ assert_nothing_raised { assert_equal ConstantizeTestCases, yield("::ConstantizeTestCases") }
+ assert_raise(NameError) { yield("UnknownClass") }
+ assert_raise(NameError) { yield("UnknownClass::Ace") }
+ assert_raise(NameError) { yield("UnknownClass::Ace::Base") }
+ assert_raise(NameError) { yield("An invalid string") }
+ assert_raise(NameError) { yield("InvalidClass\n") }
+ assert_raise(NameError) { yield("Ace::ConstantizeTestCases") }
+ assert_raise(NameError) { yield("Ace::Base::ConstantizeTestCases") }
+ end
+
+ def run_safe_constantize_tests_on
+ assert_nothing_raised { assert_equal Ace::Base::Case, yield("Ace::Base::Case") }
+ assert_nothing_raised { assert_equal Ace::Base::Case, yield("::Ace::Base::Case") }
+ assert_nothing_raised { assert_equal ConstantizeTestCases, yield("ConstantizeTestCases") }
+ assert_nothing_raised { assert_equal ConstantizeTestCases, yield("::ConstantizeTestCases") }
+ assert_nothing_raised { assert_equal nil, yield("UnknownClass") }
+ assert_nothing_raised { assert_equal nil, yield("UnknownClass::Ace") }
+ assert_nothing_raised { assert_equal nil, yield("UnknownClass::Ace::Base") }
+ assert_nothing_raised { assert_equal nil, yield("An invalid string") }
+ assert_nothing_raised { assert_equal nil, yield("InvalidClass\n") }
+ assert_nothing_raised { assert_equal nil, yield("blargle") }
+ assert_nothing_raised { assert_equal nil, yield("Ace::ConstantizeTestCases") }
+ assert_nothing_raised { assert_equal nil, yield("Ace::Base::ConstantizeTestCases") }
+ end
+end \ No newline at end of file