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