Mojolicious-Plugin-Message-Locale v0.03 Perl 5 v5.28.0 OpenBSD.amd64-openbsd-thread-multi
- Status
- Fail
- From
- Alceu Rodrigues de Freitas Junior
- Dist
-
Mojolicious-Plugin-Message-Locale v0.03
- Platform
- Perl 5 v5.28.0 OpenBSD.amd64-openbsd-thread-multi
- Date
- 2018-08-30 15:10:10
- ID
- c983bfe6-ac66-11e8-8593-895aecd100cd
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 Kei Shimada (sasakure_kei),
This is a computer-generated report for Mojolicious-Plugin-Message-Locale-0.03
on perl 5.28.0, created by CPAN-Reporter-1.2018.
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:
this report is from an automated smoke testing program
and was not reviewed by a human for accuracy
------------------------------
PROGRAM OUTPUT
------------------------------
Output from '/usr/bin/make test':
PERL_DL_NONLAZY=1 "/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/000_use.t .............. ok
# Failed test '200 OK'
# at t/001_message_locale.t line 25.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/001_message_locale.t line 25.
# got: '<!DOCTYPE html>
# <!-- Request ID: 50e49ae9 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/001_message_locale.t line 12.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">7</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">8</td>
# <td class="value wide">
# <pre><code class="prettyprint">plugin 'Message::Locale';</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">9</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">10</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_common' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:12</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:25</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>50e49ae9</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_common</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>001_message_locale</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/001_message_locale.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>73982</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:04 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'MESSAGE'
# Failed test '200 OK'
# at t/001_message_locale.t line 26.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/001_message_locale.t line 26.
# got: '<!DOCTYPE html>
# <!-- Request ID: 942da437 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/001_message_locale.t line 16.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/set_locale_method' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">19</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">20</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->set_locale('ja');</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">21</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:16</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:26</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>942da437</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_original</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>001_message_locale</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/001_message_locale.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>73982</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:04 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'ORIGINAL MESSAGE'
# Failed test '200 OK'
# at t/001_message_locale.t line 27.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/001_message_locale.t line 27.
Wide character in print at /home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test2/Formatter/TAP.pm line 113.
# got: '<!DOCTYPE html>
# <!-- Request ID: d887e360 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/001_message_locale.t line 21.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/set_locale_method' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">19</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">20</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->set_locale('ja');</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">21</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">22</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">23</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">24</td>
# <td class="value wide">
# <pre><code class="prettyprint">my $t = Test::Mojo->new;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">25</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_common')->status_is(200)->content_is('MESSAGE');</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">26</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_original')->status_is(200)->content_is('ORIGINAL MESSAGE');</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:21</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/001_message_locale.t:27</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>d887e360</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/set_locale_method</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:20774</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>001_message_locale</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/001_message_locale.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>73982</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:05 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'メッセージ'
# Looks like you failed 6 tests of 9.
t/001_message_locale.t ...
Dubious, test returned 6 (wstat 1536, 0x600)
Failed 6/9 subtests
# Failed test '200 OK'
# at t/002_locale_is_ja.t line 21.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/002_locale_is_ja.t line 21.
Wide character in print at /home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test2/Formatter/TAP.pm line 113.
# got: '<!DOCTYPE html>
# <!-- Request ID: cb13719b -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/002_locale_is_ja.t line 13.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">8</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">9</td>
# <td class="value wide">
# <pre><code class="prettyprint">plugin 'Message::Locale', locale => 'ja';</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">10</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_common' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/002_locale_is_ja.t:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/002_locale_is_ja.t:21</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>cb13719b</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_common</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:17076</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:17076</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>002_locale_is_ja</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/002_locale_is_ja.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>63686</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:05 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'メッセージ'
# Failed test '200 OK'
# at t/002_locale_is_ja.t line 22.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/002_locale_is_ja.t line 22.
Wide character in print at /home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test2/Formatter/TAP.pm line 113.
# got: '<!DOCTYPE html>
# <!-- Request ID: c44c7b37 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/002_locale_is_ja.t line 17.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">19</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">20</td>
# <td class="value wide">
# <pre><code class="prettyprint">my $t = Test::Mojo->new;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">21</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_common')->status_is(200)->content_is('メッセージ');</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">22</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_original')->status_is(200)->content_is('オリジナル');</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/002_locale_is_ja.t:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/002_locale_is_ja.t:22</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>c44c7b37</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_original</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:17076</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:17076</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>002_locale_is_ja</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/002_locale_is_ja.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>63686</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:05 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'オリジナル'
# Looks like you failed 4 tests of 6.
t/002_locale_is_ja.t .....
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/6 subtests
# Failed test '200 OK'
# at t/003_locale_file.t line 21.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/003_locale_file.t line 21.
# got: '<!DOCTYPE html>
# <!-- Request ID: cf64031f -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/003_locale_file.t line 13.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">8</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">9</td>
# <td class="value wide">
# <pre><code class="prettyprint">plugin 'Message::Locale', file => 'other_locale.conf';</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">10</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_common' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/003_locale_file.t:13</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/003_locale_file.t:21</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>cf64031f</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_common</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:24971</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "OTHER MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "OTHER TITLE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "OTHER ORIGINAL MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6}\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:24971</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "OTHER MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "OTHER TITLE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "OTHER ORIGINAL MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6}\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>003_locale_file</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/003_locale_file.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>52371</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:06 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'OTHER MESSAGE'
# Failed test '200 OK'
# at t/003_locale_file.t line 22.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/003_locale_file.t line 22.
# got: '<!DOCTYPE html>
# <!-- Request ID: af2dff49 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/003_locale_file.t line 17.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_original' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('message', 'original') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">19</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">20</td>
# <td class="value wide">
# <pre><code class="prettyprint">my $t = Test::Mojo->new;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">21</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_common')->status_is(200)->content_is('OTHER MESSAGE');</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">22</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_original')->status_is(200)->content_is('OTHER ORIGINAL MESSAGE');</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/003_locale_file.t:17</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/003_locale_file.t:22</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>af2dff49</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_original</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:24971</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "OTHER MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "OTHER TITLE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "OTHER ORIGINAL MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6}\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:24971</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "OTHER MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "OTHER TITLE",
# "ja" => "\x{305d}\x{306e}\x{4ed6} \x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "OTHER ORIGINAL MESSAGE",
# "ja" => "\x{305d}\x{306e}\x{4ed6}\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>003_locale_file</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/003_locale_file.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>52371</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:06 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: 'OTHER ORIGINAL MESSAGE'
# Looks like you failed 4 tests of 6.
t/003_locale_file.t ......
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/6 subtests
# Failed test '200 OK'
# at t/004_default_message.t line 21.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/004_default_message.t line 21.
# got: '<!DOCTYPE html>
# <!-- Request ID: 2e4412a3 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/004_default_message.t line 12.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">7</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">8</td>
# <td class="value wide">
# <pre><code class="prettyprint">plugin 'Message::Locale', default_message => '-----';</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">9</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">10</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_empty' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale() );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_sasakure' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('sasakure', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/004_default_message.t:12</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/004_default_message.t:21</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/004_default_message.t:22</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>2e4412a3</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_empty</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:28402</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:28402</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>004_default_message</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/004_default_message.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>93487</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:07 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: '-----'
# Failed test '200 OK'
# at t/004_default_message.t line 23.
# got: '500'
# expected: '200'
# Failed test 'exact match for content'
# at t/004_default_message.t line 23.
# got: '<!DOCTYPE html>
# <!-- Request ID: 85d548d5 -->
# <html>
# <head>
# <title>Server error (development mode)</title>
# <meta http-equiv="Pragma" content="no-cache">
# <meta http-equiv="Expires" content="-1">
# <script src="/mojo/jquery/jquery.js"></script>
# <script src="/mojo/prettify/run_prettify.js"></script>
# <link href="/mojo/prettify/prettify-mojo-dark.css" rel="stylesheet">
# <style>
# a img { border: 0 }
# body {
# background: url(/mojo/pinstripe-light.png);
# color: #445555;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: normal;
# line-height: 1.5em;
# margin: 0;
# }
# :not(pre) > code {
# background-color: #eef9ff;
# border: solid #cce4ff 1px;
# border-radius: 5px;
# color: #333;
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# padding: 0.4em;
# }
# h1 {
# color: #2a2a2a;
# font-size: 1.5em;
# margin: 0;
# }
# pre {
# font: 0.9em Consolas, Menlo, Monaco, Courier, monospace;
# margin: 0;
# white-space: pre-wrap;
# }
# pre > code {
# display: block;
# font: 1.0em Consolas, Menlo, Monaco, Courier, monospace;
# margin-bottom: 0.7em;
# margin-top: 0.7em;
# }
# table {
# border-collapse: collapse;
# width: 100%;
# }
# td { padding: 0.5em }
# .box {
# background-color: #fff;
# border: 1px solid #c1c1c1;
# overflow: hidden;
# padding: 1em;
# }
# .code {
# background-color: #1a1a1a;
# background: url(/mojo/pinstripe-dark.png);
# color: #eee;
# text-shadow: #333 0 1px 0;
# }
# .important { background-color: rgba(47, 48, 50, .75) }
# .infobox { color: #333 }
# .infobox tr:nth-child(odd) .value { background-color: #ddeeff }
# .infobox tr:nth-child(even) .value { background-color: #eef9ff }
# .key { text-align: right }
# .more table { margin-bottom: 1em }
# .spaced {
# margin-left: 5em;
# margin-right: 5em;
# }
# .striped { border-top: solid #cce4ff 1px }
# .tap {
# font: 0.5em Verdana, sans-serif;
# text-align: center;
# }
# .value { padding-left: 1em }
# .wide { width: 100% }
# #error {
# font: 1.5em 'Helvetica Neue', Helvetica, sans-serif;
# font-weight: 300;
# margin: 0;
# text-shadow: #333 0 1px 0;
# }
# #footer {
# padding-top: 0.5em;
# text-align: center;
# }
# #nothing {
# border-bottom: 0;
# padding-top: 60px;
# }
# #showcase {
# border-bottom: 0;
# border-top: 0;
# }
# #showcase table { margin-top: 1em }
# #showcase td {
# padding-top: 0;
# padding-bottom: 0;
# }
# #showcase .key { padding-right: 0 }
# #log {
# border-radius: 5px;
# margin-top: 1em;
# }
# #log table { margin: 0 }
# #more, #trace {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# }
# #more .tap, #trace .tap { text-shadow: #ddd 0 1px 0 }
# #request {
# border-bottom: 0;
# border-top-left-radius: 5px;
# border-top-right-radius: 5px;
# margin-top: 1em;
# }
# #routes {
# border-bottom-left-radius: 5px;
# border-bottom-right-radius: 5px;
# padding-top: 70px;
# }
# #trace { border-top: 0 }
# #wrapperlicious {
# max-width: 1000px;
# margin: 0 auto;
# }
# </style>
# </head>
# <body>
# <script src="/mojo/jquery/jquery.js"></script>
# <div id="mojobar">
# <style scoped="scoped">
# #mojobar {
# background-color: #1a1a1a;
# background: -webkit-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: -moz-linear-gradient(top, #2a2a2a 0%, #000 100%);
# background: linear-gradient(top, #2a2a2a 0%, #000 100%);
# box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5);
# height: 46px;
# overflow: hidden;
# position: absolute;
# width: 100%;
# z-index: 1000;
# }
# #mojobar-brand {
# display: inline-block;
# padding-left: 50px;
# padding-top: 4px;
# }
# #mojobar-links {
# display: inline;
# float: right;
# height: 60px;
# margin-top: 0.8em;
# padding-right: 50px;
# }
# #mojobar-links a {
# color: #bbb;
# font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
# margin-left: 0.5em;
# text-decoration: none;
# transition: all 200ms ease-in-out;
# }
# #mojobar-links a:hover { color: #fff }
# #mojobar-links input {
# background-color: #3a3a3a;
# border: 1px solid rgba(0, 0, 0, 0.1);
# border-radius: 3px;
# color: #eee;
# display: inline;
# margin-left: 1em;
# padding: 4px;
# transition: all 0.15s;
# }
# #mojobar-links input:focus {
# background-color: #fff;
# color: #111;
# outline: 0;
# }
# #mojobar-links form { display: inline }
# .animated { transition: all 0.25s ease }
# </style>
# <a href="https://mojolicious.org" id="mojobar-brand">
# <picture>
# <img src="/mojo/logo-white.png"
# srcset="/mojo/logo-white-2x.png 2x">
# </picture>
# </a> <div id="mojobar-links">
# <a href="https://mojolicious.org/perldoc">Documentation</a>
# <a href="https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org">Chat</a>
# <a href="https://github.com/kraih/mojo/wiki">Wiki</a>
# <a href="https://github.com/kraih/mojo">GitHub</a>
# <a href="https://metacpan.org/release/Mojolicious/">CPAN</a>
# <a href="https://groups.google.com/group/mojolicious">MailingList</a>
# <a href="https://twitter.com/kraih">Twitter</a>
# <form action="https://www.google.com/cse" target="_blank">
# <input name="cx" type="hidden" value="014527573091551588235:pwfplkjpgbi">
# <input name="ie" type="hidden" value="UTF-8">
# <input name="q" placeholder="Search" type="search">
# </form>
# </div>
# </div>
# <script>
# var mojobar = $('#mojobar');
# var mojobarHeight = mojobar.outerHeight();
# function getElementByHash(hash) {
# return $(hash.replace(/(:|\.|\[|\]|,)/g, '\\$1'));
# }
# function fixOffset() {
# var offset = getElementByHash(window.location.hash).offset();
# if (offset) {
# $('html, body').animate({scrollTop: offset.top - mojobarHeight}, 1);
# }
# }
# $(window).on('load', function () {
# if (window.location.hash) {
# fixOffset();
# }
# var start = mojobar.offset().top;
# var fixed;
# var lastScrollTop = $(window).scrollTop();
# var hidden = mojobarHeight + 1;
# $(window).on('scroll', function () {
# var st = $(window).scrollTop();
# if (fixed) {
# if (st <= start) {
# fixed = false;
# mojobar.removeClass('animated');
# mojobar.css({'position': 'absolute', 'top': start + 'px'});
# }
# else if (Math.abs(lastScrollTop - st) > 100) {
# if (!mojobar.hasClass('animated')) {
# mojobar.addClass('animated');
# }
# if (st > lastScrollTop && st > (mojobarHeight + start + 250)) {
# mojobar.css('transform', 'translateY(-' + hidden + 'px)');
# }
# else if (st < lastScrollTop) {
# mojobar.css('transform', 'translateY(0px)');
# }
# lastScrollTop = st;
# }
# }
# else if (st > start) {
# fixed = true;
# mojobar.css({'position': 'fixed', 'top': 0});
# lastScrollTop = $(window).scrollTop();
# }
# });
# });
# $(function () {
# $('a[href^="#"]').addClass('mojoscroll').on('click', function (e) {
# e.preventDefault();
# e.stopPropagation();
# var hash = '#' + this.href.split('#')[1];
# var target = getElementByHash(hash);
# var old = target.attr('id');
# target.attr('id', '');
# location.hash = hash;
# target.attr('id', old);
# fixOffset();
# });
# });
# </script>
#
# <script>
# function mojoDrawer(handle, drawer) {
# $(handle).on('click', function () {
# $(drawer).slideToggle('slow');
# var text = $(handle + ' div.tap').text();
# text = text == "tap for more" ? "tap for less" : "tap for more";
# $(handle + ' div.tap').text(text);
# });
# $(drawer).toggle();
# }
# $(function () {
# mojoDrawer('#trace', '#frames');
# mojoDrawer('#more', '#infos');
# });
# </script>
# <div id="wrapperlicious">
# <div id="nothing" class="box spaced"></div>
# <div id="showcase" class="box code spaced">
# <pre id="error">Can't locate object method "render_text" via package "Mojolicious::Controller" at t/004_default_message.t line 16.
# </pre>
# <div id="context" class="more">
# <table>
# <tr>
# <td class="key">11</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">12</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale() );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">13</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">14</td>
# <td class="value wide">
# <pre><code class="prettyprint">get '/message_from_sasakure' => sub {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">15</td>
# <td class="value wide">
# <pre><code class="prettyprint"> my $self = shift;</code></pre>
# </td>
# </tr>
# <tr class="important">
# <td class="key">16</td>
# <td class="value wide">
# <pre><code class="prettyprint"> $self->render_text( $self->locale('sasakure', 'common') );</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">17</td>
# <td class="value wide">
# <pre><code class="prettyprint">};</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">18</td>
# <td class="value wide">
# <pre><code class="prettyprint"></code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">19</td>
# <td class="value wide">
# <pre><code class="prettyprint">my $t = Test::Mojo->new;</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">20</td>
# <td class="value wide">
# <pre><code class="prettyprint">warning_like {</code></pre>
# </td>
# </tr>
# <tr>
# <td class="key">21</td>
# <td class="value wide">
# <pre><code class="prettyprint">$t->get_ok('/message_from_empty')->status_is(200)->content_is('-----');</code></pre>
# </td>
# </tr>
# </table>
# </div>
# </div>
# <div id="trace" class="box spaced">
# <div id="frames" class="infobox more">
# <table>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Carp.pm:167</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Controller.pm:30</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/004_default_message.t:16</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:147</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:89</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:96</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:37</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Routes.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:138</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:148</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:212</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious/Plugins.pm:18</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojolicious.pm:154</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server.pm:68</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:104</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Transaction/HTTP.pm:60</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:219</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Server/Daemon.pm:200</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/EventEmitter.pm:15</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:103</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop/Stream.pm:51</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/Poll.pm:143</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:46</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/Reactor/EV.pm:25</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/IOLoop.pm:136</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Mojo/UserAgent.pm:65</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:382</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:329</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/Test/Mojo.pm:121</pre>
# </td>
# </tr>
# <tr>
# <td class="striped value wide">
# <pre>t/004_default_message.t:23</pre>
# </td>
# </tr>
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# <div id="request" class="box infobox spaced">
# <table>
# <tr>
# <td class="key">Request ID:</td>
# <td class="striped value wide"><pre>85d548d5</pre></td>
# </tr>
#
# <tr>
# <td class="key">Method:</td>
# <td class="striped value wide"><pre>GET</pre></td>
# </tr>
#
# <tr>
# <td class="key">URL:</td>
# <td class="striped value wide"><pre>/message_from_sasakure</pre></td>
# </tr>
#
# <tr>
# <td class="key">Base URL:</td>
# <td class="striped value wide"><pre>http://127.0.0.1:28402</pre></td>
# </tr>
#
# <tr>
# <td class="key">Parameters:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Stash:</td>
# <td class="striped value wide"><pre>{
# "cb" => sub { "DUMMY" },
# "config" => {
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "sasakure" => {},
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Session:</td>
# <td class="striped value wide"><pre>{}
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Version:</td>
# <td class="striped value wide"><pre>1.1</pre></td>
# </tr>
#
# <tr>
# <td class="key">Accept-Encoding:</td>
# <td class="striped value wide"><pre>gzip</pre></td>
# </tr>
#
# <tr>
# <td class="key">Content-Length:</td>
# <td class="striped value wide"><pre>0</pre></td>
# </tr>
#
# <tr>
# <td class="key">Host:</td>
# <td class="striped value wide"><pre>127.0.0.1:28402</pre></td>
# </tr>
#
# <tr>
# <td class="key">User-Agent:</td>
# <td class="striped value wide"><pre>Mojolicious (Perl)</pre></td>
# </tr>
#
# </table>
# </div>
# <div id="more" class="box infobox more spaced">
# <div id="infos">
# <table>
# <tr>
# <td class="key">Perl:</td>
# <td class="striped value wide"><pre>v5.28.0 (openbsd)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Mojolicious:</td>
# <td class="striped value wide"><pre>7.93 (Doughnut)</pre></td>
# </tr>
#
# <tr>
# <td class="key">Home:</td>
# <td class="striped value wide"><pre>/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Template paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/templates"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Template classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static paths:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/t/public"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Static classes:</td>
# <td class="striped value wide"><pre>[
# "main"
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Include:</td>
# <td class="striped value wide"><pre>[
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch",
# "/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch",
# "/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi",
# "/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0",
# "."
# ]
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Config:</td>
# <td class="striped value wide"><pre>{
# "common" => {
# "message" => {
# "en" => "MESSAGE",
# "ja" => "\x{30e1}\x{30c3}\x{30bb}\x{30fc}\x{30b8}"
# },
# "sasakure" => {},
# "title" => {
# "en" => "TITLE",
# "ja" => "\x{30bf}\x{30a4}\x{30c8}\x{30eb}"
# }
# },
# "original" => {
# "message" => {
# "en" => "ORIGINAL MESSAGE",
# "ja" => "\x{30aa}\x{30ea}\x{30b8}\x{30ca}\x{30eb}"
# }
# }
# }
# </pre></td>
# </tr>
#
# <tr>
# <td class="key">Moniker:</td>
# <td class="striped value wide"><pre>004_default_message</pre></td>
# </tr>
#
# <tr>
# <td class="key">Name:</td>
# <td class="striped value wide"><pre>t/004_default_message.t</pre></td>
# </tr>
#
# <tr>
# <td class="key">Executable:</td>
# <td class="striped value wide"><pre>/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl</pre></td>
# </tr>
#
# <tr>
# <td class="key">PID:</td>
# <td class="striped value wide"><pre>93487</pre></td>
# </tr>
#
# <tr>
# <td class="key">Time:</td>
# <td class="striped value wide"><pre>Thu Aug 30 12:10:07 2018</pre></td>
# </tr>
#
# </table>
# </div>
# <div class="tap">tap for more</div>
# </div>
# </div>
# <div id="footer">
# <a href="https://mojolicious.org">
# <picture>
# <img src="/mojo/logo-black.png"
# srcset="/mojo/logo-black-2x.png 2x"
# alt="Mojolicious logo">
# </picture>
# </a> </div>
# </body>
# </html>
# '
# expected: '-----'
# Looks like you failed 4 tests of 7.
t/004_default_message.t ..
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/7 subtests
Test Summary Report
-------------------
t/001_message_locale.t (Wstat: 1536 Tests: 9 Failed: 6)
Failed tests: 2-3, 5-6, 8-9
Non-zero exit status: 6
t/002_locale_is_ja.t (Wstat: 1024 Tests: 6 Failed: 4)
Failed tests: 2-3, 5-6
Non-zero exit status: 4
t/003_locale_file.t (Wstat: 1024 Tests: 6 Failed: 4)
Failed tests: 2-3, 5-6
Non-zero exit status: 4
t/004_default_message.t (Wstat: 1024 Tests: 7 Failed: 4)
Failed tests: 2-3, 6-7
Non-zero exit status: 4
Files=5, Tests=29, 4 wallclock secs ( 0.02 usr 0.07 sys + 2.40 cusr 1.35 csys = 3.84 CPU)
Result: FAIL
Failed 4/5 test programs. 18/29 subtests failed.
*** Error 4 in /mnt/cpan_build_dir/goku/Mojolicious-Plugin-Message-Locale-0.03-0 (Makefile:842 'test_dynamic')
------------------------------
PREREQUISITES
------------------------------
Prerequisite modules loaded:
requires:
Module Need Have
------------------- ---- --------
Mojolicious 3.56 7.93
Test::More 0 1.302140
Test::Warn 0 0.35
build_requires:
Module Need Have
------------------- ---- --------
ExtUtils::MakeMaker 0 7.34
configure_requires:
Module Need Have
------------------- ---- --------
ExtUtils::MakeMaker 0 7.34
------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------
Environment variables:
AUTOMATED_TESTING = 1
DBD_MYSQL_TESTDB = test
DBD_MYSQL_TESTHOST = localhost
DBD_MYSQL_TESTPASSWORD =
DBD_MYSQL_TESTPORT = 3306
DBD_MYSQL_TESTUSER = goku
EXTENDED_TESTING = 1
PATH = /home/goku/perl5/perlbrew/bin:/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin:/home/goku/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
PERL5LIB = /mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch:/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib:/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch:/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib:/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch:/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib:/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch:/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib
PERL5OPT =
PERL5_CPANPLUS_IS_RUNNING = 11684
PERL5_CPAN_IS_RUNNING = 11684
PERL5_CPAN_IS_RUNNING_IN_RECURSION = 71853,11684
PERLBREW_HOME = /home/goku/.perlbrew
PERLBREW_MANPATH = /home/goku/perl5/perlbrew/perls/perl-5.28.0/man
PERLBREW_PATH = /home/goku/perl5/perlbrew/bin:/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin
PERLBREW_PERL = perl-5.28.0
PERLBREW_ROOT = /home/goku/perl5/perlbrew
PERLBREW_SHELLRC_VERSION = 0.84
PERLBREW_VERSION = 0.84
PERL_CR_SMOKER_CURRENT = Task-MojoliciousPlugins-PerlAcademy-0.02
PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
PERL_MM_USE_DEFAULT = 1
SHELL = /usr/local/bin/bash
TERM = vt220
Perl special variables (and OS-specific diagnostics, for MSWin32):
$^X = /home/goku/perl5/perlbrew/perls/perl-5.28.0/bin/perl
$UID/$EUID = 1002 / 1002
$GID = 1002 1002 1001
$EGID = 1002 1002 1001
Perl module toolchain versions installed:
Module Have
------------------- --------
CPAN 2.16
CPAN::Meta 2.150010
Cwd 3.74
ExtUtils::CBuilder 0.280230
ExtUtils::Command 7.34
ExtUtils::Install 2.14
ExtUtils::MakeMaker 7.34
ExtUtils::Manifest 1.71
ExtUtils::ParseXS 3.35
File::Spec 3.74
JSON 2.97001
JSON::PP 2.97001
Module::Build 0.4224
Module::Signature 0.81
Parse::CPAN::Meta 2.150010
Test::Harness 3.42
Test::More 1.302140
YAML 1.26
YAML::Syck n/a
version 0.9924
--
Summary of my perl5 (revision 5 version 28 subversion 0) configuration:
Platform:
osname=openbsd
osvers=6.3
archname=OpenBSD.amd64-openbsd-thread-multi
uname='openbsd cpan-smoker-openbsd 6.3 generic.mp#107 amd64 '
config_args='-de -Dprefix=/home/goku/perl5/perlbrew/perls/perl-5.28.0 -Dman1dir=none -Dman3dir=none -Dusethreads -Aeval:scriptdir=/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin'
hint=recommended
useposix=true
d_sigaction=define
useithreads=define
usemultiplicity=define
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='cc'
ccflags ='-pthread -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_FORTIFY_SOURCE=2'
optimize='-O2'
cppflags='-pthread -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='4.2.1 Compatible OpenBSD Clang 5.0.1 (tags/RELEASE_501/final)'
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='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='cc'
ldflags ='-pthread -Wl,-E -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/lib /usr/local/lib
libs=-lpthread -lm -lutil -lc
perllibs=-lpthread -lm -lutil -lc
libc=/usr/lib/libc.so.92.3
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags=' '
cccdlflags='-DPIC -fPIC '
lddlflags='-shared -fPIC -L/usr/local/lib -fstack-protector-strong'
Characteristics of this binary (from libperl):
Compile-time options:
HAS_TIMES
MULTIPLICITY
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
USE_64_BIT_ALL
USE_64_BIT_INT
USE_ITHREADS
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
USE_REENTRANT_API
Locally applied patches:
Devel::PatchPerl 1.48
Built under openbsd
Compiled at Aug 2 2018 17:44:44
%ENV:
PERL5LIB="/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch:/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib:/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch:/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib:/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch:/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib:/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch:/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib"
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="11684"
PERL5_CPAN_IS_RUNNING="11684"
PERL5_CPAN_IS_RUNNING_IN_RECURSION="71853,11684"
PERLBREW_HOME="/home/goku/.perlbrew"
PERLBREW_MANPATH="/home/goku/perl5/perlbrew/perls/perl-5.28.0/man"
PERLBREW_PATH="/home/goku/perl5/perlbrew/bin:/home/goku/perl5/perlbrew/perls/perl-5.28.0/bin"
PERLBREW_PERL="perl-5.28.0"
PERLBREW_ROOT="/home/goku/perl5/perlbrew"
PERLBREW_SHELLRC_VERSION="0.84"
PERLBREW_VERSION="0.84"
PERL_CR_SMOKER_CURRENT="Task-MojoliciousPlugins-PerlAcademy-0.02"
PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
PERL_MM_USE_DEFAULT="1"
@INC:
/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/arch
/mnt/cpan_build_dir/goku/Mojolicious-Plugin-Args-0.05-0/blib/lib
/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/arch
/mnt/cpan_build_dir/goku/Mojolicious-Command-generate-qx_mojo_app-0.4.0-0/blib/lib
/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/arch
/mnt/cpan_build_dir/goku/Pod-Usage-1.69-0/blib/lib
/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/arch
/mnt/cpan_build_dir/goku/MojoX-Mysql-0.22-0/blib/lib
/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0/OpenBSD.amd64-openbsd-thread-multi
/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/site_perl/5.28.0
/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0/OpenBSD.amd64-openbsd-thread-multi
/home/goku/perl5/perlbrew/perls/perl-5.28.0/lib/5.28.0