diff options
Diffstat (limited to 'spec/ruby/core/string/capitalize_spec.rb')
-rw-r--r-- | spec/ruby/core/string/capitalize_spec.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/ruby/core/string/capitalize_spec.rb b/spec/ruby/core/string/capitalize_spec.rb new file mode 100644 index 0000000000..e2d2b68caa --- /dev/null +++ b/spec/ruby/core/string/capitalize_spec.rb @@ -0,0 +1,62 @@ +# -*- encoding: utf-8 -*- +require File.expand_path('../../../spec_helper', __FILE__) +require File.expand_path('../fixtures/classes.rb', __FILE__) + +describe "String#capitalize" do + it "returns a copy of self with the first character converted to uppercase and the remainder to lowercase" do + "".capitalize.should == "" + "h".capitalize.should == "H" + "H".capitalize.should == "H" + "hello".capitalize.should == "Hello" + "HELLO".capitalize.should == "Hello" + "123ABC".capitalize.should == "123abc" + end + + it "taints resulting string when self is tainted" do + "".taint.capitalize.tainted?.should == true + "hello".taint.capitalize.tainted?.should == true + end + + ruby_version_is ''...'2.4' do + it "is locale insensitive (only upcases a-z and only downcases A-Z)" do + "ÄÖÜ".capitalize.should == "ÄÖÜ" + "ärger".capitalize.should == "ärger" + "BÄR".capitalize.should == "BÄr" + end + end + + ruby_version_is '2.4' do + it "works for all of Unicode" do + "äöü".capitalize.should == "Äöü" + end + end + + it "returns subclass instances when called on a subclass" do + StringSpecs::MyString.new("hello").capitalize.should be_an_instance_of(StringSpecs::MyString) + StringSpecs::MyString.new("Hello").capitalize.should be_an_instance_of(StringSpecs::MyString) + end +end + +describe "String#capitalize!" do + it "capitalizes self in place" do + a = "hello" + a.capitalize!.should equal(a) + a.should == "Hello" + end + + it "returns nil when no changes are made" do + a = "Hello" + a.capitalize!.should == nil + a.should == "Hello" + + "".capitalize!.should == nil + "H".capitalize!.should == nil + end + + it "raises a RuntimeError when self is frozen" do + ["", "Hello", "hello"].each do |a| + a.freeze + lambda { a.capitalize! }.should raise_error(RuntimeError) + end + end +end |