Showing 2 changed files with 70 additions and 2 deletions
-1
templates/auto/reset-password.html.ep
... ...
@@ -5,7 +5,6 @@
5 5
   
6 6
   # Parameters
7 7
   my $op = param('op') || '';
8
-  my $mode = param('mode') || '';
9 8
   my $user = param('user');
10 9
 
11 10
   my $reset_password_conf_on = app->config->{admin}{reset_password};
+70 -1
xt/admin.t
... ...
@@ -65,7 +65,7 @@ note 'Start page';
65 65
   ;
66 66
 }
67 67
 
68
-note 'Login as admin user';
68
+note 'Admin pages';
69 69
 {
70 70
   unlink $db_file;
71 71
 
... ...
@@ -198,4 +198,73 @@ note 'Login as admin user';
198 198
 
199 199
     ;
200 200
   }
201
+  
202
+  note 'logout';
203
+  $t->get_ok('/_logout')
204
+    ->get_ok('/_admin')
205
+    ->content_like(qr/Users/);
206
+}
207
+
208
+note 'Reset password';
209
+{
210
+  unlink $db_file;
211
+
212
+  my $app = Gitprep->new;
213
+  my $t = Test::Mojo->new($app);
214
+  $t->ua->max_redirects(3);
215
+
216
+  # Create admin user
217
+  $t->post_ok('/_start?op=create', form => {password => 'a', password2 => 'a'})
218
+    ->content_like(qr/Login Page/);
219
+  ;
220
+
221
+  # Not loing user can't access
222
+  $t->get_ok('/reset-password')
223
+    ->content_like(qr/Users/);
224
+
225
+  # Cnahge password(reset_password conf on)
226
+  $app->config->{admin}{reset_password} = 1;
227
+  $t->get_ok('/reset-password')
228
+    ->content_like(qr/Reset Password/);
229
+  $t->post_ok('/reset-password?op=reset', form => {password => 'b', password2 => 'b'})
230
+    ->content_like(qr/Success.*changed/)
231
+  ;
232
+  $app->config->{admin}{reset_password} = 0;
233
+
234
+  # Login success
235
+  $t->post_ok('/_login?op=login', form => {id => 'admin', password => 'b'})
236
+    ->content_like(qr/Admin/)
237
+  ;
238
+  
239
+  # Create user
240
+  $t->post_ok('/_admin/user/create?op=create', form => {id => 'kimoto1', password => 'a', password2 => 'a'})
241
+    ->content_like(qr/kimoto1/);
242
+  $t->post_ok('/_admin/user/create?op=create', form => {id => 'kimoto2', password => 'a', password2 => 'a'})
243
+    ->content_like(qr/kimoto2/);
244
+  
245
+  # Logout
246
+  $t->get_ok('/_logout');
247
+  
248
+  # Login as kimoto
249
+  $t->post_ok('/_login?op=login', form => {id => 'kimoto1', password => 'a'});
250
+  $t->get_ok('/')->content_like(qr/kimoto1/);
251
+
252
+  # Don't change other user password
253
+  $t->get_ok('/reset-password?user=kimoto2')
254
+    ->content_like(qr/Users/)
255
+  ;
256
+  $t->post_ok('/reset-password?user=kimoto2&op=reset', form => {password => 'b', password2 => 'b'})
257
+    ->content_like(qr/Users/)
258
+  ;
259
+
260
+  # Reset password
261
+  $t->get_ok('/reset-password?user=kimoto1')
262
+    ->content_like(qr/Reset Password/)
263
+  ;
264
+  $t->post_ok('/reset-password?user=kimoto1&op=reset', form => {password => 'b', password2 => 'b'});
265
+  
266
+  # Login as kimoto
267
+  $t->get_ok('/_logout');
268
+  $t->post_ok('/_login?op=login', form => {id => 'kimoto1', password => 'b'});
269
+  $t->get_ok('/')->content_like(qr/kimoto1/);
201 270
 }