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/string/rstrip_spec.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

54 lines
1.7 KiB
Ruby

require_relative '../../spec_helper'
require_relative 'fixtures/classes'
describe "String#rstrip" do
it "returns a copy of self with trailing whitespace removed" do
" hello ".rstrip.should == " hello"
" hello world ".rstrip.should == " hello world"
" hello world \n\r\t\n\v\r".rstrip.should == " hello world"
"hello".rstrip.should == "hello"
"hello\x00".rstrip.should == "hello"
end
it "returns a copy of self with all trailing whitespace and NULL bytes removed" do
"\x00 \x00hello\x00 \x00".rstrip.should == "\x00 \x00hello"
end
ruby_version_is ''...'2.7' do
it "taints the result when self is tainted" do
"".taint.rstrip.tainted?.should == true
"ok".taint.rstrip.tainted?.should == true
"ok ".taint.rstrip.tainted?.should == true
end
end
end
describe "String#rstrip!" do
it "modifies self in place and returns self" do
a = " hello "
a.rstrip!.should equal(a)
a.should == " hello"
end
it "modifies self removing trailing NULL bytes and whitespace" do
a = "\x00 \x00hello\x00 \x00"
a.rstrip!
a.should == "\x00 \x00hello"
end
it "returns nil if no modifications were made" do
a = "hello"
a.rstrip!.should == nil
a.should == "hello"
end
it "raises a #{frozen_error_class} on a frozen instance that is modified" do
-> { " hello ".freeze.rstrip! }.should raise_error(frozen_error_class)
end
# see [ruby-core:23666]
it "raises a #{frozen_error_class} on a frozen instance that would not be modified" do
-> { "hello".freeze.rstrip! }.should raise_error(frozen_error_class)
-> { "".freeze.rstrip! }.should raise_error(frozen_error_class)
end
end