use strict;
use warnings;
-use Test::More tests => 59;
+use Test::More tests => 61;
BEGIN { $ENV{EMAIL_SENDER_TRANSPORT} = 'Test' }
BEGIN { use_ok('Plack::Middleware::Auth::Complex') };
my $create_table = 'CREATE TABLE users (id TEXT PRIMARY KEY, passphrase TEXT, email TEXT)';
my $ac = Plack::Middleware::Auth::Complex->new({
- dbi_connect => ['dbi:SQLite:dbname=:memory:'],
- post_connect_cb => sub { shift->{dbh}->do($create_table) },
+ dbi_connect => ['dbi:SQLite:dbname=:memory:'],
+ post_connect_cb => sub { shift->{dbh}->do($create_table) },
+ register_url => '/register',
+ passwd_url => '/passwd',
+ request_reset_url => '/request-reset',
+ reset_url => '/reset',
+ cache_max_age => 0,
});
my $app = $ac->wrap(\&app);
is_http $cb->(POST '/'), 200, 'Anon', 'POST /';
is_http $cb->(GET '/register'), 200, 'Anon', 'GET /register';
set_auth 'user', 'password';
+ is_http $cb->(GET '/', Authorization => 'Hello'), 200, 'Anon', 'GET / with invalid Authorization';
is_http $cb->(GET '/', Authorization => $auth), 200, 'Anon', 'GET / with bad user/pass';
is_http $cb->(POST '/register'), 400, 'Missing parameter username', 'POST /register with no parameters';
- is_http $cb->(POST '/register', [@register_args, username => '???'] ), 400, 'Username must match (?^a:^\w{2,20}$)', 'POST /register with bad username';
+ is_http $cb->(POST '/register', [@register_args, username => '???'] ), 400, 'Username must match (?^as:^\w{2,20}$)', 'POST /register with bad username';
is_http $cb->(POST '/register', [@register_args, password => '???'] ), 400, 'The two passwords do not match', 'POST /register with different passwords';
is_http $cb->(POST '/register', \@register_args), 200, 'Registered successfully', 'POST /register with correct parameters',
is_http $cb->(POST '/register', \@register_args), 400, 'Username already in use', 'POST /register with existing user',