summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2019-12-01 14:11:42 +0100
committerBenoit Daloze <eregontp@gmail.com>2019-12-01 14:11:42 +0100
commit617a3735aedc12fe82b6806d6d3a37c3f977fef1 (patch)
tree4c67249cfaa38a3e52e712e8ff955dfba1bca516 /spec
parent60d362b0bb0fb56bd3ef61c93f71bff997ccb824 (diff)
Update to ruby/spec@dcf4955
Diffstat (limited to 'spec')
-rw-r--r--spec/ruby/core/array/shared/slice.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/ruby/core/array/shared/slice.rb b/spec/ruby/core/array/shared/slice.rb
index 73456eb297..1e7fdf934a 100644
--- a/spec/ruby/core/array/shared/slice.rb
+++ b/spec/ruby/core/array/shared/slice.rb
@@ -117,6 +117,27 @@ describe :array_slice, shared: true do
a.send(@method, 0, obj).should == [1, 2]
end
+ it "raises TypeError if to_int returns non-integer" do
+ from = mock('from')
+ to = mock('to')
+
+ # So we can construct a range out of them...
+ def from.<=>(o) 0 end
+ def to.<=>(o) 0 end
+
+ a = [1, 2, 3, 4, 5]
+
+ def from.to_int() 'cat' end
+ def to.to_int() -2 end
+
+ -> { a.send(@method, from..to) }.should raise_error(TypeError)
+
+ def from.to_int() 1 end
+ def to.to_int() 'cat' end
+
+ -> { a.send(@method, from..to) }.should raise_error(TypeError)
+ end
+
it "returns the elements specified by Range indexes with [m..n]" do
[ "a", "b", "c", "d", "e" ].send(@method, 1..3).should == ["b", "c", "d"]
[ "a", "b", "c", "d", "e" ].send(@method, 4..-1).should == ['e']