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

Annotation of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1874 - (hide annotations)
Wed May 15 16:40:24 2013 UTC (11 years, 8 months ago) by vpihour
File size: 7802 byte(s)
Correction du test pour utiliser la bonne contrainte spécifique pour le retour de consultation

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     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 vpihour 1874 $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
144 vpihour 1873 //Valide le téléchargement
145     $this->click("name=submit");
146     //On vérifie que le nom du fichier dans le champ
147 vpihour 1874 $this->assertValue("id=fichier", "lettre_rar16042013124515.pdf");
148     //Ajoute le retour de consultation en BDD
149 vpihour 1873 $this->click("//input[@value='Modifier']");
150 vpihour 1874 //On vérifie que le retour de consultation a bien été pris en compte
151 vpihour 1873 $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