getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } /** * Test de la finalisation du rapport d'instruction par un instructeur pour le * dossier PC0130551200001. */ function test_01_FinalisationRapportInstruction(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le menu des 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 clique sur le dossier PC0130551200001 $this->byLinkText("PC 013055 12 00002P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Rapport d'instruction" dans le portlet d'action $this->byId("action-form-dossier_instruction_mes_encours-rapport_instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On valide le rapport d'instruction $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 rapport d'instruction s'est bien ajouté $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-rapport_instruction .message .text")->text()); // On clique sur retour $this->byCssSelector("#sousform-rapport_instruction form a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le lien "Rapport d'instruction" dans le portlet d'action $this->byId("action-form-dossier_instruction_mes_encours-rapport_instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On finalise le document $this->byId("action-sousform-rapport_instruction-finalise")->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->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-rapport_instruction .message .text")->text()); // On vérifie que le lien de finalisation a disparu try { $el = $this->byId("action-sousform-rapport_instruction-finalise"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } //On vérifie que l'action de modification n'existe plus try { $el = $this->byId("action-sousform-rapport_instruction-modifier"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } // On vérifie que le lien de dé-finalisation est apparu $this->assertTrue($this->byId("action-sousform-rapport_instruction-definalise")->displayed()); $this->assertEquals("Reprendre la rédaction du document", $this->byId("action-sousform-rapport_instruction-definalise")->text()); // On clique sur l'édition $this->byId("action-sousform-rapport_instruction-edition")->click(); // 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 lien de l'édition a changé $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url()); $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On dé-finalise le document en cliquant sur le lien Reprendre la rédaction // du document $this->byCssSelector("#sousform-rapport_instruction .portlet-list li:nth-child(2) a")->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->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-rapport_instruction .message .text")->text()); // On vérifie que le lien de dé-finalisation a disparu try { $el = $this->byId("action-sousform-rapport_instruction-definalise"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } // On vérifie que le lien de modification est apparu $this->assertTrue($this->byCssSelector("#sousform-rapport_instruction .edit-16")->displayed()); // On vérifie que le lien de finalisation est apparu $this->assertTrue($this->byId("action-sousform-rapport_instruction-finalise")->displayed()); $this->assertEquals("Finaliser le document", $this->byCssSelector("#sousform-rapport_instruction .portlet-list li:nth-child(3) a span.finalise")->text()); // On clique sur l'édition $this->byId("action-sousform-rapport_instruction-edition")->click(); // 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 lien de l'édition a changé $this->assertRegExp('/^[\s\S]*scr\/sousform\.php[\s\S]*$/', $this->url()); $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); //On ferme l'overlay $this->byCssSelector(".ui-dialog-titlebar a.ui-dialog-titlebar-close")->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 la finalisation du document lors de l'ajout d'une consultation par un * instructeur pour le dossier PC 013055 12 00002P0. */ function test_02_FinalisationAjoutConsultation(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le menu des 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 clique sur le dossier PC0130551200001 $this->byLinkText("PC 013055 12 00002P0")->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 vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le + pour ajouter une consultation $this->byCssSelector("#sousform-consultation .actions-max-2 a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On choisi le service "Atelier du Patrimoine" $this->select($this->byId("service"))->selectOptionByValue("2"); // On clique sur le bouton ajouter $this->byXPath("//input[@value='Ajouter']")->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 la consultation a bien été ajoutée $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On clique sur retour $this->byCssSelector("#sousform-consultation form a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur la consultation $this->byLinkText("59.02 - Atelier du Patrimoine")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'édition $this->byId("action-sousform-consultation-consulter_pdf")->click(); // 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 lien de l'édition a changé $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url()); $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); //On vérifie que le lien de finalisation n'est pas apparu try { $el = $this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a span.finalise"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } //On vérifie que le lien de définalisation est apparu $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a span.definalise")->displayed()); //On définalise $this->byCssSelector("#sousform-consultation .portlet-list li:nth-child(2) a")->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->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text()); // On vérifie que le lien de dé-finalisation a disparu try { $el = $this->byCssSelector("#sousform-instruction .portlet-list li:nth-child(2) a span.definalise"); $this->fail('Cet élément ne devrait pas consultation.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } //On vérifie que le lien de suppression est apparu $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list .delete-16")->displayed()); //On vérifie que l'action de modification n'est pas apparu try { $el = $this->byCssSelector("#sousform-consultation .edit-16"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } //On vérifie que le lien de finalisation est apparu $this->assertTrue($this->byCssSelector("#sousform-consultation .portlet-list a span.finalise")->displayed()); // On se déconnecte de l'application $this->logout(); } /** * Test de la finalisation du document d'une instruction par un instructeur pour * le dossier PC 013055 12 00002P0. */ function test_03_FinalisationInstruction(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le menu des 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 clique sur le dossier PC0130551200001 $this->byLinkText("PC 013055 12 00002P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Ralenti l'exécution du script pour permettre au JS de se charger $this->byId("instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le + pour ajouter une instruction $this->byCssSelector("#sousform-instruction .actions-max-1 a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On choisi l'événement "adjoint [majoration]" $this->select($this->byId("evenement"))->selectOptionByValue("62"); // On clique sur le bouton ajouter $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 l'instruction s'est bien ajouté $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On clique sur le bouton retour $this->byCssSelector("#sousform-instruction form a.retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'instruction nouvellement créée $this->byLinkText("adjoint")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que le lien de finalisation est apparu $this->assertTrue($this->byId("action-sousform-instruction-finaliser")->displayed()); $this->assertEquals("Finaliser le document", $this->byId("action-sousform-instruction-finaliser")->text()); // On clique sur l'édition $this->byId("action-sousform-instruction-edition")->click(); // 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 lien de l'édition $this->assertRegExp('/^[\s\S]*scr\/sousform\.php[\s\S]*$/', $this->url()); $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On finalise le document $this->byId("action-sousform-instruction-finaliser")->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->assertEquals('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On vérifie que le lien de finalisation a disparu try { sleep(1); $el = $this->byId("action-sousform-instruction-finaliser"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } // On vérifie que le lien de modification a disparu try { $el = $this->byId("action-sousform-instruction-modifier"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } // On vérifie que le lien de dé-finalisation est apparu $this->assertTrue($this->byId("action-sousform-instruction-definaliser")->displayed()); $this->assertEquals("Reprendre la rédaction du document", $this->byId("action-sousform-instruction-definaliser")->text()); // On clique sur l'édition $this->byId("action-sousform-instruction-edition")->click(); // 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 lien de l'édition a changé $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/', $this->url()); $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On dé-finalise le document en cliquant sur le lien Reprendre la rédaction // du document $this->byId("action-sousform-instruction-definaliser")->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->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On vérifie que le lien de dé-finalisation a disparu try { $el = $this->byId("action-sousform-instruction-definaliser"); $this->fail('Cet élément ne devrait pas exister.'); } catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) { $this->assertEquals(PHPUnit_Extensions_Selenium2TestCase_WebDriverException::NoSuchElement, $e->getCode()); } //On vérifie que le lien de modification est apparu $this->assertTrue($this->byId("action-sousform-instruction-modifier")->displayed()); //On se déconnecte de l'application $this->logout(); } /** * Test de la finalisation du compte rendu et de l'ordre du jour d'une commission * par la cellule suivi sur le dossier PC 013055 12 00002P0. */ function test_04_FinalisationCommission(){ // On se connecte en tant que "instr" $this->login("instr", "instr"); // On clique sur le menu des 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 clique sur le dossier PC0130551200001 $this->byLinkText("PC 013055 12 00002P0")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur l'onglet commission $this->byId("dossier_commission")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur le + pour ajouter une commission $this->byCssSelector("#sousform-dossier_commission .actions-max-1 a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On choisi le type de commission "Commission Technique d'Urbanisme" $this->select($this->byId("commission_type"))->selectOptionByValue("1"); // On clique sur le bouton ajouter $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 l'instruction s'est bien ajouté $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-dossier_commission .message .text")->text()); //On se déconnecte de l'application $this->deconnect(); // On se connecte en tant que "suivi" $this->login("suivi", "suivi"); // On clique sur le menu gestion $this->byLinkText("Gestion")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On clique sur la commission numéro 1 $this->byLinkText("1")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Mise à jour de la liste de diffusion $this->byCssSelector(".portlet-list li:nth-child(1) a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $this->byId("listes_de_diffusion")->clear(); $this->byId("listes_de_diffusion")->value("support@atreal.fr"); $this->byXPath("//input[@value='Modifier']")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); // On vérifie que la commission s'est bien mise à jour $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".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 clique sur la diffusion de l'ordre du jour $this->byCssSelector(".portlet-list li:nth-child(3) a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que l'ordre du jour s'est bien envoyé $this->assertRegExp('/.*La diffusion de l\'ordre du jour s\'est effectuée avec succès.*/', $this->byCssSelector(".message span.text")->text()); // On vérifie que le lien de l'édition a changé $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/',$this->byCssSelector(".portlet-list li:nth-child(6) a")->attribute("href")); // On clique sur la diffusion du compte rendu $this->byCssSelector(".portlet-list li:nth-child(4) a")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On vérifie que le compte rendu s'est bien envoyé $this->assertRegExp('/.*La diffusion du compte-rendu s\'est effectuée avec succès.*/', $this->byCssSelector(".message span.text")->text()); // On vérifie que le lien de l'édition a changé $this->assertRegExp('/^[\s\S]*spg\/file\.php[\s\S]*$/',$this->byCssSelector(".portlet-list li:nth-child(7) a")->attribute("href")); //On se déconnecte de l'application $this->logout(); } }