1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/ruby/core/array/shared/clone.rb
Jeremy Evans ffd0820ab3 Deprecate taint/trust and related methods, and make the methods no-ops
This removes the related tests, and puts the related specs behind
version guards.  This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
2019-11-18 01:00:25 +02:00

44 lines
1.1 KiB
Ruby

describe :array_clone, shared: true do
it "returns an Array or a subclass instance" do
[].send(@method).should be_an_instance_of(Array)
ArraySpecs::MyArray[1, 2].send(@method).should be_an_instance_of(ArraySpecs::MyArray)
end
it "produces a shallow copy where the references are directly copied" do
a = [mock('1'), mock('2')]
b = a.send @method
b.first.should equal a.first
b.last.should equal a.last
end
it "creates a new array containing all elements or the original" do
a = [1, 2, 3, 4]
b = a.send @method
b.should == a
b.__id__.should_not == a.__id__
end
ruby_version_is ''...'2.7' do
it "copies taint status from the original" do
a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
a.taint
aa = a.send @method
bb = b.send @method
aa.tainted?.should == true
bb.tainted?.should == false
end
it "copies untrusted status from the original" do
a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
a.untrust
aa = a.send @method
bb = b.send @method
aa.untrusted?.should == true
bb.untrusted?.should == false
end
end
end