summaryrefslogtreecommitdiff
path: root/spec/ruby/core/array/push_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/array/push_spec.rb')
-rw-r--r--spec/ruby/core/array/push_spec.rb33
1 files changed, 2 insertions, 31 deletions
diff --git a/spec/ruby/core/array/push_spec.rb b/spec/ruby/core/array/push_spec.rb
index 562a6888dd..0207474579 100644
--- a/spec/ruby/core/array/push_spec.rb
+++ b/spec/ruby/core/array/push_spec.rb
@@ -1,36 +1,7 @@
require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/classes', __FILE__)
+require File.expand_path('../shared/push', __FILE__)
describe "Array#push" do
- it "appends the arguments to the array" do
- a = [ "a", "b", "c" ]
- a.push("d", "e", "f").should equal(a)
- a.push().should == ["a", "b", "c", "d", "e", "f"]
- a.push(5)
- a.should == ["a", "b", "c", "d", "e", "f", 5]
-
- a = [0, 1]
- a.push(2)
- a.should == [0, 1, 2]
- end
-
- it "isn't confused by previous shift" do
- a = [ "a", "b", "c" ]
- a.shift
- a.push("foo")
- a.should == ["b", "c", "foo"]
- end
-
- it "properly handles recursive arrays" do
- empty = ArraySpecs.empty_recursive_array
- empty.push(:last).should == [empty, :last]
-
- array = ArraySpecs.recursive_array
- array.push(:last).should == [1, 'two', 3.0, array, array, array, array, array, :last]
- end
-
- it "raises a RuntimeError on a frozen array" do
- lambda { ArraySpecs.frozen_array.push(1) }.should raise_error(RuntimeError)
- lambda { ArraySpecs.frozen_array.push }.should raise_error(RuntimeError)
- end
+ it_behaves_like(:array_push, :push)
end