The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
This file was generated by Devel::Cover Version 0.64
Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj@cpan.org)
Devel::Cover is free. It is licensed under the same terms as Perl itself.
The latest version of Devel::Cover should be available from my homepage:
http://www.pjcj.net
-->
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
    <meta http-equiv="Content-Language" content="en-us"></meta>
    <link rel="stylesheet" type="text/css" href="cover.css"></link>
    <link rel="stylesheet" type="text/css" href="cover.css"></link>
    <title>File Coverage: t/stickies.t</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">t/stickies.t</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c3">100.0%</td></tr>
</table>
<div><br/></div>
<table>
<tr><th>line</th><th>stmt</th><th>bran</th><th>cond</th><th>sub</th><th>pod</th><th>time</th><th>code</th></tr>
<tr><td class="h">1</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#!/usr/bin/env perl</td></tr>
<tr><td class="h">2</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># ABSTRACT:</td></tr>
<tr><td class="h">3</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#   This is a whitebox test to see if &quot;notice_stickie&quot; pushes</td></tr>
<tr><td class="h">4</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#   stickies into session.</td></tr>
<tr><td class="h">5</td><td colspan="7"></td></tr><tr><td class="h">6</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L6">1</a></div></td><td></td><td><div>99</div><div>10</div><div>10</div></td><td class="s">use strict;</td></tr>
<tr><td class="h">7</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L7">1</a></div></td><td></td><td><div>10</div><div>2</div><div>11</div></td><td class="s">use warnings;</td></tr>
<tr><td class="h">8</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L8">1</a></div></td><td></td><td><div>114</div><div>6</div><div>5</div></td><td class="s">use Moose ();</td></tr>
<tr><td class="h">9</td><td colspan="7"></td></tr><tr><td class="h">10</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L10">1</a></div></td><td></td><td><div>90</div><div>6</div><div>20</div></td><td class="s">use Test::More tests =&gt; 2;</td></tr>
<tr><td class="h">11</td><td colspan="7"></td></tr><tr><td class="h">12</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>35</div></td><td class="s">my $STICKIE_TEXT = &quot;Foo&quot; . time;</td></tr>
<tr><td class="h">13</td><td colspan="7"></td></tr><tr><td class="h">14</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">package FooController;</td></tr>
<tr><td class="h">15</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L15">1</a></div></td><td></td><td><div>86</div><div>5</div><div>14</div></td><td class="s">use Railsish::Controller;</td></tr>
<tr><td class="h">16</td><td colspan="7"></td></tr><tr><td class="h">17</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">sub index {</td></tr>
<tr><td class="h">18</td><td><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L18">1</a></div></td><td></td><td><div>10</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;notice_stickie($STICKIE_TEXT)</td></tr>
<tr><td class="h">19</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">20</td><td colspan="7"></td></tr><tr><td class="h">21</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">package main;</td></tr>
<tr><td class="h">22</td><td colspan="7"></td></tr><tr><td class="h">23</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L23">1</a></div></td><td></td><td><div>77</div><div>5</div><div>15</div></td><td class="s">use HTTP::Engine;</td></tr>
<tr><td class="h">24</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L24">1</a></div></td><td></td><td><div>87</div><div>4</div><div>80</div></td><td class="s">use HTTP::Request;</td></tr>
<tr><td class="h">25</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L25">1</a></div></td><td></td><td><div>11</div><div>3</div><div>10</div></td><td class="s">use HTTP::Engine::Response;</td></tr>
<tr><td class="h">26</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L26">1</a></div></td><td></td><td><div>85</div><div>6</div><div>16</div></td><td class="s">use Railsish::Router;</td></tr>
<tr><td class="h">27</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L27">1</a></div></td><td></td><td><div>86</div><div>5</div><div>20</div></td><td class="s">use Railsish::Dispatcher;</td></tr>
<tr><td class="h">28</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L28">1</a></div></td><td></td><td><div>87</div><div>4</div><div>17</div></td><td class="s">use CGI::Cookie;</td></tr>
<tr><td class="h">29</td><td colspan="7"></td></tr><tr><td class="h">30</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">Railsish::Router-&gt;draw(</td></tr>
<tr><td class="h">31</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;sub {</td></tr>
<tr><td class="h">32</td><td><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L32">1</a></div></td><td></td><td><div>5</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my ($map) = @_;</td></tr>
<tr><td class="h">33</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>8</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$map-&gt;connect(&quot;&quot;, controller =&gt; &quot;foo&quot;);</td></tr>
<tr><td class="h">34</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">35</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>25</div></td><td class="s">);</td></tr>
<tr><td class="h">36</td><td colspan="7"></td></tr><tr><td class="h">37</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">my $engine = HTTP::Engine-&gt;new(</td></tr>
<tr><td class="h">38</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;interface =&gt; {</td></tr>
<tr><td class="h">39</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;module =&gt; &quot;Test&quot;,</td></tr>
<tr><td class="h">40</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request_handler =&gt; sub {</td></tr>
<tr><td class="h">41</td><td><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L41">1</a></div></td><td></td><td><div>40</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Railsish::Dispatcher-&gt;dispatch(@_);</td></tr>
<tr><td class="h">42</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">43</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;}</td></tr>
<tr><td class="h">44</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>36</div></td><td class="s">);</td></tr>
<tr><td class="h">45</td><td colspan="7"></td></tr><tr><td class="h">46</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L46">1</a></div></td><td></td><td><div>12</div><div>3</div><div>18</div></td><td class="s">use YAML;</td></tr>
<tr><td class="h">47</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L47">1</a></div></td><td></td><td><div>11</div><div>3</div><div>8</div></td><td class="s">use Crypt::CBC;</td></tr>
<tr><td class="h">48</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L48">1</a></div></td><td></td><td><div>9</div><div>4</div><div>12</div></td><td class="s">use MIME::Base64;</td></tr>
<tr><td class="h">49</td><td><div class="c3">1</div><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-stickies-t--subroutine.html#L49">1</a></div></td><td></td><td><div>9</div><div>4</div><div>8</div></td><td class="s">use JSON::XS;</td></tr>
<tr><td class="h">50</td><td colspan="7"></td></tr><tr><td class="h">51</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>85</div></td><td class="s">my $response = $engine-&gt;run(HTTP::Request-&gt;new(GET =&gt; &quot;http://localhost/&quot;));</td></tr>
<tr><td class="h">52</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>2</div></td><td class="s">my $session_cookie = CGI::Cookie-&gt;parse($response-&gt;header(&#39;Set-Cookie&#39;))-&gt;{_railsish_session};</td></tr>
<tr><td class="h">53</td><td colspan="7"></td></tr><tr><td class="h">54</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># diag YAML::Dump($session_cookie);</td></tr>
<tr><td class="h">55</td><td colspan="7"></td></tr><tr><td class="h">56</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># Decipher session from cookie.</td></tr>
<tr><td class="h">57</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>1722</div></td><td class="s">my $cipher = Crypt::CBC-&gt;new(-key =&gt; &quot;railsish&quot;, -cipher =&gt; &quot;Rijndael&quot;);</td></tr>
<tr><td class="h">58</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>502</div></td><td class="s">my $ciphertext_base64   = $session_cookie-&gt;value;</td></tr>
<tr><td class="h">59</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>36</div></td><td class="s">my $ciphertext_unbase64 = decode_base64($ciphertext_base64);</td></tr>
<tr><td class="h">60</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>9</div></td><td class="s">my $json = $cipher-&gt;decrypt($ciphertext_unbase64);</td></tr>
<tr><td class="h">61</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>1226</div></td><td class="s">my $session = decode_json($json);</td></tr>
<tr><td class="h">62</td><td colspan="7"></td></tr><tr><td class="h">63</td><td><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>5</div><div>7</div></td><td class="s">my @notice_stickies = @{$session-&gt;{notice_stickies}};</td></tr>
<tr><td class="h">64</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>12</div></td><td class="s">ok(@notice_stickies &gt; 0);</td></tr>
<tr><td class="h">65</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>14</div></td><td class="s">is_deeply(\@notice_stickies, [ { text =&gt; $STICKIE_TEXT }]);</td></tr>
</table>
</body>
</html>