Blame view

tests/TestCase/Controller/UsersControllerTest.php 4.19 KB
49ec2c4a   Alexandre   Version: 2.3.1.0
1
2
3
4
5
6
7
8
9
<?php
namespace App\Test\TestCase\Controller;

use App\Controller\UsersController;
use Cake\TestSuite\IntegrationTestCase;

/**
 * App\Controller\UsersController Test Case
 */
8cbe319a   Etienne Pallier   Amelioration des ...
10
11
//class UsersControllerTest extends IntegrationTestCase
class UsersControllerTest extends General
49ec2c4a   Alexandre   Version: 2.3.1.0
12
13
14
15
16
17
18
19
{

    /**
     * Fixtures
     *
     * @var array
     */
    public $fixtures = [
bc14f1eb   Etienne Pallier   LDAP CACHED v3
20
        'app.fakeldapusers',
49ec2c4a   Alexandre   Version: 2.3.1.0
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        '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'
    ];

8cbe319a   Etienne Pallier   Amelioration des ...
37
    /*
49ec2c4a   Alexandre   Version: 2.3.1.0
38
39
40
41
42
43
    public function authUser() {
    	$user = [
    			'Auth' => [
    					'User' => [
    							'sn' => [0 => 'test2'],
    							'mail' => [0 => 'test@test.fr'],
49ec2c4a   Alexandre   Version: 2.3.1.0
44
    							'givenname' => [0 => 'test1'],
8cbe319a   Etienne Pallier   Amelioration des ...
45
    							'cn' => [0 => 'user1_SUPER'],
49ec2c4a   Alexandre   Version: 2.3.1.0
46
47
48
49
50
51
52
53
    							'userpassword' => [0 => 'test'],
    					]
    			]
    	];
    	$this->session($user);
    	 
    	$authType = ['authType' => 'cn'];
    	$this->session($authType);
49ec2c4a   Alexandre   Version: 2.3.1.0
54
    }
8cbe319a   Etienne Pallier   Amelioration des ...
55
56
    */
    
49ec2c4a   Alexandre   Version: 2.3.1.0
57
    
164ad0a0   Etienne Pallier   Grosse ameliorati...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
    
    /**
     * 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');
    }
    
49ec2c4a   Alexandre   Version: 2.3.1.0
73
74
75
76
77
    /**
     * Test login method
     *
     * @return void
     */
164ad0a0   Etienne Pallier   Grosse ameliorati...
78
    public function testUser20LoginAsSuper()
49ec2c4a   Alexandre   Version: 2.3.1.0
79
    {
8cbe319a   Etienne Pallier   Amelioration des ...
80
    	$this->post('/users/login', ['ldap' => 'user1_SUPER', 'password' => 'test']);
164ad0a0   Etienne Pallier   Grosse ameliorati...
81
        $this->assertRedirect('/pages/home', 'Un utilisateur privilégié devrait pouvoir se loguer');
49ec2c4a   Alexandre   Version: 2.3.1.0
82
    }
164ad0a0   Etienne Pallier   Grosse ameliorati...
83
84
85
86
87
88
    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');
    }
    
49ec2c4a   Alexandre   Version: 2.3.1.0
89
90
91

    /**
     * Test logout method
164ad0a0   Etienne Pallier   Grosse ameliorati...
92
     * TODO: ca marche pas, impossible de simuler un vrai logout, l'utilisateur est toujours connecté !!!
49ec2c4a   Alexandre   Version: 2.3.1.0
93
94
95
     *
     * @return void
     */
164ad0a0   Etienne Pallier   Grosse ameliorati...
96
    public function TODOtestUser30Logout()
49ec2c4a   Alexandre   Version: 2.3.1.0
97
    {
8cbe319a   Etienne Pallier   Amelioration des ...
98
99
        //$this->authUser();
        $this->authSuperAdmin();
164ad0a0   Etienne Pallier   Grosse ameliorati...
100
101
102
103
104
105
106
107
108
109
110
111
112
113
        $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');
49ec2c4a   Alexandre   Version: 2.3.1.0
114
115
116
117
118
119
120
121
122
    }

    /**
     * Test add method
     *
     * @return void
     */
    public function testAdd()
    {
8cbe319a   Etienne Pallier   Amelioration des ...
123
124
125
        //$this->authUser();
        $this->authSuperAdmin();
        
49ec2c4a   Alexandre   Version: 2.3.1.0
126
    	$data = [
04a6b875   Alexandre   Version: 2.4.2.0
127
            'id' => 6,
49ec2c4a   Alexandre   Version: 2.3.1.0
128
129
130
131
132
            'nom' => 'Test3 Test4',
            'username' => 'testo',
            'password' => 'test',
            'email' => 'testo@test.fr',
            'role' => 'Super Administrateur',
3367192b   Alexandre   Version: 2.4.3.13
133
            'groupes_metier_id' => 1,
8cbe319a   Etienne Pallier   Amelioration des ...
134
    		    'groupe_thematique_id' => 1,
32b504ee   Alexis Proust   mise a jour test
135
			'sur_categorie_id' => 1
49ec2c4a   Alexandre   Version: 2.3.1.0
136
137
        ];
    	
771aa727   Alexandre   Version: 2.3.2.0
138
    	$this->post('/users/add', $data);
04a6b875   Alexandre   Version: 2.4.2.0
139
    	$this->get('/users/view/6');
49ec2c4a   Alexandre   Version: 2.3.1.0
140
141
142
143
144
    	$this->assertResponseContains('Test3 Test4', 'L\'ajout d\'un utilisateur ne fonctionne pas correctement');
    }


}