<!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.66
Devel::Cover is copyright 2001-2010, 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/5-expire.t</title>
</head>
<body>
<h1>File Coverage</h1>
<table>
<tr><td class="h" align="right">File:</td><td align="left">t/5-expire.t</td></tr>
<tr><td class="h" align="right">Coverage:</td><td align="left" class="c1">86.4%</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><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-5-expire-t--subroutine.html#L1">1</a></div></td><td></td><td><div>1272034660669971</div><div>12923</div><div>8</div></td><td class="s">use Test::More;</td></tr>
<tr><td class="h">2</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-5-expire-t--subroutine.html#L2">1</a></div></td><td></td><td><div>454</div><div>2095</div><div>6</div></td><td class="s">use Test::Exception;</td></tr>
<tr><td class="h">3</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-5-expire-t--subroutine.html#L3">1</a></div></td><td></td><td><div>360</div><div>931638</div><div>19</div></td><td class="s">use Catalyst ();</td></tr>
<tr><td class="h">4</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-5-expire-t--subroutine.html#L4">1</a></div></td><td></td><td><div>217</div><div>935</div><div>31</div></td><td class="s">use FindBin;</td></tr>
<tr><td class="h">5</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-5-expire-t--subroutine.html#L5">1</a></div></td><td></td><td><div>174</div><div>130959</div><div>20</div></td><td class="s">use DateTime;</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-5-expire-t--subroutine.html#L6">1</a></div></td><td></td><td><div>4</div><div>1</div><div>27</div></td><td class="s">use DateTime::Duration;</td></tr>
<tr><td class="h">7</td><td colspan="7"></td></tr><tr><td class="h">8</td><td colspan="7"></td></tr><tr><td class="h">9</td><td colspan="7"></td></tr><tr><td class="h">10</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># a simple package</td></tr>
<tr><td class="h">11</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">{</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>441067</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;package MyApp::Controller::Js;</td></tr>
<tr><td class="h">13</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-5-expire-t--subroutine.html#L13">1</a></div></td><td></td><td><div>3</div><div>1</div><div>9</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;use Moose;</td></tr>
<tr><td class="h">14</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;extends &#39;Catalyst::Controller::Combine&#39;;</td></tr>
<tr><td class="h">15</td><td colspan="7"></td></tr><tr><td class="h">16</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>2815</div></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;__PACKAGE__-&gt;config(</td></tr>
<tr><td class="h">17</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;#    expire    =&gt; 1,</td></tr>
<tr><td class="h">18</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&nbsp;#    expire_in =&gt; 60 * 60, # 1 hour</td></tr>
<tr><td class="h">19</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">20</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
<tr><td class="h">21</td><td colspan="7"></td></tr><tr><td class="h">22</td><td colspan="7"></td></tr><tr><td class="h">23</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">24</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># test start...</td></tr>
<tr><td class="h">25</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">26</td><td colspan="7"></td></tr><tr><td class="h">27</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># setup our Catalyst :-)</td></tr>
<tr><td class="h">28</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>213</div></td><td class="s">my $c = Catalyst-&gt;new();</td></tr>
<tr><td class="h">29</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>380</div></td><td class="s">$c-&gt;setup_log();</td></tr>
<tr><td class="h">30</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>901</div></td><td class="s">$c-&gt;setup_home(&quot;$FindBin::Bin&quot;);</td></tr>
<tr><td class="h">31</td><td colspan="7"></td></tr><tr><td class="h">32</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>696</div></td><td class="s">my $controller;</td></tr>
<tr><td class="h">33</td><td><div class="c3">1</div><div class="c3">1</div></td><td></td><td></td><td><div class="c3"><a href="t-5-expire-t--subroutine.html#L33">1</a></div></td><td></td><td><div>11</div><div>106</div></td><td class="s">lives_ok { $controller = $c-&gt;setup_component(&#39;MyApp::Controller::Js&#39;) } &#39;setup component worked&#39;;</td></tr>
<tr><td class="h">34</td><td colspan="7"></td></tr><tr><td class="h">35</td><td colspan="7"></td></tr><tr><td class="h">36</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">37</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># check if expires header is sent, if feature isn&#39;t turned on</td></tr>
<tr><td class="h">38</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">39</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>332</div></td><td class="s">$controller-&gt;do_combine($c, &#39;js1&#39;);</td></tr>
<tr><td class="h">40</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>54</div></td><td class="s">ok(!$c-&gt;response-&gt;header(&#39;expires&#39;), &quot;expires header not sent, if feature not active&quot;);</td></tr>
<tr><td class="h">41</td><td colspan="7"></td></tr><tr><td class="h">42</td><td colspan="7"></td></tr><tr><td class="h">43</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># okay, let&#39;s check the real stuff, turn this feature one</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>318</div></td><td class="s">MyApp::Controller::Js-&gt;config-&gt;{expire} = 1;</td></tr>
<tr><td class="h">45</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>104</div></td><td class="s">$controller = $c-&gt;setup_component(&#39;MyApp::Controller::Js&#39;);</td></tr>
<tr><td class="h">46</td><td colspan="7"></td></tr><tr><td class="h">47</td><td colspan="7"></td></tr><tr><td class="h">48</td><td colspan="7"></td></tr><tr><td class="h">49</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">50</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># combine and check if expire header is set and correct (no expire_in is explicitly set)</td></tr>
<tr><td class="h">51</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</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>33</div></td><td class="s">$controller-&gt;do_combine($c, &#39;js1&#39;);</td></tr>
<tr><td class="h">53</td><td><div class="c3">1</div></td><td></td><td><div class="c0"><a href="t-5-expire-t--condition.html#L53">0</a></div></td><td></td><td></td><td><div>40</div></td><td class="s">my $expected_date_str = (DateTime-&gt;now + DateTime::Duration-&gt;new(seconds =&gt; $controller-&gt;{expire_in} || 0))-&gt;strftime( &quot;%a, %d %b %Y %H:%M:%S GMT&quot; );</td></tr>
<tr><td class="h">54</td><td><div class="c3">1</div></td><td></td><td><div class="c0"><a href="t-5-expire-t--condition.html#L54">0</a></div></td><td></td><td></td><td><div>1633</div></td><td class="s">ok($c-&gt;response-&gt;header(&#39;expires&#39;) &amp;&amp; $c-&gt;response-&gt;header(&#39;expires&#39;) eq $expected_date_str,</td></tr>
<tr><td class="h">55</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&#39;expires in &quot;standard expire delta&quot;&#39;);</td></tr>
<tr><td class="h">56</td><td colspan="7"></td></tr><tr><td class="h">57</td><td colspan="7"></td></tr><tr><td class="h">58</td><td colspan="7"></td></tr><tr><td class="h">59</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">60</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s"># combine and check if expire header is set and correct (expire_in = 60 minutes)</td></tr>
<tr><td class="h">61</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">#</td></tr>
<tr><td class="h">62</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>352</div></td><td class="s">MyApp::Controller::Js-&gt;config-&gt;{expire_in} = 60 * 60; # one hour</td></tr>
<tr><td class="h">63</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>102</div></td><td class="s">$controller = $c-&gt;setup_component(&#39;MyApp::Controller::Js&#39;);</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>33</div></td><td class="s">$controller-&gt;do_combine($c, &#39;js1&#39;);</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>37</div></td><td class="s">$expected_date_str = (DateTime-&gt;now + DateTime::Duration-&gt;new(seconds =&gt; MyApp::Controller::Js-&gt;config-&gt;{expire_in}))-&gt;strftime( &quot;%a, %d %b %Y %H:%M:%S GMT&quot; );</td></tr>
<tr><td class="h">66</td><td><div class="c3">1</div></td><td></td><td><div class="c0"><a href="t-5-expire-t--condition.html#L66">0</a></div></td><td></td><td></td><td><div>1399</div></td><td class="s">ok($c-&gt;response-&gt;header(&#39;expires&#39;) &amp;&amp; $c-&gt;response-&gt;header(&#39;expires&#39;) eq $expected_date_str,</td></tr>
<tr><td class="h">67</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="s">&nbsp;&nbsp;&nbsp;&#39;expires in one hour&#39;);</td></tr>
<tr><td class="h">68</td><td colspan="7"></td></tr><tr><td class="h">69</td><td colspan="7"></td></tr><tr><td class="h">70</td><td colspan="7"></td></tr><tr><td class="h">71</td><td><div class="c3">1</div></td><td></td><td></td><td></td><td></td><td><div>332</div></td><td class="s">done_testing;</td></tr>
</table>
</body>
</html>