Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Mojolicious for
openSUSE:Factory checked in at 2023-01-04 17:54:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious"
Wed Jan 4 17:54:29 2023 rev:170 rq:1055923 version:9.31
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes
2022-11-24 12:24:10.837660292 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Mojolicious.new.1563/perl-Mojolicious.changes
2023-01-04 17:55:05.127059617 +0100
@@ -1,0 +2,15 @@
+Wed Dec 21 03:08:08 UTC 2022 - Tina Müller <[email protected]>
+
+- updated to 9.31
+ see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+ 9.31 2022-12-21
+ - This release contains fixes for security issues, everybody should
upgrade!
+ - Removed experimental status from links method in Mojo::Headers.
+ - Added tls_options attribute to Mojo::UserAgent. (heikojansen)
+ - Fixed multiple "<script>" parsing issues in Mojo::DOM.
+ - Fixed a sporadic warning in Mojo::UserAgent. (s1037989)
+ - Fixed UNIX domain socket support in Mojo::UserAgent debug feature.
(s1037989)
+ - Fixed a bug in Mojo::DOM where strings like "<.>" were considered valid
tags.
+
+-------------------------------------------------------------------
Old:
----
Mojolicious-9.30.tar.gz
New:
----
Mojolicious-9.31.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.6K33zG/_old 2023-01-04 17:55:05.595062375 +0100
+++ /var/tmp/diff_new_pack.6K33zG/_new 2023-01-04 17:55:05.603062422 +0100
@@ -18,7 +18,7 @@
%define cpan_name Mojolicious
Name: perl-Mojolicious
-Version: 9.30
+Version: 9.31
Release: 0
License: Artistic-2.0
Summary: Real-time web framework
++++++ Mojolicious-9.30.tar.gz -> Mojolicious-9.31.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/Changes new/Mojolicious-9.31/Changes
--- old/Mojolicious-9.30/Changes 2022-11-23 01:43:59.000000000 +0100
+++ new/Mojolicious-9.31/Changes 2022-12-21 01:34:34.000000000 +0100
@@ -1,4 +1,13 @@
+9.31 2022-12-21
+ - This release contains fixes for security issues, everybody should upgrade!
+ - Removed experimental status from links method in Mojo::Headers.
+ - Added tls_options attribute to Mojo::UserAgent. (heikojansen)
+ - Fixed multiple "<script>" parsing issues in Mojo::DOM.
+ - Fixed a sporadic warning in Mojo::UserAgent. (s1037989)
+ - Fixed UNIX domain socket support in Mojo::UserAgent debug feature.
(s1037989)
+ - Fixed a bug in Mojo::DOM where strings like "<.>" were considered valid
tags.
+
9.30 2022-11-22
- Added EXPERIMENTAL support for parsing and generating Link headers.
- Added EXPERIMENTAL links method to Mojo::Headers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/META.json
new/Mojolicious-9.31/META.json
--- old/Mojolicious-9.30/META.json 2022-11-23 12:51:45.000000000 +0100
+++ new/Mojolicious-9.31/META.json 2022-12-21 01:35:27.000000000 +0100
@@ -64,6 +64,6 @@
"web" : "https://web.libera.chat/#mojo"
}
},
- "version" : "9.30",
+ "version" : "9.31",
"x_serialization_backend" : "JSON::PP version 4.07"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/META.yml
new/Mojolicious-9.31/META.yml
--- old/Mojolicious-9.30/META.yml 2022-11-23 12:51:45.000000000 +0100
+++ new/Mojolicious-9.31/META.yml 2022-12-21 01:35:27.000000000 +0100
@@ -35,5 +35,5 @@
homepage: https://mojolicious.org
license: http://www.opensource.org/licenses/artistic-license-2.0
repository: https://github.com/mojolicious/mojo.git
-version: '9.30'
+version: '9.31'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojo/DOM/HTML.pm
new/Mojolicious-9.31/lib/Mojo/DOM/HTML.pm
--- old/Mojolicious-9.30/lib/Mojo/DOM/HTML.pm 2022-11-11 19:49:41.000000000
+0100
+++ new/Mojolicious-9.31/lib/Mojo/DOM/HTML.pm 2022-12-10 23:30:45.000000000
+0100
@@ -11,7 +11,7 @@
has 'xml';
my $ATTR_RE = qr/
- ([^<>=\s\/]+|\/) # Key
+ ([^<>=\s\/0-9.\-][^<>=\s\/]*|\/) # Key
(?:
\s*=\s*
(?s:(["'])(.*?)\g{-2}|([^>\s]*)) # Value
@@ -19,27 +19,27 @@
\s*
/x;
my $TOKEN_RE = qr/
- ([^<]+)? # Text
+ ([^<]+)?
# Text
(?:
<(?:
!(?:
DOCTYPE(
- \s+\w+ # Doctype
- (?:(?:\s+\w+)?(?:\s+(?:"[^"]*"|'[^']*'))+)? # External ID
- (?:\s+\[.+?\])? # Int Subset
+ \s+\w+
# Doctype
+ (?:(?:\s+\w+)?(?:\s+(?:"[^"]*"|'[^']*'))+)?
# External ID
+ (?:\s+\[.+?\])?
# Int Subset
\s*)
|
- --(.*?)--\s* # Comment
+ --(.*?)--\s*
# Comment
|
- \[CDATA\[(.*?)\]\] # CDATA
+ \[CDATA\[(.*?)\]\]
# CDATA
)
|
- \?(.*?)\? # Processing Instruction
+ \?(.*?)\?
# Processing Instruction
|
- \s*([^<>\s]+\s*(?:(?:$ATTR_RE){0,32766})*+) # Tag
+ \s*((?:\/\s*)?[^<>\s\/0-9.\-][^<>\s\/]*\s*(?:(?:$ATTR_RE){0,32766})*+)
# Tag
)>
|
- (<) # Runaway "<"
+ (<)
# Runaway "<"
)??
/xis;
@@ -117,7 +117,7 @@
# No more content
if (!$xml && (my $tags = $NO_MORE_CONTENT{$end})) { _end($_, $xml,
\$current) for @$tags }
- _end($xml ? $1 : lc $1, $xml, \$current);
+ _end($end, $xml, \$current);
}
# Start
@@ -144,7 +144,7 @@
# Raw text elements
next if $xml || !$RAW{$start} && !$RCDATA{$start};
- next unless $html =~ m!\G(.*?)<\s*/\s*\Q$start\E\s*>!gcsi;
+ next unless $html =~ m!\G(.*?)</\Q$start\E(?:\s+|\s*>)!gcsi;
_node($current, 'raw', $RCDATA{$start} ? html_unescape $1 : $1);
_end($start, 0, \$current);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojo/Headers.pm
new/Mojolicious-9.31/lib/Mojo/Headers.pm
--- old/Mojolicious-9.30/lib/Mojo/Headers.pm 2022-11-23 01:11:08.000000000
+0100
+++ new/Mojolicious-9.31/lib/Mojo/Headers.pm 2022-11-25 14:10:10.000000000
+0100
@@ -527,8 +527,7 @@
my $links = $headers->links;
$headers = $headers->links({next => 'http://example.com/foo', prev =>
'http://example.com/bar'});
-Get or set web links from or to C<Link> header according to L<RFC
5988|http://tools.ietf.org/html/rfc5988>. Note that
-this method is B<EXPERIMENTAL> and might change without warning!
+Get or set web links from or to C<Link> header according to L<RFC
5988|http://tools.ietf.org/html/rfc5988>.
# Extract information about next page
say $headers->links->{next}{link};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojo/Server/Daemon.pm
new/Mojolicious-9.31/lib/Mojo/Server/Daemon.pm
--- old/Mojolicious-9.30/lib/Mojo/Server/Daemon.pm 2022-06-14
13:31:51.000000000 +0200
+++ new/Mojolicious-9.31/lib/Mojo/Server/Daemon.pm 2022-12-10
18:55:56.000000000 +0100
@@ -194,7 +194,7 @@
my ($loop, $stream, $id) = @_;
$self->{connections}{$id} = {tls => $tls};
- warn "-- Accept $id (@{[$stream->handle->peerhost]})\n" if DEBUG;
+ warn "-- Accept $id (@{[_peer($stream->handle)]})\n" if DEBUG;
$stream->timeout($self->inactivity_timeout);
$stream->on(close => sub { $self && $self->_close($id) });
@@ -212,6 +212,8 @@
say 'Web application available at ', $options->{path} // $url;
}
+sub _peer { $_[0]->isa('IO::Socket::UNIX') ? $_[0]->peerpath : $_[0]->peerhost
}
+
sub _read {
my ($self, $id, $chunk) = @_;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojo/UserAgent.pm
new/Mojolicious-9.31/lib/Mojo/UserAgent.pm
--- old/Mojolicious-9.30/lib/Mojo/UserAgent.pm 2022-06-14 13:31:51.000000000
+0200
+++ new/Mojolicious-9.31/lib/Mojo/UserAgent.pm 2022-12-21 01:30:36.000000000
+0100
@@ -21,15 +21,15 @@
has inactivity_timeout => sub { $ENV{MOJO_INACTIVITY_TIMEOUT} // 40 };
has insecure => sub { $ENV{MOJO_INSECURE} };
has 'max_response_size';
-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 };
-has request_timeout => sub { $ENV{MOJO_REQUEST_TIMEOUT} // 0 };
-has server => sub { Mojo::UserAgent::Server->new(ioloop =>
shift->ioloop) };
-has socket_options => sub { {} };
-has transactor => sub { Mojo::UserAgent::Transactor->new };
+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 };
+has request_timeout => sub { $ENV{MOJO_REQUEST_TIMEOUT} // 0
};
+has server => sub {
Mojo::UserAgent::Server->new(ioloop => shift->ioloop) };
+has [qw(socket_options tls_options)] => sub { {} };
+has transactor => sub { Mojo::UserAgent::Transactor->new
};
# Common HTTP methods
for my $name (qw(DELETE GET HEAD OPTIONS PATCH POST PUT)) {
@@ -116,6 +116,7 @@
# TLS
if ($options{tls} = $proto eq 'https') {
map { $options{"tls_$_"} = $self->$_ } qw(ca cert key);
+ $options{tls_options} = $self->tls_options;
$options{tls_options}{SSL_verify_mode} = 0x00 if $self->insecure;
}
@@ -286,6 +287,7 @@
sub _remove {
my ($self, $id) = @_;
my $c = delete $self->{connections}{$id};
+ return unless $c->{ioloop};
$self->_dequeue($c->{ioloop}, $id);
$c->{ioloop}->remove($id);
}
@@ -648,6 +650,13 @@
Additional options for L<IO::Socket::IP> when opening new connections.
+=head2 tls_options
+
+ my $options = $ua->tls_options;
+ $ua = $ua->tls_options({SSL_cipher_list =>
'DEFAULT:!DH@SECLEVEL=1'});
+
+Additional options for L<IO::Socket::SSL> when opening new connections.
+
=head2 transactor
my $t = $ua->transactor;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojolicious/Guides/Cookbook.pod
new/Mojolicious-9.31/lib/Mojolicious/Guides/Cookbook.pod
--- old/Mojolicious-9.30/lib/Mojolicious/Guides/Cookbook.pod 2022-06-14
13:31:51.000000000 +0200
+++ new/Mojolicious-9.31/lib/Mojolicious/Guides/Cookbook.pod 2022-12-10
18:55:56.000000000 +0100
@@ -1460,7 +1460,7 @@
# Open WebSocket to echo service
my $ua = Mojo::UserAgent->new;
- $ua->websocket_p('ws://echo.websocket.org')->then(sub ($tx) {
+ $ua->websocket_p('wss://ws.postman-echo.com/raw')->then(sub ($tx) {
# Prepare a followup promise so we can wait for messages
my $promise = Mojo::Promise->new;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Mojolicious-9.30/lib/Mojolicious/resources/templates/mojo/debug.html.ep
new/Mojolicious-9.31/lib/Mojolicious/resources/templates/mojo/debug.html.ep
--- old/Mojolicious-9.30/lib/Mojolicious/resources/templates/mojo/debug.html.ep
2022-06-20 20:05:27.000000000 +0200
+++ new/Mojolicious-9.31/lib/Mojolicious/resources/templates/mojo/debug.html.ep
2022-12-18 20:20:49.000000000 +0100
@@ -66,7 +66,7 @@
<a class="dropdown-item"
href="https://matrix.to/#/#mojo:matrix.org">Matrix</a>
<a class="dropdown-item"
href="https://web.libera.chat/#mojo">IRC</a>
<a class="dropdown-item"
href="https://forum.mojolicious.org">Forum</a>
- <a class="dropdown-item"
href="https://twitter.com/mojolicious_org">Twitter</a>
+ <a class="dropdown-item"
href="https://fosstodon.org/@mojolicious">Mastodon</a>
<a class="dropdown-item"
href="https://www.linkedin.com/groups/8963713/">LinkedIn</a>
<a class="dropdown-item"
href="https://github.com/mojolicious/mojo/wiki">Wiki</a>
<a class="dropdown-item"
href="https://metacpan.org/release/Mojolicious/">CPAN</a>
@@ -311,7 +311,7 @@
</div>
<div class="col-sm align-self-center text-center mojo-social">
<a alt="GitHub" href="https://github.com/mojolicious/mojo"><i
class="fab fa-github-alt"></i></a>
- <a alt="Twitter" href="https://twitter.com/mojolicious_org"><i
class="fab fa-twitter"></i></a>
+ <a alt="Mastodon" href="https://fosstodon.org/@mojolicious"><i
class="fab fa-mastodon"></i></a>
<a alt="LinkedIn"
href="https://www.linkedin.com/groups/8963713/"><i class="fab
fa-linkedin"></i></a>
</div>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/lib/Mojolicious.pm
new/Mojolicious-9.31/lib/Mojolicious.pm
--- old/Mojolicious-9.30/lib/Mojolicious.pm 2022-11-11 11:15:58.000000000
+0100
+++ new/Mojolicious-9.31/lib/Mojolicious.pm 2022-12-21 01:30:55.000000000
+0100
@@ -57,7 +57,7 @@
has validator => sub { Mojolicious::Validator->new };
our $CODENAME = 'Waffle';
-our $VERSION = '9.30';
+our $VERSION = '9.31';
sub BUILD_DYNAMIC {
my ($class, $method, $dyn_methods) = @_;
@@ -978,6 +978,8 @@
Graham Knop
+Heiko Jansen
+
Henry Tang
Hideki Yamamura
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/t/mojo/dom.t
new/Mojolicious-9.31/t/mojo/dom.t
--- old/Mojolicious-9.30/t/mojo/dom.t 2022-06-14 13:31:51.000000000 +0200
+++ new/Mojolicious-9.31/t/mojo/dom.t 2022-12-10 23:30:41.000000000 +0100
@@ -1772,7 +1772,7 @@
alert('<123>');
}
</script>
- < sCriPt two="23" >if (b > c) { alert('&<ohoh>') }< / scRiPt >
+ < sCriPt two="23" >if (b > c) { alert('&<ohoh>') }</scRiPt >
<body>Foo!</body>
EOF
is $dom->find('html > body')->[0]->text, 'Foo!',
'right text';
@@ -3001,6 +3001,94 @@
is $dom->at(':scope:first-child'), undef, 'no
result';
};
+subtest 'Runaway "<"' => sub {
+ my $dom = Mojo::DOM->new(<<EOF);
+ <table>
+ <tr>
+ <td>
+ <div class="test" data-id="123" data-score="3">works</div>
+ TEST 123<br />
+ Test 12-34-5 test >= 75% and < 85% test<br />
+ Test 12-34-5 -test foo >= 5% and < 30% test<br />
+ Test 12-23-4 n/a >=13% and = 1% and < 5% test tset<br />
+ Test 12-34-5 test >= 1% and < 5% foo, bar, baz<br />
+ Test foo, bar, baz 123-456-78 test < 1% foo, bar, baz yada, foo,
bar and baz, yada
+ </td>
+ </tr>
+ </table>
+EOF
+ is $dom->at('.test')->text, 'works', 'right text';
+};
+
+subtest 'XML name characters' => sub {
+ my $dom = Mojo::DOM->new->xml(1)->parse('<Foo><1a>foo</1a></Foo>');
+ is $dom->at('Foo')->text, '<1a>foo</1a>', 'right
text';
+ is "$dom", '<Foo><1a>foo</1a></Foo>', 'right
result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<Foo><.a>foo</.a></Foo>');
+ is $dom->at('Foo')->text, '<.a>foo</.a>', 'right
text';
+ is "$dom", '<Foo><.a>foo</.a></Foo>', 'right
result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<Foo><.>foo</.></Foo>');
+ is $dom->at('Foo')->text, '<.>foo</.>', 'right text';
+ is "$dom", '<Foo><.>foo</.></Foo>', 'right
result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<Foo><-a>foo</-a></Foo>');
+ is $dom->at('Foo')->text, '<-a>foo</-a>', 'right
text';
+ is "$dom", '<Foo><-a>foo</-a></Foo>', 'right
result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<Foo><a1>foo</a1></Foo>');
+ is $dom->at('Foo a1')->text, 'foo', 'right text';
+ is "$dom", '<Foo><a1>foo</a1></Foo>', 'right result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<Foo><a .b -c 1>foo</a></Foo>');
+ is $dom->at('Foo')->text, '<a .b -c 1>foo', 'right text';
+ is "$dom", '<Foo><a .b -c 1>foo</Foo>', 'right result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<ð ð="ð">foo</ð>');
+ is $dom->at('ð')->text, 'foo', 'right text';
+ is "$dom", '<ð ð="ð">foo</ð>', 'right result';
+
+ $dom = Mojo::DOM->new->xml(1)->parse('<ããã«ã¡ã¯
ããã«ã¡ã¯="ããã«ã¡ã¯">foo</ããã«ã¡ã¯>');
+ is $dom->at('ããã«ã¡ã¯')->text, 'foo',
'right text';
+ is "$dom", '<ããã«ã¡ã¯
ããã«ã¡ã¯="ããã«ã¡ã¯">foo</ããã«ã¡ã¯>', 'right result';
+};
+
+subtest 'Script end tags' => sub {
+ my $dom = Mojo::DOM->new(<<EOF);
+ <!DOCTYPE html>
+ <h1>Welcome to HTML</h1>
+ <script>
+ console.log('< /script> is safe');
+ /* <div>XXX this is not a div element</div> */
+ </script>
+EOF
+ like $dom->at('script')->text, qr/console\.log.+< \/script>.+this is not a
div element/s, 'right text';
+
+ $dom = Mojo::DOM->new(<<EOF);
+ <!DOCTYPE html>
+ <h1>Welcome to HTML</h1>
+ <script>
+ console.log('this is a script element and should be executed');
+ // </script asdf> <p>
+ console.log('this is not a script');
+ // <span data-wtf="</script>">:-)</span>
+EOF
+ like $dom->at('script')->text, qr/console\.log.+executed.+\/\//s,
'right text';
+ like $dom->at('p')->text, qr/console\.log.+this is not a script/s,
'right text';
+ is $dom->at('span')->text, ':-)', 'right text';
+
+ $dom = Mojo::DOM->new(<<EOF);
+ <!DOCTYPE html>
+ <h1>Welcome to HTML</h1>
+ <div>
+ <script> console.log('</scriptxyz is safe'); </script>
+ </div>
+EOF
+ like $dom->at('script')->text, qr/console\.log.+scriptxyz is safe/s, 'right
text';
+ like $dom->at('div')->text, qr/^\s+$/s, 'right
text';
+};
+
subtest 'Unknown CSS selector' => sub {
my $dom =
Mojo::DOM->new('<html><head></head><body><div><div>x</div></div></body></html>');
eval { $dom->at('div[') };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/t/mojo/user_agent_tls.t
new/Mojolicious-9.31/t/mojo/user_agent_tls.t
--- old/Mojolicious-9.30/t/mojo/user_agent_tls.t 2022-06-14
13:31:51.000000000 +0200
+++ new/Mojolicious-9.31/t/mojo/user_agent_tls.t 2022-12-21
01:30:36.000000000 +0100
@@ -98,4 +98,28 @@
is $ua->ioloop->stream($tx->connection)->handle->get_sslversion, 'TLSv1',
'TLSv1 has been negotiatied';
};
+subtest 'Client side TLS options' => sub {
+ my $daemon = Mojo::Server::Daemon->new(app => app, ioloop =>
Mojo::IOLoop->singleton, silent => 1);
+ my $listen = 'https://127.0.0.1/?version=TLSv1_1';
+ my $port = $daemon->listen([$listen])->start->ports->[0];
+
+ subtest '(Not) setting verification mode' => sub {
+ my $ua = Mojo::UserAgent->new(ioloop => Mojo::IOLoop->singleton);
+ my $tx = $ua->get("https://127.0.0.1:$port");
+ like $tx->error->{message}, qr/certificate verify failed/, 'has error';
+
+ $ua = Mojo::UserAgent->new(ioloop => Mojo::IOLoop->singleton);
+ $ua->tls_options({SSL_verify_mode => 0x00});
+ $tx = $ua->get("https://127.0.0.1:$port");
+ ok !$tx->error, 'no error';
+ };
+
+ subtest 'Setting acceptable protocol version' => sub {
+ my $ua = Mojo::UserAgent->new(ioloop => Mojo::IOLoop->singleton);
+ $ua->tls_options({SSL_version => 'TLSv1_2'});
+ my $tx = $ua->get("https://127.0.0.1:$port");
+ like $tx->error->{message}, qr/wrong ssl version/, 'has error';
+ };
+};
+
done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Mojolicious-9.30/t/mojolicious/ojo.t
new/Mojolicious-9.31/t/mojolicious/ojo.t
--- old/Mojolicious-9.30/t/mojolicious/ojo.t 2022-06-14 13:31:51.000000000
+0200
+++ new/Mojolicious-9.31/t/mojolicious/ojo.t 2022-11-25 22:24:20.000000000
+0100
@@ -33,7 +33,7 @@
};
subtest 'Parse XML' => sub {
- is x('<title>works</title>')->at('title')->text, 'works', 'right text';
+ is x ('<title>works</title>')->at('title')->text, 'works', 'right text';
};
subtest 'JSON' => sub {