diff --git a/tests/test_progit_flask_ui_admin.py b/tests/test_progit_flask_ui_admin.py
index 88c4cde..01b1eeb 100644
--- a/tests/test_progit_flask_ui_admin.py
+++ b/tests/test_progit_flask_ui_admin.py
@@ -169,6 +169,52 @@ class PagureFlaskAdmintests(tests.Modeltests):
'
Authorized file updated'
in output.data)
+ def test_admin_generate_hook_token(self):
+ """ Test the admin_generate_hook_token endpoint. """
+
+ output = self.app.get('/admin/hook_token')
+ self.assertEqual(output.status_code, 404)
+
+ output = self.app.post('/admin/hook_token')
+ self.assertEqual(output.status_code, 302)
+
+ user = tests.FakeUser()
+ with tests.user_set(pagure.APP, user):
+ output = self.app.post('/admin/hook_token', follow_redirects=True)
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue(
+ 'Access restricted' in output.data)
+
+ user = tests.FakeUser(
+ username='pingou',
+ groups=pagure.APP.config['ADMIN_GROUP'])
+ with tests.user_set(pagure.APP, user):
+ output = self.app.post('/admin/hook_token', follow_redirects=True)
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue('Admin section
' in output.data)
+ self.assertTrue('Re-generate gitolite ACLs file' in output.data)
+ self.assertTrue(
+ 'Re-generate ssh authorized_key file' in output.data)
+ self.assertTrue(
+ 'Re-generate hook-token for every projects' in output.data)
+
+ csrf_token = output.data.split(
+ 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
+ data = {'csrf_token': csrf_token}
+
+ output = self.app.post(
+ '/admin/hook_token', data=data, follow_redirects=True)
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue('Admin section
' in output.data)
+ self.assertTrue('Re-generate gitolite ACLs file' in output.data)
+ self.assertTrue(
+ 'Re-generate ssh authorized_key file' in output.data)
+ self.assertTrue(
+ 'Re-generate hook-token for every projects' in output.data)
+ self.assertTrue(
+ 'Hook token all re-generated'
+ in output.data)
+
if __name__ == '__main__':
SUITE = unittest.TestLoader().loadTestsFromTestCase(PagureFlaskAdmintests)