aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/language/regexp_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/language/regexp_spec.rb')
-rw-r--r--spec/ruby/language/regexp_spec.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/ruby/language/regexp_spec.rb b/spec/ruby/language/regexp_spec.rb
index 19f4871e6e..6da29ee7a2 100644
--- a/spec/ruby/language/regexp_spec.rb
+++ b/spec/ruby/language/regexp_spec.rb
@@ -167,4 +167,31 @@ describe "Literal Regexps" do
pattern.to_s.should == ref
end
end
+
+ ruby_version_is '2.4' do
+ it "support handling unicode 9.0 characters with POSIX bracket expressions" do
+ char_lowercase = "\u{104D8}" # OSAGE SMALL LETTER A
+ /[[:lower:]]/.match(char_lowercase).to_s.should == char_lowercase
+ char_uppercase = "\u{104B0}" # OSAGE CAPITAL LETTER A
+ /[[:upper:]]/.match(char_uppercase).to_s.should == char_uppercase
+ end
+ end
+
+ ruby_version_is ""..."2.4" do
+ it "does not support handling unicode 9.0 characters with POSIX bracket expressions" do
+ char_lowercase = "\u{104D8}" # OSAGE SMALL LETTER A
+ /[[:lower:]]/.match(char_lowercase).should == nil
+
+ char_uppercase = "\u{104B0}" # OSAGE CAPITAL LETTER A
+ /[[:upper:]]/.match(char_lowercase).should == nil
+ end
+
+ it "supports handling unicode 8.0 characters with POSIX bracket expressions" do
+ char_lowercase = "\u{A7B5}" # LATIN SMALL LETTER BETA
+ /[[:lower:]]/.match(char_lowercase).to_s.should == char_lowercase
+
+ char_uppercase = "\u{A7B4}" # LATIN CAPITAL LETTER BETA
+ /[[:upper:]]/.match(char_uppercase).to_s.should == char_uppercase
+ end
+ end
end