Robby on Rails: Testing Cookies in Ruby on Railsthoughts.sort_by{|t| t[:topic]}.collect tag:www.robbyonrails.com,2005:TypoTypo2006-09-06T01:28:43-04:00Robby Russellurn:uuid:ba154b0e-9877-434d-9fd1-b60ea4a43f932006-08-28T08:27:00-04:002006-09-06T01:28:43-04:00Testing Cookies in Ruby on Rails<p>Over the weekend, <a href="http://blog.brightredglow.com/">Brian Ford</a> released a useful plugin for testing your <a href="http://www.rubyonrails.org">Ruby on Rails</a> applications called, <a href="http://blog.brightredglow.com/articles/2006/08/27/assert_cookie-for-ooey-gooey-fun">assert_cookie</a>.</p>
<h2>Brian likes his cookies…</h2>
<center>
<img src="http://www.robbyonrails.com/files/cookie-monster.jpg" alt="" />
</center>
<blockquote>
<p><em>“I love cookies. There are, of course, tons of varieties and I’m no connoisseur but I love the soft chocolate chip right out of the oven, hot and gooey. But, if you’re like me, you don’t want your Rails code to be gooey.”</em> -Brian Ford</p>
</blockquote>
<p>To use <strong>assert_cookie</strong>, follow these steps.</p>
<ol>
<li>Install via, <code>script/plugin install http://svn.planetargon.org/rails/plugins/assert_cookie</code></li>
<li>Fill your tests with some cookies</li>
<li>Test your cookies!</li>
</ol>
Here are a few examples that Brian posted.
<div class="typocode"><pre><code class="typocode_ruby "> <span class="ident">assert_cookie</span> <span class="symbol">:pass</span><span class="punct">,</span>
<span class="symbol">:value</span> <span class="punct">=></span> <span class="ident">lambda</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">value</span><span class="punct">|</span> <span class="constant">UUID</span><span class="punct">.</span><span class="ident">parse</span><span class="punct">(</span><span class="ident">value</span><span class="punct">).</span><span class="ident">valid?</span> <span class="punct">}</span>
<span class="ident">assert_cookie</span> <span class="symbol">:yellow</span><span class="punct">,</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="punct">['</span><span class="string">sunny</span><span class="punct">',</span> <span class="punct">'</span><span class="string">days</span><span class="punct">']</span>
<span class="ident">assert_cookie</span> <span class="symbol">:delight</span><span class="punct">,</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">yum</span><span class="punct">'</span>
<span class="ident">assert_cookie</span> <span class="symbol">:secret</span><span class="punct">,</span> <span class="symbol">:path</span> <span class="punct">=></span> <span class="ident">lambda</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">path</span><span class="punct">|</span> <span class="ident">path</span> <span class="punct">=~</span> <span class="punct">/</span><span class="regex">secret</span><span class="punct">/</span> <span class="punct">},</span>
<span class="symbol">:secure</span> <span class="punct">=></span> <span class="constant">true</span></code></pre></div>
<p>For more information on other plugins and tools that <a href="http://www.planetargon.com"><span class="caps">PLANET ARGON</span></a> is releasing under open source licenses, visit <a href="http://www.planetargon.org">www.planetargon.org</a>.</p>
<p>Also, be sure to <a href="http://feeds.feedburner.com/defeulerxcosxisinxend">subscribe to Brian Ford’s feed</a> as he says he’ll be announcing more plugins and tips soon. :-)</p>
<p>Have Fun!</p><p>Over the weekend, <a href="http://blog.brightredglow.com/">Brian Ford</a> released a useful plugin for testing your <a href="http://www.rubyonrails.org">Ruby on Rails</a> applications called, <a href="http://blog.brightredglow.com/articles/2006/08/27/assert_cookie-for-ooey-gooey-fun">assert_cookie</a>.</p>
<h2>Brian likes his cookies…</h2>
<center>
<img src="http://www.robbyonrails.com/files/cookie-monster.jpg" alt="" />
</center>
<blockquote>
<p><em>“I love cookies. There are, of course, tons of varieties and I’m no connoisseur but I love the soft chocolate chip right out of the oven, hot and gooey. But, if you’re like me, you don’t want your Rails code to be gooey.”</em> -Brian Ford</p>
</blockquote>
<p>To use <strong>assert_cookie</strong>, follow these steps.</p>
<ol>
<li>Install via, <code>script/plugin install http://svn.planetargon.org/rails/plugins/assert_cookie</code></li>
<li>Fill your tests with some cookies</li>
<li>Test your cookies!</li>
</ol>
Here are a few examples that Brian posted.
<div class="typocode"><pre><code class="typocode_ruby "> <span class="ident">assert_cookie</span> <span class="symbol">:pass</span><span class="punct">,</span>
<span class="symbol">:value</span> <span class="punct">=></span> <span class="ident">lambda</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">value</span><span class="punct">|</span> <span class="constant">UUID</span><span class="punct">.</span><span class="ident">parse</span><span class="punct">(</span><span class="ident">value</span><span class="punct">).</span><span class="ident">valid?</span> <span class="punct">}</span>
<span class="ident">assert_cookie</span> <span class="symbol">:yellow</span><span class="punct">,</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="punct">['</span><span class="string">sunny</span><span class="punct">',</span> <span class="punct">'</span><span class="string">days</span><span class="punct">']</span>
<span class="ident">assert_cookie</span> <span class="symbol">:delight</span><span class="punct">,</span> <span class="symbol">:value</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">yum</span><span class="punct">'</span>
<span class="ident">assert_cookie</span> <span class="symbol">:secret</span><span class="punct">,</span> <span class="symbol">:path</span> <span class="punct">=></span> <span class="ident">lambda</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">path</span><span class="punct">|</span> <span class="ident">path</span> <span class="punct">=~</span> <span class="punct">/</span><span class="regex">secret</span><span class="punct">/</span> <span class="punct">},</span>
<span class="symbol">:secure</span> <span class="punct">=></span> <span class="constant">true</span></code></pre></div>
<p>For more information on other plugins and tools that <a href="http://www.planetargon.com"><span class="caps">PLANET ARGON</span></a> is releasing under open source licenses, visit <a href="http://www.planetargon.org">www.planetargon.org</a>.</p>
<p>Also, be sure to <a href="http://feeds.feedburner.com/defeulerxcosxisinxend">subscribe to Brian Ford’s feed</a> as he says he’ll be announcing more plugins and tips soon. :-)</p>
<p>Have Fun!</p>