From 930f33657c7264578bea198f65222471b8ab2d2e Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Mon, 4 Jul 2005 15:05:40 +0000 Subject: Updated html-scanner so that assert_tag(:tag => "p", :content => "foo") behaves as expected git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1661 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 +- actionpack/lib/action_controller/assertions.rb | 5 +++-- actionpack/lib/action_controller/vendor/html-scanner/html/node.rb | 6 +++--- .../lib/action_controller/vendor/html-scanner/html/version.rb | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 11cbd08ebd..202da1d3b8 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -115,7 +115,7 @@ * Support :render option for :verify #1440 [TobiasLuetke] -* Updated vendor copy of html-scanner lib to 0.5.1, for bug fixes and optimizations +* Updated vendor copy of html-scanner lib to 0.5.2, for bug fixes and optimizations. The :content option may be used as expected--to find a tag whose textual content is a particular value--in assert_tag, now. * Changed test requests to come from 0.0.0.0 instead of 127.0.0.1 such that they don't trigger debugging screens on exceptions, but instead call rescue_action_in_public diff --git a/actionpack/lib/action_controller/assertions.rb b/actionpack/lib/action_controller/assertions.rb index cb8d0e79ae..e04d4ccde0 100644 --- a/actionpack/lib/action_controller/assertions.rb +++ b/actionpack/lib/action_controller/assertions.rb @@ -191,8 +191,9 @@ module Test #:nodoc: # * :only: another hash consisting of the keys to use # to match on the children, and only matching children will be # counted. - # * :content: (text nodes only). The content of the node must - # match the given value. + # * :content: the textual content of the node must match the + # given value. This will not match HTML tags in the body of a + # tag--only text. # # Conditions are matched using the following algorithm: # diff --git a/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb b/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb index 8d1c711226..6d045b0367 100644 --- a/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +++ b/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb @@ -379,9 +379,9 @@ module HTML #:nodoc: # :child => /hello world/ } def match(conditions) conditions = validate_conditions(conditions) - - # only Text nodes have content - return false if conditions[:content] + + # check content of child nodes + return false unless children.find { |child| child.match(conditions[:content]) } if conditions[:content] # test the name return false unless match_condition(@name, conditions[:tag]) if conditions[:tag] diff --git a/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb b/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb index 0b4d184a8b..99a8d5766c 100644 --- a/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +++ b/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb @@ -3,7 +3,7 @@ module HTML #:nodoc: MAJOR = 0 MINOR = 5 - TINY = 1 + TINY = 2 STRING = [ MAJOR, MINOR, TINY ].join(".") -- cgit v1.2.3