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 architecte fréquent par l'administrateur technique. */ function test_01_AjoutArchitecteFrequent(){ // On se connecte en tant que "instr" $this->login("admin", "admin"); //On clique sur le menu iinstruction $this->byLinkText("Instruction")->click(); //On clique sur le menu des architectes fréquents $this->byLinkText("Architecte Fréquent")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'on est sur le bon tableau $this->assertEquals("Architecte Fréquent", $this->byXPath("//a[@href=\"#tabs-1\"]")->text()); //On clique sur le "+" du tableau d'architectes fréquents $this->byCssSelector(".add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On essaye de valider le formulaire sans remplir de champ $this->byXPath("//input[@value='Ajouter']")->click(); //On vérifie qu'il y a un message d'erreur $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector(".message .text")->text()); //On remplit les champs $this->byCssSelector("#nom")->value("Lefebvre"); $this->byCssSelector("#prenom")->value("James"); $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux"); $this->byCssSelector("#cp")->value("13010"); $this->byCssSelector("#ville")->value("Marseille"); $this->byCssSelector("#inscription")->value("0491855565"); $this->byCssSelector("#telephone")->value("0491236589"); $this->byCssSelector("#fax")->value("0491236585"); $this->byCssSelector("#email")->value("james.lefebvre@architecte.fr"); //On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); //On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text()); //On clique sur le bouton de 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 l'architecte fréquent s'est bien ajouté en cliquant dessus $this->byLinkText("James Lefebvre")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On se déconnecte de l'application $this->logout(); } /** * Test de l'ajout d'un architecte fréquent aux données techniques par l'instructeur. * - Utilisation de l'architecte fréquent rajouté par l'administrateur */ function test_02_AjoutArchitecteFrequentDonneesTechniques(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); //On clique sur le menu "Mes encours" $this->byLinkText("Mes Encours")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le dossier n°PC0130551200002P0 $this->byLinkText("PC 013055 12 00002P0")->click(); //On clique sur "Données techniques dans le portlet d'actions" $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click(); //On affiche le formulaire en modification $this->byCssSelector("#action-sousform-donnees_techniques-modifier")->click(); //On ouvre les fieldsets Construire puis Projet construction sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click(); sleep(1); //On clique sur "Ajouter un architecte" $this->byCssSelector("#sousform-donnees_techniques .field-type-manage_with_popup .form-content span")->click(); sleep(2); //On essaye de valider un formulaire vide $this->byCssSelector("#sousform-architecte .om-button")->click(); sleep(2); //On vérifie le message d'erreur $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-architecte .message .text")->text()); sleep(2); //On écrit le nom d'un architecte qui ne retournera aucun résultat $this->byCssSelector("#sousform-architecte #nom")->value("zzz"); sleep(2); //On lance la recherche $this->byCssSelector(".search-frequent-16")->click(); sleep(2); //On vérifie le message de l'overlay $this->assertRegExp('/.*Aucune correspondance trouvée.*/', $this->byCssSelector("#dialog")->text()); sleep(2); //On clique sur valider $this->byCssSelector(".ui-dialog .ui-dialog-buttonset .ui-button-text-only")->click(); sleep(2); //On vide le champ $this->byCssSelector("#sousform-architecte #nom")->clear(); sleep(2); //on écrit le nom d'un architecte qui existe existe en plusieurs fois $this->byCssSelector("#sousform-architecte #nom")->value("Mercier"); sleep(2); //On lance la recherche $this->byCssSelector(".search-frequent-16")->click(); sleep(2); //On vérifie qu'on a deux résultats $this->assertEquals(2, count($this->byCssSelector('#dialog select')->elements($this->using('css selector')->value('option')))); sleep(2); //On clique sur fermer $this->byCssSelector("div.dialog-search-frequent-architecte a.ui-dialog-titlebar-close")->click(); sleep(2); //On écrit le nom d'un architecte qui existe qu'une fois $this->byCssSelector("#sousform-architecte #nom")->clear(); $this->byCssSelector("#sousform-architecte #nom")->value("Lefebvre"); sleep(2); //On lance la recherche $this->byCssSelector(".search-frequent-16")->click(); sleep(2); //On vérifie qu'on a qu'un seul résultat $this->assertEquals(1, count($this->byCssSelector('#dialog select')->elements($this->using('css selector')->value('option')))); sleep(2); //On valide $this->byCssSelector("div.dialog-search-frequent-architecte div.ui-dialog-buttonset button")->click(); sleep(2); //On vérifie que le prenom de l'architecte choisit est bon $this->assertEquals("James", $this->byCssSelector("#sousform-architecte #prenom")->text()); //On clique sur retour $this->byCssSelector("#sousform-architecte a.retour")->click(); sleep(3); //On vérifie que l'identifiant de l'architecte choisit est bon $this->assertEquals("Lefebvre James", $this->byCssSelector(".field-type-manage_with_popup .edit-16")->text()); sleep(2); //On valide le formulaire de données techniques $this->byXPath("//input[@value='Modifier']")->click(); sleep(2); //On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text()); sleep(2); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques a.retour")->click(); sleep(2); //On clique sur "Données techniques dans le portlet d'actions" $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click(); //On ouvre les fieldsets Construire puis Projet construction sleep(2); $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(2); $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click(); sleep(3); //On verifie que le bon architecte s'est enregistré $this->assertEquals("James Lefebvre", $this->byCssSelector("#sousform-donnees_techniques #architecte")->text()); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques a.retour")->click(); // On se déconnecte de l'application $this->logout(); } /** * Test de l'ajout d'un architecte aux données techniques par l'instructeur. */ function test_03_AjoutArchitecteDonneesTechniques(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); //On clique sur le menu "Mes encours" $this->byLinkText("Mes Encours")->click(); //On choisit le dossier n°AZ0130551200001P0 $this->byLinkText("AZ 013055 12 00001P0")->click(); //On clique sur "Données techniques dans le portlet d'actions" $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click(); //On affiche le formulaire en modification $this->byCssSelector("#action-sousform-donnees_techniques-modifier")->click(); //On ouvre les fieldsets Construire puis Projet construction sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click(); sleep(1); //On clique sur "Ajouter un architecte" $this->byCssSelector("#sousform-donnees_techniques .field-type-manage_with_popup .form-content span")->click(); //On essaye de valider un formulaire vide $this->byCssSelector("#sousform-architecte .om-button")->click(); //On vérifie le message d'erreur $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-architecte .message .text")->text()); //On remplit les champs $this->byCssSelector("#nom")->value("Montmorrency"); $this->byCssSelector("#prenom")->value("Paul Marie Édouard"); $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux"); $this->byCssSelector("#cp")->value("13010"); $this->byCssSelector("#ville")->value("Marseille"); $this->byCssSelector("#inscription")->value("0491855565"); $this->byCssSelector("#telephone")->value("0491236589"); $this->byCssSelector("#fax")->value("0491236585"); $this->byCssSelector("#email")->value("paul.marie.edouard.montmorrency@architecte.fr"); //On valide le formulaire de l'architecte $this->byCssSelector("#sousform-architecte .om-button")->click(); sleep(1); //On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-architecte .message .text")->text()); //On clique sur retour² $this->byCssSelector("#sousform-architecte a.retour")->click(); //On vérifie que l'identifiant de l'architecte choisit est remplit $this->assertEquals("Montmorrency Paul Marie Édouard", $this->byCssSelector(".field-type-manage_with_popup .edit-16")->text()); //On valide le formulaire de données techniques $this->byXPath("//input[@value='Modifier']")->click(); //On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text()); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques a.retour")->click(); //On clique sur "Données techniques dans le portlet d'actions" $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click(); //On ouvre les fieldsets Construire puis Projet construction sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click(); sleep(1); $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click(); sleep(1); //On verifie que le bon architecte s'est enregistré $this->assertEquals("Paul Marie Édouard Montmorrency", $this->byCssSelector("#sousform-donnees_techniques #architecte")->text()); //On clique sur retour $this->byCssSelector("#sousform-donnees_techniques a.retour")->click(); // On se déconnecte de l'application $this->logout(); } /** * Test de l'ajout d'un architecte fréquent par l'administrateur technique. */ function test_04_MarquerArchitecteFrequentNonFrequent(){ // On se connecte en tant que "instr" $this->login("admin", "admin"); //On clique sur le menu iinstruction $this->byLinkText("Instruction")->click(); //On clique sur le menu des architectes fréquents $this->byLinkText("Architecte Fréquent")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie qu'on est sur le bon tableau $this->assertEquals("Architecte Fréquent", $this->byXPath("//a[@href=\"#tabs-1\"]")->text()); //On clique sur le "+" du tableau d'architectes fréquents $this->byCssSelector(".add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On essaye de valider le formulaire sans remplir de champ $this->byXPath("//input[@value='Ajouter']")->click(); //On vérifie qu'il y a un message d'erreur $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector(".message .text")->text()); //On remplit les champs $this->byCssSelector("#nom")->value("Paul"); $this->byCssSelector("#prenom")->value("James"); $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux"); $this->byCssSelector("#cp")->value("13010"); $this->byCssSelector("#ville")->value("Marseille"); $this->byCssSelector("#inscription")->value("0491855565"); $this->byCssSelector("#telephone")->value("0491236589"); $this->byCssSelector("#fax")->value("0491236585"); $this->byCssSelector("#email")->value("james.lefebvre@architecte.fr"); //On valide le formulaire $this->byXPath("//input[@value='Ajouter']")->click(); //On vérifie le message de validation $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text()); //On clique sur le bouton de 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 l'architecte fréquent s'est bien ajouté en cliquant dessus $this->byLinkText("James Paul")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On marque l'architecte comme non fréquent $this->byId("action-form-architecte_frequent-non_frequent")->click(); //On vérifie le message $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text()); // On clique sur le bouton "Retour" $this->byLinkText("Retour")->click(); // 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]*Architecte Fréquent[\s\S]*$/",$this->byId("formulaire")->text()); $this->assertNotContains('James Paul', $this->source()); // On se déconnecte $this->logout(); } } ?>