Skip to content

Commit c0e840f

Browse files
charsbarandk
authored andcommitted
Add a test
1 parent 5a06753 commit c0e840f

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
use Mojo::Base -strict;
2+
use FindBin;
3+
use lib "$FindBin::Bin/../lib";
4+
use Test::PAUSE::Web;
5+
6+
my $default = {
7+
pause99_change_user_status_user => "TESTUSER",
8+
pause99_change_user_status_new_ustatus => "nologin",
9+
pause99_change_user_status_sub => 1,
10+
};
11+
12+
Test::PAUSE::Web->setup;
13+
14+
subtest 'get' => sub {
15+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
16+
my ($path, $user) = @$test;
17+
my $t = Test::PAUSE::Web->new(user => $user);
18+
$t->get_ok("$path?ACTION=change_user_status");
19+
# note $t->content;
20+
}
21+
};
22+
23+
subtest 'post: basic' => sub {
24+
Test::PAUSE::Web->setup;
25+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
26+
my ($path, $user) = @$test;
27+
my %form = %$default;
28+
my $t = Test::PAUSE::Web->new(user => $user);
29+
my $res = $t->post("$path?ACTION=change_user_status", \%form);
30+
ok !$res->is_success && $res->code == 403, "Forbidden";
31+
like $res->content => qr/Failed CSRF check/;
32+
# note $t->content;
33+
}
34+
};
35+
36+
subtest 'post_with_token: basic' => sub {
37+
Test::PAUSE::Web->setup;
38+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
39+
my ($path, $user) = @$test;
40+
my %form = %$default;
41+
my $t = Test::PAUSE::Web->new(user => $user);
42+
$t->post_with_token_ok("$path?ACTION=change_user_status", \%form)
43+
->text_like("div.messagebox p", qr/status has changed from \w+ to nologin/);
44+
is $t->deliveries => 2, "two deliveries for admin";
45+
# note $t->content;
46+
}
47+
};
48+
49+
subtest 'post_with_token: user not found' => sub {
50+
Test::PAUSE::Web->setup;
51+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
52+
my ($path, $user) = @$test;
53+
my %form = (
54+
%$default,
55+
pause99_change_user_status_user => 'UNKNOWN',
56+
);
57+
my $t = Test::PAUSE::Web->new(user => $user);
58+
$t->post_with_token_ok("$path?ACTION=change_user_status", \%form)
59+
->text_like("div.messagebox p", qr/User UNKNOWN is not found/);
60+
is $t->deliveries => 0, "no deliveries for admin";
61+
# note $t->content;
62+
}
63+
};
64+
65+
subtest 'post_with_token: ustatus not changed' => sub {
66+
Test::PAUSE::Web->setup;
67+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
68+
my ($path, $user) = @$test;
69+
my %form = %$default;
70+
my $t = Test::PAUSE::Web->new(user => $user);
71+
$t->post_with_token_ok("$path?ACTION=change_user_status", \%form)
72+
->text_like("div.messagebox p", qr/status has changed from \w+ to nologin/);
73+
is $t->deliveries => 2, "two deliveries for admin";
74+
# note $t->content;
75+
76+
# nologin to nologin
77+
$t->post_with_token_ok("$path?ACTION=change_user_status", \%form)
78+
->dom_not_found("div.messagebox p");
79+
is $t->deliveries => 0, "no deliveries for admin";
80+
}
81+
};
82+
83+
subtest 'post_with_token: unknown ustatus' => sub {
84+
Test::PAUSE::Web->setup;
85+
for my $test (Test::PAUSE::Web->tests_for('admin')) {
86+
my ($path, $user) = @$test;
87+
my %form = (
88+
%$default,
89+
pause99_change_user_status_new_ustatus => 'unknown',
90+
);
91+
my $t = Test::PAUSE::Web->new(user => $user);
92+
$t->post_with_token_ok("$path?ACTION=change_user_status", \%form)
93+
->dom_not_found("div.messagebox p");
94+
is $t->deliveries => 0, "no deliveries for admin";
95+
}
96+
};
97+
98+
done_testing;

0 commit comments

Comments
 (0)