<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>assert_select_encoded (ActionController::Assertions::SelectorAssertions)</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" /> </head> <body class="standalone-code"> <pre><span class="ruby-comment cmt"># File lib/action_controller/assertions/selector_assertions.rb, line 503</span> <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assert_select_encoded</span>(<span class="ruby-identifier">element</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">element</span> <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span> <span class="ruby-identifier">elements</span> = <span class="ruby-identifier">element</span> <span class="ruby-keyword kw">when</span> <span class="ruby-constant">HTML</span><span class="ruby-operator">::</span><span class="ruby-constant">Node</span> <span class="ruby-identifier">elements</span> = [<span class="ruby-identifier">element</span>] <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">elements</span> = <span class="ruby-ivar">@selected</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"First argument is optional, but must be called from a nested assert_select"</span> <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"Argument is optional, and may be node or array of nodes"</span> <span class="ruby-keyword kw">end</span> <span class="ruby-identifier">fix_content</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span> <span class="ruby-comment cmt"># Gets around a bug in the Rails 1.1 HTML parser.</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">content</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/<!\[CDATA\[(.*)(\]\]>)?/</span><span class="ruby-identifier">m</span>) { <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escapeHTML</span>(<span class="ruby-identifier">$1</span>) } <span class="ruby-keyword kw">end</span> <span class="ruby-identifier">selected</span> = <span class="ruby-identifier">elements</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span> <span class="ruby-identifier">text</span> = <span class="ruby-identifier">element</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">select</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">tag?</span> }.<span class="ruby-identifier">map</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fix_content</span>[<span class="ruby-identifier">c</span>] }.<span class="ruby-identifier">join</span> <span class="ruby-identifier">root</span> = <span class="ruby-constant">HTML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">CGI</span>.<span class="ruby-identifier">unescapeHTML</span>(<span class="ruby-node">"<encoded>#{text}</encoded>"</span>)).<span class="ruby-identifier">root</span> <span class="ruby-identifier">css_select</span>(<span class="ruby-identifier">root</span>, <span class="ruby-value str">"encoded:root"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">begin</span> <span class="ruby-identifier">old_selected</span>, <span class="ruby-ivar">@selected</span> = <span class="ruby-ivar">@selected</span>, <span class="ruby-identifier">selected</span> <span class="ruby-identifier">assert_select</span> <span class="ruby-value str">":root"</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span> <span class="ruby-keyword kw">ensure</span> <span class="ruby-ivar">@selected</span> = <span class="ruby-identifier">old_selected</span> <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">end</span></pre> </body> </html>