summaryrefslogtreecommitdiff
path: root/spec/ruby/core/enumerable/shared/entries.rb
blob: 590ce73bcf258d1ea5c2b5725cee8dcb460a0df0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
describe :enumerable_entries, shared: true do
  it "returns an array containing the elements" do
    numerous = EnumerableSpecs::Numerous.new(1, nil, 'a', 2, false, true)
    numerous.send(@method).should == [1, nil, "a", 2, false, true]
  end

  it "passes through the values yielded by #each_with_index" do
    [:a, :b].each_with_index.send(@method).should == [[:a, 0], [:b, 1]]
  end

  it "passes arguments to each" do
    count = EnumerableSpecs::EachCounter.new(1, 2, 3)
    count.send(@method, :hello, "world").should == [1, 2, 3]
    count.arguments_passed.should == [:hello, "world"]
  end

  ruby_version_is ''...'2.7' do
    it "returns a tainted array if self is tainted" do
      EnumerableSpecs::Empty.new.taint.send(@method).tainted?.should be_true
    end

    it "returns an untrusted array if self is untrusted" do
      EnumerableSpecs::Empty.new.untrust.send(@method).untrusted?.should be_true
    end
  end
end