diff options
Diffstat (limited to 'spec/ruby/core/regexp/source_spec.rb')
| -rw-r--r-- | spec/ruby/core/regexp/source_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/ruby/core/regexp/source_spec.rb b/spec/ruby/core/regexp/source_spec.rb new file mode 100644 index 0000000000..4eebf280f0 --- /dev/null +++ b/spec/ruby/core/regexp/source_spec.rb @@ -0,0 +1,47 @@ +# -*- encoding: utf-8 -*- +require_relative '../../spec_helper' + +describe "Regexp#source" do + it "returns the original string of the pattern" do + not_supported_on :opal do + /ab+c/ix.source.should == "ab+c" + end + /x(.)xz/.source.should == "x(.)xz" + end + + it "keeps escape sequences as is" do + /\x20\+/.source.should == '\x20\+' + end + + describe "escaping" do + it "keeps escaping of metacharacter" do + /\$/.source.should == "\\$" + end + + it "keeps escaping of metacharacter used as a terminator" do + %r+\++.source.should == "\\+" + end + + it "removes escaping of non-metacharacter used as a terminator" do + %r@\@@.source.should == "@" + end + + it "keeps escaping of non-metacharacter not used as a terminator" do + /\@/.source.should == "\\@" + end + end + + not_supported_on :opal do + it "has US-ASCII encoding when created from an ASCII-only \\u{} literal" do + re = /[\u{20}-\u{7E}]/ + re.source.encoding.should.equal?(Encoding::US_ASCII) + end + end + + not_supported_on :opal do + it "has UTF-8 encoding when created from a non-ASCII-only \\u{} literal" do + re = /[\u{20}-\u{7EE}]/ + re.source.encoding.should.equal?(Encoding::UTF_8) + end + end +end |
