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

Annotation of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2210 - (hide annotations)
Mon Sep 2 14:23:07 2013 UTC (11 years, 5 months ago) by fmichon
File size: 8668 byte(s)
Ajout d'une temporisation pour laisser le temps au javascript de s'exécuter lors de la redirection de l'utilisateur consu via son taleau de bord

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     //On vérifie que le logo s'est bien ajouté
111 vpihour 1881 $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');
112 vpihour 1873 //On retourne au tableau de consultation en cliquant sur le lien de retour
113     $this->click("css=#sousform-consultation .retour");
114     //On vérifie que la nouvelle consultation est dans le tableau
115 softime 1983 $this->assertText("css=.odd .col-0", "8");
116 vpihour 1873 $this->assertText("css=.odd .col-5", "Direction de l'Eau et de l'Assainissement");
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