Sha256: 6b307d9071aacb3a204c0d645d28ee45d06a2492dbd04ce59496d7e853a4dcbd
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
module Webrat module HaveTagMatcher class HaveTag < ::Webrat::Matchers::HaveSelector #:nodoc: # ==== Returns # String:: The failure message. def failure_message "expected following output to contain a #{tag_inspect} tag:\n#{@document}" end # ==== Returns # String:: The failure message to be displayed in negative matches. def negative_failure_message "expected following output to omit a #{tag_inspect}:\n#{@document}" end def tag_inspect options = @expected.last.dup content = options.delete(:content) html = "<#{@expected.first}" options.each do |k,v| html << " #{k}='#{v}'" end if content html << ">#{content}</#{@expected.first}>" else html << "/>" end html end def query options = @expected.last.dup selector = @expected.first.to_s selector << ":contains('#{options.delete(:content)}')" if options[:content] options.each do |key, value| selector << "[#{key}='#{value}']" end Nokogiri::CSS::Parser.parse(selector).map { |ast| ast.to_xpath } end end def have_tag(name, attributes = {}) HaveTag.new([name, attributes]) end alias_method :match_tag, :have_tag end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
webrat-0.3.0 | lib/webrat/core/matchers/have_tag.rb |
webrat-0.3.1 | lib/webrat/core/matchers/have_tag.rb |