getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } /** * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes * génériques (celles qui se trouvent dans le fichier dyn/config.inc.php). * L'administrateur ajoute un logo. */ public function test_01_CasContraintesGeneriques() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur le menu "Paramétrage Dossiers" $this->byLinkText("Paramétrage Dossiers")->click(); // On clique sur le menu de paramétrage des logos $this->byLinkText("Logo")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le lien d'ajout de logo $this->byId("action-tab-om_logo-corner-ajouter")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On saisie des données $this->byId("id")->value("logo.jpg"); $this->byId("libelle")->value("Un logo"); $this->byId("actif")->click(); // On clique sur le bouton pour ajouter un logo $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On sélectionne l'image $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg"); // On valide le téléchargement $this->byName("submit")->click(); // On vérifie le message d'erreur $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()); // On sélectionne l'image $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt"); // On valide le téléchargement $this->byName("submit")->click(); // On vérifie le message d'erreur $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()); // On sélectionne l'image $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_2.jpg"); // On valide le téléchargement $this->byName("submit")->click();sleep(5); // On vérifie que le nom du fichier dans le champ $this->assertContains("image_2.jpg", $this->byId("fichier_upload")->attribute('value')); // On sélectionne la collectivité mono $this->select($this->byId("om_collectivite"))->selectOptionByLabel("MARSEILLE"); // On ajoute le logo en BDD $this->byXPath('//input[@value="Ajouter"]')->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que le logo s'est bien ajouté $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#tabs-1 .message .text")->text()); //On clique sur le lien "retour" $this->byLinkText("Retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que le nouveau logo est dans le tableau $this->assertContains("Un logo", $this->byId("tab-om_logo")->text()); // On se déconnecte de l'application $this->logout(); } /** * Test de l'ajout d'un fichier dont le champ d'upload avec des contraintes * spécifiques (celles qui se trouvent dans les classes métiers). * L'instructeur ajoutera une nouvelle consultation pour le service n°1 sur le * dossier AZ0130551200001P0 et ensuite le service consulté rendra un avis * auquel il joindra un fichier. */ public function test_02_CasContraintesSpecifiques() { // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le lien "Mes encours" dans le menu $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le dossier AZ0130551200001P0 $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet consultation $this->byId("consultation")->click(); // On clique sur le lien d'ajout de consultation $this->byId("action-soustab-consultation-corner-ajouter")->click(); // On choisi le service "Direction de l'Eau et de l'Assainissement" $this->select($this->byId("service"))->selectOptionByValue("1"); //On ajoute la consultation $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5); //On vérifie que le logo s'est bien ajouté $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-consultation .message .text")->text()); // On retourne au tableau de consultation en cliquant sur le lien de retour $this->byCssSelector("#sousform-consultation .retour")->click(); //On se déconnecte de l'application $this->deconnect(); // On se connecte en tant que "consu" // !!! Attention on n'utilise pas la méthode login standard car // l'utilisateur est redirigé automatiquement vers un autre écran // sans voir le message de connexion !!! // On se connecte $this->connect("consu", "consu"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur la consultation que l'instructeur vient d'ajouter $this->byLinkText("AZ 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Rendre un avis" du portlet d'actions $this->byCssSelector(".portlet-list li a")->click(); // On tente d'ajouter un fichier trop gros $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); // Sélection de l'image $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/image_1.jpg"); // Valide le téléchargement $this->byName("submit")->click(); //On vérifie le message d'erreur $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()); //On tente d'ajouter un fichier avec une mauvais extension $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt"); //Valide le téléchargement $this->byName("submit")->click(); //On vérifie le message d'erreur $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()); $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/fichier_1.odt"); //On ajoute le bon fichier $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/lettre_rar16042013124515.pdf"); //Valide le téléchargement $this->byName("submit")->click();sleep(5); //On vérifie que le nom du fichier dans le champ $this->assertContains("lettre_rar16042013124515.pdf", $this->byId("fichier_upload")->attribute('value')); //Ajoute le retour de consultation en BDD $this->byXPath('//input[@value="Modifier"]')->click(); //On vérifie que le retour de consultation a bien été pris en compte $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-demande_avis_encours .message .text")->text()); // On clique sur le bouton "Retour" $this->byCssSelector(".ui-icon-closethick")->click(); //On se déconnecte de l'application $this->logout(); } }