/[openfoncier]/trunk/tests/testControleFichiersUploades.php
ViewVC logotype

Contents of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1873 - (show annotations)
Wed May 15 16:28:20 2013 UTC (11 years, 8 months ago) by vpihour
File size: 7723 byte(s)
Ajout des tests fonctionnels pour le contrôle des contraintes sur les uploads de fichiers

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id: testControleFichiersUploades.php
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Test des contrôles des contraintes sur les fichiers uploadés.
14 * Deux cas sont possibles :
15 * - utilisation des paramètres génériques de l'application ;
16 * - utilisation des paramètres spécifiques de la classe métier.
17 */
18 class ControleFichiersUploades extends BaseTestCase {
19
20 /**
21 * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes
22 * génériques (celles qui se trouvent dans le fichier dyn/config.inc.php).
23 * L'administrateur ajoute un logo.
24 */
25 public function testCasContraintesGénériques(){
26
27 // On se connecte en tant que "admin"
28 $this->login("admin", "admin");
29 // On clique sur le menu de paramétrage des logos
30 $this->clickAndWait("link=logo");
31 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
32 $this->verifyNoErrors();
33 // On saisie des données
34 $this->type("id=id", "logo.jpg");
35 $this->type("id=libelle", "Un logo");
36 $this->type("id=actif");
37 //Ralenti l'exécution du script pour permettre au JS de se charger
38 $this->setSpeed('120');
39 //Clique sur le bouton pour ajouter un logo
40 $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");
41 //Sélection de l'image
42 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");
43 //Valide le téléchargement
44 $this->click("name=submit");
45 //On vérifie le message d'erreur
46 $this->assertText("css=#upload-container .message .text", "Le fichier [image_1.jpg] à charger excède la directive upload_max_filesize (php.ini).");
47 //Sélection de l'image
48 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");
49 //Valide le téléchargement
50 $this->click("name=submit");
51 //On vérifie le message d'erreur
52 $this->assertText("css=#upload-container .message .text", "Le fichier [fichier_1.odt] n'est pas conforme à la liste des extension(s) autorisée(s) (.gif;.jpg;.jpeg;.png;.txt;.pdf;.csv;).");
53 //Sélection de l'image
54 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_2.jpg");
55 //Valide le téléchargement
56 $this->click("name=submit");
57 //On vérifie que le nom du fichier dans le champ
58 $this->assertValue("id=fichier", "image_2.jpg");
59 //Ajoute le logo en BDD
60 $this->clickAndWait("//input[@value='Ajouter']");
61 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
62 $this->verifyNoErrors();
63 //On vérifie que le logo s'est bien ajouté
64 $this->assertText("css=#tabs-1 .message .text", "Vos modifications ont bien été enregistrées.");
65 //On clique sur le lien "retour"
66 $this->clickAndWait("link=retour");
67 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
68 $this->verifyNoErrors();
69 //On vérifie que le nouveau logo est dans le tableau
70 $this->assertText("css=tr:nth-child(4) .col-0", "6");
71 $this->assertText("css=tr:nth-child(4) .col-1", "logo.jpg");
72 $this->assertText("css=tr:nth-child(4) .col-2", "Un logo");
73 // On se déconnecte de l'application
74 $this->deconnect();
75 }
76
77 /**
78 * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes
79 * spécifiques (celles qui se trouvent dans les classes métiers).
80 * L'instructeur ajoutera une nouvelle consultation pour le service n°1 sur le
81 * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis
82 * auquel il joindra un fichier.
83 */
84 public function testCasContraintesSpécifiques(){
85
86 // On se connecte en tant que "admin"
87 $this->login("instr", "instr");
88 // On clique sur le menu des encours
89 $this->clickAndWait("link=mes encours");
90 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
91 $this->verifyNoErrors();
92 // On clique sur le dossier AZ0130551200001P0
93 $this->clickAndWait("link=AZ0130551200001P0");
94 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
95 $this->verifyNoErrors();
96 //Ralenti l'exécution du script pour permettre au JS de se charger
97 $this->setSpeed('120');
98 //On clique sur l'onglet consultation
99 $this->click("id=consultation");
100 //On clique sur le lien d'ajout de consultation
101 $this->click("css=.actions-max-2 a");
102 //On choisi le service numéro 1
103 $this->select("id=service","value=1");
104 //On ajoute la consultation
105 $this->click("//input[@value='Ajouter']");
106 //On vérifie que le logo s'est bien ajouté
107 $this->assertText("css=#sousform-consultation .message .text", "Vos modifications ont bien été enregistrées.");
108 //On retourne au tableau de consultation en cliquant sur le lien de retour
109 $this->click("css=#sousform-consultation .retour");
110 //On vérifie que la nouvelle consultation est dans le tableau
111 $this->assertText("css=.odd .col-0", "1");
112 $this->assertText("css=.odd .col-5", "Direction de l'Eau et de l'Assainissement");
113 //On se déconnecte de l'application
114 $this->deconnect();
115
116 // On se connecte en tant que "admin"
117 $this->login("consu", "consu");
118 // On clique sur le menu des demandes en cours
119 $this->clickAndWait("link=demandes en cours");
120 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
121 $this->verifyNoErrors();
122 // On clique sur la consultation que l'instructeur vient d'ajouter
123 $this->clickAndWait("link=AZ0130551200001P0");
124 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
125 $this->verifyNoErrors();
126 //On clique sur le lien "Rendre un avis" du portlet d'actions
127 $this->click("css=.portlet-list li a");
128 //On tente d'ajouter un fichier trop gros
129 $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");
130 //Sélection de l'image
131 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");
132 //Valide le téléchargement
133 $this->click("name=submit");
134 //On vérifie le message d'erreur
135 $this->assertText("css=#upload-container .message .text", "Le fichier [image_1.jpg] à charger excède la directive upload_max_filesize (php.ini).");
136 //On tente d'ajouter un fichier avec une mauvais extension
137 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");
138 //Valide le téléchargement
139 $this->click("name=submit");
140 //On vérifie le message d'erreur
141 $this->assertText("css=#upload-container .message .text", "Le fichier [fichier_1.odt] n'est pas conforme à la liste des extension(s) autorisée(s) (.gif;.jpg;.jpeg;.png;.txt;.pdf;.csv;).");
142 //On ajoute le bon fichier
143 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_2.jpg");
144 //Valide le téléchargement
145 $this->click("name=submit");
146 //On vérifie que le nom du fichier dans le champ
147 $this->assertValue("id=fichier", "image_2.jpg");
148 //Ajoute le logo en BDD
149 $this->click("//input[@value='Modifier']");
150 //On vérifie que le logo s'est bien ajouté
151 $this->assertText("css=#sousform-consultation .message .text", "Vos modifications ont bien été enregistrées.");
152 //On se déconnecte de l'application
153 $this->deconnect();
154 }
155 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26