summaryrefslogtreecommitdiff
path: root/spec/ruby/core/string/uminus_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/string/uminus_spec.rb')
-rw-r--r--spec/ruby/core/string/uminus_spec.rb64
1 files changed, 19 insertions, 45 deletions
diff --git a/spec/ruby/core/string/uminus_spec.rb b/spec/ruby/core/string/uminus_spec.rb
index 3a81b64126..43abf71d50 100644
--- a/spec/ruby/core/string/uminus_spec.rb
+++ b/spec/ruby/core/string/uminus_spec.rb
@@ -1,3 +1,4 @@
+# frozen_string_literal: false
require_relative '../../spec_helper'
describe 'String#-@' do
@@ -5,7 +6,7 @@ describe 'String#-@' do
input = 'foo'.freeze
output = -input
- output.should equal(input)
+ output.should.equal?(input)
output.should.frozen?
end
@@ -14,7 +15,7 @@ describe 'String#-@' do
output = -input
output.should.frozen?
- output.should_not equal(input)
+ output.should_not.equal?(input)
output.should == 'foo'
end
@@ -22,58 +23,31 @@ describe 'String#-@' do
origin = "this is a string"
dynamic = %w(this is a string).join(' ')
- origin.should_not equal(dynamic)
- (-origin).should equal(-dynamic)
+ origin.should_not.equal?(dynamic)
+ (-origin).should.equal?(-dynamic)
end
it "returns the same object when it's called on the same String literal" do
- (-"unfrozen string").should equal(-"unfrozen string")
- (-"unfrozen string").should_not equal(-"another unfrozen string")
+ (-"unfrozen string").should.equal?(-"unfrozen string")
+ (-"unfrozen string").should_not.equal?(-"another unfrozen string")
end
- ruby_version_is ""..."2.6" do
- it "does not deduplicate already frozen strings" do
- dynamic = %w(this string is frozen).join(' ').freeze
+ it "deduplicates frozen strings" do
+ dynamic = %w(this string is frozen).join(' ').freeze
- dynamic.should_not equal("this string is frozen".freeze)
+ dynamic.should_not.equal?("this string is frozen".freeze)
- (-dynamic).should_not equal("this string is frozen".freeze)
- (-dynamic).should_not equal(-"this string is frozen".freeze)
- (-dynamic).should == "this string is frozen"
- end
-
- it "does not deduplicate tainted strings" do
- dynamic = %w(this string is frozen).join(' ')
- dynamic.taint
- (-dynamic).should_not equal("this string is frozen".freeze)
- (-dynamic).should_not equal(-"this string is frozen".freeze)
- (-dynamic).should == "this string is frozen"
- end
-
- it "does not deduplicate strings with additional instance variables" do
- dynamic = %w(this string is frozen).join(' ')
- dynamic.instance_variable_set(:@foo, :bar)
- (-dynamic).should_not equal("this string is frozen".freeze)
- (-dynamic).should_not equal(-"this string is frozen".freeze)
- (-dynamic).should == "this string is frozen"
- end
+ (-dynamic).should.equal?("this string is frozen".freeze)
+ (-dynamic).should.equal?((-"this string is frozen").freeze)
end
- ruby_version_is "2.6" do
- it "deduplicates frozen strings" do
- dynamic = %w(this string is frozen).join(' ').freeze
-
- dynamic.should_not equal("this string is frozen".freeze)
-
- (-dynamic).should equal("this string is frozen".freeze)
- (-dynamic).should equal(-"this string is frozen".freeze)
- end
- end
+ it "does not deduplicate a frozen string when it has instance variables" do
+ dynamic = %w(this string is frozen).join(' ')
+ dynamic.instance_variable_set(:@a, 1)
+ dynamic.freeze
- ruby_version_is "3.0" do
- it "interns the provided string if it is frozen" do
- dynamic = "this string is unique and frozen #{rand}".freeze
- (-dynamic).should equal(dynamic)
- end
+ (-dynamic).should_not.equal?("this string is frozen".freeze)
+ (-dynamic).should_not.equal?((-"this string is frozen").freeze)
+ (-dynamic).should.equal?(-dynamic)
end
end