Report for Dancer2-Plugin-HTTP-Auth-Extensible-0.121

Back
From: metabase:user:a0e144f2-373b-11e6-8edd-c6848980b093
Subject: FAIL Dancer2-Plugin-HTTP-Auth-Extensible-0.121 v5.25.0 GNU/Linux
Date: 2016-06-24T07:32:17Z

This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Theo van Hoesel,

This is a computer-generated report for Dancer2-Plugin-HTTP-Auth-Extensible-0.121
on perl 5.25.0, created by CPAN-Reporter-1.2017.

Thank you for uploading your work to CPAN.  However, there was a problem
testing your distribution.

If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

none provided

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make test':

PERL_DL_NONLAZY=1 "/usr/bin/perl5.25.0" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Testing Dancer2::Plugin::HTTP::Auth::Extensible 0.121, Perl 5.025000, /usr/bin/perl5.25.0
t/00-load.t ................ ok
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 401: Unauthorized for realm_one, the default'
#   at t/10-config_normal.t line 87.
#          got: '500'
#     expected: '401'

#   Failed test 'HTTP-field: WWW-Authentication for realm_one, the default'
#   at t/10-config_normal.t line 92.
#          got: undef
#     expected: 'Basic realm="realm_one"'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 401: Unauthorized for realm_one'
#   at t/10-config_normal.t line 103.
#          got: '500'
#     expected: '401'

#   Failed test 'HTTP-field: WWW-Authentication for realm_one'
#   at t/10-config_normal.t line 108.
#          got: undef
#     expected: 'Basic realm="realm_one"'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 401: Unauthorized for realm_two'
#   at t/10-config_normal.t line 119.
#          got: '500'
#     expected: '401'

#   Failed test 'HTTP-field: WWW-Authentication for realm_two'
#   at t/10-config_normal.t line 124.
#          got: undef
#     expected: 'Basic realm="realm_two"'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Prompt 500: realm does not exist'
#   at t/10-config_normal.t line 140.
#                   '---
# exception: "Can't find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.\n"
# message: ''
# status: 500
# title: 'Error 500 - Internal Server Error'
# '
#     doesn't match '(?^:required realm does not exist: 'realm_bad')'
# Looks like you failed 7 tests of 9.
t/10-config_normal.t ....... 
Dubious, test returned 7 (wstat 1792, 0x700)
Failed 7/9 subtests 
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'get http_username authenticated'
#   at t/20-http_username.t line 83.
#                   '---
# exception: "Can't find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.\n"
# message: ''
# status: 500
# title: 'Error 500 - Internal Server Error'
# '
#     doesn't match '(?^:variable got: '.*')'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'put http_username authenticated'
#   at t/20-http_username.t line 108.
#                   '---
# exception: "Can't find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.\n"
# message: ''
# status: 500
# title: 'Error 500 - Internal Server Error'
# '
#     doesn't match '(?^:variable set: 'NEW')'
POTENTIONAL SECURITY BREACH: "impersonating different user: 'NEW'" at /home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/blib/lib/Dancer2/Plugin/HTTP/Auth/Extensible.pm line 574.
# Looks like you failed 2 tests of 5.
t/20-http_username.t ....... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/5 subtests 
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'get http_realm authenticated'
#   at t/21-http_realm.t line 83.
#                   '---
# exception: "Can't find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.\n"
# message: ''
# status: 500
# title: 'Error 500 - Internal Server Error'
# '
#     doesn't match '(?^:variable got: '.*')'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'put http_realm authenticated'
#   at t/21-http_realm.t line 108.
#                   '---
# exception: "Can't find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.\n"
# message: ''
# status: 500
# title: 'Error 500 - Internal Server Error'
# '
#     doesn't match '(?^:variable set: 'NEW')'
POTENTIONAL SECURITY BREACH: "switching to different realm: 'NEW'" at /home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/blib/lib/Dancer2/Plugin/HTTP/Auth/Extensible.pm line 615.
# Looks like you failed 2 tests of 5.
t/21-http_realm.t .......... 
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/5 subtests 
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 401: without HTTP-field Autorization'
#   at t/30-authenticate_Basic.t line 110.
#          got: '500'
#     expected: '401'

#   Failed test 'HTTP-field: WWW-Authentication without HTTP-field Autorization'
#   at t/30-authenticate_Basic.t line 115.
#          got: undef
#     expected: 'Basic realm="some_realm"'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 401: without proper credentials'
#   at t/30-authenticate_Basic.t line 133.
#          got: '500'
#     expected: '401'

#   Failed test 'HTTP-field: WWW-Authentication without proper credentials'
#   at t/30-authenticate_Basic.t line 138.
#          got: undef
#     expected: 'Basic realm="some_realm"'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: with the right credentials'
#   at t/30-authenticate_Basic.t line 155.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: with the right credentials'
#   at t/30-authenticate_Basic.t line 165.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 170
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 154
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/auth&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 44918,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/auth&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 4,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/auth&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 44918,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/auth&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Access granted for default realm'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: BeerDrinker'
#   at t/30-authenticate_Basic.t line 181.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: BeerDrinker'
#   at t/30-authenticate_Basic.t line 186.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 191
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 180
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/beer&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 59694,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/beer&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 5,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/beer&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 59694,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/beer&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Enjoy your Beer!'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: VodkaDrinker'
#   at t/30-authenticate_Basic.t line 198.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: VodkaDrinker'
#   at t/30-authenticate_Basic.t line 203.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 208
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 197
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/vodka&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 46232,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/vodka&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 6,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/vodka&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 46232,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/vodka&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Enjoy your Vodka!'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 403: not a MartiniDrinker'
#   at t/30-authenticate_Basic.t line 215.
#          got: '500'
#     expected: '403'

#   Failed test 'Delivering: not a MartiniDrinker'
#   at t/30-authenticate_Basic.t line 220.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 235
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 214
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/martini&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 37936,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/martini&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 7,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/martini&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 37936,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/martini&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Permission denied for resource: '/martini''
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 403: not a JuiceDrinker'
#   at t/30-authenticate_Basic.t line 242.
#          got: '500'
#     expected: '403'

#   Failed test 'Delivering: not a JuiceDrinker'
#   at t/30-authenticate_Basic.t line 247.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 262
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 241
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/juice&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 53685,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/juice&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 8,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/juice&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 53685,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/juice&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Permission denied for resource: '/juice''
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: Regular Drinker'
#   at t/30-authenticate_Basic.t line 269.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: Regular Drinker'
#   at t/30-authenticate_Basic.t line 274.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 279
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 268
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/drinker&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 37775,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/drinker&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 9,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/drinker&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 37775,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/drinker&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Enjoy your bevarage!'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: Thirsty Drinker'
#   at t/30-authenticate_Basic.t line 286.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: Thirsty Drinker'
#   at t/30-authenticate_Basic.t line 291.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 296
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 285
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/thirsty&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 16911,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/thirsty&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 10,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/thirsty&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 16911,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/thirsty&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Enjoy your drinks, one at a time!'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 200: Alcoholic Drinker'
#   at t/30-authenticate_Basic.t line 303.
#          got: '500'
#     expected: '200'

#   Failed test 'Delivering: Alcoholic Drinker'
#   at t/30-authenticate_Basic.t line 308.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 313
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 302
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/alcohol&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 27837,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/alcohol&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 11,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/alcohol&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 27837,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/alcohol&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Enjoy your alcohol, but don't drink too much!'
Use of uninitialized value $Dancer2::Plugin::CUR_PLUGIN in string at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Plugin.pm line 246.

#   Failed test 'Status 403: not Bond, James Bond'
#   at t/30-authenticate_Basic.t line 320.
#          got: '500'
#     expected: '403'

#   Failed test 'Delivering: not Bond, James Bond'
#   at t/30-authenticate_Basic.t line 325.
#          got: '<!DOCTYPE html>
# <html lang="en">
# <head>
#   <meta charset="UTF-8">
#   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
#   <title>Error 500 - Internal Server Error</title>
#   <link rel="stylesheet" href="http://localhost/css/error.css">
# </head>
# <body>
# <h1>Error 500 - Internal Server Error</h1>
# <div id="content">
# <h2>Runtime Error</h2><pre class="error">Can&#39;t find originating plugin at /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm line 139.
# </pre>
# <div class="title">/home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Route.pm around line 139</div><pre class="content"><table class="context">
# <tr><th>134</th><td>sub execute {</td></tr>
# <tr><th>135</th><td>    my ( $self, $app, @args ) = @_;</td></tr>
# <tr><th>136</th><td>    local $REQUEST  = $app-&gt;request;</td></tr>
# <tr><th>137</th><td>    local $RESPONSE = $app-&gt;response;</td></tr>
# <tr><th>138</th><td></td></tr>
# <tr class="errline"><th>139</th><td>    my $content = $self-&gt;code-&gt;( $app, @args );</td></tr>
# <tr><th>140</th><td></td></tr>
# <tr><th>141</th><td>    # users may set content in the response. If the response has</td></tr>
# <tr><th>142</th><td>    # content, and the returned value from the route code is not</td></tr>
# <tr><th>143</th><td>    # an object (well, reference) we ignore the returned value</td></tr>
# <tr><th>144</th><td>    # and use the existing content in the response instead.</td></tr>
# </table></pre>
# <div class="title">Stack</div><pre class="content">main in t/30-authenticate_Basic.t l. 340
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# main in t/30-authenticate_Basic.t l. 319
# Plack::Test in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test.pm l. 38
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 27
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 94
# Try::Tiny in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Try/Tiny.pm l. 101
# Plack::Test::MockHTTP in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Test/MockHTTP.pm l. 24
# Dancer2::Core::Runner in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Runner.pm l. 213
# Dancer2::Core::Dispatcher in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Dispatcher.pm l. 36
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::Head in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/Head.pm l. 10
# Plack::Component in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Component.pm l. 50
# Plack::Middleware::FixMissingBodyInRedirect in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Plack/Middleware/FixMissingBodyInRedirect.pm l. 50
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1304
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1302
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1383
# Return::MultiLevel in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Return/MultiLevel.pm l. 36
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1382
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1493
# Dancer2::Core::App in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/App.pm l. 1526
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 303
# Method::Generate::Accessor::_Generated in (eval 153) l. 20
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 290
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 111
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 160
# Dancer2::Core::Error in /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/Dancer2/Core/Error.pm l. 386</pre>
# <div class="title">Settings</div><pre class="content">
# <span class="key">appdir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
# <span class="key">apphandler</span> =&gt; &#39;Standalone&#39;,
# <span class="key">behind_proxy</span> =&gt; 0,
# <span class="key">charset</span> =&gt; &#39;&#39;,
# <span class="key">content_type</span> =&gt; &#39;text/html&#39;,
# <span class="key">environment</span> =&gt; &#39;development&#39;,
# <span class="key">host</span> =&gt; &#39;0.0.0.0&#39;,
# <span class="key">logger</span> =&gt; bless( {
#   <span class="key">app_name</span> =&gt; &#39;main&#39;,
#   <span class="key">config</span> =&gt; {},
#   <span class="key">environment</span> =&gt; &#39;development&#39;,
#   <span class="key">fh</span> =&gt; \*{&#39;Dancer2::FileUtils::$fh&#39;},
#   <span class="key">file_name</span> =&gt; &#39;development.log&#39;,
#   <span class="key">hooks</span> =&gt; {
#     <span class="key">&#39;engine.logger.after&#39;</span> =&gt; [],
#     <span class="key">&#39;engine.logger.before&#39;</span> =&gt; []
#   },
#   <span class="key">location</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t&#39;,
#   <span class="key">log_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs&#39;,
#   <span class="key">log_file</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/logs/development.log&#39;,
#   <span class="key">log_format</span> =&gt; &#39;[%a:%P] %L @%T&gt; %m in %f l. %l&#39;,
#   <span class="key">log_level</span> =&gt; &#39;debug&#39;,
#   <span class="key">request</span> =&gt; bless( {
#     <span class="key">_body_params</span> =&gt; {},
#     <span class="key">_chunk_size</span> =&gt; 4096,
#     <span class="key">_http_body</span> =&gt; bless( {
#       <span class="key">body</span> =&gt; undef,
#       <span class="key">buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunk_buffer</span> =&gt; &#39;&#39;,
#       <span class="key">chunked</span> =&gt; &#39;&#39;,
#       <span class="key">cleanup</span> =&gt; 1,
#       <span class="key">content_length</span> =&gt; 0,
#       <span class="key">content_type</span> =&gt; &#39;&#39;,
#       <span class="key">length</span> =&gt; 0,
#       <span class="key">param</span> =&gt; {},
#       <span class="key">param_order</span> =&gt; [],
#       <span class="key">part_data</span> =&gt; {},
#       <span class="key">state</span> =&gt; &#39;buffering&#39;,
#       <span class="key">tmpdir</span> =&gt; &#39;/tmp&#39;,
#       <span class="key">upload</span> =&gt; {}
#     }, &#39;HTTP::Body::OctetStream&#39; ),
#     <span class="key">_params</span> =&gt; {},
#     <span class="key">_read_position</span> =&gt; 0,
#     <span class="key">_route_params</span> =&gt; {},
#     <span class="key">body</span> =&gt; &#39;&#39;,
#     <span class="key">env</span> =&gt; {
#       <span class="key">CONTENT_LENGTH</span> =&gt; 0,
#       <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
#       <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">PATH_INFO</span> =&gt; &#39;/cocktail&#39;,
#       <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
#       <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
#       <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
#       <span class="key">REMOTE_PORT</span> =&gt; 49488,
#       <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
#       <span class="key">REQUEST_URI</span> =&gt; &#39;/cocktail&#39;,
#       <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
#       <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
#       <span class="key">SERVER_PORT</span> =&gt; 80,
#       <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
#       <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
#       <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#       <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
#       <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
#       <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
#       <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
#       <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
#       <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#         1,
#         1
#       ]
#     },
#     <span class="key">id</span> =&gt; 12,
#     <span class="key">is_behind_proxy</span> =&gt; &#39;&#39;,
#     <span class="key">route_parameters</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
#     <span class="key">uploads</span> =&gt; {},
#     <span class="key">vars</span> =&gt; {}
#   }, &#39;Dancer2::Core::Request&#39; )
# }, &#39;Dancer2::Logger::File&#39; ),
# <span class="key">no_server_tokens</span> =&gt; 0,
# <span class="key">plugins</span> =&gt; {
#   <span class="key">&#39;HTTP::Auth::Extensible&#39;</span> =&gt; {
#     <span class="key">realms</span> =&gt; {
#       <span class="key">some_realm</span> =&gt; {
#         <span class="key">provider</span> =&gt; &#39;Config&#39;,
#         <span class="key">scheme</span> =&gt; &#39;Basic&#39;,
#         <span class="key">users</span> =&gt; [
#           {
#             <span class="key">name</span> =&gt; &#39;David Precious&#39;,
#             <span class="key">pass</span> =&gt; &#39;beer&#39;,
#             <span class="key">roles</span> =&gt; [
#               &#39;BeerDrinker&#39;,
#               &#39;VodkaDrinker&#39;
#             ],
#             <span class="key">user</span> =&gt; &#39;dave&#39;
#           }
#         ]
#       }
#     }
#   }
# },
# <span class="key">port</span> =&gt; &#39;3000&#39;,
# <span class="key">public_dir</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/public&#39;,
# <span class="key">route_handlers</span> =&gt; [
#   [
#     &#39;AutoPage&#39;,
#     1
#   ]
# ],
# <span class="key">session</span> =&gt; bless( {
#   <span class="key">config</span> =&gt; {},
#   <span class="key">cookie_name</span> =&gt; &#39;dancer.session&#39;,
#   <span class="key">cookie_path</span> =&gt; &#39;/&#39;,
#   <span class="key">is_http_only</span> =&gt; 1,
#   <span class="key">is_secure</span> =&gt; 0,
#   <span class="key">log_cb</span> =&gt; sub { &quot;DUMMY&quot; },
#   <span class="key">request</span> =&gt; $VAR1-&gt;{logger}{request}
# }, &#39;Dancer2::Session::Simple&#39; ),
# <span class="key">show_errors</span> =&gt; 1,
# <span class="key">startup_info</span> =&gt; 1,
# <span class="key">static_handler</span> =&gt; undef,
# <span class="key">template</span> =&gt; &#39;Tiny&#39;,
# <span class="key">traces</span> =&gt; 0,
# <span class="key">views</span> =&gt; &#39;/home/dcollins/toolchain/.afl1/.cpan/build/Dancer2-Plugin-HTTP-Auth-Extensible-0.121-GHKbQo/t/views&#39;
# </pre>
# <div class="title">Session</div><pre class="content"><i>undefined</i></pre>
# <div class="title">Environment</div><pre class="content">
# <span class="key">CONTENT_LENGTH</span> =&gt; 0,
# <span class="key">HTTP_AUTHORIZATION</span> =&gt; &#39;Basic ZGF2ZTpiZWVy&#39;,
# <span class="key">HTTP_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">PATH_INFO</span> =&gt; &#39;/cocktail&#39;,
# <span class="key">QUERY_STRING</span> =&gt; &#39;&#39;,
# <span class="key">REMOTE_ADDR</span> =&gt; &#39;127.0.0.1&#39;,
# <span class="key">REMOTE_HOST</span> =&gt; &#39;localhost&#39;,
# <span class="key">REMOTE_PORT</span> =&gt; 49488,
# <span class="key">REQUEST_METHOD</span> =&gt; &#39;GET&#39;,
# <span class="key">REQUEST_URI</span> =&gt; &#39;/cocktail&#39;,
# <span class="key">SCRIPT_NAME</span> =&gt; &#39;&#39;,
# <span class="key">SERVER_NAME</span> =&gt; &#39;localhost&#39;,
# <span class="key">SERVER_PORT</span> =&gt; 80,
# <span class="key">SERVER_PROTOCOL</span> =&gt; &#39;HTTP/1.1&#39;,
# <span class="key">&#39;plack.request.body&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;plack.request.body_parameters&#39;</span> =&gt; [],
# <span class="key">&#39;plack.request.upload&#39;</span> =&gt; bless( {}, &#39;Hash::MultiValue&#39; ),
# <span class="key">&#39;psgi.errors&#39;</span> =&gt; *::STDERR,
# <span class="key">&#39;psgi.input&#39;</span> =&gt; \*{&#39;HTTP::Message::PSGI::$input&#39;},
# <span class="key">&#39;psgi.multiprocess&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.multithread&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.nonblocking&#39;</span> =&gt; &#39;&#39;,
# <span class="key">&#39;psgi.run_once&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.streaming&#39;</span> =&gt; 1,
# <span class="key">&#39;psgi.url_scheme&#39;</span> =&gt; &#39;http&#39;,
# <span class="key">&#39;psgi.version&#39;</span> =&gt; [
#   1,
#   1
# ]
# </pre>
# 
# </div>
# <div id="footer">
# Powered by <a href="http://perldancer.org/">Dancer2</a> 0.200001
# </div>
# </body>
# </html>
# '
#     expected: 'Permission denied for resource: '/cocktail''
# Looks like you failed 22 tests of 34.
t/30-authenticate_Basic.t .. 
Dubious, test returned 22 (wstat 5632, 0x1600)
Failed 22/34 subtests 
t/boilerplate.t ............ ok
t/manifest.t ............... skipped: Author tests not required for installation
t/pod.t .................... skipped: Author tests not required for installation

Test Summary Report
-------------------
t/10-config_normal.t     (Wstat: 1792 Tests: 9 Failed: 7)
  Failed tests:  2-7, 9
  Non-zero exit status: 7
t/20-http_username.t     (Wstat: 512 Tests: 5 Failed: 2)
  Failed tests:  2, 4
  Non-zero exit status: 2
t/21-http_realm.t        (Wstat: 512 Tests: 5 Failed: 2)
  Failed tests:  2, 4
  Non-zero exit status: 2
t/30-authenticate_Basic.t (Wstat: 5632 Tests: 34 Failed: 22)
  Failed tests:  4-5, 7-8, 10, 12-18, 21-22, 25-32
  Non-zero exit status: 22
t/boilerplate.t          (Wstat: 0 Tests: 3 Failed: 0)
  TODO passed:   1-3
Files=8, Tests=57,  2 wallclock secs ( 0.01 usr  0.02 sys +  1.14 cusr  0.12 csys =  1.29 CPU)
Result: FAIL
Failed 4/8 test programs. 33/57 subtests failed.
Makefile:853: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module                                     Need  Have    
    ------------------------------------------ ----- --------
    Dancer2::Plugin                            0     0.200001
    Dancer2::Plugin::Auth::Extensible          0     0.600   
    HTTP::Headers::ActionPack::Authorization   0     0.09    
    HTTP::Headers::ActionPack::WWWAuthenticate 0     0.09    
    perl                                       5.006 5.025000

build_requires:

    Module                                     Need  Have    
    ------------------------------------------ ----- --------
    Test::More                                 0     1.302030

configure_requires:

    Module                                     Need  Have    
    ------------------------------------------ ----- --------
    ExtUtils::MakeMaker                        0     7.18    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    LANG = en_US.UTF-8
    PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    PERL5LIB = /home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/arch:/home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/lib
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 12886
    PERL5_CPAN_IS_RUNNING = 12886
    SHELL = /bin/bash
    TERM = screen

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /usr/bin/perl5.25.0
    $UID/$EUID = 1001 / 1001
    $GID = 1005 1005
    $EGID = 1005 1005

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.11    
    CPAN::Meta          2.150005
    Cwd                 3.63    
    ExtUtils::CBuilder  0.280225
    ExtUtils::Command   7.18    
    ExtUtils::Install   2.04    
    ExtUtils::MakeMaker 7.18    
    ExtUtils::Manifest  1.70    
    ExtUtils::ParseXS   3.31    
    File::Spec          3.63    
    JSON                2.90    
    JSON::PP            2.27400 
    Module::Build       0.4218  
    Module::Signature   0.80    
    Parse::CPAN::Meta   1.4419  
    Test::Harness       3.36    
    Test::More          1.302030
    YAML                1.15    
    YAML::Syck          1.29    
    version             0.9917  


--

Summary of my perl5 (revision 5 version 25 subversion 0) configuration:
  Commit id: 2c5484a6fb758fd9bd9f56d504186972d12dd338
  Platform:
    osname=linux, osvers=4.6.0-1-amd64, archname=x86_64-linux-ld
    uname='linux nightshade64 4.6.0-1-amd64 #1 smp debian 4.6.1-1 (2016-06-06) x86_64 gnulinux '
    config_args='-Dusedevel -Dprefix=/usr -Dcc=ccache gcc-6 -Duselongdouble -Duse64bitall -Doptimize=-O3 -Dversiononly -Uman1dir -Uman3dir -Dsiteprefix=/home/dcollins/toolchain/local -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    use64bitint=define, use64bitall=define, uselongdouble=define
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='ccache gcc-6', ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O3',
    cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion='', gccversion='6.1.1 20160519', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3
    ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
    alignbytes=16, prototype=define
  Linker and Libraries:
    ld='ccache gcc-6', ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.22.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.22'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O3 -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE
                        PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_LONG_DOUBLE
                        USE_PERLIO USE_PERL_ATOF
  Built under linux
  Compiled at Jan  1 1970 00:00:00
  %ENV:
    PERL5LIB="/home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/arch:/home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/lib"
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="12886"
    PERL5_CPAN_IS_RUNNING="12886"
  @INC:
    /home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/arch
    /home/dcollins/toolchain/.afl1/.cpan/build/Lingua-Jspell-1.91-XlMANY/blib/lib
    /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0/x86_64-linux-ld
    /home/dcollins/toolchain/local/lib/perl5/site_perl/5.25.0
    /usr/lib/perl5/5.25.0/x86_64-linux-ld
    /usr/lib/perl5/5.25.0
    .