Bug#713267: libmojolicious-plugin-basicauth-perl: FTBFS: tests failed

Lucas Nussbaum lucas at lucas-nussbaum.net
Sat Jun 22 12:20:11 UTC 2013


Source: libmojolicious-plugin-basicauth-perl
Version: 0.06-1
Severity: serious
Tags: jessie sid
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20130620 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part:
> make[1]: Entering directory `/«PKGBUILDDIR»'
> PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t
> [Fri Jun 21 06:32:37 2013] [debug] Your secret passphrase needs to be changed!!!
> [Fri Jun 21 06:32:37 2013] [debug] GET "/user-pass".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.001019s, 981.354/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 26
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 96.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 96.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 26
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:26</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:96</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/user-pass</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> [Fri Jun 21 06:32:37 2013] [debug] GET "/user-pass".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.000601s, 1663.894/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 26
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 103.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 103.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 26
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:26</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:103</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/user-pass</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://bad:auth@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic YmFkOmF1dGg=</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> [Fri Jun 21 06:32:37 2013] [debug] GET "/pass".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.000795s, 1257.862/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 41
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 96.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 96.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 41
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:41</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:96</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/pass</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> [Fri Jun 21 06:32:37 2013] [debug] GET "/pass".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.000600s, 1666.667/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 41
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 103.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 103.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 41
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:41</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:103</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/pass</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://bad:auth@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic YmFkOmF1dGg=</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> [Fri Jun 21 06:32:37 2013] [debug] GET "/get-auth-callback".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.000782s, 1278.772/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 55
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 96.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 96.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 55
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:96</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/get-auth-callback</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> [Fri Jun 21 06:32:37 2013] [debug] GET "/get-auth-callback".
> [Fri Jun 21 06:32:37 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:37 2013] [debug] 401 Unauthorized (0.000613s, 1631.321/s).
> [Fri Jun 21 06:32:37 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 55
> 
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:37 2013] [debug] Rendering cached inline template.
> 
> #   Failed test '401 Unauthorized'
> #   at t/auth.t line 103.
> #          got: '500'
> #     expected: '401'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 103.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 55
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:103</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/get-auth-callback</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://bad:auth@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic YmFkOmF1dGg=</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:37 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'denied'
> # /under-bridge
> [Fri Jun 21 06:32:38 2013] [debug] GET "/under-bridge".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [debug] 401 Unauthorized (0.000969s, 1031.992/s).
> # /user-pass
> [Fri Jun 21 06:32:38 2013] [debug] GET "/user-pass".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [debug] 200 OK (0.000668s, 1497.006/s).
> # /user-pass-with-colon-password
> [Fri Jun 21 06:32:38 2013] [debug] GET "/user-pass-with-colon-password".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [debug] 200 OK (0.000877s, 1140.251/s).
> # /pass
> [Fri Jun 21 06:32:38 2013] [debug] GET "/pass".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 44
> 
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering inline template.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering inline template.
> [Fri Jun 21 06:32:38 2013] [debug] 500 Internal Server Error (0.040720s, 24.558/s).
> 
> #   Failed test '200 OK'
> #   at t/auth.t line 135.
> #          got: '500'
> #     expected: '200'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 135.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 44
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:44</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:135</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/pass</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://:password@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic OnBhc3N3b3Jk</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:38 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'authorized'
> # /get-auth-callback
> [Fri Jun 21 06:32:38 2013] [debug] GET "/get-auth-callback".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 53
> 
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:38 2013] [debug] 500 Internal Server Error (0.023895s, 41.850/s).
> 
> #   Failed test '200 OK'
> #   at t/auth.t line 142.
> #          got: '500'
> #     expected: '200'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 142.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 53
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:53</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:142</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/get-auth-callback</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://username:password@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic dXNlcm5hbWU6cGFzc3dvcmQ=</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:38 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'authorized'
> # /get-auth-callback-with-colon-password
> [Fri Jun 21 06:32:38 2013] [debug] GET "/get-auth-callback-with-colon-password".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [error] Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 64
> 
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.development.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Template "exception.html.ep" not found.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:38 2013] [debug] Rendering cached inline template.
> [Fri Jun 21 06:32:38 2013] [debug] 500 Internal Server Error (0.021497s, 46.518/s).
> 
> #   Failed test '200 OK'
> #   at t/auth.t line 149.
> #          got: '500'
> #     expected: '200'
> 
> #   Failed test 'exact match for content'
> #   at t/auth.t line 149.
> #          got: '<!DOCTYPE html>
> # <html>
> #   <head>
> #     <title>Server error</title>
> #     <meta http-equiv="Pragma" content="no-cache">
> #     <meta http-equiv="Expires" content="-1">
> #     <script src="/mojo/jquery/jquery.js"></script>
> #     <script src="/mojo/prettify/run_prettify.js"></script>
> #     <link href="/mojo/prettify/prettify-mojo.css" media="screen" rel="stylesheet" />
> #     <style>/*<![CDATA[*/
> # 
> #       a img { border: 0 }
> #       body {
> #         background-color: #f5f6f8;
> #         color: #445555;
> #         font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: normal;
> #         line-height: 1.5em;
> #         margin: 0;
> #       }
> #       pre {
> #         font: 0.8em Consolas, Menlo, Monaco, Courier, monospace;
> #         margin: 0;
> #         white-space: pre-wrap;
> #       }
> #       table {
> #         border-collapse: collapse;
> #         margin-top: 1em;
> #         margin-bottom: 1em;
> #         width: 100%;
> #       }
> #       td { padding: 0.5em }
> #       .box {
> #         background-color: #fff;
> #         -moz-box-shadow: 0px 0px 2px #ccc;
> #         -webkit-box-shadow: 0px 0px 2px #ccc;
> #         box-shadow: 0px 0px 2px #ccc;
> #         overflow: hidden;
> #         padding: 1em;
> #       }
> #       .code {
> #         background-color: #1a1a1a;
> #         background: url(/mojo/pinstripe.gif);
> #         color: #eee;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       .important { background-color: rgba(47, 48, 50, .75) }
> #       .infobox { color: #333 }
> #       .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
> #       .infobox tr:nth-child(even) .value { background-color: #eef9ff }
> #       .key { text-align: right }
> #       .spaced {
> #         margin-left: 5em;
> #         margin-right: 5em;
> #       }
> #       .striped { border-top: solid #cce4ff 1px }
> #       .tap {
> #         font: 0.5em Verdana, sans-serif;
> #         text-align: center;
> #       }
> #       .value {
> #         padding-left: 1em;
> #         width: 100%;
> #       }
> #       #footer {
> #         padding-top: 1em;
> #         text-align: center;
> #       }
> #       #nothing { padding-top: 60px }
> #       #showcase > pre {
> #         font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
> #         font-weight: 300;
> #         margin: 0;
> #         text-shadow: #333 0 1px 0;
> #       }
> #       #showcase td {
> #         padding-top: 0;
> #         padding-bottom: 0;
> #       }
> #       #showcase .key { padding-right: 0 }
> #       #more, #trace {
> #         -moz-border-radius-bottomleft: 5px;
> #         border-bottom-left-radius: 5px;
> #         -moz-border-radius-bottomright: 5px;
> #         border-bottom-right-radius: 5px;
> #       }
> #       #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
> #       #request {
> #         -moz-border-radius-topleft: 5px;
> #         border-top-left-radius: 5px;
> #         -moz-border-radius-topright: 5px;
> #         border-top-right-radius: 5px;
> #         margin-top: 1em;
> #       }
> #       #wrapperlicious {
> #         max-width: 1000px;
> #         margin: 0 auto;
> #       }
> # 
> # /*]]>*/</style>  </head>
> #   <body>
> #     <script src="/mojo/jquery/jquery.js"></script>
> # <div id="mojobar">
> #   <style scoped="scoped">/*<![CDATA[*/
> # 
> #     #mojobar {
> #       background-color: #1a1a1a;
> #       background: -webkit-gradient(
> #         linear,
> #         0% 0%,
> #         0% 100%,
> #         color-stop(0%, #2a2a2a),
> #         color-stop(100%, #000)
> #       );
> #       background: -moz-linear-gradient(
> #         top,
> #         #2a2a2a 0%,
> #         #000 100%
> #       );
> #       background: linear-gradient(top, #2a2a2a 0%, #000 100%);
> #       -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.6);
> #       height: 46px;
> #       overflow: hidden;
> #       position: absolute;
> #       text-align: right;
> #       vertical-align: middle;
> #       width: 100%;
> #       z-index: 1000;
> #     }
> #     #mojobar-logo {
> #       float: left;
> #       margin-left: 5em;
> #       padding-top: 3px;
> #     }
> #     #mojobar-links {
> #       display:table-cell;
> #       float: right;
> #       height: 60px;
> #       margin-right: 5em;
> #       margin-top: 1em;
> #     }
> #     #mojobar-links a {
> #       color: #ccc;
> #       font: 1em 'Helvetica Neue', Helvetica, sans-serif;
> #       font-weight: 300;
> #       margin-left: 0.5em;
> #       padding-bottom: 1em;
> #       padding-top: 1em;
> #       text-decoration: none;
> #       -webkit-transition: all 200ms ease-in-out;
> #       -moz-transition: all 200ms ease-in-out;
> #       -o-transition: all 200ms ease-in-out;
> #       transition: all 200ms ease-in-out;
> #     }
> #     #mojobar-links a:hover { color: #fff }
> # 
> # /*]]>*/</style>  <div id="mojobar-logo">
> #     <a href="http://mojolicio.us">
> #       <img alt="Mojolicious logo" src="/mojo/logo-white.png" />
> # </a>  </div>
> #   <div id="mojobar-links">
> #     <a href="http://mojolicio.us/perldoc">Documentation</a>
> #     <a href="http://mojocasts.com">Screencasts</a>
> #     <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
> #     <a href="https://github.com/kraih/mojo">GitHub</a>
> #     <a href="http://metacpan.org/release/Mojolicious/">CPAN</a>
> #     <a href="http://groups.google.com/group/mojolicious">MailingList</a>
> #     <a href="http://blog.kraih.com">Blog</a>
> #     <a href="http://twitter.com/kraih">Twitter</a>
> #   </div>
> # </div>
> # <script>//<![CDATA[
> # 
> #   $(window).load(function () {
> #     if (window.location.hash) {
> #       var tweak = $(window.location.hash).offset().top - 50;
> #       $('html, body').animate({scrollTop:tweak}, 1);
> #     }
> #     var mojobar = $('#mojobar');
> #     var start   = mojobar.offset().top;
> #     var fixed;
> #     $(window).scroll(function () {
> #       if (!fixed && (mojobar.offset().top - $(window).scrollTop() < 0)) {
> #         mojobar.css('top', 0);
> #         mojobar.css('position', 'fixed');
> #         fixed = true;
> #       } else if (fixed && $(window).scrollTop() <= start) {
> #         mojobar.css('position', 'absolute');
> #         mojobar.css('top', start + 'px');
> #         fixed = false;
> #       }
> #     });
> #   });
> #   $(document).ready(function() {
> #     $(".mojoscroll").click(function(e) {
> #       e.preventDefault();
> #       e.stopPropagation();
> #       var parts  = this.href.split("#");
> #       var hash   = "#" + parts[1];
> #       var target = $(hash);
> #       var top    = target.offset().top - 50;
> #       var old    = target.attr('id');
> #       target.attr('id', '');
> #       location.hash = hash;
> #       target.attr('id', old);
> #       $('html, body').animate({scrollTop:top}, 1);
> #     });
> #   });
> # 
> # //]]></script>
> #     <div id="wrapperlicious">
> #       <div id="nothing" class="box spaced"></div>
> #       <div id="showcase" class="box code spaced">
> #         <pre>Can't locate object method "render_text" via package "Mojolicious::Controller" at t/auth.t line 64
> # </pre>
> #         <div id="context">
> #           <table>
> #                       <tr>
> #           <td class="key">74</td>
> #           <td class="value"><pre class="prettyprint">    # Icky backwards compatibility wrapper. :-(</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">75</td>
> #           <td class="value"><pre class="prettyprint">    local @CARP_NOT = $cgc ? $cgc->() : caller();</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">76</td>
> #           <td class="value"><pre class="prettyprint">    shortmess_heavy(@_);</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">77</td>
> #           <td class="value"><pre class="prettyprint">}</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">78</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr class="important">
> #           <td class="key">79</td>
> #           <td class="value"><pre class="prettyprint">sub croak   { die shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">80</td>
> #           <td class="value"><pre class="prettyprint">sub confess { die longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">81</td>
> #           <td class="value"><pre class="prettyprint">sub carp    { warn shortmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">82</td>
> #           <td class="value"><pre class="prettyprint">sub cluck   { warn longmess @_ }</pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">83</td>
> #           <td class="value"><pre class="prettyprint"></pre></td>
> # </tr>
> #                       <tr>
> #           <td class="key">84</td>
> #           <td class="value"><pre class="prettyprint">sub caller_info {</pre></td>
> # </tr>
> #           </table>
> #         </div>
> #       </div>
> #       <div id="trace" class="box spaced">
> #           <div class="infobox" id="frames">
> #             <table>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl/5.14/Carp.pm:79</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Controller.pm:35</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:64</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:98</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:224</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Routes.pm:63</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:136</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:156</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:190</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:20</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious/Plugins.pm:22</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojolicious.pm:160</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server.pm:14</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:105</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:13</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Transaction/HTTP.pm:55</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:214</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Server/Daemon.pm:194</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/EventEmitter.pm:30</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:118</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop/Stream.pm:51</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:109</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:46</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/Reactor/Poll.pm:86</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/IOLoop.pm:132</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:101</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Mojo/UserAgent.pm:37</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:339</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>/usr/share/perl5/Test/Mojo.pm:119</pre>
> #                   </td>
> #                 </tr>
> #                 <tr>
> #                   <td class="striped value">
> #                     <pre>t/auth.t:149</pre>
> #                   </td>
> #                 </tr>
> #             </table>
> #           </div>
> #           <div class="tap">tap for more</div>
> #           <script>//<![CDATA[
> # 
> #             $('#trace').click(function() {
> #               $('#frames').slideToggle('slow');
> #             });
> #             $('#frames').toggle();
> # 
> # //]]></script>      </div>
> #       <div id="request" class="box infobox spaced">
> #         <table>
> #                   <tr>
> #           <td class="key">Method:</td>
> #           <td class="striped value"><pre>GET</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">URL:</td>
> #           <td class="striped value"><pre>/get-auth-callback-with-colon-password</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Base URL:</td>
> #           <td class="striped value"><pre>http://username:pass:word@localhost:60843</pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Parameters:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Stash:</td>
> #           <td class="striped value"><pre>{
> #   'cb' => sub { "DUMMY" }
> # }
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Session:</td>
> #           <td class="striped value"><pre>{}
> # </pre></td>
> #         </tr>
> # 
> #                   <tr>
> #           <td class="key">Version:</td>
> #           <td class="striped value"><pre>1.1</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">User-Agent:</td>
> #           <td class="striped value"><pre>Mojolicious (Perl)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Connection:</td>
> #           <td class="striped value"><pre>keep-alive</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Accept-Encoding:</td>
> #           <td class="striped value"><pre>gzip</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Content-Length:</td>
> #           <td class="striped value"><pre>0</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Authorization:</td>
> #           <td class="striped value"><pre>Basic dXNlcm5hbWU6cGFzczp3b3Jk</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Host:</td>
> #           <td class="striped value"><pre>localhost:60843</pre></td>
> #         </tr>
> # 
> #         </table>
> #       </div>
> #       <div id="more" class="box infobox spaced">
> #         <div id="infos">
> #           <table>
> #                     <tr>
> #           <td class="key">Perl:</td>
> #           <td class="striped value"><pre>v5.14.2 (linux)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Mojolicious:</td>
> #           <td class="striped value"><pre>4.13 (Top Hat)</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Home:</td>
> #           <td class="striped value"><pre>/«PKGBUILDDIR»/t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Include:</td>
> #           <td class="striped value"><pre>[
> #   '/«PKGBUILDDIR»/blib/lib',
> #   '/«PKGBUILDDIR»/blib/arch',
> #   '/etc/perl',
> #   '/usr/local/lib/perl/5.14.2',
> #   '/usr/local/share/perl/5.14.2',
> #   '/usr/lib/perl5',
> #   '/usr/share/perl5',
> #   '/usr/lib/perl/5.14',
> #   '/usr/share/perl/5.14',
> #   '/usr/local/lib/site_perl',
> #   '.'
> # ]
> # </pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">PID:</td>
> #           <td class="striped value"><pre>12780</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Name:</td>
> #           <td class="striped value"><pre>t/auth.t</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Executable:</td>
> #           <td class="striped value"><pre>/usr/bin/perl</pre></td>
> #         </tr>
> # 
> #                     <tr>
> #           <td class="key">Time:</td>
> #           <td class="striped value"><pre>Fri Jun 21 06:32:38 2013</pre></td>
> #         </tr>
> # 
> #           </table>
> #         </div>
> #         <div class="tap">tap for more</div>
> #       </div>
> #     </div>
> #     <div id="footer">
> #       <a href="http://mojolicio.us">
> #         <img alt="Mojolicious logo" src="/mojo/logo-black.png" />
> # </a>    </div>
> #     <script>//<![CDATA[
> # 
> #       $('#more').click(function() {
> #         $('#infos').slideToggle('slow');
> #       });
> #       $('#infos').toggle();
> # 
> # //]]></script>  </body>
> # </html>
> # '
> #     expected: 'authorized'
> # /under-bridge
> [Fri Jun 21 06:32:38 2013] [debug] GET "/under-bridge".
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [debug] Routing to a callback.
> [Fri Jun 21 06:32:38 2013] [debug] 200 OK (0.000815s, 1226.994/s).
> # Looks like you failed 18 tests of 45.
> t/auth.t .. 
> 1..45
> ok 1 - GET /user-pass
> not ok 2 - 401 Unauthorized
> ok 3 - WWW-Authenticate: Basic realm=realm
> not ok 4 - exact match for content
> ok 5 - GET /user-pass
> not ok 6 - 401 Unauthorized
> ok 7 - WWW-Authenticate: Basic realm=realm
> not ok 8 - exact match for content
> ok 9 - GET /pass
> not ok 10 - 401 Unauthorized
> ok 11 - WWW-Authenticate: Basic realm=realm
> not ok 12 - exact match for content
> ok 13 - GET /pass
> not ok 14 - 401 Unauthorized
> ok 15 - WWW-Authenticate: Basic realm=realm
> not ok 16 - exact match for content
> ok 17 - GET /get-auth-callback
> not ok 18 - 401 Unauthorized
> ok 19 - WWW-Authenticate: Basic realm=realm
> not ok 20 - exact match for content
> ok 21 - GET /get-auth-callback
> not ok 22 - 401 Unauthorized
> ok 23 - WWW-Authenticate: Basic realm=realm
> not ok 24 - exact match for content
> ok 25 - GET /under-bridge
> ok 26 - 401 Unauthorized
> ok 27 - exact match for content
> ok 28 - GET /user-pass
> ok 29 - 200 OK
> ok 30 - exact match for content
> ok 31 - GET /user-pass-with-colon-password
> ok 32 - 200 OK
> ok 33 - exact match for content
> ok 34 - GET /pass
> not ok 35 - 200 OK
> not ok 36 - exact match for content
> ok 37 - GET /get-auth-callback
> not ok 38 - 200 OK
> not ok 39 - exact match for content
> ok 40 - GET /get-auth-callback-with-colon-password
> not ok 41 - 200 OK
> not ok 42 - exact match for content
> ok 43 - GET /under-bridge
> ok 44 - 200 OK
> ok 45 - exact match for content
> Failed 1/1 test programs. 18/45 subtests failed.
> Dubious, test returned 18 (wstat 4608, 0x1200)
> Failed 18/45 subtests 
> 
> Test Summary Report
> -------------------
> t/auth.t (Wstat: 4608 Tests: 45 Failed: 18)
>   Failed tests:  2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22
>                 24, 35-36, 38-39, 41-42
>   Non-zero exit status: 18
> Files=1, Tests=45,  1 wallclock secs ( 0.03 usr  0.03 sys +  0.47 cusr  0.08 csys =  0.61 CPU)
> Result: FAIL
> make[1]: *** [test_dynamic] Error 18

The full build log is available from:
   http://aws-logs.debian.net/ftbfs-logs/2013/06/20/libmojolicious-plugin-basicauth-perl_0.06-1_unstable.log

A list of current common problems and possible solutions is available at 
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the pkg-perl-maintainers mailing list