commit perl-Mojolicious for openSUSE:Factory
Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2020-06-30 22:25:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Mojolicious" Tue Jun 30 22:25:35 2020 rev:138 rq:817915 version:8.56 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2020-06-21 19:01:05.647953406 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.3060/perl-Mojolicious.changes 2020-06-30 22:25:37.647998675 +0200 @@ -1,0 +2,9 @@ +Sat Jun 27 03:11:38 UTC 2020 - Tina Müller <timueller+perl@suse.de> + +- updated to 8.56 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 8.56 2020-06-19 + - Fixed a bug that prevented "% end, begin" to work in Mojo::Template. (jberger) + +------------------------------------------------------------------- Old: ---- Mojolicious-8.55.tar.gz New: ---- Mojolicious-8.56.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.kujVEE/_old 2020-06-30 22:25:38.312000697 +0200 +++ /var/tmp/diff_new_pack.kujVEE/_new 2020-06-30 22:25:38.312000697 +0200 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 8.55 +Version: 8.56 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-8.55.tar.gz -> Mojolicious-8.56.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/Changes new/Mojolicious-8.56/Changes --- old/Mojolicious-8.55/Changes 2020-06-18 11:35:18.000000000 +0200 +++ new/Mojolicious-8.56/Changes 2020-06-26 22:06:45.000000000 +0200 @@ -1,4 +1,7 @@ +8.56 2020-06-19 + - Fixed a bug that prevented "% end, begin" to work in Mojo::Template. (jberger) + 8.55 2020-06-18 - Fixed a regression in Mojo::DOM::CSS that caused some selectors to not be valid anymore. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/META.json new/Mojolicious-8.56/META.json --- old/Mojolicious-8.55/META.json 2020-06-18 11:42:20.000000000 +0200 +++ new/Mojolicious-8.56/META.json 2020-06-26 22:07:54.000000000 +0200 @@ -4,7 +4,7 @@ "Sebastian Riedel <sri@cpan.org>" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.46, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], @@ -63,6 +63,6 @@ "web" : "https://webchat.freenode.net/#mojo" } }, - "version" : "8.55", + "version" : "8.56", "x_serialization_backend" : "JSON::PP version 4.04" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/META.yml new/Mojolicious-8.56/META.yml --- old/Mojolicious-8.55/META.yml 2020-06-18 11:42:19.000000000 +0200 +++ new/Mojolicious-8.56/META.yml 2020-06-26 22:07:54.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.46, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -34,5 +34,5 @@ homepage: https://mojolicious.org license: http://www.opensource.org/licenses/artistic-license-2.0 repository: https://github.com/mojolicious/mojo.git -version: '8.55' +version: '8.56' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Collection.pm new/Mojolicious-8.56/lib/Mojo/Collection.pm --- old/Mojolicious-8.55/lib/Mojo/Collection.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Collection.pm 2020-06-19 22:05:37.000000000 +0200 @@ -44,7 +44,7 @@ sub head { my ($self, $size) = @_; - return $self->new(@$self) if $size > @$self; + return $self->new(@$self) if $size > @$self; return $self->new(@$self[0 .. ($size - 1)]) if $size >= 0; return $self->new(@$self[0 .. ($#$self + $size)]); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/IOLoop/Client.pm new/Mojolicious-8.56/lib/Mojo/IOLoop/Client.pm --- old/Mojolicious-8.55/lib/Mojo/IOLoop/Client.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/IOLoop/Client.pm 2020-06-19 22:05:40.000000000 +0200 @@ -135,7 +135,7 @@ my ($self, $args) = @_; my $handle = $self->{handle}; - return $self->_try_tls($args) unless $args->{socks_address}; + return $self->_try_tls($args) unless $args->{socks_address}; return $self->emit(error => 'IO::Socket::Socks 0.64+ required for SOCKS support') unless SOCKS; my %options = (ConnectAddr => $args->{address}, ConnectPort => $args->{port}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/IOLoop/Delay.pm new/Mojolicious-8.56/lib/Mojo/IOLoop/Delay.pm --- old/Mojolicious-8.55/lib/Mojo/IOLoop/Delay.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/IOLoop/Delay.pm 2020-06-19 22:05:41.000000000 +0200 @@ -35,7 +35,7 @@ } ($self->{steps} = []) and return $self->resolve(@args) unless $self->{counter}; - $self->ioloop->next_tick($self->begin) unless $self->{pending}; + $self->ioloop->next_tick($self->begin) unless $self->{pending}; return $self; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Message.pm new/Mojolicious-8.56/lib/Mojo/Message.pm --- old/Mojolicious-8.55/lib/Mojo/Message.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Message.pm 2020-06-19 22:05:35.000000000 +0200 @@ -272,7 +272,7 @@ if ($charset) { $name = decode($charset, $name) // $name if $name; $filename = decode($charset, $filename) // $filename if $filename; - $part = decode($charset, $part) // $part unless $upload; + $part = decode($charset, $part) // $part unless $upload; } push @formdata, [$name, $part, $filename]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Path.pm new/Mojolicious-8.56/lib/Mojo/Path.pm --- old/Mojolicious-8.55/lib/Mojo/Path.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Path.pm 2020-06-19 22:05:42.000000000 +0200 @@ -107,7 +107,7 @@ $path = decode($charset, $path) // $path if $charset; $self->{leading_slash} = $path =~ s!^/!!; $self->{trailing_slash} = $path =~ s!/$!!; - $self->{parts} = [split '/', $path, -1]; + $self->{parts} = [split '/', $path, -1]; } return $self->{$name} unless @_; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Server/CGI.pm new/Mojolicious-8.56/lib/Mojo/Server/CGI.pm --- old/Mojolicious-8.55/lib/Mojo/Server/CGI.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Server/CGI.pm 2020-06-19 22:05:33.000000000 +0200 @@ -32,7 +32,7 @@ my $code = $res->code || 404; my $msg = $res->message || $res->default_message; $res->headers->status("$code $msg") unless $self->nph; - return undef unless _write($res, 'get_header_chunk'); + return undef unless _write($res, 'get_header_chunk'); # Response body return undef unless $tx->is_empty || _write($res, 'get_body_chunk'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Server/Daemon.pm new/Mojolicious-8.56/lib/Mojo/Server/Daemon.pm --- old/Mojolicious-8.55/lib/Mojo/Server/Daemon.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Server/Daemon.pm 2020-06-19 22:05:35.000000000 +0200 @@ -17,7 +17,7 @@ has ioloop => sub { Mojo::IOLoop->singleton }; has keep_alive_timeout => sub { $ENV{MOJO_KEEP_ALIVE_TIMEOUT} // 5 }; has listen => sub { [split ',', $ENV{MOJO_LISTEN} || 'http://*:3000'] }; -has max_requests => 100; +has max_requests => 100; sub DESTROY { return if Mojo::Util::_global_destruction(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Server/Prefork.pm new/Mojolicious-8.56/lib/Mojo/Server/Prefork.pm --- old/Mojolicious-8.55/lib/Mojo/Server/Prefork.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Server/Prefork.pm 2020-06-19 22:05:34.000000000 +0200 @@ -64,8 +64,8 @@ while ((my $pid = waitpid -1, WNOHANG) > 0) { $self->emit(reap => $pid)->_stopped($pid) } }; local $SIG{INT} = local $SIG{TERM} = sub { $self->_term }; - local $SIG{QUIT} = sub { $self->_term(1) }; - local $SIG{TTIN} = sub { $self->workers($self->workers + 1) }; + local $SIG{QUIT} = sub { $self->_term(1) }; + local $SIG{TTIN} = sub { $self->workers($self->workers + 1) }; local $SIG{TTOU} = sub { $self->workers > 0 ? $self->workers($self->workers - 1) : return; for my $w (values %{$self->{pool}}) { ($w->{graceful} = steady_time) and last unless $w->{graceful} } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/Template.pm new/Mojolicious-8.56/lib/Mojo/Template.pm --- old/Mojolicious-8.55/lib/Mojo/Template.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/Template.pm 2020-06-26 21:51:36.000000000 +0200 @@ -201,7 +201,7 @@ $blocks[-1] .= 'return Mojo::ByteStream->new($_O) }'; # No following code - $blocks[-1] .= ';' if ($next->[1] // '') =~ /^\s*$/; + $blocks[-1] .= ';' if $next->[0] ne 'cpst' && ($next->[1] // '') =~ /^\s*$/; } # Expression diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/UserAgent/Transactor.pm new/Mojolicious-8.56/lib/Mojo/UserAgent/Transactor.pm --- old/Mojolicious-8.55/lib/Mojo/UserAgent/Transactor.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/UserAgent/Transactor.pm 2020-06-19 22:05:29.000000000 +0200 @@ -16,7 +16,7 @@ has compressed => sub { $ENV{MOJO_GZIP} // 1 }; has generators => sub { {form => &_form, json => &_json, multipart => &_multipart} }; -has name => 'Mojolicious (Perl)'; +has name => 'Mojolicious (Perl)'; sub add_generator { $_[0]->generators->{$_[1]} = $_[2] and return $_[0] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojo/UserAgent.pm new/Mojolicious-8.56/lib/Mojo/UserAgent.pm --- old/Mojolicious-8.55/lib/Mojo/UserAgent.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojo/UserAgent.pm 2020-06-19 22:05:31.000000000 +0200 @@ -21,8 +21,8 @@ has inactivity_timeout => sub { $ENV{MOJO_INACTIVITY_TIMEOUT} // 40 }; has insecure => sub { $ENV{MOJO_INSECURE} }; has [qw(local_address max_response_size)]; -has ioloop => sub { Mojo::IOLoop->new }; -has key => sub { $ENV{MOJO_KEY_FILE} }; +has ioloop => sub { Mojo::IOLoop->new }; +has key => sub { $ENV{MOJO_KEY_FILE} }; has max_connections => 5; has max_redirects => sub { $ENV{MOJO_MAX_REDIRECTS} || 0 }; has proxy => sub { Mojo::UserAgent::Proxy->new }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojolicious/Command/routes.pm new/Mojolicious-8.56/lib/Mojolicious/Command/routes.pm --- old/Mojolicious-8.55/lib/Mojolicious/Command/routes.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojolicious/Command/routes.pm 2020-06-19 22:05:49.000000000 +0200 @@ -31,7 +31,7 @@ push @flags, (my $partial = $route->partial) ? 'D' : '.'; push @flags, $route->inline ? 'U' : '.'; push @flags, $route->is_websocket ? 'W' : '.'; - push @$row, join('', @flags) if $verbose; + push @$row, join('', @flags) if $verbose; # Methods my $via = $route->via; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojolicious/Routes.pm new/Mojolicious-8.56/lib/Mojolicious/Routes.pm --- old/Mojolicious-8.55/lib/Mojolicious/Routes.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojolicious/Routes.pm 2020-06-19 22:05:50.000000000 +0200 @@ -128,7 +128,7 @@ for my $class (@classes) { # Failed - next unless defined(my $found = $self->_load($class)); + next unless defined(my $found = $self->_load($class)); return !$log->debug(qq{Class "$class" is not a controller}) unless $found; # Success diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/Mojolicious.pm new/Mojolicious-8.56/lib/Mojolicious.pm --- old/Mojolicious-8.55/lib/Mojolicious.pm 2020-06-14 19:41:21.000000000 +0200 +++ new/Mojolicious-8.56/lib/Mojolicious.pm 2020-06-19 22:05:27.000000000 +0200 @@ -42,7 +42,7 @@ has plugins => sub { Mojolicious::Plugins->new }; has renderer => sub { Mojolicious::Renderer->new }; has routes => sub { Mojolicious::Routes->new }; -has secrets => sub { +has secrets => sub { my $self = shift; # Warn developers about insecure default @@ -58,7 +58,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Supervillain'; -our $VERSION = '8.55'; +our $VERSION = '8.56'; sub BUILD_DYNAMIC { my ($class, $method, $dyn_methods) = @_; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/lib/ojo.pm new/Mojolicious-8.56/lib/ojo.pm --- old/Mojolicious-8.55/lib/ojo.pm 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/lib/ojo.pm 2020-06-24 21:02:01.000000000 +0200 @@ -22,7 +22,7 @@ $ua->server->app->hook(around_action => sub { local $_ = $_[1]; $_[0]() }); $ua->max_redirects(10) unless defined $ENV{MOJO_MAX_REDIRECTS}; - $ua->proxy->detect unless defined $ENV{MOJO_PROXY}; + $ua->proxy->detect unless defined $ENV{MOJO_PROXY}; # The ojo DSL monkey_patch $caller, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/asset.t new/Mojolicious-8.56/t/mojo/asset.t --- old/Mojolicious-8.55/t/mojo/asset.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/asset.t 2020-06-19 22:06:16.000000000 +0200 @@ -287,7 +287,7 @@ ok -e $path, 'file exists'; is $file->slurp, 'Fork test!', 'right content'; croak "Can't fork: $!" unless defined(my $pid = fork); - exit 0 unless $pid; + exit 0 unless $pid; waitpid $pid, 0 if $pid; ok -e $path, 'file still exists'; is $file->slurp, 'Fork test!', 'right content'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/bytestream.t new/Mojolicious-8.56/t/mojo/bytestream.t --- old/Mojolicious-8.55/t/mojo/bytestream.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/bytestream.t 2020-06-19 22:06:08.000000000 +0200 @@ -52,8 +52,7 @@ is b(' la la la ')->trim, 'la la la', 'right trimmed result'; # md5_bytes -is unpack('H*', b('foo bar baz ♥')->encode->md5_bytes), 'a740aeb6e066f158cbf19fd92e890d2d', - 'right binary md5 checksum'; +is unpack('H*', b('foo bar baz ♥')->encode->md5_bytes), 'a740aeb6e066f158cbf19fd92e890d2d', 'right binary md5 checksum'; is unpack('H*', b('foo bar baz ♥')->encode('UTF-8')->md5_bytes), 'a740aeb6e066f158cbf19fd92e890d2d', 'right binary md5 checksum'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/dom.t new/Mojolicious-8.56/t/mojo/dom.t --- old/Mojolicious-8.55/t/mojo/dom.t 2020-06-18 11:33:27.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/dom.t 2020-06-19 22:06:05.000000000 +0200 @@ -381,17 +381,17 @@ is $dom->at(qq{html [id="\\n\2603 x"]})->text, 'Snowman', 'right text'; is $dom->at(qq{html [id="\\n\002603x"]})->text, 'Snowman', 'right text'; is $dom->at(qq{html [id="\\2603 x"]})->text, 'Snowman', 'right text'; - is $dom->at('#☃x')->text, 'Snowman', 'right text'; - is $dom->at('div#☃x')->text, 'Snowman', 'right text'; - is $dom->at('html div#☃x')->text, 'Snowman', 'right text'; - is $dom->at('[id^="☃"]')->text, 'Snowman', 'right text'; - is $dom->at('div[id^="☃"]')->text, 'Snowman', 'right text'; - is $dom->at('html div[id^="☃"]')->text, 'Snowman', 'right text'; - is $dom->at('html > div[id^="☃"]')->text, 'Snowman', 'right text'; - is $dom->at('[id^=☃]')->text, 'Snowman', 'right text'; - is $dom->at('div[id^=☃]')->text, 'Snowman', 'right text'; - is $dom->at('html div[id^=☃]')->text, 'Snowman', 'right text'; - is $dom->at('html > div[id^=☃]')->text, 'Snowman', 'right text'; + is $dom->at('#☃x')->text, 'Snowman', 'right text'; + is $dom->at('div#☃x')->text, 'Snowman', 'right text'; + is $dom->at('html div#☃x')->text, 'Snowman', 'right text'; + is $dom->at('[id^="☃"]')->text, 'Snowman', 'right text'; + is $dom->at('div[id^="☃"]')->text, 'Snowman', 'right text'; + is $dom->at('html div[id^="☃"]')->text, 'Snowman', 'right text'; + is $dom->at('html > div[id^="☃"]')->text, 'Snowman', 'right text'; + is $dom->at('[id^=☃]')->text, 'Snowman', 'right text'; + is $dom->at('div[id^=☃]')->text, 'Snowman', 'right text'; + is $dom->at('html div[id^=☃]')->text, 'Snowman', 'right text'; + is $dom->at('html > div[id^=☃]')->text, 'Snowman', 'right text'; is $dom->at(".\\n\002665")->text, 'Heart', 'right text'; is $dom->at('.\2665')->text, 'Heart', 'right text'; is $dom->at("html .\\n\002665")->text, 'Heart', 'right text'; @@ -402,26 +402,26 @@ is $dom->at(qq{[class$="\2665"]})->text, 'Heart', 'right text'; is $dom->at('.x')->text, 'Heart', 'right text'; is $dom->at('html .x')->text, 'Heart', 'right text'; - is $dom->at('.♥')->text, 'Heart', 'right text'; - is $dom->at('html .♥')->text, 'Heart', 'right text'; - is $dom->at('div.♥')->text, 'Heart', 'right text'; - is $dom->at('html div.♥')->text, 'Heart', 'right text'; - is $dom->at('[class$="♥"]')->text, 'Heart', 'right text'; - is $dom->at('div[class$="♥"]')->text, 'Heart', 'right text'; - is $dom->at('html div[class$="♥"]')->text, 'Heart', 'right text'; - is $dom->at('html > div[class$="♥"]')->text, 'Heart', 'right text'; - is $dom->at('[class$=♥]')->text, 'Heart', 'right text'; - is $dom->at('div[class$=♥]')->text, 'Heart', 'right text'; - is $dom->at('html div[class$=♥]')->text, 'Heart', 'right text'; - is $dom->at('html > div[class$=♥]')->text, 'Heart', 'right text'; - is $dom->at('[class~="♥"]')->text, 'Heart', 'right text'; - is $dom->at('div[class~="♥"]')->text, 'Heart', 'right text'; - is $dom->at('html div[class~="♥"]')->text, 'Heart', 'right text'; - is $dom->at('html > div[class~="♥"]')->text, 'Heart', 'right text'; - is $dom->at('[class~=♥]')->text, 'Heart', 'right text'; - is $dom->at('div[class~=♥]')->text, 'Heart', 'right text'; - is $dom->at('html div[class~=♥]')->text, 'Heart', 'right text'; - is $dom->at('html > div[class~=♥]')->text, 'Heart', 'right text'; + is $dom->at('.♥')->text, 'Heart', 'right text'; + is $dom->at('html .♥')->text, 'Heart', 'right text'; + is $dom->at('div.♥')->text, 'Heart', 'right text'; + is $dom->at('html div.♥')->text, 'Heart', 'right text'; + is $dom->at('[class$="♥"]')->text, 'Heart', 'right text'; + is $dom->at('div[class$="♥"]')->text, 'Heart', 'right text'; + is $dom->at('html div[class$="♥"]')->text, 'Heart', 'right text'; + is $dom->at('html > div[class$="♥"]')->text, 'Heart', 'right text'; + is $dom->at('[class$=♥]')->text, 'Heart', 'right text'; + is $dom->at('div[class$=♥]')->text, 'Heart', 'right text'; + is $dom->at('html div[class$=♥]')->text, 'Heart', 'right text'; + is $dom->at('html > div[class$=♥]')->text, 'Heart', 'right text'; + is $dom->at('[class~="♥"]')->text, 'Heart', 'right text'; + is $dom->at('div[class~="♥"]')->text, 'Heart', 'right text'; + is $dom->at('html div[class~="♥"]')->text, 'Heart', 'right text'; + is $dom->at('html > div[class~="♥"]')->text, 'Heart', 'right text'; + is $dom->at('[class~=♥]')->text, 'Heart', 'right text'; + is $dom->at('div[class~=♥]')->text, 'Heart', 'right text'; + is $dom->at('html div[class~=♥]')->text, 'Heart', 'right text'; + is $dom->at('html > div[class~=♥]')->text, 'Heart', 'right text'; is $dom->at('[class~="x"]')->text, 'Heart', 'right text'; is $dom->at('div[class~="x"]')->text, 'Heart', 'right text'; is $dom->at('html div[class~="x"]')->text, 'Heart', 'right text'; @@ -431,8 +431,8 @@ is $dom->at('html div[class~=x]')->text, 'Heart', 'right text'; is $dom->at('html > div[class~=x]')->text, 'Heart', 'right text'; is $dom->at('html'), $html, 'right result'; - is $dom->at('#☃x')->parent, $html, 'right result'; - is $dom->at('#☃x')->root, $html, 'right result'; + is $dom->at('#☃x')->parent, $html, 'right result'; + is $dom->at('#☃x')->root, $html, 'right result'; is $dom->children('html')->first, $html, 'right result'; is $dom->to_string, $html, 'right result'; is $dom->content, $html, 'right result'; @@ -1250,25 +1250,25 @@ is $dom->at('p + div')->text, 'G', 'right text'; is $dom->at('ul + h1 + p + p + div')->text, 'G', 'right text'; is $dom->at('ul + h1 ~ p + div')->text, 'G', 'right text'; - is $dom->at('h1 ~ #♥')->text, 'E', 'right text'; - is $dom->at('h1 + #♥')->text, 'E', 'right text'; - is $dom->at('#♥~#☃')->text, 'F', 'right text'; - is $dom->at('#♥+#☃')->text, 'F', 'right text'; - is $dom->at('#♥+#☃>b')->text, 'H', 'right text'; + is $dom->at('h1 ~ #♥')->text, 'E', 'right text'; + is $dom->at('h1 + #♥')->text, 'E', 'right text'; + is $dom->at('#♥~#☃')->text, 'F', 'right text'; + is $dom->at('#♥+#☃')->text, 'F', 'right text'; + is $dom->at('#♥+#☃>b')->text, 'H', 'right text'; is $dom->at('#♥ > #☃'), undef, 'no result'; is $dom->at('#♥ #☃'), undef, 'no result'; is $dom->at('#♥ + #☃ + :nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ ~ #☃ + :nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ + #☃ ~ :nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ ~ #☃ ~ :nth-last-child(1)')->text, 'G', 'right text'; - is $dom->at('#♥ + :nth-last-child(2)')->text, 'F', 'right text'; - is $dom->at('#♥ ~ :nth-last-child(2)')->text, 'F', 'right text'; + is $dom->at('#♥ + :nth-last-child(2)')->text, 'F', 'right text'; + is $dom->at('#♥ ~ :nth-last-child(2)')->text, 'F', 'right text'; is $dom->at('#♥ + #☃ + *:nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ ~ #☃ + *:nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ + #☃ ~ *:nth-last-child(1)')->text, 'G', 'right text'; is $dom->at('#♥ ~ #☃ ~ *:nth-last-child(1)')->text, 'G', 'right text'; - is $dom->at('#♥ + *:nth-last-child(2)')->text, 'F', 'right text'; - is $dom->at('#♥ ~ *:nth-last-child(2)')->text, 'F', 'right text'; + is $dom->at('#♥ + *:nth-last-child(2)')->text, 'F', 'right text'; + is $dom->at('#♥ ~ *:nth-last-child(2)')->text, 'F', 'right text'; }; subtest 'Scoped selectors' => sub { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/log.t new/Mojolicious-8.56/t/mojo/log.t --- old/Mojolicious-8.55/t/mojo/log.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/log.t 2020-06-19 22:06:10.000000000 +0200 @@ -18,7 +18,7 @@ undef $log; my $content = decode 'UTF-8', path($path)->slurp; like $content, qr/[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{5}] [\d+] [error] Works/, 'right error message'; -like $content, qr/[.*] [\d+] [fatal] I ♥ Mojolicious/, 'right fatal message'; +like $content, qr/[.*] [\d+] [fatal] I ♥ Mojolicious/, 'right fatal message'; like $content, qr/[.*] [\d+] [error] This too/, 'right error message'; unlike $content, qr/[.*] [\d+] [debug] Does not work/, 'no debug message'; unlike $content, qr/[.*] [\d+] [debug] And this\ntoo\n/, 'right debug message'; @@ -35,18 +35,17 @@ $log->debug(sub { return 'And this', 'too' }); } $content = decode 'UTF-8', $buffer; -like $content, qr/[.*] [error] Just works\n/, 'right error message'; +like $content, qr/[.*] [error] Just works\n/, 'right error message'; like $content, qr/[.*] [fatal] I ♥ Mojolicious\n/, 'right fatal message'; -like $content, qr/[.*] [debug] Works too\n/, 'right debug message'; -like $content, qr/[.*] [debug] And this\ntoo\n/, 'right debug message'; +like $content, qr/[.*] [debug] Works too\n/, 'right debug message'; +like $content, qr/[.*] [debug] And this\ntoo\n/, 'right debug message'; # Formatting $log = Mojo::Log->new; like $log->format->(time, 'debug', 'Test 123'), qr/^[.*] [debug] Test 123\n$/, 'right format'; like $log->format->(time, 'debug', qw(Test 1 2 3)), qr/^[.*] [debug] Test\n1\n2\n3\n$/, 'right format'; -like $log->format->(time, 'error', 'I ♥ Mojolicious'), qr/^[.*] [error] I ♥ Mojolicious\n$/, 'right format'; -like $log->format->(CORE::time, 'error', 'I ♥ Mojolicious'), qr/^[.*] [error] I ♥ Mojolicious\n$/, - 'right format'; +like $log->format->(time, 'error', 'I ♥ Mojolicious'), qr/^[.*] [error] I ♥ Mojolicious\n$/, 'right format'; +like $log->format->(CORE::time, 'error', 'I ♥ Mojolicious'), qr/^[.*] [error] I ♥ Mojolicious\n$/, 'right format'; $log->format(sub { my ($time, $level, @lines) = @_; return join ':', $level, $time, @lines; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/path.t new/Mojolicious-8.56/t/mojo/path.t --- old/Mojolicious-8.55/t/mojo/path.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/path.t 2020-06-19 22:06:01.000000000 +0200 @@ -115,13 +115,13 @@ ok $path->contains('/0'), 'contains path'; ok !$path->contains('/0/0'), 'does not contain path'; $path = Mojo::Path->new('/0/♥.html'); -ok $path->contains('/'), 'contains path'; -ok $path->contains('/0'), 'contains path'; +ok $path->contains('/'), 'contains path'; +ok $path->contains('/0'), 'contains path'; ok $path->contains('/0/♥.html'), 'contains path'; -ok !$path->contains('/0/♥'), 'does not contain path'; +ok !$path->contains('/0/♥'), 'does not contain path'; ok !$path->contains('/0/0.html'), 'does not contain path'; ok !$path->contains('/0.html'), 'does not contain path'; -ok !$path->contains('/♥.html'), 'does not contain path'; +ok !$path->contains('/♥.html'), 'does not contain path'; # Merge $path = Mojo::Path->new('/foo'); @@ -234,7 +234,7 @@ is "$path", '/foob%E4r', 'right path'; is $path->to_string, '/foob%E4r', 'right path'; is $path->to_abs_string, '/foob%E4r', 'right absolute path'; -is $path->to_route, '/foobär', 'right route'; +is $path->to_route, '/foobär', 'right route'; is $path->clone->to_string, '/foob%E4r', 'right path'; # No charset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/request.t new/Mojolicious-8.56/t/mojo/request.t --- old/Mojolicious-8.55/t/mojo/request.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/request.t 2020-06-19 22:06:13.000000000 +0200 @@ -1789,8 +1789,8 @@ # Chrome 5 multipart/form-data request (UTF-8) $req = Mojo::Message::Request->new; -my ($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', - 'аватар.jpg', 'Сохранить'; +my ($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', 'аватар.jpg', + 'Сохранить'; my $chrome = "------WebKitFormBoundaryYGjwdkpB6ZLCZQbX\x0d\x0a" . "Content-Disposition: form-data; name="fname"\x0d\x0a\x0d\x0a" @@ -1835,24 +1835,24 @@ is $req->cookie('mojolicious')->value, 'BAcIMTIzNDU2NzgECAgIAwIAAAAXDGFsZXgudm9yb25vdgQAAAB1c2VyBp6FjksAAAAABwA' . 'AAGV4cGlyZXM=--1641adddfe885276cda0deb7475f153a', 'right value'; like $req->headers->content_type, qr!multipart/form-data!, 'right "Content-Type" value'; -is $req->param('fname'), 'Иван', 'right value'; -is $req->param('sname'), 'Иванов', 'right value'; -is $req->param('sex'), 'мужской', 'right value'; -is $req->param('bdate'), '16.02.1987', 'right value'; -is $req->param('phone'), '1234567890', 'right value'; -is $req->param('submit'), 'Сохранить', 'right value'; +is $req->param('fname'), 'Иван', 'right value'; +is $req->param('sname'), 'Иванов', 'right value'; +is $req->param('sex'), 'мужской', 'right value'; +is $req->param('bdate'), '16.02.1987', 'right value'; +is $req->param('phone'), '1234567890', 'right value'; +is $req->param('submit'), 'Сохранить', 'right value'; my $upload = $req->upload('avatar'); is $upload->isa('Mojo::Upload'), 1, 'right upload'; is $upload->headers->content_type, 'image/jpeg', 'right "Content-Type" value'; is $upload->filename, 'аватар.jpg', 'right filename'; -is $upload->size, 4, 'right size'; -is $upload->slurp, '1234', 'right content'; +is $upload->size, 4, 'right size'; +is $upload->slurp, '1234', 'right content'; is $req->content->parts->[0]->asset->slurp, $fname, 'right content'; # Firefox 3.5.8 multipart/form-data request (UTF-8) $req = Mojo::Message::Request->new; -($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', - 'аватар.jpg', 'Сохранить'; +($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', 'аватар.jpg', + 'Сохранить'; my $firefox = "-----------------------------213090722714721300002030499922\x0d\x0a" . "Content-Disposition: form-data; name="fname"\x0d\x0a\x0d\x0a" @@ -1901,24 +1901,24 @@ is $req->cookie('mojolicious')->value, 'BAcIMTIzNDU2NzgECAgIAwIAAAAXDGFsZXgudm9yb25vdgQAAAB1c2VyBiWFjksAAAAABwA' . 'AAGV4cGlyZXM=--cd933a37999e0fa8d7804205e89193a7', 'right value'; like $req->headers->content_type, qr!multipart/form-data!, 'right "Content-Type" value'; -is $req->param('fname'), 'Иван', 'right value'; -is $req->param('sname'), 'Иванов', 'right value'; -is $req->param('sex'), 'мужской', 'right value'; -is $req->param('bdate'), '16.02.1987', 'right value'; -is $req->param('phone'), '1234567890', 'right value'; -is $req->param('submit'), 'Сохранить', 'right value'; +is $req->param('fname'), 'Иван', 'right value'; +is $req->param('sname'), 'Иванов', 'right value'; +is $req->param('sex'), 'мужской', 'right value'; +is $req->param('bdate'), '16.02.1987', 'right value'; +is $req->param('phone'), '1234567890', 'right value'; +is $req->param('submit'), 'Сохранить', 'right value'; $upload = $req->upload('avatar'); is $upload->isa('Mojo::Upload'), 1, 'right upload'; is $upload->headers->content_type, 'image/jpeg', 'right "Content-Type" value'; is $upload->filename, 'аватар.jpg', 'right filename'; -is $upload->size, 4, 'right size'; -is $upload->slurp, '1234', 'right content'; +is $upload->size, 4, 'right size'; +is $upload->slurp, '1234', 'right content'; is $req->content->parts->[0]->asset->slurp, $fname, 'right content'; # Opera 9.8 multipart/form-data request (UTF-8) $req = Mojo::Message::Request->new; -($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', - 'аватар.jpg', 'Сохранить'; +($fname, $sname, $sex, $avatar, $submit) = map { encode 'UTF-8', $_ } 'Иван', 'Иванов', 'мужской', 'аватар.jpg', + 'Сохранить'; my $opera = "------------IWq9cR9mYYG668xwSn56f0\x0d\x0a" . "Content-Disposition: form-data; name="fname"\x0d\x0a\x0d\x0a" @@ -1963,18 +1963,18 @@ is $req->cookie('mojolicious')->value, 'BAcIMTIzNDU2NzgECAgIAwIAAAAXDGFsZXgudm9yb25vdgQAAAB1c2VyBhaIjksAAAAABwA' . 'AAGV4cGlyZXM=--78a58a94f98ae5b75a489be1189f2672', 'right value'; like $req->headers->content_type, qr!multipart/form-data!, 'right "Content-Type" value'; -is $req->param('fname'), 'Иван', 'right value'; -is $req->param('sname'), 'Иванов', 'right value'; -is $req->param('sex'), 'мужской', 'right value'; -is $req->param('bdate'), '16.02.1987', 'right value'; -is $req->param('phone'), '1234567890', 'right value'; -is $req->param('submit'), 'Сохранить', 'right value'; +is $req->param('fname'), 'Иван', 'right value'; +is $req->param('sname'), 'Иванов', 'right value'; +is $req->param('sex'), 'мужской', 'right value'; +is $req->param('bdate'), '16.02.1987', 'right value'; +is $req->param('phone'), '1234567890', 'right value'; +is $req->param('submit'), 'Сохранить', 'right value'; $upload = $req->upload('avatar'); is $upload->isa('Mojo::Upload'), 1, 'right upload'; is $upload->headers->content_type, 'image/jpeg', 'right "Content-Type" value'; is $upload->filename, 'аватар.jpg', 'right filename'; -is $upload->size, 4, 'right size'; -is $upload->slurp, '1234', 'right content'; +is $upload->size, 4, 'right size'; +is $upload->slurp, '1234', 'right content'; is $req->content->parts->[0]->asset->slurp, $fname, 'right content'; # Firefox 14 multipart/form-data request (UTF-8) @@ -2005,7 +2005,7 @@ is $req->version, '1.1', 'right version'; is $req->url, '/foo', 'right URL'; like $req->headers->content_type, qr!multipart/form-data!, 'right "Content-Type" value'; -is $req->upload('☃')->name, '☃', 'right name'; +is $req->upload('☃')->name, '☃', 'right name'; is $req->upload('☃')->filename, 'foo bär ☃.txt', 'right filename'; is $req->upload('☃')->headers->content_type, 'text/plain', 'right "Content-Type" value'; is $req->upload('☃')->asset->size, 8, 'right size'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/template.t new/Mojolicious-8.56/t/mojo/template.t --- old/Mojolicious-8.55/t/mojo/template.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/template.t 2020-06-26 21:51:36.000000000 +0200 @@ -575,6 +575,19 @@ EOF is $output, " \n 2\n\n 3\n\n 4\n", 'block loop'; +subtest 'End and begin in the same perl line' => sub { + my $concat = 'no warnings "redefine"; sub concat { $_[0]->() . $_[1]->() }'; + my $mt = Mojo::Template->new(prepend => $concat); + my $output = $mt->render(<<' EOF'); + %= concat begin + 1 + % end, begin + 2 + % end + EOF + is $output, " \n 1\n 2\n", 'end, begin'; +}; + # Strict $output = Mojo::Template->new->render('% $foo = 1;'); isa_ok $output, 'Mojo::Exception', 'right exception'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/transactor.t new/Mojolicious-8.56/t/mojo/transactor.t --- old/Mojolicious-8.55/t/mojo/transactor.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/transactor.t 2020-06-19 22:06:14.000000000 +0200 @@ -191,8 +191,9 @@ is $tx->req->param('♥'), '☃', 'right value'; # Multipart form (shift_jis) -$tx = $t->tx(POST => 'http://example.com/foo' => {'Content-Type' => 'multipart/form-data'} => form => - {'やった' => 'やった'} => charset => 'shift_jis'); +$tx + = $t->tx(POST => 'http://example.com/foo' => {'Content-Type' => 'multipart/form-data'} => form => {'やった' => 'やった'} => + charset => 'shift_jis'); is $tx->req->url->to_abs, 'http://example.com/foo', 'right URL'; is $tx->req->method, 'POST', 'right method'; is $tx->req->headers->content_type, 'multipart/form-data', 'right "Content-Type" value'; @@ -285,8 +286,8 @@ is $tx->req->content->parts->[0]->asset->slurp, 'snowman', 'right part'; is $tx->req->content->parts->[1], undef, 'no more parts'; is $tx->req->upload('%22☃%22')->filename, '%22☃%22.jpg', 'right filename'; -is $tx->req->upload('%22☃%22')->size, 7, 'right size'; -is $tx->req->upload('%22☃%22')->slurp, 'snowman', 'right content'; +is $tx->req->upload('%22☃%22')->size, 7, 'right size'; +is $tx->req->upload('%22☃%22')->slurp, 'snowman', 'right content'; # Multipart form with multiple uploads sharing the same name $tx = $t->tx(POST => 'http://example.com/foo' => form => diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/url.t new/Mojolicious-8.56/t/mojo/url.t --- old/Mojolicious-8.55/t/mojo/url.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/url.t 2020-06-19 22:06:09.000000000 +0200 @@ -333,15 +333,15 @@ is "$url", 'http://xn--bcher-kva.xn--bcher-kva.xn--bcher-kva.ch:3000/foo', 'right format'; $url = Mojo::URL->new->scheme('http')->ihost('xn--n3h.xn--n3h.net'); is $url->scheme, 'http', 'right scheme'; -is $url->host, '☃.☃.net', 'right host'; +is $url->host, '☃.☃.net', 'right host'; is $url->ihost, 'xn--n3h.xn--n3h.net', 'right internationalized host'; is "$url", 'http://xn--n3h.xn--n3h.net', 'right format'; # IDNA (escaped userinfo and host) $url = Mojo::URL->new('https://%E2%99%A5:%E2%99%A5@kr%E4ih.com:3000'); -is $url->userinfo, '♥:♥', 'right userinfo'; -is $url->username, '♥', 'right username'; -is $url->password, '♥', 'right password'; +is $url->userinfo, '♥:♥', 'right userinfo'; +is $url->username, '♥', 'right username'; +is $url->password, '♥', 'right password'; is $url->host, "kr\xe4ih.com", 'right host'; is $url->ihost, 'xn--krih-moa.com', 'right internationalized host'; is $url->port, 3000, 'right port'; @@ -648,7 +648,7 @@ # Trailing dot $url = Mojo::URL->new('http://☃.net./♥'); is $url->ihost, 'xn--n3h.net.', 'right internationalized host'; -is $url->host, '☃.net.', 'right host'; +is $url->host, '☃.net.', 'right host'; is "$url", 'http://xn--n3h.net./%E2%99%A5', 'right format'; # No charset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojo/util.t new/Mojolicious-8.56/t/mojo/util.t --- old/Mojolicious-8.55/t/mojo/util.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojo/util.t 2020-06-19 22:06:14.000000000 +0200 @@ -388,8 +388,8 @@ ok !secure_compare('♥', '♥0'), 'values are not equal'; ok !secure_compare('0♥', '♥'), 'values are not equal'; ok !secure_compare('0♥1', '1♥0'), 'values are not equal'; -ok !secure_compare('', '♥'), 'values are not equal'; -ok !secure_compare('♥', ''), 'values are not equal'; +ok !secure_compare('', '♥'), 'values are not equal'; +ok !secure_compare('♥', ''), 'values are not equal'; # xor_encode is xor_encode('hello', 'foo'), "\x0e\x0a\x03\x0a\x00", 'right result'; @@ -477,10 +477,10 @@ 'right result'; is slugify('Hello, World!'), 'hello-world', 'right result'; is slugify('spam & eggs'), 'spam-eggs', 'right result'; -is slugify('spam & ıçüş', 1), 'spam-ıçüş', 'right result'; -is slugify('foo ıç bar', 1), 'foo-ıç-bar', 'right result'; -is slugify(' foo ıç bar', 1), 'foo-ıç-bar', 'right result'; -is slugify('你好', 1), '你好', 'right result'; +is slugify('spam & ıçüş', 1), 'spam-ıçüş', 'right result'; +is slugify('foo ıç bar', 1), 'foo-ıç-bar', 'right result'; +is slugify(' foo ıç bar', 1), 'foo-ıç-bar', 'right result'; +is slugify('你好', 1), '你好', 'right result'; # gzip/gunzip my $uncompressed = 'a' x 1000; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojolicious/charset_lite_app.t new/Mojolicious-8.56/t/mojolicious/charset_lite_app.t --- old/Mojolicious-8.55/t/mojolicious/charset_lite_app.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojolicious/charset_lite_app.t 2020-06-19 22:06:27.000000000 +0200 @@ -91,8 +91,7 @@ $t->get_ok('/json')->status_is(200)->content_type_is('application/json;charset=UTF-8')->json_is({test => $yatta}); # IRI -$t->get_ok('/привет/мир')->status_is(200)->content_type_is('application/json;charset=UTF-8') - ->json_is({foo => $yatta}); +$t->get_ok('/привет/мир')->status_is(200)->content_type_is('application/json;charset=UTF-8')->json_is({foo => $yatta}); # Shift_JIS parameters my $url = $t->ua->server->url->path('/params')->query(foo => 3, yatta => $yatta); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojolicious/dispatch.t new/Mojolicious-8.56/t/mojolicious/dispatch.t --- old/Mojolicious-8.55/t/mojolicious/dispatch.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojolicious/dispatch.t 2020-06-19 22:06:27.000000000 +0200 @@ -207,11 +207,11 @@ $c->req->method('GET'); $c->req->url->parse('/foo/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82'); ok $d->dispatch($c), 'dispatched'; -is $c->stash->{controller}, 'foo', 'right value'; -is $c->stash->{action}, 'bar', 'right value'; +is $c->stash->{controller}, 'foo', 'right value'; +is $c->stash->{action}, 'bar', 'right value'; is $c->stash->{capture}, 'привет', 'right value'; -is $c->param('controller'), undef, 'no value'; -is $c->param('action'), undef, 'no value'; +is $c->param('controller'), undef, 'no value'; +is $c->param('action'), undef, 'no value'; is $c->param('capture'), 'привет', 'right value'; ok $c->render_called, 'rendered'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojolicious/json_config_lite_app.t new/Mojolicious-8.56/t/mojolicious/json_config_lite_app.t --- old/Mojolicious-8.55/t/mojolicious/json_config_lite_app.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojolicious/json_config_lite_app.t 2020-06-19 22:06:28.000000000 +0200 @@ -24,17 +24,17 @@ plugin JSONConfig => {file => $path}; is $config->{foo}, 'bar', 'right value'; is $config->{hello}, 'there', 'right value'; -is $config->{utf}, 'утф', 'right value'; +is $config->{utf}, 'утф', 'right value'; is $config->{absolute}, 'works too!', 'right value'; is $config->{absolute_dev}, 'dev works too!', 'right value'; is app->config->{foo}, 'bar', 'right value'; is app->config->{hello}, 'there', 'right value'; -is app->config->{utf}, 'утф', 'right value'; +is app->config->{utf}, 'утф', 'right value'; is app->config->{absolute}, 'works too!', 'right value'; is app->config->{absolute_dev}, 'dev works too!', 'right value'; is app->config('foo'), 'bar', 'right value'; is app->config('hello'), 'there', 'right value'; -is app->config('utf'), 'утф', 'right value'; +is app->config('utf'), 'утф', 'right value'; is app->config('absolute'), 'works too!', 'right value'; is app->config('absolute_dev'), 'dev works too!', 'right value'; is app->config('it'), 'works', 'right value'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojolicious/lite_app.t new/Mojolicious-8.56/t/mojolicious/lite_app.t --- old/Mojolicious-8.55/t/mojolicious/lite_app.t 2020-06-14 18:21:04.000000000 +0200 +++ new/Mojolicious-8.56/t/mojolicious/lite_app.t 2020-06-19 22:06:29.000000000 +0200 @@ -422,7 +422,7 @@ app->routes->add_condition( redirect => sub { my ($route, $c, $captures, $active) = @_; - return 1 unless $active; + return 1 unless $active; $c->redirect_to('index') and return undef unless $c->req->headers->header('X-Condition-Test'); return 1; } @@ -647,8 +647,7 @@ is $stash->{finished}, 1, 'finish event has been emitted once'; # IRI -$t->get_ok('/привет/мир')->status_is(200)->content_type_is('text/html;charset=UTF-8') - ->content_is('привет мир'); +$t->get_ok('/привет/мир')->status_is(200)->content_type_is('text/html;charset=UTF-8')->content_is('привет мир'); # Route with format $t->get_ok('/root.html')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->content_is("/\n"); @@ -805,8 +804,7 @@ # UTF-8 form $t->post_ok('/utf8' => form => {name => 'табак'})->status_is(200)->header_is(Server => 'Mojolicious (Perl)') - ->header_is('Content-Length' => 22)->content_type_is('text/html;charset=UTF-8') - ->content_is("табак ангел\n"); + ->header_is('Content-Length' => 22)->content_type_is('text/html;charset=UTF-8')->content_is("табак ангел\n"); # UTF-8 "multipart/form-data" form $t->post_ok('/utf8' => {'Content-Type' => 'multipart/form-data'} => form => {name => 'табак'})->status_is(200) @@ -888,9 +886,8 @@ # Redirect to named route with redirecting enabled in user agent $t->ua->max_redirects(3); $t->get_ok('/redirect_named')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->header_is(Location => undef) - ->element_exists('#☃')->element_exists_not('#foo')->text_isnt('#foo' => 'whatever') - ->text_isnt('div#☃' => 'Redirect')->text_is('div#☃' => 'Redirect works!')->text_unlike('div#☃' => qr/Foo/) - ->text_like('div#☃' => qr/^Redirect/); + ->element_exists('#☃')->element_exists_not('#foo')->text_isnt('#foo' => 'whatever')->text_isnt('div#☃' => 'Redirect') + ->text_is('div#☃' => 'Redirect works!')->text_unlike('div#☃' => qr/Foo/)->text_like('div#☃' => qr/^Redirect/); $t->ua->max_redirects(0); is $t->tx->previous->res->code, 302, 'right status'; like $t->tx->previous->res->headers->location, qr!/template.txt$!, 'right "Location" value'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-8.55/t/mojolicious/static_lite_app.t new/Mojolicious-8.56/t/mojolicious/static_lite_app.t --- old/Mojolicious-8.55/t/mojolicious/static_lite_app.t 2020-06-14 18:18:32.000000000 +0200 +++ new/Mojolicious-8.56/t/mojolicious/static_lite_app.t 2020-06-19 22:06:23.000000000 +0200 @@ -247,8 +247,7 @@ ->header_is('Accept-Ranges' => 'bytes')->content_is(''); # UTF-8 encoded inline file -$t->get_ok('/static_utf8.txt')->status_is(200)->header_is(Server => 'Mojolicious (Perl)') - ->content_is("I ♥ Unicode\n"); +$t->get_ok('/static_utf8.txt')->status_is(200)->header_is(Server => 'Mojolicious (Perl)')->content_is("I ♥ Unicode\n"); done_testing();
participants (1)
-
root