Blame view

tests/TestCase/Controller/UsersControllerTest.php 4.17 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{

    /**
     * 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'
    ];

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

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

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


}