Mercurial > prosody-modules
view mod_lib_ldap/dev/t/01-rosters.t @ 5213:dc0f502c12f1
mod_http_oauth2: Fix authorization code logic
I have no idea what it did before or if it even worked.
RFC 6749 section 4.1.2 says:
> A maximum authorization code lifetime of 10 minutes is RECOMMENDED.
So this should prevent use of codes older than 10 minutes and remove
them from the cache some time after they expire.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 06 Mar 2023 16:49:43 +0100 |
parents | 1d51c5e38faa |
children |
line wrap: on
line source
use strict; use warnings; use lib 't'; use AnyEvent::XMPP::Util qw(split_jid); use TestConnection; use Test::More; sub test_roster { my ( $username, $expected_contacts ) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; my @contacts; my $conn = TestConnection->new($username); $conn->reg_cb(roster_update => sub { my ( undef, $roster ) = @_; @contacts = sort { $a->{'username'} cmp $b->{'username'} } map { +{ username => (split_jid($_->jid))[0], name => $_->name, groups => [ sort $_->groups ], subscription => $_->subscription, } } $roster->get_contacts; $conn->cond->send; }); my $error = $conn->cond->recv; if($error) { fail($error); return; } @$expected_contacts = sort { $a->{'username'} cmp $b->{'username'} } @$expected_contacts; foreach my $contact (@$expected_contacts) { $contact->{'subscription'} = 'both'; @{ $contact->{'groups'} } = sort @{ $contact->{'groups'} }; } is_deeply(\@contacts, $expected_contacts); } plan tests => 5; test_roster(one => [{ username => 'two', name => 'Jane Testerson', groups => ['everyone', 'admin'], }, { username => 'three', name => 'Jerry Testerson', groups => ['everyone'], }, { username => 'four', name => 'Jack Testerson', groups => ['everyone'], }, { username => 'five', name => 'Jimmy Testerson', groups => ['everyone'], }]); test_roster(two => [{ username => 'one', name => 'John Testerson', groups => ['everyone', 'admin'], }, { username => 'three', name => 'Jerry Testerson', groups => ['everyone'], }, { username => 'four', name => 'Jack Testerson', groups => ['everyone'], }, { username => 'five', name => 'Jimmy Testerson', groups => ['everyone'], }]); test_roster(three => [{ username => 'one', name => 'John Testerson', groups => ['everyone'], }, { username => 'two', name => 'Jane Testerson', groups => ['everyone'], }, { username => 'four', name => 'Jack Testerson', groups => ['everyone'], }, { username => 'five', name => 'Jimmy Testerson', groups => ['everyone'], }]); test_roster(four => [{ username => 'one', name => 'John Testerson', groups => ['everyone'], }, { username => 'two', name => 'Jane Testerson', groups => ['everyone'], }, { username => 'three', name => 'Jerry Testerson', groups => ['everyone'], }, { username => 'five', name => 'Jimmy Testerson', groups => ['everyone'], }]); test_roster(five => [{ username => 'one', name => 'John Testerson', groups => ['everyone'], }, { username => 'two', name => 'Jane Testerson', groups => ['everyone'], }, { username => 'three', name => 'Jerry Testerson', groups => ['everyone'], }, { username => 'four', name => 'Jack Testerson', groups => ['everyone'], }]);