Abstracting access to inner_html and inner_text to Webrat::XML methods

This commit is contained in:
Bryan Helmkamp 2008-11-28 00:12:21 -05:00
parent 9a344fdc2b
commit 334108015f
6 changed files with 26 additions and 11 deletions

View File

@ -159,7 +159,7 @@ module Webrat
class ButtonField < Field #:nodoc: class ButtonField < Field #:nodoc:
def matches_text?(text) def matches_text?(text)
@element.inner_html =~ /#{Regexp.escape(text.to_s)}/i Webrat::XML.inner_html(@element) =~ /#{Regexp.escape(text.to_s)}/i
end end
def matches_value?(value) def matches_value?(value)
@ -284,7 +284,7 @@ module Webrat
protected protected
def default_value def default_value
@element.inner_html Webrat::XML.inner_html(@element)
end end
end end
@ -338,7 +338,7 @@ module Webrat
selected_options.map do |option| selected_options.map do |option|
return "" if option.nil? return "" if option.nil?
Webrat::XML.attribute(option, "value") || option.inner_html Webrat::XML.attribute(option, "value") || Webrat::XML.inner_html(option)
end end
end end

View File

@ -11,7 +11,7 @@ module Webrat
end end
def text def text
str = @element.inner_text str = Webrat::XML.inner_text(@element)
str.gsub!("\n","") str.gsub!("\n","")
str.strip! str.strip!
str.squeeze!(" ") str.squeeze!(" ")

View File

@ -40,11 +40,11 @@ module Webrat
end end
def inner_html def inner_html
@element.inner_html Webrat::XML.inner_html(@element)
end end
def text def text
@element.inner_text Webrat::XML.inner_text(@element)
end end
protected protected

View File

@ -8,7 +8,7 @@ module Webrat
def matches?(stringlike) def matches?(stringlike)
@document = Webrat::XML.document(stringlike) @document = Webrat::XML.document(stringlike)
@element = @document.inner_text @element = Webrat::XML.inner_text(@document)
case @content case @content
when String when String

View File

@ -8,9 +8,9 @@ module Webrat
def matches_text?(text) def matches_text?(text)
if text.is_a?(Regexp) if text.is_a?(Regexp)
@element.inner_html =~ text Webrat::XML.inner_html(@element) =~ text
else else
@element.inner_html == text.to_s Webrat::XML.inner_html(@element) == text.to_s
end end
end end
@ -22,7 +22,7 @@ module Webrat
protected protected
def value def value
Webrat::XML.attribute(@element, "value") || @element.inner_html Webrat::XML.attribute(@element, "value") || Webrat::XML.inner_html(@element)
end end
end end

View File

@ -6,6 +6,7 @@ module Webrat #:nodoc:
Webrat.nokogiri_document(stringlike) Webrat.nokogiri_document(stringlike)
else else
Webrat::XML.hpricot_document(stringlike) Webrat::XML.hpricot_document(stringlike)
# Webrat.rexml_document(Webrat::XML.hpricot_document(stringlike).to_html)
end end
end end
@ -25,12 +26,26 @@ module Webrat #:nodoc:
end end
end end
def self.inner_html(element)
element.inner_html
end
def self.inner_text(element)
element.inner_text
end
def self.attribute(element, attribute_name) def self.attribute(element, attribute_name)
# case element
# when Nokogiri::XML::Element, Hash
element[attribute_name] element[attribute_name]
# else
# element.attributes[attribute_name]
# end
end end
def self.xpath_search(element, *searches) def self.xpath_search(element, *searches)
searches.flatten.map do |search| searches.flatten.map do |search|
# REXML::XPath.match(element, search)
element.xpath(search) element.xpath(search)
end.flatten.compact end.flatten.compact
end end