diff options
Diffstat (limited to 'spec/ruby/core/matchdata/shared')
| -rw-r--r-- | spec/ruby/core/matchdata/shared/captures.rb | 13 | ||||
| -rw-r--r-- | spec/ruby/core/matchdata/shared/eql.rb | 26 | ||||
| -rw-r--r-- | spec/ruby/core/matchdata/shared/length.rb | 5 |
3 files changed, 44 insertions, 0 deletions
diff --git a/spec/ruby/core/matchdata/shared/captures.rb b/spec/ruby/core/matchdata/shared/captures.rb new file mode 100644 index 0000000000..33f834561a --- /dev/null +++ b/spec/ruby/core/matchdata/shared/captures.rb @@ -0,0 +1,13 @@ +require_relative '../../../spec_helper' +require_relative '../fixtures/classes' + +describe :matchdata_captures, shared: true do + it "returns an array of the match captures" do + /(.)(.)(\d+)(\d)/.match("THX1138.").send(@method).should == ["H","X","113","8"] + end + + it "returns instances of String when given a String subclass" do + str = MatchDataSpecs::MyString.new("THX1138: The Movie") + /(.)(.)(\d+)(\d)/.match(str).send(@method).each { |c| c.should be_an_instance_of(String) } + end +end diff --git a/spec/ruby/core/matchdata/shared/eql.rb b/spec/ruby/core/matchdata/shared/eql.rb new file mode 100644 index 0000000000..e021baa178 --- /dev/null +++ b/spec/ruby/core/matchdata/shared/eql.rb @@ -0,0 +1,26 @@ +require_relative '../../../spec_helper' + +describe :matchdata_eql, shared: true do + it "returns true if both operands have equal target strings, patterns, and match positions" do + a = 'haystack'.match(/hay/) + b = 'haystack'.match(/hay/) + a.send(@method, b).should be_true + end + + it "returns false if the operands have different target strings" do + a = 'hay'.match(/hay/) + b = 'haystack'.match(/hay/) + a.send(@method, b).should be_false + end + + it "returns false if the operands have different patterns" do + a = 'haystack'.match(/h.y/) + b = 'haystack'.match(/hay/) + a.send(@method, b).should be_false + end + + it "returns false if the argument is not a MatchData object" do + a = 'haystack'.match(/hay/) + a.send(@method, Object.new).should be_false + end +end diff --git a/spec/ruby/core/matchdata/shared/length.rb b/spec/ruby/core/matchdata/shared/length.rb new file mode 100644 index 0000000000..6312a7ed4c --- /dev/null +++ b/spec/ruby/core/matchdata/shared/length.rb @@ -0,0 +1,5 @@ +describe :matchdata_length, shared: true do + it "length should return the number of elements in the match array" do + /(.)(.)(\d+)(\d)/.match("THX1138.").send(@method).should == 5 + end +end |
