Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #2970 (closed defect: fixed)

Opened 4 years ago

Last modified 3 years ago

assert_tag parses CDATA

Reported by: drbrain@segment7.net Assigned to: jamis@37signals.com
Priority: normal Milestone:
Component: ActiveRecord Version: 0.14.3
Severity: normal Keywords: test
Cc:

Description

Given a document like:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title><![CDATA[<br>]]></title>
   </head>
  <body>
    <p>this document has &lt;br&gt; for a title</p>
  </body>
</html>

The following assertions should pass:

    assert_no_tag :tag => 'title', :descendant => { :tag => 'br' }

Because the documentation says assert_tag works with "well-formed XHTML":

http://dev.rubyonrails.org/browser/trunk/actionpack/lib/action_controller/assertions.rb?rev=3119#L261

Instead, the assertion fails:

expected no tag, but found tag matching {:descendant=>{:tag=>"br"}, :tag=>"title"} in:
"<html>\n  <head>\n    <title><![CDATA[<br>]]></title>\n   </head>\n  <body>\n    <p>this document has &lt;br&gt; for a title</p>\n  </body>\n</html>\n\n".
<false> is not true.

A copy of this document can be found here:

http://segment7.net/temp/test.xhtml

and validates:

http://validator.w3.org/check?uri=http%3A%2F%2Fsegment7.net%2Ftemp%2Ftest.xhtml

Change History

11/21/05 05:39:23 changed by marcel

  • owner changed from David to jamis@37signals.com.

11/21/05 20:43:37 changed by minam

  • status changed from new to closed.
  • resolution set to fixed.

(In [3153]) Update html-scanner to handle CDATA sections better. Closes #2970. [Jamis Buck]

08/05/06 05:37:17 changed by anonymous

home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home home