summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/string/squeeze_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/string/squeeze_spec.rb')
-rw-r--r--spec/rubyspec/core/string/squeeze_spec.rb113
1 files changed, 0 insertions, 113 deletions
diff --git a/spec/rubyspec/core/string/squeeze_spec.rb b/spec/rubyspec/core/string/squeeze_spec.rb
deleted file mode 100644
index d6b3fb6de6..0000000000
--- a/spec/rubyspec/core/string/squeeze_spec.rb
+++ /dev/null
@@ -1,113 +0,0 @@
-# -*- encoding: binary -*-
-require File.expand_path('../../../spec_helper', __FILE__)
-require File.expand_path('../fixtures/classes.rb', __FILE__)
-
-# TODO: rewrite all these specs
-
-describe "String#squeeze" do
- it "returns new string where runs of the same character are replaced by a single character when no args are given" do
- "yellow moon".squeeze.should == "yelow mon"
- end
-
- it "only squeezes chars that are in the intersection of all sets given" do
- "woot squeeze cheese".squeeze("eost", "queo").should == "wot squeze chese"
- " now is the".squeeze(" ").should == " now is the"
- end
-
- it "negates sets starting with ^" do
- s = "<<subbookkeeper!!!>>"
- s.squeeze("beko", "^e").should == s.squeeze("bko")
- s.squeeze("^<bek!>").should == s.squeeze("o")
- s.squeeze("^o").should == s.squeeze("<bek!>")
- s.squeeze("^").should == s
- "^__^".squeeze("^^").should == "^_^"
- "((^^__^^))".squeeze("_^").should == "((^_^))"
- end
-
- it "squeezes all chars in a sequence" do
- s = "--subbookkeeper--"
- s.squeeze("\x00-\xFF").should == s.squeeze
- s.squeeze("bk-o").should == s.squeeze("bklmno")
- s.squeeze("b-e").should == s.squeeze("bcde")
- s.squeeze("e-").should == "-subbookkeper-"
- s.squeeze("-e").should == "-subbookkeper-"
- s.squeeze("---").should == "-subbookkeeper-"
- "ook--001122".squeeze("--2").should == "ook-012"
- "ook--(())".squeeze("(--").should == "ook-()"
- s.squeeze("^b-e").should == "-subbokeeper-"
- "^^__^^".squeeze("^^-^").should == "^^_^^"
- "^^--^^".squeeze("^---").should == "^--^"
-
- s.squeeze("b-dk-o-").should == "-subokeeper-"
- s.squeeze("-b-dk-o").should == "-subokeeper-"
- s.squeeze("b-d-k-o").should == "-subokeeper-"
-
- s.squeeze("bc-e").should == "--subookkeper--"
- s.squeeze("^bc-e").should == "-subbokeeper-"
-
- "AABBCCaabbcc[[]]".squeeze("A-a").should == "ABCabbcc[]"
- end
-
- it "raises an ArgumentError when the parameter is out of sequence" do
- s = "--subbookkeeper--"
- lambda { s.squeeze("e-b") }.should raise_error(ArgumentError)
- lambda { s.squeeze("^e-b") }.should raise_error(ArgumentError)
- end
-
- it "taints the result when self is tainted" do
- "hello".taint.squeeze("e").tainted?.should == true
- "hello".taint.squeeze("a-z").tainted?.should == true
-
- "hello".squeeze("e".taint).tainted?.should == false
- "hello".squeeze("l".taint).tainted?.should == false
- end
-
- it "tries to convert each set arg to a string using to_str" do
- other_string = mock('lo')
- other_string.should_receive(:to_str).and_return("lo")
-
- other_string2 = mock('o')
- other_string2.should_receive(:to_str).and_return("o")
-
- "hello room".squeeze(other_string, other_string2).should == "hello rom"
- end
-
- it "raises a TypeError when one set arg can't be converted to a string" do
- lambda { "hello world".squeeze([]) }.should raise_error(TypeError)
- lambda { "hello world".squeeze(Object.new)}.should raise_error(TypeError)
- lambda { "hello world".squeeze(mock('x')) }.should raise_error(TypeError)
- end
-
- it "returns subclass instances when called on a subclass" do
- StringSpecs::MyString.new("oh no!!!").squeeze("!").should be_an_instance_of(StringSpecs::MyString)
- end
-end
-
-describe "String#squeeze!" do
- it "modifies self in place and returns self" do
- a = "yellow moon"
- a.squeeze!.should equal(a)
- a.should == "yelow mon"
- end
-
- it "returns nil if no modifications were made" do
- a = "squeeze"
- a.squeeze!("u", "sq").should == nil
- a.squeeze!("q").should == nil
- a.should == "squeeze"
- end
-
- it "raises an ArgumentError when the parameter is out of sequence" do
- s = "--subbookkeeper--"
- lambda { s.squeeze!("e-b") }.should raise_error(ArgumentError)
- lambda { s.squeeze!("^e-b") }.should raise_error(ArgumentError)
- end
-
- it "raises a RuntimeError when self is frozen" do
- a = "yellow moon"
- a.freeze
-
- lambda { a.squeeze!("") }.should raise_error(RuntimeError)
- lambda { a.squeeze! }.should raise_error(RuntimeError)
- end
-end