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

Contents of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 9266 byte(s)
Actualisation du trunk
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 Base2TestCase {
19
20 /**
21 * Fonction lancée en debut de chaque test
22 */
23 public function setUp() {
24 parent::setUp();
25 echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
26 }
27
28 public function onNotSuccessfulTest(Exception $e){
29 echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
30 parent::onNotSuccessfulTest($e);
31 }
32
33 /**
34 * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes
35 * génériques (celles qui se trouvent dans le fichier dyn/config.inc.php).
36 * L'administrateur ajoute un logo.
37 */
38 public function test_01_CasContraintesGeneriques() {
39 // On se connecte en tant que "admin"
40 $this->login("admin", "admin");
41 // On clique sur le menu "Paramétrage Dossiers"
42 $this->byLinkText("Paramétrage Dossiers")->click();
43 // On clique sur le menu de paramétrage des logos
44 $this->byLinkText("Logo")->click();
45 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
46 $this->verifyNoErrors();
47 //On clique sur le lien d'ajout de logo
48 $this->byId("action-tab-om_logo-corner-ajouter")->click();
49 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
50 $this->verifyNoErrors();
51 // On saisie des données
52 $this->byId("id")->value("logo.jpg");
53 $this->byId("libelle")->value("Un logo");
54 $this->byId("actif")->click();
55 // On clique sur le bouton pour ajouter un logo
56 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
57 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
58 $this->verifyNoErrors();
59 // On sélectionne l'image
60 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg");
61 // On valide le téléchargement
62 $this->byName("submit")->click();
63 // On vérifie le message d'erreur
64 $this->assertRegExp("/^[\s\S]*Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
65 // On sélectionne l'image
66 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
67 // On valide le téléchargement
68 $this->byName("submit")->click();
69 // On vérifie le message d'erreur
70 $this->assertRegExp("/^[\s\S]*Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(\.gif;\.jpg;\.jpeg;\.png;\.txt;\.pdf;\.csv;\)\. \[fichier_1\.odt\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
71 // On sélectionne l'image
72 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_2.jpg");
73 // On valide le téléchargement
74 $this->byName("submit")->click();sleep(5);
75 // On vérifie que le nom du fichier dans le champ
76 $this->assertContains("image_2.jpg", $this->byId("fichier_upload")->attribute('value'));
77 // On sélectionne la collectivité mono
78 $this->select($this->byId("om_collectivite"))->selectOptionByLabel("MARSEILLE");
79 // On ajoute le logo en BDD
80 $this->byXPath('//input[@value="Ajouter"]')->click();
81 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
82 $this->verifyNoErrors();
83 //On vérifie que le logo s'est bien ajouté
84 $this->assertContains("Vos modifications ont bien été enregistrées.",
85 $this->byCssSelector("#tabs-1 .message .text")->text());
86 //On clique sur le lien "retour"
87 $this->byLinkText("Retour")->click();
88 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
89 $this->verifyNoErrors();
90 //On vérifie que le nouveau logo est dans le tableau
91 $this->assertContains("Un logo", $this->byId("tab-om_logo")->text());
92 // On se déconnecte de l'application
93 $this->logout();
94 }
95
96 /**
97 * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes
98 * spécifiques (celles qui se trouvent dans les classes métiers).
99 * L'instructeur ajoutera une nouvelle consultation pour le service n°1 sur le
100 * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis
101 * auquel il joindra un fichier.
102 */
103 public function test_02_CasContraintesSpecifiques() {
104 // On se connecte en tant que "instr"
105 $this->login("instr", "instr");
106 // On clique sur le lien "Mes encours" dans le menu
107 $this->byLinkText("Mes Encours")->click();
108 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
109 $this->verifyNoErrors();
110 // On clique sur le dossier AZ0130551200001P0
111 $this->byLinkText("AZ 013055 12 00001P0")->click();
112 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
113 $this->verifyNoErrors();
114 // On clique sur l'onglet consultation
115 $this->byId("consultation")->click();
116 // On clique sur le lien d'ajout de consultation
117 $this->byId("action-soustab-consultation-corner-ajouter")->click();
118 // On choisi le service "Direction de l'Eau et de l'Assainissement"
119 $this->select($this->byId("service"))->selectOptionByValue("1");
120 //On ajoute la consultation
121 $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5);
122 //On vérifie que le logo s'est bien ajouté
123 $this->assertContains("Vos modifications ont bien été enregistrées.",
124 $this->byCssSelector("#sousform-consultation .message .text")->text());
125 // On retourne au tableau de consultation en cliquant sur le lien de retour
126 $this->byCssSelector("#sousform-consultation .retour")->click();
127 //On se déconnecte de l'application
128 $this->deconnect();
129
130 // On se connecte en tant que "consu"
131 // !!! Attention on n'utilise pas la méthode login standard car
132 // l'utilisateur est redirigé automatiquement vers un autre écran
133 // sans voir le message de connexion !!!
134 // On se connecte
135 $this->connect("consu", "consu");
136 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
137 $this->verifynoerrors();
138 // On clique sur la consultation que l'instructeur vient d'ajouter
139 $this->byLinkText("AZ 013055 12 00001P0")->click();
140 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
141 $this->verifyNoErrors();
142 // On clique sur le lien "Rendre un avis" du portlet d'actions
143 $this->byCssSelector(".portlet-list li a")->click();
144 // On tente d'ajouter un fichier trop gros
145 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
146 // Sélection de l'image
147 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg");
148 // Valide le téléchargement
149 $this->byName("submit")->click();
150 //On vérifie le message d'erreur
151 $this->assertRegExp("/^[\s\S]*Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
152 //On tente d'ajouter un fichier avec une mauvais extension
153 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
154 //Valide le téléchargement
155 $this->byName("submit")->click();
156 //On vérifie le message d'erreur
157 $this->assertRegExp("/^[\s\S]*Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(.pdf\)\. \[fichier_1\.odt\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
158 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
159 //On ajoute le bon fichier
160 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
161 //Valide le téléchargement
162 $this->byName("submit")->click();sleep(5);
163 //On vérifie que le nom du fichier dans le champ
164 $this->assertContains("lettre_rar16042013124515.pdf",
165 $this->byId("fichier_upload")->attribute('value'));
166 //Ajoute le retour de consultation en BDD
167 $this->byXPath('//input[@value="Modifier"]')->click();
168 //On vérifie que le retour de consultation a bien été pris en compte
169 $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-demande_avis_encours .message .text")->text());
170 // On clique sur le bouton "Retour"
171 $this->byCssSelector(".ui-icon-closethick")->click();
172 //On se déconnecte de l'application
173 $this->logout();
174 }
175 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26