getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } /** * test l'ajout de pièce */ public function test_01_AjoutPiece() { //On se connecte à l'application $this->login("admin", "admin"); //On clique sur le menu Instruction $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On cherche le dossier d'instruction $this->byId("dossier")->value("AT0130551200001P0"); //On valide la recherche $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le dossier $this->byLinkText("AT 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur l'onglet $this->byId("document_numerise")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'il n'y a aucun enregistrement $this->assertRegExp("/^[\s\S]*Aucun enregistrement[\s\S]*$/",$this->byId("sousform-document_numerise")->text()); //On vérifie la présence du bouton "Ajouter" (le "+" au dessus du tableau) //et du texte "Ajouter un document" $this->assertRegExp("/^[\s\S]*Ajouter un document[\s\S]*$/",$this->byId("sousform-document_numerise")->text()); //On clic sur "Ajouter un document" $this->byCssSelector(".add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ecrit les données $this->byId("date_creation")->clear(); $this->byId("date_creation")->value("01/01/2013"); $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai"); //On clic sur le bouton pour ajouter un fichier $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 un document non pdf $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.jpg"); $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\)\. \[testImportManuel\.jpg\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text()); //On sélectionne un document pdf $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf"); $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le bouton ajouter $this->byXPath('//input[@value="Ajouter"]')->click();sleep(1); //On clic sur le bouton retour $this->byCssSelector("#sformulaire a.retour")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que le document à été ajouté $this->assertRegExp("/^[\s\S]*20130101NDL.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text()); //On vérifie la categorie du document $this->assertRegExp("/^[\s\S]*Autre[\s\S]*$/",$this->byCssSelector("thead tr th.headerCat")->text()); //On vérifie la date de dépot du document $this->assertEquals("01/01/2013", $this->byCssSelector("thead tr th.headerDate")->text()); //On affiche le fichier pdf $this->byLinkText("20130101NDL.pdf")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 1[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); //On se déconnecte de l'application $this->logout(); } /** * test l'ajout de pièce déjà existante */ public function test_02_AjoutPieceUnique() { // On se connecte à l'application $this->login("admin", "admin"); //On clique sur le menu Instruction $this->byLinkText("Instruction")->click(); //On clic sur le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On cherche le dossier d'instruction $this->byId("dossier")->value("AT0130551200001P0"); //On valide la recherche $this->byId("adv-search-submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clic sur le dossier $this->byLinkText("AT 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur l'onglet $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur "Ajouter un document" $this->byCssSelector(".add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On ecrit les données $this->byId("date_creation")->clear(); $this->byId("date_creation")->value("01/01/2013"); $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai"); // On clic sur le bouton pour ajouter un fichier $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 le document $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf"); $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clic sur le bouton pour voir le fichier ajouté $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click(); // On clic sur le fichier ajouté $this->byLinkText("testImportManuel.pdf")->click();sleep(5); // Liste les fenêtres $windows = $this->windowHandles(); // On bascule sur le nouvel onglet PDF $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertContains("TEST IMPORT MANUEL 1", $this->source()); // On ferme la fenêtre $this->closeWindow(); // On revient sur la fenêtre de base $this->window($windows[0]); // On clique sur le bouton fermer $this->byLinkText("Fermer")->click();sleep(1); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clic sur le bouton ajouter $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5); // On vérifie qu'il y une erreur $this->assertRegExp("/^[\s\S]*Les valeurs saisies dans les champs[\s\S]*$/",$this->byId("sformulaire")->text()); // On se déconnecte de l'application $this->logout(); } /** * test la modification des pièces numérisés par l'administrateur */ public function test_03_ModificationPiece() { //On se connecte à l'application $this->login("admin", "admin"); //On clic sur le menu $this->byLinkText("Instruction")->click(); $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le dossier $this->byLinkText("AT 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur l'onglet $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le document $this->byLinkText("notification de délai")->click(); // On vérifie que les informations s'affichent $this->assertEquals("01/01/2013", $this->byId('date_creation')->text()); $this->assertEquals("notification de délai", $this->byId('document_numerise_type')->text()); // On clic sur le bouton modifier $this->byId("action-sousform-document_numerise-modifier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On enlève le fichier $this->byCssSelector("span.ui-icon.ui-icon-closethick")->click(); //On clic sur le bouton Modifier $this->byXPath('//input[@value="Modifier"]')->click();sleep(1); // On vérifie le message d'erreur $this->assertRegExp("/^[\s\S]*SAISIE NON[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise div.message")->text()); // On modifie les données $this->byId("date_creation")->clear(); $this->byId("date_creation")->value("20/04/2013"); $this->select($this->byId("document_numerise_type"))->selectOptionByValue("40"); //On clic sur le bouton pour ajouter un fichier $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 un document non pdf $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel2.pdf"); $this->byName("submit")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le bouton modifier $this->byXPath('//input[@value="Modifier"]')->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le bouton retour $this->byCssSelector("#sformulaire a.retour")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On affiche le fichier pdf $this->byLinkText("Visualiser")->click(); $this->byLinkText("20130420DGPA04.pdf")->click();sleep(5); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 2[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On ferme l'overlay $this->byLinkText("Fermer")->click(); //On se déconnecte de l'application $this->logout(); } /** * test la suppression des pièces numérisés par l'administrateur */ public function test_04_SuppressionPiece() { //On se connecte à l'application $this->login("adminfonct", "adminfonct"); //On clic sur le menu $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le dossier $this->byLinkText("AT 013055 12 00001P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur l'onglet $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le document $this->byLinkText("plan de composition d'ensemble du projet")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que les informations s'affichent $this->assertEquals("20/04/2013", $this->byId('date_creation')->text()); $this->assertEquals("plan de composition d'ensemble du projet", $this->byId('document_numerise_type')->text()); // On clic sur le bouton supprimer $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le bouton supprimer $this->byXPath('//input[@value="Supprimer"]')->click(); sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clic sur le bouton retour $this->byCssSelector("#sformulaire a.retour")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'il n'y a aucun enregistrement $this->assertRegExp("/^[\s\S]*Aucun enregistrement[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise")->text()); //On se déconnecte de l'application $this->logout(); } /** * test l'affichage des pièces numérisées dans un DA] */ public function test_05_AffichageDA() { // On se connecte à l'application $this->login("instr", "instr"); // On clique sur le menu $this->byLinkText("Autorisation")->click(); $this->byLinkText("Dossiers D'autorisation")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur un dossier d'autorisation possédant au moins un arrêté signé $this->byLinkText("AZ 013055 12 00001")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet "Pièce(s)" $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le document est présent // html body#jqueryui div#content.ui-widget div#formulaire.ui-tabs div#ui-tabs-2.i-tabs-panel div#sousform-document_numerise div#sousform-document_numerise div.formEntete table.tab-tab $this->assertRegExp("/^[\s\S]*20130614ART.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text()); // On clique sur le document $this->byLinkText("20130614ART.pdf")->click(); sleep(5); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur visualiser /*$this->byLinkText("Visualiser")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On affiche le fichier pdf $this->byCssSelector(".ui-dialog .file-infos-block a")->click();sleep(5); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors();*/ // Liste les fenêtres $windows = $this->windowHandles(); // Change la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que le text est présent $this->assertRegExp("/^[\s\S]*sjudgbjuwskfdhgvujdfkgvh[\s\S]*$/",$this->source()); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); //On ferme l'overlay /* $this->byClassName("ui-icon-closethick")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors();*/ //On se déconnecte de l'application $this->logout(); } /** * test de l'ajout de pièce à un dossier AT et envoi de message au * référentiel ERP */ public function test_06_AjoutPieceDossierAT(){ //{{{On ajoute un dossier AT // On se connecte à l'application $this->login("guichet", "guichet"); //On clique sur l'entrée de menu "Nouveau Dossier" $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); sleep(2); //On choisit le type détaillé de dossier d'autorisation $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("8"); //On choisit le type de la demande $this->select($this->byId("demande_type"))->selectOptionByValue("8"); //On saisit le pétitionnaire principal $this->byId("add_petitionnaire_principal")->click(); $this->byId("particulier_nom")->value("test"); $this->byCssSelector("#sousform-petitionnaire .formControls input")->click(); sleep(2); $this->byCssSelector("#sousform-petitionnaire .formControls .retour")->click(); //On ajoute la demande $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 le message de validation $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); //On récupère le numéro de dossier d'instruction créé preg_match('/(AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); $dossier = $dossier[0]; //On se déconnecte de l'application $this->deconnect(); //}}} //{{{On ajoute une pièce au dossier AT // On se connecte à l'application $this->login("admin", "admin"); //On clique sur le menu "Instruction" $this->byLinkText("Instruction")->click(); //On clique sur le menu "Recherche" $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le lien du dossier $this->byLinkText($dossier)->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur l'onglet "document numérisé" $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur "Ajouter un document" $this->byCssSelector(".formEntete p a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un fichier $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf"); $this->byName("submit")->click(); //On choisit le type de document $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78"); //On valide l'ajout $this->byXPath("//input[@value='Ajouter']")->click(); sleep(2); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie le message de validation $this->assertRegExp("/^[\s\S]*Le message a été transmis au référentiel ERP.[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise .message")->text()); //}}} //{{{On vérifie que le message ne s'affiche pas sur un autre dossier //On clique sur le menu "Recherche" $this->byLinkText("Recherche")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le lien du dossier $this->byLinkText("CU 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 "document numérisé" $this->byId("document_numerise")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur "Ajouter un document" $this->byCssSelector(".formEntete p a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On ajoute un fichier $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click(); $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf"); $this->byName("submit")->click(); //On choisit le type de document $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78"); //On valide l'ajout $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 le message de validation $this->assertNotContains("Le message a été transmis au référentiel ERP.",$this->byCssSelector("#sousform-document_numerise .message")->text()); //On se déconnecte de l'application $this->deconnect(); //}}} } } ?>