... | ... |
@@ -20,6 +20,8 @@ sub encrypt_password { |
20 | 20 |
sub check_password { |
21 | 21 |
my ($self, $password, $salt, $password_encrypted) = @_; |
22 | 22 |
|
23 |
+ return unless defined $password && $salt && $password_encrypted; |
|
24 |
+ |
|
23 | 25 |
return md5_hex(md5_hex "$salt$password") eq $password_encrypted; |
24 | 26 |
} |
25 | 27 |
|
... | ... |
@@ -13,7 +13,8 @@ |
13 | 13 |
|
14 | 14 |
# Login |
15 | 15 |
if ($op eq 'login') { |
16 |
- sleep 3; |
|
16 |
+ |
|
17 |
+ sleep 3 unless $ENV{GITPREP_TEST}; |
|
17 | 18 |
|
18 | 19 |
# Validation |
19 | 20 |
my $params = $api->params; |
... | ... |
@@ -20,7 +20,7 @@ my $rep_home = $ENV{GITPREP_REP_HOME} = "$FindBin::Bin/admin"; |
20 | 20 |
use Gitprep; |
21 | 21 |
|
22 | 22 |
|
23 |
-note '_start page'; |
|
23 |
+note 'Start page'; |
|
24 | 24 |
{ |
25 | 25 |
unlink $db_file; |
26 | 26 |
|
... | ... |
@@ -63,5 +63,46 @@ note '_start page'; |
63 | 63 |
$t->post_ok('/_start?op=create', form => {password => 'a', password2 => 'a'}) |
64 | 64 |
->content_like(qr/Admin user already exists/); |
65 | 65 |
; |
66 |
+} |
|
67 |
+ |
|
68 |
+note 'Login as admin user'; |
|
69 |
+{ |
|
70 |
+ unlink $db_file; |
|
71 |
+ |
|
72 |
+ my $app = Gitprep->new; |
|
73 |
+ my $t = Test::Mojo->new($app); |
|
74 |
+ $t->ua->max_redirects(3); |
|
75 |
+ |
|
76 |
+ # Create admin user |
|
77 |
+ $t->post_ok('/_start?op=create', form => {password => 'a', password2 => 'a'}) |
|
78 |
+ ->content_like(qr/Login Page/); |
|
79 |
+ ; |
|
80 |
+ |
|
81 |
+ # Page access |
|
82 |
+ $t->get_ok('/_login')->content_like(qr/Login Page/); |
|
83 |
+ |
|
84 |
+ # Login fail |
|
85 |
+ $t->post_ok('/_login?op=login', form => {id => 'admin', password => 'b'}) |
|
86 |
+ ->content_like(qr/User name or password is wrong/) |
|
87 |
+ ; |
|
88 |
+ |
|
89 |
+ # Login success |
|
90 |
+ $t->post_ok('/_login?op=login', form => {id => 'admin', password => 'a'}) |
|
91 |
+ ->content_like(qr/Admin/) |
|
92 |
+ ; |
|
93 |
+ |
|
94 |
+ note 'Admin page'; |
|
95 |
+ { |
|
96 |
+ $t->post_ok('/_admin')->content_like(qr/Admin/); |
|
97 |
+ } |
|
98 |
+ |
|
99 |
+ note 'Admin User page'; |
|
100 |
+ { |
|
101 |
+ $t->post_ok('/_admin/users')->content_like(qr/Admin Users/); |
|
102 |
+ } |
|
66 | 103 |
|
104 |
+ note 'Create User page'; |
|
105 |
+ { |
|
106 |
+ $t->post_ok('/_admin/user/create')->content_like(qr/Create User/); |
|
107 |
+ } |
|
67 | 108 |
} |