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

Contents of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2319 - (show annotations)
Thu Sep 19 13:32:34 2013 UTC (11 years, 4 months ago) by fmichon
File size: 8594 byte(s)
Tentative pour la correction de l'erreur aléatoire pendant le test suite : 

2) ControleFichiersUploades::testCasContraintesSpecifiques

Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR: Element css=#sousform-consultation .message .text not found

/home/atreal/coccyx_html/openads/tests/testControleFichiersUploades.php:114
/home/atreal/coccyx_html/openads/tests/testControleFichiersUploades.php:114

Caused by
RuntimeException: Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR: Element css=#sousform-consultation .message .text not found

/home/atreal/coccyx_html/openads/tests/testControleFichiersUploades.php:114
/home/atreal/coccyx_html/openads/tests/testControleFichiersUploades.php:114


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 testCasContraintesGeneriques(){
26 // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement
27 $this->setSpeed('300');
28 // On se connecte en tant que "admin"
29 $this->login("admin", "admin");
30 // On clique sur le menu de paramétrage des logos
31 $this->clickAndWait("link=Logo");
32 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
33 $this->verifyNoErrors();
34 //On clique sur le lien d'ajout de logo
35 $this->clickAndWait("css=.actions-max-2 a");
36 // On saisie des données
37 $this->type("id=id", "logo.jpg");
38 $this->type("id=libelle", "Un logo");
39 $this->type("id=actif");
40 //Ralenti l'exécution du script pour permettre au JS de se charger
41 $this->setSpeed('120');
42 //Clique sur le bouton pour ajouter un logo
43 $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");
44 //Sélection de l'image
45 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");
46 //Valide le téléchargement
47 $this->click("name=submit");
48 //On vérifie le message d'erreur
49 $this->assertText("css=#upload-container .message .text", 'Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]');
50 //Sélection de l'image
51 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");
52 //Valide le téléchargement
53 $this->click("name=submit");
54 //On vérifie le message d'erreur
55 $this->assertText("css=#upload-container .message .text", "Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(\.gif;\.jpg;\.jpeg;\.png;\.txt;\.pdf;\.csv;\)\. \[fichier_1\.odt\]");
56 //Sélection de l'image
57 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_2.jpg");
58 //Valide le téléchargement
59 $this->click("name=submit");
60 //On vérifie que le nom du fichier dans le champ
61 $this->assertValue("id=fichier_upload", "image_2\.jpg");
62 //Ajoute le logo en BDD
63 $this->clickAndWait("//input[@value='Ajouter']");
64 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
65 $this->verifyNoErrors();
66 //On vérifie que le logo s'est bien ajouté
67 $this->assertText("css=#tabs-1 .message .text", "Vos modifications ont bien été enregistrées.");
68 //On clique sur le lien "retour"
69 $this->clickAndWait("link=Retour");
70 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
71 $this->verifyNoErrors();
72 //On vérifie que le nouveau logo est dans le tableau
73 $this->assertText("css=tr:nth-child(3) .col-0", "6");
74 $this->assertText("css=tr:nth-child(3) .col-1", "logo.jpg");
75 $this->assertText("css=tr:nth-child(3) .col-2", "Un logo");
76 // On se déconnecte de l'application
77 $this->logout();
78 }
79
80 /**
81 * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes
82 * spécifiques (celles qui se trouvent dans les classes métiers).
83 * L'instructeur ajoutera une nouvelle consultation pour le service n°1 sur le
84 * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis
85 * auquel il joindra un fichier.
86 */
87 public function testCasContraintesSpecifiques(){
88 // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement
89 $this->setSpeed('300');
90 // On se connecte en tant que "admin"
91 $this->login("instr", "instr");
92 // On clique sur le menu des encours
93 $this->clickAndWait("link=mes encours");
94 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
95 $this->verifyNoErrors();
96 // On clique sur le dossier AZ0130551200001P0
97 $this->clickAndWait("link=AZ 013055 12 00001P0");
98 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
99 $this->verifyNoErrors();
100 //Ralenti l'exécution du script pour permettre au JS de se charger
101 $this->setSpeed('120');
102 //On clique sur l'onglet consultation
103 $this->click("id=consultation");
104 //On clique sur le lien d'ajout de consultation
105 $this->click("css=.actions-max-2 a");
106 //On choisi le service numéro 1
107 $this->select("id=service","value=1");
108 //On ajoute la consultation
109 $this->click("//input[@value='Ajouter']");
110 // Ontemporise pour que le résultat de la requête ajax puisse se charger
111 // correctement en javascript
112 sleep(5);
113 //On vérifie que le logo s'est bien ajouté
114 $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');
115 //On retourne au tableau de consultation en cliquant sur le lien de retour
116 $this->click("css=#sousform-consultation .retour");
117 //On se déconnecte de l'application
118 $this->deconnect();
119
120 // On se connecte en tant que "consu"
121 // !!! Attention on n'utilise pas la méthode login standard car
122 // l'utilisateur est redirigé automatiquement vers un autre écran
123 // sans voir le message de connexion !!!
124 // On se connecte
125 $this->connect("consu", "consu");
126 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127 $this->verifyNoErrors();
128 // On temporise pour laisser le temps au javascript de redirection
129 // de faire son travail
130 sleep(1);
131 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
132 $this->verifynoerrors();
133 // On clique sur la consultation que l'instructeur vient d'ajouter
134 $this->clickAndWait("link=AZ 013055 12 00001P0");
135 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
136 $this->verifyNoErrors();
137 //On clique sur le lien "Rendre un avis" du portlet d'actions
138 $this->click("css=.portlet-list li a");
139 //On tente d'ajouter un fichier trop gros
140 $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");
141 //Sélection de l'image
142 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");
143 //Valide le téléchargement
144 $this->click("name=submit");
145 //On vérifie le message d'erreur
146 $this->assertText("css=#upload-container .message .text", "Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]");
147 //On tente d'ajouter un fichier avec une mauvais extension
148 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");
149 //Valide le téléchargement
150 $this->click("name=submit");
151 //On vérifie le message d'erreur
152 $this->assertText("css=#upload-container .message .text", "Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(.pdf\)\. \[fichier_1\.odt\]");
153 //On ajoute le bon fichier
154 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
155 //Valide le téléchargement
156 $this->click("name=submit");
157 //On vérifie que le nom du fichier dans le champ
158 $this->assertValue("id=fichier_upload", "lettre_rar16042013124515.pdf");
159 //Ajoute le retour de consultation en BDD
160 $this->click("//input[@value='Modifier']");
161 //On vérifie que le retour de consultation a bien été pris en compte
162 $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');
163 //Retour au tableau des consultation demandant un avis
164 $this->click("class=ui-dialog-titlebar-close ui-corner-all");
165 //On se déconnecte de l'application
166 $this->logout();
167 }
168 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26