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

Annotation of /trunk/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide 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 mbroquet 3730 <?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