added assert_tag, assert_no_tag
This commit is contained in:
parent
0f0dab0b0b
commit
cf1589823d
@ -52,6 +52,20 @@ module Webrat
|
||||
end
|
||||
|
||||
alias_method :match_tag, :have_tag
|
||||
|
||||
# Asserts that the body of the response contains
|
||||
# the supplied tag with the associated selectors
|
||||
def assert_tag(name, attributes = {})
|
||||
ht = HaveTag.new([name, attributes])
|
||||
raise Test::Unit::AssertionFailedError.new(ht.failure_message) unless ht.matches?(response_body)
|
||||
end
|
||||
|
||||
# Asserts that the body of the response
|
||||
# does not contain the supplied string or regepx
|
||||
def assert_no_tag(name, attributes = {})
|
||||
ht = HaveTag.new([name, attributes])
|
||||
raise Test::Unit::AssertionFailedError.new(ht.negative_failure_message) if ht.matches?(response_body)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
@ -133,6 +133,49 @@ describe Webrat::Matchers do
|
||||
}
|
||||
end
|
||||
|
||||
describe "asserts for tags," do
|
||||
before(:each) do
|
||||
should_receive(:response_body).and_return @body
|
||||
require 'test/unit'
|
||||
end
|
||||
describe "assert_tag" do
|
||||
it "should pass when body contains the tag" do
|
||||
assert_tag("div")
|
||||
end
|
||||
|
||||
it "should pass when finding with additional selectors" do
|
||||
assert_tag("div", :class => "inner")
|
||||
end
|
||||
|
||||
|
||||
it "should throw an exception when the body doesnt have matching tag" do
|
||||
lambda {assert_tag("p")}.should raise_error(Test::Unit::AssertionFailedError)
|
||||
end
|
||||
|
||||
it "should throw an exception when the body doens't have a tag matching the additional selector" do
|
||||
lambda {assert_tag("div", :class => "nope")}.should raise_error(Test::Unit::AssertionFailedError)
|
||||
end
|
||||
end
|
||||
|
||||
describe "assert_no_tag" do
|
||||
it "should pass when the body doesn't contan the tag" do
|
||||
assert_no_tag("p")
|
||||
end
|
||||
|
||||
it "should pass when the body doesn't contain the tag due to additional selectors missing" do
|
||||
assert_no_tag("div", :class => "nope")
|
||||
end
|
||||
|
||||
it "should throw an exception when the body does contain the tag" do
|
||||
lambda {assert_no_tag("div")}.should raise_error(Test::Unit::AssertionFailedError)
|
||||
end
|
||||
|
||||
it "should throw an exception when the body contains the tag with additional selectors" do
|
||||
lambda {assert_no_tag("div", :class => "inner")}.should raise_error(Test::Unit::AssertionFailedError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe Webrat::Matchers::HasContent do
|
||||
|
Loading…
Reference in New Issue
Block a user