Hello community,

here is the log from the commit of package perl-Mojolicious for 
openSUSE:Factory checked in at 2018-02-27 16:58:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mojolicious"

Tue Feb 27 16:58:07 2018 rev:91 rq:579897 version:7.69

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes        
2018-02-21 14:13:57.512815527 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes   
2018-02-27 16:58:08.995625665 +0100
@@ -1,0 +2,23 @@
+Sun Feb 25 06:34:52 UTC 2018 - [email protected]
+
+- updated to 7.69
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  7.69  2018-02-24
+    - Improved respond_to method in Mojolicious::Controller and accepts helper 
in
+      Mojolicious::Plugin::DefaultHelpers to no longer limit support for 
multiple
+      MIME types to requests containing an X-Requested-With header, since 
browsers
+      have become smarter about requesting what they actually want.
+
+-------------------------------------------------------------------
+Sat Feb 24 06:39:22 UTC 2018 - [email protected]
+
+- updated to 7.68
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  7.68  2018-02-22
+    - Fixed RFC 7230 compliance bugs in Mojo::Message::Request that prevented
+      "GET //foo/bar HTTP/1.1" to be interpreted as a request target in origin
+      form.
+
+-------------------------------------------------------------------

Old:
----
  Mojolicious-7.67.tar.gz

New:
----
  Mojolicious-7.69.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.QM307x/_old  2018-02-27 16:58:10.871557884 +0100
+++ /var/tmp/diff_new_pack.QM307x/_new  2018-02-27 16:58:10.875557740 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Mojolicious
-Version:        7.67
+Version:        7.69
 Release:        0
 %define cpan_name Mojolicious
 Summary:        Real-time web framework

++++++ Mojolicious-7.67.tar.gz -> Mojolicious-7.69.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/Changes new/Mojolicious-7.69/Changes
--- old/Mojolicious-7.67/Changes        2018-02-19 12:12:21.000000000 +0100
+++ new/Mojolicious-7.69/Changes        2018-02-24 19:50:34.000000000 +0100
@@ -1,4 +1,15 @@
 
+7.69  2018-02-24
+  - Improved respond_to method in Mojolicious::Controller and accepts helper in
+    Mojolicious::Plugin::DefaultHelpers to no longer limit support for multiple
+    MIME types to requests containing an X-Requested-With header, since 
browsers
+    have become smarter about requesting what they actually want.
+
+7.68  2018-02-22
+  - Fixed RFC 7230 compliance bugs in Mojo::Message::Request that prevented
+    "GET //foo/bar HTTP/1.1" to be interpreted as a request target in origin
+    form.
+
 7.67  2018-02-19
   - Modernized ".perltidyrc".
   - Fixed a bug in Mojo::Asset::File where forked processes could delete
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/META.json 
new/Mojolicious-7.69/META.json
--- old/Mojolicious-7.67/META.json      2018-02-20 00:10:29.000000000 +0100
+++ new/Mojolicious-7.69/META.json      2018-02-24 22:58:27.000000000 +0100
@@ -58,6 +58,6 @@
       },
       "x_IRC" : "irc://irc.perl.org/#mojo"
    },
-   "version" : "7.67",
+   "version" : "7.69",
    "x_serialization_backend" : "JSON::PP version 2.97001"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/META.yml 
new/Mojolicious-7.69/META.yml
--- old/Mojolicious-7.67/META.yml       2018-02-20 00:10:28.000000000 +0100
+++ new/Mojolicious-7.69/META.yml       2018-02-24 22:58:27.000000000 +0100
@@ -31,5 +31,5 @@
   homepage: http://mojolicious.org
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/kraih/mojo.git
-version: '7.67'
+version: '7.69'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojo/Message/Request.pm 
new/Mojolicious-7.69/lib/Mojo/Message/Request.pm
--- old/Mojolicious-7.67/lib/Mojo/Message/Request.pm    2018-02-19 
00:56:36.000000000 +0100
+++ new/Mojolicious-7.69/lib/Mojo/Message/Request.pm    2018-02-22 
19:58:55.000000000 +0100
@@ -54,8 +54,11 @@
   # We have a (hopefully) full request-line
   return !$self->error({message => 'Bad request start-line'})
     unless $1 =~ /^(\S+)\s+(\S+)\s+HTTP\/(\d\.\d)$/;
-  my $url = $self->method($1)->version($3)->url;
-  return !!($1 eq 'CONNECT' ? $url->host_port($2) : $url->parse($2));
+  my $url    = $self->method($1)->version($3)->url;
+  my $target = $2;
+  return !!$url->host_port($target) if $1 eq 'CONNECT';
+  return !!$url->parse($target)->fragment(undef) if $target =~ /^[^:\/?#]+:/;
+  return !!$url->path_query($target);
 }
 
 sub fix_headers {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojo/URL.pm 
new/Mojolicious-7.69/lib/Mojo/URL.pm
--- old/Mojolicious-7.67/lib/Mojo/URL.pm        2018-02-19 00:56:40.000000000 
+0100
+++ new/Mojolicious-7.69/lib/Mojo/URL.pm        2018-02-22 20:49:32.000000000 
+0100
@@ -87,7 +87,13 @@
 }
 
 sub path_query {
-  my $self  = shift;
+  my ($self, $pq) = @_;
+
+  if (defined $pq) {
+    return $self unless $pq =~ /^([^?#]*)(?:\?([^#]*))?/;
+    return defined $2 ? $self->path($1)->query($2) : $self->path($1);
+  }
+
   my $query = $self->query->to_string;
   return $self->path->to_string . (length $query ? "?$query" : '');
 }
@@ -399,6 +405,7 @@
 =head2 path_query
 
   my $path_query = $url->path_query;
+  $url           = $url->path_query('/foo/bar?a=1&b=2');
 
 Normalized version of L</"path"> and L</"query">.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojolicious/Controller.pm 
new/Mojolicious-7.69/lib/Mojolicious/Controller.pm
--- old/Mojolicious-7.67/lib/Mojolicious/Controller.pm  2018-02-19 
00:56:47.000000000 +0100
+++ new/Mojolicious-7.69/lib/Mojolicious/Controller.pm  2018-02-24 
18:40:34.000000000 +0100
@@ -772,10 +772,7 @@
 request header, C<format> stash value or C<format> C<GET>/C<POST> parameter,
 defaults to L<Mojolicious::Renderer/"default_format"> or rendering an empty
 C<204> response. Each representation can be handled with a callback or a hash
-reference containing arguments to be passed to L</"render">. Since browsers
-often don't really know what they actually want, unspecific C<Accept> request
-headers with more than one MIME type will be ignored, unless the
-C<X-Requested-With> header is set to the value C<XMLHttpRequest>.
+reference containing arguments to be passed to L</"render">.
 
   # Everything else than "json" and "xml" gets a 204 response
   $c->respond_to(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojolicious/Renderer.pm 
new/Mojolicious-7.69/lib/Mojolicious/Renderer.pm
--- old/Mojolicious-7.67/lib/Mojolicious/Renderer.pm    2018-02-19 
00:56:47.000000000 +0100
+++ new/Mojolicious-7.69/lib/Mojolicious/Renderer.pm    2018-02-24 
18:37:24.000000000 +0100
@@ -26,8 +26,8 @@
   my ($self, $c) = (shift, shift);
 
   # List representations
-  my $req = $c->req;
-  my @exts = @{$c->app->types->detect($req->headers->accept, $req->is_xhr)};
+  my $req  = $c->req;
+  my @exts = @{$c->app->types->detect($req->headers->accept)};
   if (!@exts && (my $format = $c->stash->{format} || $req->param('format'))) {
     push @exts, $format;
   }
@@ -332,10 +332,7 @@
 Select best possible representation for L<Mojolicious::Controller> object from
 C<Accept> request header, C<format> stash value or C<format> C<GET>/C<POST>
 parameter, defaults to returning the first extension if no preference could be
-detected. Since browsers often don't really know what they actually want,
-unspecific C<Accept> request headers with more than one MIME type will be
-ignored, unless the C<X-Requested-With> header is set to the value
-C<XMLHttpRequest>.
+detected.
 
 =head2 add_handler
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojolicious/Types.pm 
new/Mojolicious-7.69/lib/Mojolicious/Types.pm
--- old/Mojolicious-7.67/lib/Mojolicious/Types.pm       2018-02-19 
00:56:50.000000000 +0100
+++ new/Mojolicious-7.69/lib/Mojolicious/Types.pm       2018-02-24 
18:42:49.000000000 +0100
@@ -33,7 +33,7 @@
 };
 
 sub detect {
-  my ($self, $accept, $prioritize) = @_;
+  my ($self, $accept) = @_;
 
   # Extract and prioritize MIME types
   my %types;
@@ -41,7 +41,6 @@
     and $types{lc $1} = $2 // 1
     for split ',', $accept // '';
   my @detected = sort { $types{$b} <=> $types{$a} } sort keys %types;
-  return [] if !$prioritize && @detected > 1;
 
   # Detect extensions from MIME types
   my %reverse;
@@ -50,6 +49,7 @@
     my @types = @{$mapping->{$ext}};
     push @{$reverse{$_}}, $ext for map { s/\;.*$//; lc $_ } @types;
   }
+
   return [map { @{$reverse{$_} // []} } @detected];
 }
 
@@ -127,11 +127,9 @@
 
 =head2 detect
 
-  my $exts = $types->detect('application/json;q=9');
-  my $exts = $types->detect('text/html, application/json;q=9', 1);
+  my $exts = $types->detect('text/html, application/json;q=9');
 
-Detect file extensions from C<Accept> header value, prioritization of
-unspecific values that contain more than one MIME type is disabled by default.
+Detect file extensions from C<Accept> header value.
 
   # List detected extensions prioritized
   say for @{$types->detect('application/json, text/xml;q=0.1', 1)};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/lib/Mojolicious.pm 
new/Mojolicious-7.69/lib/Mojolicious.pm
--- old/Mojolicious-7.67/lib/Mojolicious.pm     2018-02-19 00:56:30.000000000 
+0100
+++ new/Mojolicious-7.69/lib/Mojolicious.pm     2018-02-23 19:44:33.000000000 
+0100
@@ -65,7 +65,7 @@
 has validator => sub { Mojolicious::Validator->new };
 
 our $CODENAME = 'Doughnut';
-our $VERSION  = '7.67';
+our $VERSION  = '7.69';
 
 sub AUTOLOAD {
   my $self = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/t/mojo/request.t 
new/Mojolicious-7.69/t/mojo/request.t
--- old/Mojolicious-7.67/t/mojo/request.t       2018-02-19 00:42:58.000000000 
+0100
+++ new/Mojolicious-7.69/t/mojo/request.t       2018-02-22 20:03:59.000000000 
+0100
@@ -308,7 +308,7 @@
   is $req->content->progress, 0, 'right progress';
   $req->parse('GET /foo/bar/baz.html?fo');
   is $req->content->progress, 0, 'right progress';
-  $req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+  $req->parse("o=13 HTTP/1.0\x0d\x0aContent");
   $req->parse('-Type: text/');
   is $req->content->progress, 0, 'right progress';
   $req->parse("plain\x0d\x0aContent-Length: 27\x0d\x0a\x0d\x0aHell");
@@ -326,7 +326,7 @@
   ok $req->is_finished, 'request is finished';
   is $req->method,      'GET', 'right method';
   is $req->version,     '1.0', 'right version';
-  is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+  is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
   is $req->headers->content_type, 'text/plain', 'right "Content-Type" value';
   is $req->headers->content_length, 27, 'right "Content-Length" value';
 }
@@ -433,14 +433,14 @@
 my $body = '';
 $req->content->on(read => sub { $body .= pop });
 $req->parse('GET /foo/bar/baz.html?fo');
-$req->parse("o=13#23 HTTP/1.0\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0aContent");
 $req->parse('-Type: text/');
 $req->parse("plain\x0aContent-Length: 27\x0a\x0aH");
 $req->parse("ello World!\n1234\nlalalala\n");
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->headers->content_length, 27,           'right "Content-Length" value';
 is $req->body, "Hello World!\n1234\nlalalala\n", 'right content';
@@ -449,23 +449,23 @@
 # Parse full HTTP 1.0 request (no scheme and empty elements in path)
 $req = Mojo::Message::Request->new;
 $req->parse('GET //foo/bar//baz.html?fo');
-$req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0d\x0aContent");
 $req->parse('-Type: text/');
 $req->parse("plain\x0d\x0aContent-Length: 27\x0d\x0a\x0d\x0aHell");
 $req->parse("o World!\n1234\nlalalala\n");
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url->host, 'foo',            'no host';
-is $req->url->path, '/bar//baz.html', 'right path';
-is $req->url, '//foo/bar//baz.html?foo=13#23', 'right URL';
+is $req->url->host, undef, 'no host';
+is $req->url->path, '//foo/bar//baz.html', 'right path';
+is $req->url, '//foo/bar//baz.html?foo=13', 'right URL';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->headers->content_length, 27,           'right "Content-Length" value';
 
 # Parse full HTTP 1.0 request (behind reverse proxy)
 $req = Mojo::Message::Request->new;
 $req->parse('GET /foo/bar/baz.html?fo');
-$req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0d\x0aContent");
 $req->parse('-Type: text/');
 $req->parse("plain\x0d\x0aContent-Length: 27\x0d\x0a");
 $req->parse("Host: mojolicious.org\x0d\x0a");
@@ -474,8 +474,8 @@
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
-is $req->url->to_abs, 'http://mojolicious.org/foo/bar/baz.html?foo=13#23',
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
+is $req->url->to_abs, 'http://mojolicious.org/foo/bar/baz.html?foo=13',
   'right absolute URL';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->headers->content_length, 27,           'right "Content-Length" value';
@@ -485,7 +485,7 @@
 $finished = undef;
 $req->on(finish => sub { $finished = shift->is_finished });
 $req->parse('GET /foo/bar/baz.html?fo');
-$req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0d\x0aContent");
 $req->parse('-Type: text/');
 $req->parse("plain\x0d\x0aContent-Length: 27\x0d\x0a\x0d\x0aHell");
 $req->parse("o World!\n123");
@@ -495,14 +495,14 @@
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->headers->content_length, 27,           'right "Content-Length" value';
 
 # Parse full HTTP 1.0 request with UTF-8 form input
 $req = Mojo::Message::Request->new;
 $req->parse('GET /foo/bar/baz.html?fo');
-$req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0d\x0aContent");
 $req->parse('-Type: application/');
 $req->parse("x-www-form-urlencoded\x0d\x0aContent-Length: 14");
 $req->parse("\x0d\x0a\x0d\x0a");
@@ -510,7 +510,7 @@
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_type, 'application/x-www-form-urlencoded',
   'right "Content-Type" value';
 is $req->headers->content_length, 14, 'right "Content-Length" value';
@@ -538,7 +538,7 @@
 # Parse HTTP 1.1 chunked request
 $req = Mojo::Message::Request->new;
 is $req->content->progress, 0, 'right progress';
-$req->parse("POST /foo/bar/baz.html?foo=13#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13 HTTP/1.1\x0d\x0a");
 is $req->content->progress, 0, 'right progress';
 $req->parse("Content-Type: text/plain\x0d\x0a");
 $req->parse("Transfer-Encoding: chunked\x0d\x0a\x0d\x0a");
@@ -556,7 +556,7 @@
 ok $req->is_finished, 'request is finished';
 is $req->method,      'POST', 'right method';
 is $req->version,     '1.1', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_length, 13,           'right "Content-Length" value';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->content->asset->size, 13, 'right size';
@@ -572,8 +572,8 @@
   }
 );
 $req->content->unsubscribe('read')->on(read => sub { $buffer .= pop });
-$req->on(finish => sub { $finish .= shift->url->fragment });
-$req->parse("POST /foo/bar/baz.html?foo=13#23 HTTP/1.1\x0d\x0a");
+$req->on(finish => sub { $finish .= shift->url->query });
+$req->parse("POST /foo/bar/baz.html?foo=13 HTTP/1.1\x0d\x0a");
 is $progress, '', 'no progress';
 $req->parse("Content-Type: text/plain\x0d\x0a");
 is $progress, '', 'no progress';
@@ -585,26 +585,26 @@
 $req->parse("abcdefghi\x0d\x0a");
 is $finish, '', 'not finished yet';
 $req->parse("0\x0d\x0a\x0d\x0a");
-is $finish, '23', 'finished';
+is $finish,   'foo=13',            'finished';
 is $progress, '/foo/bar/baz.html', 'made progress';
 ok $req->is_finished, 'request is finished';
 is $req->method,      'POST', 'right method';
 is $req->version,     '1.1', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_length, 13,           'right "Content-Length" value';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $buffer, 'abcdabcdefghi', 'right content';
 
 # Parse HTTP 1.1 "application/x-www-form-urlencoded"
 $req = Mojo::Message::Request->new;
-$req->parse("POST /foo/bar/baz.html?foo=13#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Length: 25\x0d\x0a");
 $req->parse("Content-Type: application/x-www-form-urlencoded\x0d\x0a");
 $req->parse("\x0d\x0afoo=bar&+tset=23+&foo=bar");
 ok $req->is_finished, 'request is finished';
 is $req->method,      'POST', 'right method';
 is $req->version,     '1.1', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_type, 'application/x-www-form-urlencoded',
   'right "Content-Type" value';
 is $req->content->asset->size, 25, 'right size';
@@ -624,7 +624,7 @@
 
 # Parse HTTP 1.1 chunked request with trailing headers
 $req = Mojo::Message::Request->new;
-$req->parse("POST /foo/bar/baz.html?foo=13&bar=23#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13&bar=23 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Type: text/plain\x0d\x0a");
 $req->parse("Transfer-Encoding: whatever\x0d\x0a");
 $req->parse("Trailer: X-Trailer1; X-Trailer2\x0d\x0a\x0d\x0a");
@@ -638,7 +638,7 @@
 ok $req->is_finished,  'request is finished';
 is $req->method,       'POST', 'right method';
 is $req->version,      '1.1', 'right version';
-is $req->url,          '/foo/bar/baz.html?foo=13&bar=23#23', 'right URL';
+is $req->url,          '/foo/bar/baz.html?foo=13&bar=23', 'right URL';
 is $req->query_params, 'foo=13&bar=23', 'right parameters';
 is $req->headers->content_type, 'text/plain', 'right "Content-Type" value';
 is $req->headers->header('X-Trailer1'), 'test', 'right "X-Trailer1" value';
@@ -649,7 +649,7 @@
 
 # Parse HTTP 1.1 chunked request with trailing headers (different variation)
 $req = Mojo::Message::Request->new;
-$req->parse("POST /foo/bar/baz.html?foo=13&bar=23#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13&bar=23 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Type: text/plain\x0d\x0aTransfer-Enc");
 $req->parse("oding: chunked\x0d\x0a");
 $req->parse("Trailer: X-Trailer\x0d\x0a\x0d\x0a");
@@ -661,7 +661,7 @@
 ok $req->is_finished,  'request is finished';
 is $req->method,       'POST', 'right method';
 is $req->version,      '1.1', 'right version';
-is $req->url,          '/foo/bar/baz.html?foo=13&bar=23#23', 'right URL';
+is $req->url,          '/foo/bar/baz.html?foo=13&bar=23', 'right URL';
 is $req->query_params, 'foo=13&bar=23', 'right parameters';
 ok !defined $req->headers->transfer_encoding, 'no "Transfer-Encoding" value';
 is $req->headers->content_type, 'text/plain', 'right "Content-Type" value';
@@ -672,7 +672,7 @@
 
 # Parse HTTP 1.1 chunked request with trailing headers (different variation)
 $req = Mojo::Message::Request->new;
-$req->parse("POST /foo/bar/baz.html?foo=13&bar=23#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13&bar=23 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Type: text/plain\x0d\x0a");
 $req->parse("Transfer-Encoding: chunked\x0d\x0a");
 $req->parse("Trailer: X-Trailer1; X-Trailer2\x0d\x0a\x0d\x0a");
@@ -684,7 +684,7 @@
 ok $req->is_finished,  'request is finished';
 is $req->method,       'POST', 'right method';
 is $req->version,      '1.1', 'right version';
-is $req->url,          '/foo/bar/baz.html?foo=13&bar=23#23', 'right URL';
+is $req->url,          '/foo/bar/baz.html?foo=13&bar=23', 'right URL';
 is $req->query_params, 'foo=13&bar=23', 'right parameters';
 is $req->headers->content_type, 'text/plain', 'right "Content-Type" value';
 is $req->headers->header('X-Trailer1'), 'test', 'right "X-Trailer1" value';
@@ -695,7 +695,7 @@
 
 # Parse HTTP 1.1 chunked request with trailing headers (no Trailer header)
 $req = Mojo::Message::Request->new;
-$req->parse("POST /foo/bar/baz.html?foo=13&bar=23#23 HTTP/1.1\x0d\x0a");
+$req->parse("POST /foo/bar/baz.html?foo=13&bar=23 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Type: text/plain\x0d\x0a");
 $req->parse("Transfer-Encoding: chunked\x0d\x0a\x0d\x0a");
 $req->parse("4\x0d\x0a");
@@ -706,7 +706,7 @@
 ok $req->is_finished,  'request is finished';
 is $req->method,       'POST', 'right method';
 is $req->version,      '1.1', 'right version';
-is $req->url,          '/foo/bar/baz.html?foo=13&bar=23#23', 'right URL';
+is $req->url,          '/foo/bar/baz.html?foo=13&bar=23', 'right URL';
 is $req->query_params, 'foo=13&bar=23', 'right parameters';
 is $req->headers->content_type, 'text/plain', 'right "Content-Type" value';
 is $req->headers->header('X-Trailer1'), 'test', 'right "X-Trailer1" value';
@@ -718,7 +718,7 @@
 # Parse HTTP 1.1 multipart request
 $req = Mojo::Message::Request->new;
 is $req->content->progress, 0, 'right progress';
-$req->parse("GET /foo/bar/baz.html?foo13#23 HTTP/1.1\x0d\x0a");
+$req->parse("GET /foo/bar/baz.html?foo13 HTTP/1.1\x0d\x0a");
 is $req->content->progress, 0, 'right progress';
 $req->parse("Content-Length: 416\x0d\x0a");
 $req->parse('Content-Type: multipart/form-data; bo');
@@ -743,11 +743,11 @@
 is $req->content->progress, 416, 'right progress';
 ok $req->is_finished, 'request is finished';
 ok $req->content->is_multipart, 'multipart content';
-is $req->body,         '',                           'no content';
-is $req->method,       'GET',                        'right method';
-is $req->version,      '1.1',                        'right version';
-is $req->url,          '/foo/bar/baz.html?foo13#23', 'right URL';
-is $req->query_params, 'foo13',                      'right parameters';
+is $req->body,         '',                        'no content';
+is $req->method,       'GET',                     'right method';
+is $req->version,      '1.1',                     'right version';
+is $req->url,          '/foo/bar/baz.html?foo13', 'right URL';
+is $req->query_params, 'foo13',                   'right parameters';
 is $req->headers->content_type,
   'multipart/form-data; boundary=----------0xKhTmLbOuNdArY',
   'right "Content-Type" value';
@@ -788,7 +788,7 @@
     );
   }
 );
-$req->parse("GET /foo/bar/baz.html?foo13#23 HTTP/1.1\x0d\x0a");
+$req->parse("GET /foo/bar/baz.html?foo13 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Length: 562\x0d\x0a");
 $req->parse('Content-Type: multipart/form-data; bo');
 $req->parse("undary=----------0xKhTmLbOuNdArY\x0d\x0a\x0d\x0a");
@@ -812,11 +812,11 @@
 $req->parse("Bye!\x0d\x0a------------0xKhTmLbOuNdArY--");
 ok $req->is_finished, 'request is finished';
 ok $req->content->is_multipart, 'multipart content';
-is $req->body,         '',                           'no content';
-is $req->method,       'GET',                        'right method';
-is $req->version,      '1.1',                        'right version';
-is $req->url,          '/foo/bar/baz.html?foo13#23', 'right URL';
-is $req->query_params, 'foo13',                      'right parameters';
+is $req->body,         '',                        'no content';
+is $req->method,       'GET',                     'right method';
+is $req->version,      '1.1',                     'right version';
+is $req->url,          '/foo/bar/baz.html?foo13', 'right URL';
+is $req->query_params, 'foo13',                   'right parameters';
 is $req->headers->content_type,
   'multipart/form-data; boundary=----------0xKhTmLbOuNdArY',
   'right "Content-Type" value';
@@ -869,7 +869,7 @@
     );
   }
 );
-$req->parse("GET /foo/bar/baz.html?foo13#23 HTTP/1.1\x0d\x0a");
+$req->parse("GET /foo/bar/baz.html?foo13 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Length: 418\x0d\x0a");
 $req->parse('Content-Type: multipart/form-data; bo');
 $req->parse("undary=----------0xKhTmLbOuNdArY\x0d\x0a\x0d\x0a");
@@ -894,10 +894,10 @@
 $req->parse("\x0d\x0a------------0xKhTmLbOuNdArY--");
 ok $req->is_finished, 'request is finished';
 ok $req->content->is_multipart, 'multipart content';
-is $req->method,       'GET',                        'right method';
-is $req->version,      '1.1',                        'right version';
-is $req->url,          '/foo/bar/baz.html?foo13#23', 'right URL';
-is $req->query_params, 'foo13',                      'right parameters';
+is $req->method,       'GET',                     'right method';
+is $req->version,      '1.1',                     'right version';
+is $req->url,          '/foo/bar/baz.html?foo13', 'right URL';
+is $req->query_params, 'foo13',                   'right parameters';
 is $req->headers->content_type,
   'multipart/form-data; boundary=----------0xKhTmLbOuNdArY',
   'right "Content-Type" value';
@@ -918,7 +918,7 @@
 # Parse HTTP 1.1 multipart request (without upgrade)
 $req = Mojo::Message::Request->new;
 $req->content->auto_upgrade(0);
-$req->parse("GET /foo/bar/baz.html?foo13#23 HTTP/1.1\x0d\x0a");
+$req->parse("GET /foo/bar/baz.html?foo13 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Length: 418\x0d\x0a");
 $req->parse('Content-Type: multipart/form-data; bo');
 $req->parse("undary=----------0xKhTmLbOuNdArY\x0d\x0a\x0d\x0a");
@@ -938,10 +938,10 @@
 $req->parse("\x0d\x0a------------0xKhTmLbOuNdArY--");
 ok $req->is_finished, 'request is finished';
 ok !$req->content->is_multipart, 'no multipart content';
-is $req->method,       'GET',                        'right method';
-is $req->version,      '1.1',                        'right version';
-is $req->url,          '/foo/bar/baz.html?foo13#23', 'right URL';
-is $req->query_params, 'foo13',                      'right parameters';
+is $req->method,       'GET',                     'right method';
+is $req->version,      '1.1',                     'right version';
+is $req->url,          '/foo/bar/baz.html?foo13', 'right URL';
+is $req->query_params, 'foo13',                   'right parameters';
 is $req->headers->content_type,
   'multipart/form-data; boundary=----------0xKhTmLbOuNdArY',
   'right "Content-Type" value';
@@ -952,7 +952,7 @@
 
 # Parse HTTP 1.1 multipart request with "0" filename
 $req = Mojo::Message::Request->new;
-$req->parse("GET /foo/bar/baz.html?foo13#23 HTTP/1.1\x0d\x0a");
+$req->parse("GET /foo/bar/baz.html?foo13 HTTP/1.1\x0d\x0a");
 $req->parse("Content-Length: 410\x0d\x0a");
 $req->parse('Content-Type: multipart/form-data; bo');
 $req->parse("undary=----------0xKhTmLbOuNdArY\x0d\x0a\x0d\x0a");
@@ -972,10 +972,10 @@
 $req->parse("\x0d\x0a------------0xKhTmLbOuNdArY--");
 ok $req->is_finished, 'request is finished';
 ok $req->content->is_multipart, 'no multipart content';
-is $req->method,       'GET',                        'right method';
-is $req->version,      '1.1',                        'right version';
-is $req->url,          '/foo/bar/baz.html?foo13#23', 'right URL';
-is $req->query_params, 'foo13',                      'right parameters';
+is $req->method,       'GET',                     'right method';
+is $req->version,      '1.1',                     'right version';
+is $req->url,          '/foo/bar/baz.html?foo13', 'right URL';
+is $req->query_params, 'foo13',                   'right parameters';
 is $req->headers->content_type,
   'multipart/form-data; boundary=----------0xKhTmLbOuNdArY',
   'right "Content-Type" value';
@@ -994,7 +994,7 @@
 
 # Parse full HTTP 1.1 proxy request with basic authentication
 $req = Mojo::Message::Request->new;
-$req->parse("GET http://127.0.0.1/foo/bar HTTP/1.1\x0d\x0a");
+$req->parse("GET http://127.0.0.1/foo/bar#baz HTTP/1.1\x0d\x0a");
 $req->parse("Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\x0d\x0a");
 $req->parse("Host: 127.0.0.1\x0d\x0a");
 $req->parse("Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\x0d\x0a");
@@ -1652,7 +1652,7 @@
 is $counter, 1, 'right count';
 ok !$req->content->is_parsing_body, 'is not parsing body';
 ok !$req->is_finished, 'request is not finished';
-$req->parse("o=13#23 HTTP/1.0\x0d\x0aContent");
+$req->parse("o=13 HTTP/1.0\x0d\x0aContent");
 is $counter, 2, 'right count';
 ok !$req->content->is_parsing_body, 'is not parsing body';
 ok !$req->is_finished, 'request is not finished';
@@ -1683,7 +1683,7 @@
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.0', 'right version';
-is $req->url,         '/foo/bar/baz.html?foo=13#23', 'right URL';
+is $req->url,         '/foo/bar/baz.html?foo=13', 'right URL';
 is $req->headers->content_type,   'text/plain', 'right "Content-Type" value';
 is $req->headers->content_length, 27,           'right "Content-Length" value';
 my $cookies = $req->cookies;
@@ -2097,12 +2097,13 @@
 
 # Parse lots of special characters in URL
 $req = Mojo::Message::Request->new;
-$req->parse("GET /#09azAZ!\$%&'()*+,-./:;=?@[\\]^_`{|}~\xC3\x9F ");
+$req->parse("GET /09azAZ!\$%&'()*+,-./:;=?@[\\]^_`{|}~\xC3\x9F#abc ");
 $req->parse("HTTP/1.1\x0d\x0a\x0d\x0a");
 ok $req->is_finished, 'request is finished';
 is $req->method,      'GET', 'right method';
 is $req->version,     '1.1', 'right version';
-is $req->url, "/#09azAZ!\$%25&\'()*+,-./:;=?@%5B%5C%5D%5E_%60%7B%7C%7D~%C3%9F",
+is $req->url,
+  "/09azAZ!\$%&'()*+,-./:;=?@%5B%5C%5D%5E_%60%7B%7C%7D~%C3%83%C2%9F",
   'right URL';
 
 # Abstract methods
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/t/mojolicious/restful_lite_app.t 
new/Mojolicious-7.69/t/mojolicious/restful_lite_app.t
--- old/Mojolicious-7.67/t/mojolicious/restful_lite_app.t       2018-02-19 
00:43:16.000000000 +0100
+++ new/Mojolicious-7.69/t/mojolicious/restful_lite_app.t       2018-02-24 
18:32:59.000000000 +0100
@@ -477,21 +477,9 @@
   ->status_is(200)->content_type_is('application/xml')
   ->text_is(just => 'works');
 
-# Internet Explorer 8
-my $ie
-  = 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml'
-  . ', image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash'
-  . ', application/msword, */*';
-$t->get_ok('/rest.html' => {Accept => $ie})->status_is(200)
-  ->content_type_is('text/html;charset=UTF-8')->text_is('html > body', 
'works');
-
-# Internet Explorer 8 with query
-$t->get_ok('/rest?format=html' => {Accept => $ie})->status_is(200)
-  ->content_type_is('text/html;charset=UTF-8')->text_is('html > body', 
'works');
-
-# Chrome 11
-my $chrome = 'application/xml,application/xhtml+xml,text/html;q=0.9'
-  . ',text/plain;q=0.8,image/png,*/*;q=0.5';
+# Chrome 64
+my $chrome = 'text/html,application/xhtml+xml,application/xml;q=0.9'
+  . ',image/webp,image/apng,*/*;q=0.8';
 $t->get_ok('/rest.html' => {Accept => $chrome})->status_is(200)
   ->content_type_is('text/html;charset=UTF-8')->text_is('html > body', 
'works');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.67/t/mojolicious/types.t 
new/Mojolicious-7.69/t/mojolicious/types.t
--- old/Mojolicious-7.67/t/mojolicious/types.t  2018-02-19 00:43:07.000000000 
+0100
+++ new/Mojolicious-7.69/t/mojolicious/types.t  2018-02-24 18:36:25.000000000 
+0100
@@ -46,11 +46,6 @@
 is_deeply $t->detect('TEXT/XML'),        ['xml'], 'right formats';
 is_deeply $t->detect('text/html;q=0.9'), ['htm', 'html'], 'right formats';
 is_deeply $t->detect('TEXT/HTML;Q=0.9'), ['htm', 'html'], 'right formats';
-is_deeply $t->detect('text/html,*/*'),             [], 'no formats';
-is_deeply $t->detect('text/html;q=0.9,*/*'),       [], 'no formats';
-is_deeply $t->detect('text/html,*/*;q=0.9'),       [], 'no formats';
-is_deeply $t->detect('text/html;q=0.8,*/*;q=0.9'), [], 'no formats';
-is_deeply $t->detect('TEXT/HTML;Q=0.8,*/*;Q=0.9'), [], 'no formats';
 
 # Alternatives
 $t->type(json => ['application/json', 'text/x-json']);
@@ -69,19 +64,19 @@
 is $t->type('html'), 'text/html;charset=UTF-8', 'right type';
 
 # Prioritize
-is_deeply $t->detect('text/plain', 1), ['txt'], 'right formats';
-is_deeply $t->detect('text/plain,text/html', 1), ['htm', 'html', 'txt'],
+is_deeply $t->detect('text/plain'), ['txt'], 'right formats';
+is_deeply $t->detect('text/plain,text/html'), ['htm', 'html', 'txt'],
   'right formats';
-is_deeply $t->detect('TEXT/HTML; q=0.8 ', 1), ['htm', 'html'], 'right formats';
-is_deeply $t->detect('TEXT/HTML  ;  q  =  0.8 ', 1), ['htm', 'html'],
+is_deeply $t->detect('TEXT/HTML; q=0.8 '), ['htm', 'html'], 'right formats';
+is_deeply $t->detect('TEXT/HTML  ;  q  =  0.8 '), ['htm', 'html'],
   'right formats';
-is_deeply $t->detect('TEXT/HTML;Q=0.8,text/plain;Q=0.9', 1),
+is_deeply $t->detect('TEXT/HTML;Q=0.8,text/plain;Q=0.9'),
   ['txt', 'htm', 'html'], 'right formats';
-is_deeply $t->detect(' TEXT/HTML , text/plain;Q=0.9', 1),
-  ['htm', 'html', 'txt'], 'right formats';
-is_deeply $t->detect('text/plain;q=0.5, text/xml, application/xml;q=0.1', 1),
+is_deeply $t->detect(' TEXT/HTML , text/plain;Q=0.9'), ['htm', 'html', 'txt'],
+  'right formats';
+is_deeply $t->detect('text/plain;q=0.5, text/xml, application/xml;q=0.1'),
   ['xml', 'txt', 'xml'], 'right formats';
-is_deeply $t->detect('application/json, text/javascript, */*; q=0.01', 1),
+is_deeply $t->detect('application/json, text/javascript, */*; q=0.01'),
   ['json'], 'right formats';
 
 done_testing();


Reply via email to