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

Annotation of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2219 - (hide annotations)
Mon Sep 2 17:10:10 2013 UTC (11 years, 5 months ago) by fmichon
File size: 8594 byte(s)
La vérification de l'identifiant de la consultation créée importe peu dans ce test fonctionnel. La création de la consultation ne sert qu'à pouvoir lui remplir un fichier de retour. Le message "Modifications enregistrées" est donc suffisant pour continuer le test. Comme l'identifiant de cette consultation peut changer facilement il est préférable de supprimer la vérification.

1 vpihour 1873 <?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 softime 1943 public function testCasContraintesGeneriques(){
26 softime 1965 // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement
27     $this->setSpeed('300');
28 vpihour 1873 // On se connecte en tant que "admin"
29     $this->login("admin", "admin");
30     // On clique sur le menu de paramétrage des logos
31 vpihour 1881 $this->clickAndWait("link=Logo");
32 vpihour 1873 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
33     $this->verifyNoErrors();
34 vpihour 1881 //On clique sur le lien d'ajout de logo
35     $this->clickAndWait("css=.actions-max-2 a");
36 vpihour 1873 // 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 vpihour 1881 $this->assertText("css=#upload-container .message .text", 'Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]');
50 vpihour 1873 //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 vpihour 1881 $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 vpihour 1873 //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 vpihour 1881 $this->assertValue("id=fichier_upload", "image_2\.jpg");
62 vpihour 1873 //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 vpihour 1881 $this->clickAndWait("link=Retour");
70 vpihour 1873 // 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 vpihour 1881 $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 vpihour 1873 // On se déconnecte de l'application
77 fmichon 2183 $this->logout();
78 vpihour 1873 }
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 softime 1943 public function testCasContraintesSpecifiques(){
88 softime 1967 // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement
89     $this->setSpeed('300');
90 vpihour 1873 // 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 softime 2112 $this->clickAndWait("link=AZ 013055 12 00001P0");
98 vpihour 1873 // 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 fmichon 2219 // Ontemporise pour que le résultat de la requête ajax puisse se charger
111     // correctement en javascript
112     sleep(1);
113 vpihour 1873 //On vérifie que le logo s'est bien ajouté
114 vpihour 1881 $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');
115 vpihour 1873 //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 fmichon 2182 // 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 vpihour 1873 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
127     $this->verifyNoErrors();
128 fmichon 2210 // 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 vpihour 1873 // On clique sur la consultation que l'instructeur vient d'ajouter
134 softime 2112 $this->clickAndWait("link=AZ 013055 12 00001P0");
135 vpihour 1873 // 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 vpihour 1881 $this->assertText("css=#upload-container .message .text", "Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]");
147 vpihour 1873 //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 vpihour 1881 $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 vpihour 1873 //On ajoute le bon fichier
154 vpihour 1874 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
155 vpihour 1873 //Valide le téléchargement
156     $this->click("name=submit");
157     //On vérifie que le nom du fichier dans le champ
158 vpihour 1881 $this->assertValue("id=fichier_upload", "lettre_rar16042013124515.pdf");
159 vpihour 1874 //Ajoute le retour de consultation en BDD
160 vpihour 1873 $this->click("//input[@value='Modifier']");
161 vpihour 1874 //On vérifie que le retour de consultation a bien été pris en compte
162 vpihour 1881 $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 vpihour 1873 //On se déconnecte de l'application
166 fmichon 2182 $this->logout();
167 vpihour 1873 }
168     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26