summaryrefslogtreecommitdiff
path: root/spec/ruby/core/string/shared/to_s.rb
blob: b8c9b8ab4415716ee83b8148458cad1814397b1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
describe :string_to_s, shared: true do
  it "returns self when self.class == String" do
    a = "a string"
    a.should equal(a.send(@method))
  end

  it "returns a new instance of String when called on a subclass" do
    a = StringSpecs::MyString.new("a string")
    s = a.send(@method)
    s.should == "a string"
    s.should be_an_instance_of(String)
  end

  ruby_version_is ''...'2.7' do
    it "taints the result when self is tainted" do
      "x".taint.send(@method).should.tainted?
      StringSpecs::MyString.new("x").taint.send(@method).should.tainted?
    end
  end
end