File: //usr/local/rvm/src/ruby-3.0.2/spec/mspec/spec/runner/tag_spec.rb
require 'spec_helper'
require 'mspec/runner/tag'
describe SpecTag do
it "accepts an optional string to parse into fields" do
tag = SpecTag.new "tag(comment):description"
tag.tag.should == "tag"
tag.comment.should == "comment"
tag.description.should == "description"
end
end
describe SpecTag, "#parse" do
before :each do
@tag = SpecTag.new
end
it "accepts 'tag(comment):description'" do
@tag.parse "tag(I'm real):Some#method returns a value"
@tag.tag.should == "tag"
@tag.comment.should == "I'm real"
@tag.description.should == "Some#method returns a value"
end
it "accepts 'tag:description'" do
@tag.parse "tag:Another#method"
@tag.tag.should == "tag"
@tag.comment.should == nil
@tag.description.should == "Another#method"
end
it "accepts 'tag():description'" do
@tag.parse "tag():Another#method"
@tag.tag.should == "tag"
@tag.comment.should == nil
@tag.description.should == "Another#method"
end
it "accepts 'tag:'" do
@tag.parse "tag:"
@tag.tag.should == "tag"
@tag.comment.should == nil
@tag.description.should == ""
end
it "accepts 'tag(bug:555):Another#method'" do
@tag.parse "tag(bug:555):Another#method"
@tag.tag.should == "tag"
@tag.comment.should == "bug:555"
@tag.description.should == "Another#method"
end
it "accepts 'tag(http://someplace.com/neato):Another#method'" do
@tag.parse "tag(http://someplace.com/neato):Another#method"
@tag.tag.should == "tag"
@tag.comment.should == "http://someplace.com/neato"
@tag.description.should == "Another#method"
end
it "accepts 'tag(comment):\"Multi-line\\ntext\"'" do
@tag.parse 'tag(comment):"Multi-line\ntext"'
@tag.tag.should == "tag"
@tag.comment.should == "comment"
@tag.description.should == "Multi-line\ntext"
end
it "ignores '#anything'" do
@tag.parse "# this could be a comment"
@tag.tag.should == nil
@tag.comment.should == nil
@tag.description.should == nil
end
end
describe SpecTag, "#to_s" do
it "formats itself as 'tag(comment):description'" do
txt = "tag(comment):description"
tag = SpecTag.new txt
tag.tag.should == "tag"
tag.comment.should == "comment"
tag.description.should == "description"
tag.to_s.should == txt
end
it "formats itself as 'tag:description" do
txt = "tag:description"
tag = SpecTag.new txt
tag.tag.should == "tag"
tag.comment.should == nil
tag.description.should == "description"
tag.to_s.should == txt
end
it "formats itself as 'tag(comment):\"multi-line\\ntext\\ntag\"'" do
txt = 'tag(comment):"multi-line\ntext\ntag"'
tag = SpecTag.new txt
tag.tag.should == "tag"
tag.comment.should == "comment"
tag.description.should == "multi-line\ntext\ntag"
tag.to_s.should == txt
end
end
describe SpecTag, "#==" do
it "returns true if the tags have the same fields" do
one = SpecTag.new "tag(this):unicorn"
two = SpecTag.new "tag(this):unicorn"
one.==(two).should == true
[one].==([two]).should == true
end
end
describe SpecTag, "#unescape" do
it "replaces \\n by LF when the description is quoted" do
tag = SpecTag.new 'tag:"desc with\nnew line"'
tag.description.should == "desc with\nnew line"
end
it "does not replaces \\n by LF when the description is not quoted " do
tag = SpecTag.new 'tag:desc with\nnew line'
tag.description.should == "desc with\\nnew line"
end
end