require 'spec_helper' describe String do describe "#camelize(!)" do it "to be ExampleString" do expect("example_string".camelize).to eq("ExampleString") expect("example_string".camelize!).to eq("ExampleString") end it "to be exampleString" do expect("example_string".camelize(:lower)).to eq("exampleString") expect("example_string".camelize!(:lower)).to eq("exampleString") end end describe "#ends_with?" do it "to be true" do expect("".ends_with?("")).to eq(true) expect(" ".ends_with?(" ")).to eq(true) expect(" ".ends_with?("")).to eq(true) expect("example string".ends_with?("g")).to eq(true) expect("example string".ends_with?("ng")).to eq(true) end it "to be false" do expect("".ends_with?(" ")).to eq(false) expect("e ".ends_with?("e")).to eq(false) expect("example string".ends_with?("x")).to eq(false) end end describe "#humanize(!)" do it "to be Example string test" do expect("example_string_test".humanize).to eq("Example string test") expect("example_string_test".humanize!).to eq("Example string test") expect("exampleStringTest".humanize).to eq("Example string test") expect("exampleStringTest".humanize!).to eq("Example string test") expect("ExampleStringTest".humanize).to eq("Example string test") expect("ExampleStringTest".humanize!).to eq("Example string test") end end describe "#starts_with?" do it "to be true" do expect("".starts_with?("")).to eq(true) expect(" ".starts_with?(" ")).to eq(true) expect(" ".starts_with?("")).to eq(true) expect("example string".starts_with?("e")).to eq(true) expect("example string".starts_with?("ex")).to eq(true) end it "to be false" do expect("".starts_with?(" ")).to eq(false) expect(" e".starts_with?("e")).to eq(false) expect("example string".starts_with?("x")).to eq(false) end end describe "#titleize(!)" do it "to be Example String Test" do expect("example string test".titleize).to eq("Example String Test") expect("example string test".titleize!).to eq("Example String Test") expect("Example string Test".titleize).to eq("Example String Test") expect("Example string Test".titleize!).to eq("Example String Test") expect("ExampleStringTest".titleize).to eq("Example String Test") expect("ExampleStringTest".titleize!).to eq("Example String Test") expect("Example_string_test".titleize).to eq("Example String Test") expect("Example_string_test".titleize!).to eq("Example String Test") end end describe "#underscore(!)" do it "to be example_string" do expect("ExampleString".underscore).to eq("example_string") expect("ExampleString".underscore!).to eq("example_string") expect("exampleString".underscore).to eq("example_string") expect("exampleString".underscore!).to eq("example_string") expect("example_string".underscore).to eq("example_string") expect("example_string".underscore!).to eq("example_string") expect("example_String".underscore).to eq("example_string") expect("example_String".underscore!).to eq("example_string") end end describe "#domain" do it "to be test" do expect("".domain).to eq("") expect(" ".domain).to eq(" ") expect("example string".domain).to eq("example string") expect("http://www.example.com".domain).to eq("www.example.com") expect("http://www.example.com/fake-page".domain).to eq("www.example.com") end end describe "#downcase?" do it "to be true" do expect("downcase".downcase?).to eq(true) expect("downcase string".downcase?).to eq(true) end it "to be false" do expect("Mixedcase".downcase?).to eq(false) expect("UPCASE".downcase?).to eq(false) expect("Mixedcase string".downcase?).to eq(false) end end describe "#ellipsize" do it "to be example string" do expect("example string".ellipsize).to eq("example string") end it "to be 0123...WXYZ" do expect("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize).to eq("0123...WXYZ") end it "to be 012...XYZ" do expect("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(length: 50)).to eq("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ") end it "to be 012...XYZ" do expect("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(offset: 3)).to eq("012...XYZ") end it "to be 0123+++WXYZ" do expect("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(separator: "+++")).to eq("0123+++WXYZ") end end describe "#gnix(!)" do it "to be this that " do expect("this thing that thing".gnix("thing")).to eq("this that ") expect("this thing that thing".gnix!("thing")).to eq("this that ") end end describe "#mixedcase?" do it "to be true" do expect("Mixedcase".mixedcase?).to eq(true) expect("Mixedcase STRING type".mixedcase?).to eq(true) end it "to be false" do expect("downcase".mixedcase?).to eq(false) expect("UPCASE".mixedcase?).to eq(false) end end describe "#nix(!)" do it "to be this that thing" do expect("this thing that thing".nix("thing")).to eq("this that thing") expect("this thing that thing".nix!("thing")).to eq("this that thing") end end describe "#pollute" do it "to be t^--^--^e^--^--^s^--^--^t^--^--^" do expect("test".pollute).to eq("t^--^--^e^--^--^s^--^--^t^--^--^") end it "to be t-e-s-t-" do expect("test".pollute("-")).to eq("t-e-s-t-") end end describe "#unpollute" do it "to be test" do expect("test".unpollute).to eq("test") end it "to be test" do expect("t-e-s-t-".unpollute("-")).to eq("test") end end describe "#pollute then #unpollute" do it "to be test" do expect("test".pollute.unpollute).to eq("test") end it "to be test" do expect("t-e-s-t-".pollute("-").unpollute("-")).to eq("test") end end describe "#slugify(!)" do it "to be example" do expect("example".slugify).to eq("example") expect("example".slugify!).to eq("example") end it "to be example-string" do expect("example string".slugify).to eq("example-string") expect("example string".slugify!).to eq("example-string") end it "to be example-string-test" do expect("Example string @@@ test!".slugify).to eq("example-string-test") expect("Example string @@@ test!".slugify!).to eq("example-string-test") end it "to be a-real-doozie" do expect(" A REal Doozi\"e? \' ".slugify).to eq("a-real-doozie") expect(" A REal Doozi\"e? \' ".slugify!).to eq("a-real-doozie") end end describe "#squish(!)" do it "to be example test" do expect("example test".squish).to eq("example test") expect("example test".squish!).to eq("example test") expect(" example test ".squish).to eq("example test") expect(" example test ".squish!).to eq("example test") end end describe "#strip_tags(!)" do it "to be example" do expect("example".strip_tags).to eq("example") expect("example".strip_tags!).to eq("example") end it "to be click" do expect("click".strip_tags).to eq("click") expect("click".strip_tags!).to eq("click") end it "to be this is bold and emphatic" do expect("this is bold and emphatic".strip_tags).to eq("this is bold and emphatic") expect("this is bold and emphatic".strip_tags!).to eq("this is bold and emphatic") end end describe "#strip_whitespace(!)" do it "to be example" do expect("example string test".strip_whitespace).to eq("example string test") expect("example string test".strip_whitespace!).to eq("example string test") expect(" this \t is also a test ".strip_whitespace).to eq("this is also a test") expect(" this \t is also a test ".strip_whitespace!).to eq("this is also a test") end end describe "#truncate_preserving_words" do it "to be example string" do expect("example string".truncate_preserving_words).to eq("example string") expect("example string".truncate_preserving_words(max_words: 10)).to eq("example string") expect("example string".truncate_preserving_words(:max_chars => 15, :end_string => "..")).to eq("example string") end it "to be example string" do expect("example string test another1 another2 another3".truncate_preserving_words).to eq("example string test another1 ...") expect("example string test".truncate_preserving_words(max_words: 2)).to eq("example string ...") expect("example string test".truncate_preserving_words(max_chars: 10, separator: "+++")).to eq("example +++") end end describe "#upcase?" do it "to be true" do expect("UPCASE".upcase?).to eq(true) expect("UPCASE STRING".upcase?).to eq(true) end it "to be false" do expect("downcase".upcase?).to eq(false) expect("Mixedcase".upcase?).to eq(false) expect("Mixedcase string".upcase?).to eq(false) end end end