summaryrefslogtreecommitdiff
path: root/spec/ruby/core/string/end_with_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/string/end_with_spec.rb')
-rw-r--r--spec/ruby/core/string/end_with_spec.rb52
1 files changed, 2 insertions, 50 deletions
diff --git a/spec/ruby/core/string/end_with_spec.rb b/spec/ruby/core/string/end_with_spec.rb
index 9ced0ca3d2..ac4fff72ad 100644
--- a/spec/ruby/core/string/end_with_spec.rb
+++ b/spec/ruby/core/string/end_with_spec.rb
@@ -1,56 +1,8 @@
# -*- encoding: utf-8 -*-
require_relative '../../spec_helper'
require_relative 'fixtures/classes'
+require_relative '../../shared/string/end_with'
describe "String#end_with?" do
- it "returns true only if ends match" do
- s = "hello"
- s.should.end_with?('o')
- s.should.end_with?('llo')
- end
-
- it 'returns false if the end does not match' do
- s = 'hello'
- s.should_not.end_with?('ll')
- end
-
- it "returns true if the search string is empty" do
- "hello".should.end_with?("")
- "".should.end_with?("")
- end
-
- it "returns true only if any ending match" do
- "hello".should.end_with?('x', 'y', 'llo', 'z')
- end
-
- it "converts its argument using :to_str" do
- s = "hello"
- find = mock('o')
- find.should_receive(:to_str).and_return("o")
- s.should.end_with?(find)
- end
-
- it "ignores arguments not convertible to string" do
- "hello".should_not.end_with?()
- -> { "hello".end_with?(1) }.should raise_error(TypeError)
- -> { "hello".end_with?(["o"]) }.should raise_error(TypeError)
- -> { "hello".end_with?(1, nil, "o") }.should raise_error(TypeError)
- end
-
- it "uses only the needed arguments" do
- find = mock('h')
- find.should_not_receive(:to_str)
- "hello".should.end_with?("o",find)
- end
-
- it "works for multibyte strings" do
- "céréale".should.end_with?("réale")
- end
-
- it "raises an Encoding::CompatibilityError if the encodings are incompatible" do
- pat = "ア".encode Encoding::EUC_JP
- -> do
- "あれ".end_with?(pat)
- end.should raise_error(Encoding::CompatibilityError)
- end
+ it_behaves_like :end_with, :to_s
end