summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-03-15 21:19:48 +0900
committerGitHub <[email protected]>2019-03-15 21:19:48 +0900
commita1e12011486576dc2e52fe8da11ef377311fe311 (patch)
tree03585abea2e64342eb34c4ae35050259df6b0af0 /test
parent298807fa4e6550958de9cd77e1fa12dfd9a399e4 (diff)
parent16b1b2978e4f4d838f3d12e7221139a92429603b (diff)
downloadmruby-a1e12011486576dc2e52fe8da11ef377311fe311.tar.gz
mruby-a1e12011486576dc2e52fe8da11ef377311fe311.zip
Merge pull request #4328 from shuujii/fix-constant-name-validation
Fix constant name validation
Diffstat (limited to 'test')
-rw-r--r--test/t/module.rb24
1 files changed, 10 insertions, 14 deletions
diff --git a/test/t/module.rb b/test/t/module.rb
index b2dbe52a2..ec36855e8 100644
--- a/test/t/module.rb
+++ b/test/t/module.rb
@@ -210,6 +210,7 @@ assert('Module#const_defined?', '15.2.2.4.20') do
assert_true Test4ConstDefined.const_defined?(:Const4Test4ConstDefined)
assert_false Test4ConstDefined.const_defined?(:NotExisting)
+ assert_raise(NameError){ Test4ConstDefined.const_defined?(:wrong_name) }
end
assert('Module#const_get', '15.2.2.4.21') do
@@ -224,6 +225,7 @@ assert('Module#const_get', '15.2.2.4.21') do
assert_raise(TypeError){ Test4ConstGet.const_get(123) }
assert_raise(NameError){ Test4ConstGet.const_get(:I_DO_NOT_EXIST) }
assert_raise(NameError){ Test4ConstGet.const_get("I_DO_NOT_EXIST::ME_NEITHER") }
+ assert_raise(NameError){ Test4ConstGet.const_get(:wrong_name) }
end
assert('Module#const_set', '15.2.2.4.23') do
@@ -233,6 +235,9 @@ assert('Module#const_set', '15.2.2.4.23') do
assert_equal 23, Test4ConstSet.const_set(:Const4Test4ConstSet, 23)
assert_equal 23, Test4ConstSet.const_get(:Const4Test4ConstSet)
+ ["", "wrongNAME", "Wrong-Name"].each do |n|
+ assert_raise(NameError) { Test4ConstSet.const_set(n, 1) }
+ end
end
assert('Module#remove_const', '15.2.2.4.40') do
@@ -240,21 +245,12 @@ assert('Module#remove_const', '15.2.2.4.40') do
ExistingConst = 23
end
- result = Test4RemoveConst.module_eval { remove_const :ExistingConst }
-
- name_error = false
- begin
- Test4RemoveConst.module_eval { remove_const :NonExistingConst }
- rescue NameError
- name_error = true
+ assert_equal 23, Test4RemoveConst.remove_const(:ExistingConst)
+ assert_false Test4RemoveConst.const_defined?(:ExistingConst)
+ assert_raise(NameError) { Test4RemoveConst.remove_const(:NonExistingConst) }
+ %i[x X!].each do |n|
+ assert_raise(NameError) { Test4RemoveConst.remove_const(n) }
end
-
- # Constant removed from Module
- assert_false Test4RemoveConst.const_defined? :ExistingConst
- # Return value of binding
- assert_equal 23, result
- # Name Error raised when Constant doesn't exist
- assert_true name_error
end
assert('Module#const_missing', '15.2.2.4.22') do