1 use if (!-d 'test-setup'), 'Test::More', skip_all => 'List testing skipped';
4 use App::EzPz::TestSetup;
5 use App::EzPz::UserStore;
9 unless (-d 'test-setup/ezmlm') {
11 'src/ezmlm-idx-7.1.1.tar.gz',
17 my $lists_base = io->dir('test-setup/lists');
22 create_list('test-setup/ezmlm/bin', 'test-setup/lists', $_)
23 for qw(list1 list2 list3);
25 pass('Setup completed successfully');
27 my $us = App::EzPz::UserStore->new(
28 htpasswd_file => 'test-setup/lists/htpasswd',
30 bindir => 'test-setup/ezmlm/bin',
31 list_base_dir => 'test-setup/lists'
35 for my $user ($us->add({ username => 'mst', password => 'boromir' })) {
36 $user->add_list_name($_) for qw(list1 list2 list3);
37 for my $list ($user->get_list('list1')) {
38 $list->add_member('joe@example.com');
39 $list->add_member('bob@example.com');
40 $list->deny->add_member('evil@monkey.com');
41 $list->deny->add_member('evil@gibbon.com');
45 my $app = App::EzPz::Web->new(users => $us);
47 is($app->run_test_request(GET => '/')->code, 401, 'Auth fail without pw');
50 $app->run_test_request(GET => 'bob:boromir@/')->code, 401,
51 'Auth fail with wrong user'
55 $app->run_test_request(GET => 'mst:spoon@/')->code, 401,
56 'Auth fail with wrong pw'
59 my $res = $app->run_test_request(GET => 'mst:boromir@/');
61 is($res->code, 200, 'Auth ok with user+pass');
63 like($res->content, qr/Welcome user .*mst/, 'Welcome mst');
65 like($res->content, qr{/list/$_/}, "List $_ on /")
66 for qw(list1 list2 list3);