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.rb50
1 files changed, 4 insertions, 46 deletions
diff --git a/spec/ruby/core/string/end_with_spec.rb b/spec/ruby/core/string/end_with_spec.rb
index 2c3ff07272..ac4fff72ad 100644
--- a/spec/ruby/core/string/end_with_spec.rb
+++ b/spec/ruby/core/string/end_with_spec.rb
@@ -1,50 +1,8 @@
# -*- encoding: utf-8 -*-
-require File.expand_path('../../../spec_helper', __FILE__)
-require File.expand_path('../fixtures/classes.rb', __FILE__)
+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.end_with?('o').should be_true
- s.end_with?('llo').should be_true
- end
-
- it 'returns false if the end does not match' do
- s = 'hello'
- s.end_with?('ll').should be_false
- end
-
- it "returns true if the search string is empty" do
- "hello".end_with?("").should be_true
- "".end_with?("").should be_true
- end
-
- it "returns true only if any ending match" do
- "hello".end_with?('x', 'y', 'llo', 'z').should be_true
- end
-
- it "converts its argument using :to_str" do
- s = "hello"
- find = mock('o')
- find.should_receive(:to_str).and_return("o")
- s.end_with?(find).should be_true
- end
-
- it "ignores arguments not convertible to string" do
- "hello".end_with?().should be_false
- lambda { "hello".end_with?(1) }.should raise_error(TypeError)
- lambda { "hello".end_with?(["o"]) }.should raise_error(TypeError)
- lambda { "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".end_with?("o",find).should be_true
- end
-
- it "works for multibyte strings" do
- "céréale".end_with?("réale").should be_true
- end
-
+ it_behaves_like :end_with, :to_s
end