summaryrefslogtreecommitdiffhomepage
path: root/test/t/module.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/t/module.rb')
-rw-r--r--test/t/module.rb101
1 files changed, 99 insertions, 2 deletions
diff --git a/test/t/module.rb b/test/t/module.rb
index 854be75a5..5b847e8b7 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -5,6 +5,103 @@ assert('Module', '15.2.2') do
Module.class == Class
end
-# TODO not implemented ATM assert('Module.constants', '15.2.2') do
+assert('Module superclass', '15.2.2.2') do
+ Module.superclass == Object
+end
+
+# TODO not implemented ATM assert('Module.constants', '15.2.2.3.1') do
+
+# TODO not implemented ATM assert('Module.nesting', '15.2.2.3.2') do
+
+assert('Module#ancestors', '15.2.2.4.9') do
+ r = String.ancestors
+ r.class == Array and r.include?(String) and r.include?(Object)
+end
+
+assert('Module#append_features', '15.2.2.4.10') do
+ module Test4AppendFeatures
+ def self.append_features(mod)
+ Test4AppendFeatures2.const_set(:Const4AppendFeatures2, mod)
+ end
+ end
+ module Test4AppendFeatures2
+ include Test4AppendFeatures
+ end
+
+ Test4AppendFeatures2.const_get(:Const4AppendFeatures2) == Test4AppendFeatures2
+end
+
+assert('Module#const_defined?', '15.2.2.4.20') do
+ module Test4ConstDefined
+ Const4Test4ConstDefined = true
+ end
+
+ Test4ConstDefined.const_defined?(:Const4Test4ConstDefined) and
+ not Test4ConstDefined.const_defined?(:NotExisting)
+end
+
+assert('Module#const_get', '15.2.2.4.21') do
+ module Test4ConstGet
+ Const4Test4ConstGet = 42
+ end
+
+ Test4ConstGet.const_get(:Const4Test4ConstGet) == 42
+end
+
+assert('Module.const_missing', '15.2.2.4.22') do
+ e1 = nil
-# TODO not implemented ATM assert('Module.nesting', '15.2.2') do
+ module Test4ConstMissing
+ def self.const_missing(sym)
+ 42 # the answer to everything
+ end
+ end
+
+ Test4ConstMissing.const_get(:ConstDoesntExist) == 42
+end
+
+assert('Module#const_get', '15.2.2.4.23') do
+ module Test4ConstSet
+ Const4Test4ConstSet = 42
+ end
+
+ Test4ConstSet.const_set(:Const4Test4ConstSet, 23)
+ Test4ConstSet.const_get(:Const4Test4ConstSet) == 23
+end
+
+assert('Module#include', '15.2.2.4.27') do
+ module Test4Include
+ Const4Include = 42
+ end
+ module Test4Include2
+ include Test4Include
+ end
+
+ Test4Include2.const_get(:Const4Include) == 42
+end
+
+assert('Module#included', '15.2.2.4.29') do
+ module Test4Included
+ Const4Included = 42
+ def self.included mod
+ Test4Included.const_set(:Const4Included2, mod)
+ end
+ end
+ module Test4Included2
+ include Test4Included
+ end
+
+ Test4Included2.const_get(:Const4Included) == 42 and
+ Test4Included2.const_get(:Const4Included2) == Test4Included2
+end
+
+assert('Module#included_modules', '15.2.2.4.30') do
+ module Test4includedModules
+ end
+ module Test4includedModules2
+ include Test4includedModules
+ end
+
+ r = Test4includedModules2.included_modules
+ r.class == Array and r.include?(Test4includedModules)
+end