UsersControllerTest.php
4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?php
namespace App\Test\TestCase\Controller;
use App\Controller\UsersController;
use Cake\TestSuite\IntegrationTestCase;
/**
* App\Controller\UsersController Test Case
*/
//class UsersControllerTest extends IntegrationTestCase
class UsersControllerTest extends General
{
/**
* Fixtures
*
* @var array
*/
public $fixtures = [
'app.users',
'app.groupes_metiers',
'app.materiels',
'app.sur_categories',
'app.categories',
'app.sous_categories',
'app.groupes_thematiques',
'app.organismes',
'app.sites',
'app.emprunts',
'app.documents',
'app.suivis',
'app.type_suivis',
'app.configurations'
];
/*
public function authUser() {
$user = [
'Auth' => [
'User' => [
'sn' => [0 => 'test2'],
'mail' => [0 => 'test@test.fr'],
'givenname' => [0 => 'test1'],
'cn' => [0 => 'user1_SUPER'],
'userpassword' => [0 => 'test'],
]
]
];
$this->session($user);
$authType = ['authType' => 'cn'];
$this->session($authType);
}
*/
/**
* Test UNauthentified access to website
*
* By default, must have ONLY access to /about page, or /login page
*
* @return void
*/
public function testUser10AccessAsAnonymous() {
$this->get('/pages/about');
$this->assertResponseContains('A PROPOS DU LOGICIEL', 'Un utilisateur NON authentifié devrait avoir accès à la page /about');
$this->get('/');
$this->assertRedirect('/users/login', 'Un utilisateur NON authentifié devrait etre redirigé sur la page de login');
}
/**
* Test login method
*
* @return void
*/
public function testUser20LoginAsSuper()
{
$this->post('/users/login', ['ldap' => 'user1_SUPER', 'password' => 'test']);
$this->assertRedirect('/pages/home', 'Un utilisateur privilégié devrait pouvoir se loguer');
}
public function testUser21LoginAsUser()
{
$this->post('/users/login', ['ldap' => 'user5_USER', 'password' => 'test']);
$this->assertRedirect('/pages/home', 'Un utilisateur non privilégié devrait pouvoir se loguer');
}
/**
* Test logout method
* TODO: ca marche pas, impossible de simuler un vrai logout, l'utilisateur est toujours connecté !!!
*
* @return void
*/
public function TODOtestUser30Logout()
{
//$this->authUser();
$this->authSuperAdmin();
$this->get('/pages/home');
//$this->assertSession(1, 'Auth.User.id'); // Check user is logged in
$this->assertSession('user1_SUPER', 'Auth.User.cn.0'); // Check user is logged in
$this->assertSession(['SUPER'], 'Auth.User.sn'); // Check user is logged in
$this->get('/users/logout');
$this->assertSession(null, 'Auth.User'); // Check user is logged out
//unset($this->session);
//$this->assertRedirect('/pages/home', 'Un utilisateur devrait pouvoir se déloguer');
//$this->get('/pages/home');
$this->assertRedirect('/users/login', 'Un utilisateur devrait pouvoir se déloguer et ainsi revenir sur la page login');
//$this->assertRedirect(['controller' => 'Users', 'action' => 'login']);
$this->get('/materiels');
$this->assertResponseNotContains('Liste des', 'On devrait normalement etre dé-logué !!! or on ne l\'est pas');
}
/**
* Test add method
*
* @return void
*/
public function testAdd()
{
//$this->authUser();
$this->authSuperAdmin();
$data = [
'id' => 6,
'nom' => 'Test3 Test4',
'username' => 'testo',
'password' => 'test',
'email' => 'testo@test.fr',
'role' => 'Super Administrateur',
'groupes_metier_id' => 1,
'groupe_thematique_id' => 1,
'sur_categorie_id' => 1
];
$this->post('/users/add', $data);
$this->get('/users/view/6');
$this->assertResponseContains('Test3 Test4', 'L\'ajout d\'un utilisateur ne fonctionne pas correctement');
}
}