annotate mail_oauth.t @ 1999:15f538440a77 default tip

Tests: adjusted proxy_cache_use_stale.t cache validity. At least the "s-w-r - updating stale" test sometimes fails on slow hosts due to "stale-while-revalidate=4" being not enough, so the request returns with the EXPIRED cache status instead of STALE. Fix is to use larger "stale-while-revalidate=" times where it is not significant.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 09 Aug 2024 18:37:25 +0300
parents 099c972fb42b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1985
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for mail module, XOAUTH2 and OAUTHBEARER authentication.
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 use MIME::Base64;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15 use Socket qw/ CRLF /;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 use lib 'lib';
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20 use Test::Nginx;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 use Test::Nginx::IMAP;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 use Test::Nginx::POP3;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23 use Test::Nginx::SMTP;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ###############################################################################
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 select STDERR; $| = 1;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 select STDOUT; $| = 1;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 local $SIG{PIPE} = 'IGNORE';
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 my $t = Test::Nginx->new()->has(qw/mail imap pop3 smtp http map rewrite/)
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 ->write_file_expand('nginx.conf', <<'EOF');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS%%
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 daemon off;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 events {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 mail {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 proxy_pass_error_message on;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 proxy_timeout 15s;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 timeout 2s;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 auth_http http://127.0.0.1:8080/mail/auth;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 server {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 listen 127.0.0.1:8143;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 protocol imap;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 imap_auth plain oauthbearer xoauth2;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 server {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 listen 127.0.0.1:8110;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 protocol pop3;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 pop3_auth plain oauthbearer xoauth2;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 server {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 listen 127.0.0.1:8025;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 protocol smtp;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 smtp_auth plain oauthbearer xoauth2;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 http {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 %%TEST_GLOBALS_HTTP%%
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67
1996
099c972fb42b Tests: fixed mail_oauth.t to run with CPU cache line size 32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1985
diff changeset
68 map_hash_bucket_size 64;
099c972fb42b Tests: fixed mail_oauth.t to run with CPU cache line size 32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1985
diff changeset
69
1985
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 map $http_auth_protocol $proxy_port {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 imap %%PORT_8144%%;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 pop3 %%PORT_8111%%;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 smtp %%PORT_8026%%;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 map $http_auth_user:$http_auth_pass $reply {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 test@example.com:secretok OK;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 test=,@example.com:secretok OK;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 default auth-failed;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 map $http_auth_pass $passw {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 secretok secret;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 map $http_auth_pass $sasl {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 saslfail "eyJzY2hlbWVzIjoiQmVhcmVyIiwic3RhdHVzIjoiNDAwIn0=";
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 server {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 listen 127.0.0.1:8080;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 server_name localhost;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 location = /mail/auth {
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95 add_header Auth-Status $reply;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 add_header Auth-Server 127.0.0.1;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 add_header Auth-Port $proxy_port;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 add_header Auth-Pass $passw;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 add_header Auth-Wait 1;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 add_header Auth-Error-SASL $sasl;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 return 204;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 }
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 EOF
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 $t->run_daemon(\&Test::Nginx::IMAP::imap_test_daemon);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 $t->run_daemon(\&Test::Nginx::POP3::pop3_test_daemon);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 $t->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 $t->try_run('no oauth support')->plan(48);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 $t->waitforsocket('127.0.0.1:' . port(8144));
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 $t->waitforsocket('127.0.0.1:' . port(8111));
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 $t->waitforsocket('127.0.0.1:' . port(8026));
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 ###############################################################################
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 # AUTHBEARER SASL mechanism
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 # https://datatracker.ietf.org/doc/html/rfc7628
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122 # XOAUTH2 SASL mechanism
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 # https://developers.google.com/gmail/imap/xoauth2-protocol
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125 my $s;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126 my $token = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 "n,a=test\@example.com,\001auth=Bearer secretok\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128 my $token_escaped = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 "n,a=test=3D=2C\@example.com,\001auth=Bearer secretok\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130 my $token_saslfail = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 "n,a=test\@example.com,\001auth=Bearer saslfail\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 my $token_bad = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133 "n,a=test\@example.com,\001auth=Bearer bad\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 my $token_xoauth2 = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 "user=test\@example.com\001auth=Bearer secretok\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137 my $token_xoauth2_saslfail = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 "user=test\@example.com\001auth=Bearer saslfail\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139 my $token_xoauth2_bad = encode_base64(
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 "user=test\@example.com\001auth=Bearer bad\001\001", '');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142 # IMAP
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 $s->ok('imap oauthbearer success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_escaped);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152 $s->ok('imap oauthbearer escaped login');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
154 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
156 $s->send('1 AUTHENTICATE OAUTHBEARER');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157 $s->check(qr/\+ /, 'imap oauthbearer challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 $s->send($token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159 $s->ok('imap oauthbearer success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
162 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
163 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_bad);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
164 $s->check(qr/^1 NO auth-failed/, 'imap oauthbearer non-sasl error');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166 sleep(3);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168 my @ready = $s->can_read(0);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
169 is(scalar @ready, 1, "imap ready for reading");
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
170 ok($s->eof(), "imap session closed");
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172 # fail, sasl failure method
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
173
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
175 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
176 my $start = time;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
177 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
178 $s->check(qr/^\+ eyJz/, 'imap oauthbearer sasl failure');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
179 my $wait_time = time - $start;
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
180 ok($wait_time >= 1, 'imap oauthbearer error delayed');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
181 $s->send('AQ==');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
182 $s->check(qr/^1 NO auth-failed/,
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
183 'imap oauthbearer auth failure after dummy response');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
184
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
185 # fail, sasl failure method, invalid client response
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
186
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
187 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
188 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
189 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
190 $s->check(qr/^\+ eyJz/, 'imap oauthbearer sasl failure');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
191 $s->send('foo');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
192 $s->check(qr/^1 BAD /, 'imap oauthbearer invalid command after invalid line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
193
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
194 # fail, sasl failure method, multiple attempts, then success
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
195
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
196 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
197 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
198
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
199 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
200 $s->check(qr/^\+ eyJz/, 'imap oauthbearer sasl failure');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
201 $s->send('AQ==');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
202 $s->check(qr/^1 NO auth-failed/,
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
203 'imap oauthbearer auth failure after dummy response');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
204
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
205 $s->send('1 AUTHENTICATE OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
206 $s->check(qr/^\+ eyJz/, 'imap oauthbearer sasl failure next');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
207 $s->send('foo');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
208 $s->check(qr/^1 BAD/, 'imap oauthbearer invalid command after invalid line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
209
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
210 $s->send('1 AUTHENTICATE OAUTHBEARER');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
211 $s->check(qr/\+ /, 'imap oauthbearer challenge after fail');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
212 $s->send($token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
213 $s->ok('imap oauthbearer success after fail');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215 # IMAP XOAUTH2
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
216
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
218 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
219 $s->send('1 AUTHENTICATE XOAUTH2 ' . $token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
220 $s->ok('imap xoauth2 success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
221
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
222 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
223 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
224 $s->send('1 AUTHENTICATE XOAUTH2');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
225 $s->check(qr/^\+ /, 'imap xoauth2 challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
226 $s->send($token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
227 $s->ok('imap xoauth2 success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
228
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
229 $s = Test::Nginx::IMAP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
230 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
231 $s->send('1 AUTHENTICATE XOAUTH2 ' . $token_xoauth2_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
232 $s->check(qr/^\+ eyJz/, 'imap xoauth2 with bad token');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
233 $s->send('');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
234 $s->check(qr/^1 NO auth-failed/, 'imap xoauth2 auth failure after empty line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
235
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
236 $s->send('1 AUTHENTICATE XOAUTH2 ' . $token_xoauth2_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
237 $s->check(qr/^\+ eyJz/, 'imap xoauth2 with bad token next');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
238 $s->send('foo');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
239 $s->check(qr/^1 BAD/, 'imap xoauth2 invalid command after invalid line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
240
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
241 $s->send('1 AUTHENTICATE XOAUTH2 ' . $token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
242 $s->ok('imap xoauth2 success after fail');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
243
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
244 # POP3
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
245
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
246 $s = Test::Nginx::POP3->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
247 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
248 $s->send('AUTH OAUTHBEARER ' . $token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
249 $s->ok('pop3 oauthbearer success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
251 $s = Test::Nginx::POP3->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
252 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253 $s->send('AUTH OAUTHBEARER');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
254 $s->check(qr/^\+ /, 'pop3 oauthbearer challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
255 $s->send($token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
256 $s->ok('pop3 oauthbearer success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
257
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
258 $s = Test::Nginx::POP3->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
259 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
260 $s->send('AUTH OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
261 $s->check(qr/^\+ eyJz/, 'pop3 oauthbearer sasl failure');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
262 $s->send('AQ==');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
263 $s->check(qr/^-ERR /, 'pop3 oauthbearer auth failure after dummy response');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
264
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
265 $s->send('AUTH OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
266 $s->check(qr/^\+ eyJz/, 'pop3 oauthbearer sasl failure next');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
267 $s->send('');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
268 $s->check(qr/^-ERR /, 'pop3 oauthbearer invalid command after invalid line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
269
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
270 $s->send('AUTH OAUTHBEARER ' . $token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
271 $s->ok('pop3 oauthbearer success after fail');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
272
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
273 # POP3 XOAUTH2
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
274
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
275 $s = Test::Nginx::POP3->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
276 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
277 $s->send('AUTH XOAUTH2 ' . $token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
278 $s->ok('pop3 xoauth2 success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
279
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
280 $s = Test::Nginx::POP3->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
281 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
282 $s->send('AUTH XOAUTH2');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
283 $s->check(qr/^\+ /, 'pop3 xoauth2 challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
284 $s->send($token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
285 $s->ok('pop3 xoauth2 success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
286
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
287 # SMTP
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
288
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
289 $s = Test::Nginx::SMTP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
290 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
291 $s->send('EHLO example.com');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
292 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
293 $s->send('AUTH OAUTHBEARER ' . $token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
294 $s->authok('smtp oauthbearer success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
295
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
296 $s = Test::Nginx::SMTP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
297 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
298 $s->send('EHLO example.com');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
299 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
300 $s->send('AUTH OAUTHBEARER');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
301 $s->check(qr/^334 /, 'smtp oauthbearer challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
302 $s->send($token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
303 $s->authok('smtp oauthbearer success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
304
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
305 $s = Test::Nginx::SMTP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
306 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
307 $s->send('EHLO example.com');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
308 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
309 $s->send('AUTH OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
310 $s->check(qr/^334 eyJz/, 'smtp oauthbearer sasl failure');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
311 $s->send('AQ==');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
312 $s->check(qr/^535 /, 'smtp oauthbearer auth failure after dummy response');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
313
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
314 $s->send('AUTH OAUTHBEARER ' . $token_saslfail);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
315 $s->check(qr/^334 eyJz/, 'smtp oauthbearer sasl failure next');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
316 $s->send('foo');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
317 $s->check(qr/^500 /, 'smtp oauthbearer invalid command after invalid line');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
318
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
319 $s->send('AUTH OAUTHBEARER ' . $token);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
320 $s->authok('smtp oauthbearer success after fail');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
321
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
322 # SMTP XOAUTH2
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
323
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
324 $s = Test::Nginx::SMTP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
325 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
326 $s->send('EHLO example.com');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
327 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
328 $s->send('AUTH XOAUTH2 ' . $token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
329 $s->authok('smtp xoauth2 success');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
330
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
331 $s = Test::Nginx::SMTP->new();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
332 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
333 $s->send('EHLO example.com');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
334 $s->read();
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
335 $s->send('AUTH XOAUTH2');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
336 $s->check(qr/^334 /, 'smtp xoauth2 challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
337 $s->send($token_xoauth2);
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
338 $s->authok('smtp xoauth2 success after challenge');
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
339
b5e2609d34a3 Tests: added tests for OAUTHBEARER and XOAUTH2 auth methods.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
340 ###############################################################################