summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/string/clear_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/string/clear_spec.rb')
-rw-r--r--spec/rubyspec/core/string/clear_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/rubyspec/core/string/clear_spec.rb b/spec/rubyspec/core/string/clear_spec.rb
new file mode 100644
index 0000000000..6a8b6018d0
--- /dev/null
+++ b/spec/rubyspec/core/string/clear_spec.rb
@@ -0,0 +1,39 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
+with_feature :encoding do
+ describe "String#clear" do
+ before :each do
+ @s = "Jolene"
+ end
+
+ it "sets self equal to the empty String" do
+ @s.clear
+ @s.should == ""
+ end
+
+ it "returns self after emptying it" do
+ cleared = @s.clear
+ cleared.should == ""
+ cleared.object_id.should == @s.object_id
+ end
+
+ it "preserves its encoding" do
+ @s.encode!(Encoding::SHIFT_JIS)
+ @s.encoding.should == Encoding::SHIFT_JIS
+ @s.clear.encoding.should == Encoding::SHIFT_JIS
+ @s.encoding.should == Encoding::SHIFT_JIS
+ end
+
+ it "works with multibyte Strings" do
+ s = "\u{9765}\u{876}"
+ s.clear
+ s.should == ""
+ end
+
+ it "raises a RuntimeError if self is frozen" do
+ @s.freeze
+ lambda { @s.clear }.should raise_error(RuntimeError)
+ lambda { "".freeze.clear }.should raise_error(RuntimeError)
+ end
+ end
+end