summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/regexp/try_convert_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/regexp/try_convert_spec.rb')
-rw-r--r--spec/rubyspec/core/regexp/try_convert_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/rubyspec/core/regexp/try_convert_spec.rb b/spec/rubyspec/core/regexp/try_convert_spec.rb
new file mode 100644
index 0000000000..e782fc07fb
--- /dev/null
+++ b/spec/rubyspec/core/regexp/try_convert_spec.rb
@@ -0,0 +1,21 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
+describe "Regexp.try_convert" do
+ not_supported_on :opal do
+ it "returns the argument if given a Regexp" do
+ Regexp.try_convert(/foo/s).should == /foo/s
+ end
+ end
+
+ it "returns nil if given an argument that can't be converted to a Regexp" do
+ ['', 'glark', [], Object.new, :pat].each do |arg|
+ Regexp.try_convert(arg).should be_nil
+ end
+ end
+
+ it "tries to coerce the argument by calling #to_regexp" do
+ rex = mock('regexp')
+ rex.should_receive(:to_regexp).and_return(/(p(a)t[e]rn)/)
+ Regexp.try_convert(rex).should == /(p(a)t[e]rn)/
+ end
+end