/[openfoncier]/branches/3.14.x/tests/testControleFichiersUploades.php
ViewVC logotype

Diff of /branches/3.14.x/tests/testControleFichiersUploades.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/tests/testControleFichiersUploades.php revision 2112 by softime, Wed Jul 24 17:08:32 2013 UTC branches/3.14.x/tests/testControleFichiersUploades.php revision 3831 by jymadier, Tue Mar 29 12:32:47 2016 UTC
# Line 15  require_once "base.php"; Line 15  require_once "base.php";
15   * - utilisation des paramètres génériques de l'application ;   * - utilisation des paramètres génériques de l'application ;
16   * - utilisation des paramètres spécifiques de la classe métier.   * - utilisation des paramètres spécifiques de la classe métier.
17   */   */
18  class ControleFichiersUploades extends BaseTestCase {  class ControleFichiersUploades extends Base2TestCase {
19            
20      /**      /**
21       * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes       * 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).       * génériques (celles qui se trouvent dans le fichier dyn/config.inc.php).
23       * L'administrateur ajoute un logo.       * L'administrateur ajoute un logo.
24       */       */
25      public function testCasContraintesGeneriques(){      public function testCasContraintesGeneriques() {
         // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement  
         $this->setSpeed('300');  
26          // On se connecte en tant que "admin"          // On se connecte en tant que "admin"
27          $this->login("admin", "admin");          $this->login("admin", "admin");
28            // On clique sur le menu "Paramétrage Dossiers"
29            $this->byLinkText("Paramétrage Dossiers")->click();
30          // On clique sur le menu de paramétrage des logos          // On clique sur le menu de paramétrage des logos
31          $this->clickAndWait("link=Logo");          $this->byLinkText("Logo")->click();
32          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
33          $this->verifyNoErrors();          $this->verifyNoErrors();
34          //On clique sur le lien d'ajout de logo          //On clique sur le lien d'ajout de logo
35          $this->clickAndWait("css=.actions-max-2 a");          $this->byId("action-tab-om_logo-corner-ajouter")->click();
36            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
37            $this->verifyNoErrors();
38          // On saisie des données          // On saisie des données
39          $this->type("id=id", "logo.jpg");          $this->byId("id")->value("logo.jpg");
40          $this->type("id=libelle", "Un logo");          $this->byId("libelle")->value("Un logo");
41          $this->type("id=actif");          $this->byId("actif")->click();
42          //Ralenti l'exécution du script pour permettre au JS de se charger          // On clique sur le bouton pour ajouter un logo
43          $this->setSpeed('120');          $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
44          //Clique sur le bouton pour ajouter un logo          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
45          $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");          $this->verifyNoErrors();
46          //Sélection de l'image          // On sélectionne l'image
47          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg");
48          //Valide le téléchargement          // On valide le téléchargement
49          $this->click("name=submit");          $this->byName("submit")->click();
50          //On vérifie le message d'erreur          // On vérifie le message d'erreur
51          $this->assertText("css=#upload-container .message .text", 'Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]');          $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());
52          //Sélection de l'image          // On sélectionne l'image
53          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
54          //Valide le téléchargement          // On valide le téléchargement
55          $this->click("name=submit");          $this->byName("submit")->click();
56          //On vérifie le message d'erreur          // On vérifie le message d'erreur
57          $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\]");          $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());
58          //Sélection de l'image          // On sélectionne l'image
59          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_2.jpg");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_2.jpg");
60          //Valide le téléchargement          // On valide le téléchargement
61          $this->click("name=submit");          $this->byName("submit")->click();sleep(5);
62          //On vérifie que le nom du fichier dans le champ          // On vérifie que le nom du fichier dans le champ
63          $this->assertValue("id=fichier_upload", "image_2\.jpg");          $this->assertContains("image_2.jpg", $this->byId("fichier_upload")->attribute('value'));
64          //Ajoute le logo en BDD          // On ajoute le logo en BDD
65          $this->clickAndWait("//input[@value='Ajouter']");          $this->byXPath('//input[@value="Ajouter"]')->click();
66          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
67          $this->verifyNoErrors();          $this->verifyNoErrors();
68          //On vérifie que le logo s'est bien ajouté          //On vérifie que le logo s'est bien ajouté
69          $this->assertText("css=#tabs-1 .message .text", "Vos modifications ont bien été enregistrées.");          $this->assertContains("Vos modifications ont bien été enregistrées.",
70            $this->byCssSelector("#tabs-1 .message .text")->text());
71          //On clique sur le lien "retour"          //On clique sur le lien "retour"
72          $this->clickAndWait("link=Retour");          $this->byLinkText("Retour")->click();
73          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
74          $this->verifyNoErrors();          $this->verifyNoErrors();
75          //On vérifie que le nouveau logo est dans le tableau          //On vérifie que le nouveau logo est dans le tableau
76          $this->assertText("css=tr:nth-child(3) .col-0", "6");          $this->assertContains("Un logo", $this->byId("tab-om_logo")->text());
         $this->assertText("css=tr:nth-child(3) .col-1", "logo.jpg");  
         $this->assertText("css=tr:nth-child(3) .col-2", "Un logo");  
77          // On se déconnecte de l'application          // On se déconnecte de l'application
78          $this->deconnect();          $this->logout();
79      }      }
80            
81      /**      /**
# Line 84  class ControleFichiersUploades extends B Line 85  class ControleFichiersUploades extends B
85       * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis       * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis
86       * auquel il joindra un fichier.       * auquel il joindra un fichier.
87       */       */
88      public function testCasContraintesSpecifiques(){      public function testCasContraintesSpecifiques() {
89          // On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement          // On se connecte en tant que "instr"
         $this->setSpeed('300');  
         // On se connecte en tant que "admin"  
90          $this->login("instr", "instr");          $this->login("instr", "instr");
91          // On clique sur le menu des encours          // On clique sur le lien "Mes encours" dans le menu
92          $this->clickAndWait("link=mes encours");          $this->byLinkText("Mes Encours")->click();
93          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
94          $this->verifyNoErrors();          $this->verifyNoErrors();
95          // On clique sur le dossier AZ0130551200001P0          // On clique sur le dossier AZ0130551200001P0
96          $this->clickAndWait("link=AZ 013055 12 00001P0");          $this->byLinkText("AZ 013055 12 00001P0")->click();
97          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
98          $this->verifyNoErrors();          $this->verifyNoErrors();
99          //Ralenti l'exécution du script pour permettre au JS de se charger          // On clique sur l'onglet consultation
100          $this->setSpeed('120');          $this->byId("consultation")->click();
101          //On clique sur l'onglet consultation          // On clique sur le lien d'ajout de consultation
102          $this->click("id=consultation");          $this->byId("action-soustab-consultation-corner-ajouter")->click();
103          //On clique sur le lien d'ajout de consultation          // On choisi le service "Direction de l'Eau et de l'Assainissement"
104          $this->click("css=.actions-max-2 a");          $this->select($this->byId("service"))->selectOptionByValue("1");
         //On choisi le service numéro 1  
         $this->select("id=service","value=1");  
105          //On ajoute la consultation          //On ajoute la consultation
106          $this->click("//input[@value='Ajouter']");          $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5);
107          //On vérifie que le logo s'est bien ajouté          //On vérifie que le logo s'est bien ajouté
108          $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');          $this->assertContains("Vos modifications ont bien été enregistrées.",
109          //On retourne au tableau de consultation en cliquant sur le lien de retour              $this->byCssSelector("#sousform-consultation .message .text")->text());
110          $this->click("css=#sousform-consultation .retour");          // On retourne au tableau de consultation en cliquant sur le lien de retour
111          //On vérifie que la nouvelle consultation est dans le tableau          $this->byCssSelector("#sousform-consultation .retour")->click();
         $this->assertText("css=.odd .col-0", "8");  
         $this->assertText("css=.odd .col-5", "Direction de l'Eau et de l'Assainissement");  
112          //On se déconnecte de l'application          //On se déconnecte de l'application
113          $this->deconnect();          $this->deconnect();
114                    
115          // On se connecte en tant que "admin"          // On se connecte en tant que "consu"
116          $this->login("consu", "consu");          // !!! Attention on n'utilise pas la méthode login standard car
117          // On clique sur le menu des demandes en cours          // l'utilisateur est redirigé automatiquement vers un autre écran
118          $this->clickAndWait("link=Demandes en cours");          // sans voir le message de connexion !!!
119            // On se connecte
120            $this->connect("consu", "consu");
121          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
122          $this->verifyNoErrors();          $this->verifynoerrors();
123          // On clique sur la consultation que l'instructeur vient d'ajouter          // On clique sur la consultation que l'instructeur vient d'ajouter
124          $this->clickAndWait("link=AZ 013055 12 00001P0");          $this->byLinkText("AZ 013055 12 00001P0")->click();
125          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
126          $this->verifyNoErrors();          $this->verifyNoErrors();
127          //On clique sur le lien "Rendre un avis" du portlet d'actions          // On clique sur le lien "Rendre un avis" du portlet d'actions
128          $this->click("css=.portlet-list li a");          $this->byCssSelector(".portlet-list li a")->click();
129          //On tente d'ajouter un fichier trop gros          // On tente d'ajouter un fichier trop gros
130          $this->click("css=span.ui-icon.ui-icon-arrowthickstop-1-s");          $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
131          //Sélection de l'image          // Sélection de l'image
132          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/image_1.jpg");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg");
133          //Valide le téléchargement          // Valide le téléchargement
134          $this->click("name=submit");          $this->byName("submit")->click();
135          //On vérifie le message d'erreur          //On vérifie le message d'erreur
136          $this->assertText("css=#upload-container .message .text", "Le fichier à charger excède la directive upload_max_filesize \(php\.ini\)\. \[image_1\.jpg\]");          $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());
137          //On tente d'ajouter un fichier avec une mauvais extension          //On tente d'ajouter un fichier avec une mauvais extension
138          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/fichier_1.odt");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
139          //Valide le téléchargement          //Valide le téléchargement
140          $this->click("name=submit");          $this->byName("submit")->click();
141          //On vérifie le message d'erreur          //On vérifie le message d'erreur
142          $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\]");          $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());
143            $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt");
144          //On ajoute le bon fichier          //On ajoute le bon fichier
145          $this->type("name=userfile[]",dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");          $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf");
146          //Valide le téléchargement          //Valide le téléchargement
147          $this->click("name=submit");          $this->byName("submit")->click();sleep(5);
148          //On vérifie que le nom du fichier dans le champ          //On vérifie que le nom du fichier dans le champ
149          $this->assertValue("id=fichier_upload", "lettre_rar16042013124515.pdf");          $this->assertContains("lettre_rar16042013124515.pdf",
150                $this->byId("fichier_upload")->attribute('value'));
151            // Saisie de valeurs
152            $this->select($this->byCssSelector("select#avis_consultation.\'champFormulaire"))->selectOptionByLabel("Defavorable");
153            $this->byCssSelector("textarea#motivation.champFormulaire")->value("Pas motivé");
154          //Ajoute le retour de consultation en BDD          //Ajoute le retour de consultation en BDD
155          $this->click("//input[@value='Modifier']");          $this->byXPath('//input[@value="Modifier"]')->click();
156          //On vérifie que le retour de consultation a bien été pris en compte          //On vérifie que le retour de consultation a bien été pris en compte
157          $this->assertText("css=#sousform-consultation .message .text", 'regexp:.*Vos modifications ont bien été enregistrées.*');          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-consultation .message .text")->text());
158          //Retour au tableau des consultation demandant un avis          // On clique sur le bouton "Retour"
159          $this->click("class=ui-dialog-titlebar-close ui-corner-all");          $this->byCssSelector(".ui-icon-closethick")->click();
160          //On se déconnecte de l'application          //On se déconnecte de l'application
161          $this->deconnect();          $this->logout();
162      }      }
163  }  }

Legend:
Removed from v.2112  
changed lines
  Added in v.3831

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26