getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } /** * Test des requêtes concernant les listes simplifiées */ public function test_01_ListesSimplifiees(){ // $this->login("admin", "admin"); //On clique sur le menu des exports $this->byLinkText("Export / Import")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des reqmos pour pilotage $this->byLinkText("Statistiques À La Demande")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur dossier_simplifiee $this->byLinkText("dossier_simplifiee")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Lance la vérification $tableau = array("numéro de dossier", "date de dépôt", "petitionnaire principal","adresse du terrain", "shon", "libellé de la destination", "hauteur de la construction"); $this->verifyListe("1", "date_depot_debut", "01/12/2012", "date_depot_fin", "01/01/2013", "tableau", "PC 013055 12 00001P0", $tableau); //On clique sur dossier_simplifiee_accordes $this->byLinkText("dossier_simplifiee_accordes")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Lance la vérification $tableau = array("numéro de dossier", "date de décision", "petitionnaire principal","adresse du terrain", "shon", "libellé de la destination", "hauteur de la construction"); $this->verifyListe("3", "date_decision_debut", "01/08/2010", "date_decision_fin", "01/09/2010", "tableau", "PA 013055 12 00001P0", $tableau); //On clique sur dossier_simplifiee_deposes $this->byLinkText("dossier_simplifiee_deposes")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Lance la vérification $tableau = array("numéro de dossier", "date de dépôt", "petitionnaire principal","adresse du terrain", "shon", "libellé de la destination", "hauteur de la construction"); $this->verifyListe("7", "date_depot_debut", "01/12/2012", "date_depot_fin", "01/01/2013", "tableau", "AT 013055 12 00001P0", $tableau); // On se reconnecte en guichet $this->deconnect(); $this->login("guichet", "guichet"); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des instructions $this->byLinkText("Nouveau Dossier")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit le type détaillé de dossier d'autorisation $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1"); //On choisit le type de demande $this->select($this->byName("demande_type"))->selectOptionByValue("1"); //On clique sur "Saisir le pétitionnaire principal" $this->byId("add_petitionnaire_principal")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On saisit le nom du pétitionnaire principal $this->byId("particulier_nom")->value("test cloture"); // On clique sur ajouter $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); //On vérifie que le pétitionnaire s'est bien ajouté // On vérifie le message $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text()); // On clique sur le bouton retour $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); // On vérifie que le text est présent $this->assertContains("test cloture",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text()); // On clique sur ajouter $this->byXPath("//input[@value='Ajouter']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie le message $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message")->text()); //On récupère le numéro de dossier d'instruction créé preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier); $dossier = $dossier[0]; // On se reconnecte en instructeur $this->deconnect(); $this->login("instr", "instr"); //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(); // $this->byId("particulier")->value("test cloture"); // $this->byId("adv-search-submit")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le dossier PC0130551200001P0 $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 Instruction $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 lien "+" dans le tableau $this->byClassName("add-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On choisit un événement de refus de dossier $this->select($this->byName("evenement"))->selectOptionByValue("84"); // On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service $this->byXPath("//input[@value='Ajouter']")->click();sleep(1); //On vérifie que l'instruction s'est bien ajoutée $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text()); // On se reconnecte en cellule suivi $this->deconnect(); $this->login("suivi", "suivi"); //On clique sur le menu des exports $this->byLinkText("Export / Import")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des reqmos pour pilotage $this->byLinkText("Statistiques À La Demande")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //}}} //On clique sur dossier_simplifiee_refuses $this->byLinkText("dossier_simplifiee_refuses")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Lance la vérification $tableau = array("numéro de dossier", "date de décision", "petitionnaire principal","adresse du terrain", "shon", "libellé de la destination", "date de dépôt", "hauteur de la construction"); $this->verifyListe("1", "date_decision_debut", date("d/m/Y", strtotime(date('Y-m-d').' - 1 month')), "date_decision_fin", date("d/m/Y", strtotime(date('Y-m-d').' + 1 month')), "tableau", $dossier, $tableau); // On se déconnecte $this->logout(); } /** * Test des requêtes concernant les listes détaillées */ public function test_02_ListesDetaillees(){ // On se connecte en tant que 'admin' $this->login("admin", "admin"); //On clique sur le menu des exports $this->byLinkText("Export / Import")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des reqmos pour pilotage $this->byLinkText("Statistiques À La Demande")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur dossier_detaillee $this->byLinkText("dossier_detaillee")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("numéro de dossier", "date de dépôt", "date d'ouverture de chantier", "date de demande", "date achèvement", "date prévue de recevabilité", "destination des surfaces", "petitionnaire principal", "adresse du terrain", "référence cadastrale", "date de décision", "shon", "architecte", "affectation_surface", "nature des travaux", "nature du financement", "nombre de logements", "autorité compétente", "décision"); $this->verifyListe("1", "date_depot_debut", "01/12/2012", "date_depot_fin", "01/01/2013", "tableau", "PC 013055 12 00001P0", $tableau); //On clique sur dossier_detaillee_accordes $this->byLinkText("dossier_detaillee_accordes")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("numéro de dossier", "date de dépôt","date d'ouverture de chantier", "date de demande", "date achèvement", "date prévue de recevabilité", "destination des surfaces", "petitionnaire principal", "adresse du terrain", "référence cadastrale", "date de décision", "shon", "affectation_surface", "nature du financement", "nombre de logements", "autorité compétente", "décision"); $this->verifyListe("3", "date_decision_debut", "01/08/2010", "date_decision_fin", "01/09/2010", "tableau", "PA 013055 12 00001P0", $tableau); //On clique sur dossier_detaillee_accordes $this->byLinkText("dossier_detaillee_accordes")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("numéro de dossier"); $this->verifyListe("3", "date_decision_debut", "01/08/2010", "date_decision_fin", "01/09/2010", "tableau", "PA 013055 12 00001P0", $tableau); //On clique sur dossier_detaillee_detail $this->byLinkText("dossier_detaillee_detail")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("numéro de dossier", "date de dépôt","date d'ouverture de chantier", "date de demande", "date achèvement", "date prévue de recevabilité", "destination des surfaces", "petitionnaire principal", "adresse du terrain", "référence cadastrale", "date de décision", "shon", "architecte", "affectation_surface", "nature des travaux", "nature du financement", "nombre de logements", "autorité compétente", "décision"); $this->verifyListe("1", "date_decision_debut", "01/08/2010", "date_decision_fin", "01/09/2010", "tableau", "aucun enregistrement", $tableau, false); //On clique sur le menu des instructions $this->byLinkText("Instruction")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //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(); // $this->byId("particulier")->value("test cloture"); // $this->byId("adv-search-submit")->click();sleep(1); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le dossier PC0130551200001P0 $this->byLinkText("test cloture")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //Récupération du numéro de dossier $dossier = trim($this->byId("dossier_libelle")->text()); //On clique sur le menu des exports $this->byLinkText("Export / Import")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des reqmos pour pilotage $this->byLinkText("Statistiques À La Demande")->click(); //On clique sur dossier_detaillee_refuses $this->byLinkText("dossier_detaillee_refuses")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("numéro de dossier", "date de dépôt","date d'ouverture de chantier", "date de demande", "date achèvement", "date prévue de recevabilité", "destination des surfaces", "petitionnaire principal", "adresse du terrain", "référence cadastrale", "date de décision", "shon", "affectation_surface", "nature du financement", "nombre de logements", "autorité compétente", "décision"); $this->verifyListe("1", "date_decision_debut", date("d/m/Y", strtotime(date('Y-m-d').' - 1 month')), "date_decision_fin", date("d/m/Y", strtotime(date('Y-m-d').' + 1 month')), "tableau", $dossier, $tableau); // On se déconnecte $this->logout(); } /** * Test des trois éditions du module pilotage */ public function test_03_Edition(){ // $this->login("admin", "admin"); //On clique sur le menu des exports $this->byLinkText("Export / Import")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le menu des reqmos pour pilotage $this->byLinkText("Statistiques À La Demande")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur dossier_premiers_depots_dttm $this->byLinkText("dossier_premiers_depots_dttm")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("N° DE DOSSIER", "DATE DE DÉPÔT","PÉTITIONNAIRE PRINCIPAL", "ADRESSE DU TERRAIN"); $this->verifyEdition("1", "date_depot_debut", "01/12/2012", "date_depot_fin", "01/01/2013", "pdf", "PC 013055 12 00001P0", $tableau); //On clique sur dossier_depots_division $this->byLinkText("dossier_depots_division")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("N° DE DOSSIER", "DIVISION", "DATE DE DÉPÔT", "PÉTITIONNAIRE PRINCIPAL", "ADRESSE DU TERRAIN"); $this->verifyEdition("1", "date_depot_debut", "01/12/2012", "date_depot_fin", "01/01/2013", "pdf", "PC 013055 12 00001P0", $tableau, false); //On clique sur dossier_transmission_dttm_signature_prefet $this->byLinkText("dossier_transmission_dttm_signature_prefet")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); $tableau = array("N° DE DOSSIER", "DATE DE RETOUR SIGNATURE", "PÉTITIONNAIRE PRINCIPAL", "ADRESSE DU TERRAIN"); $this->verifyEdition("36", "date_retour_signature_debut", date("d/m/Y", strtotime(date('Y-m-d').' - 1 month')), "date_retour_signature_fin", date("d/m/Y", strtotime(date('Y-m-d').' + 1 month')), "pdf", "AT 013055 13 00001P0", $tableau, true, false); // On se déconnecte $this->logout(); } /** * Effectue les vérifications pour les listes simplifiées * @param $dossier_autorisation_type Type de dossier d'autorisation * @param $nom_debut Nom du premier champ * @param $debut Valeur du premier champ * @param $nom_fin Nom du second champ * @param $fin Valeur du second champ * @param $type_sortie Type de sortie des données * @param $donnees Données attendues * @param $tableau L'entête du tableau de données * @param $dat S'il faut sélectionner un type de dossier d'autorisation */ public function verifyListe($dossier_autorisation_type, $nom_debut, $debut, $nom_fin, $fin, $type_sortie, $donnees, $tableau, $dat = true){ if ( $dat ) { //On choisit le type de dossier d'autorisation $this->select($this->byName("dossier_autorisation_type"))->selectOptionByValue($dossier_autorisation_type); } //On saisit la date de début et de fin $this->byName($nom_debut)->value($debut); $this->byName($nom_fin)->value($fin); //On choisit le format de sortie $this->select($this->byName("sortie"))->selectOptionByValue($type_sortie); //On valide le formulaire $this->byClassName("formControls")->submit(); // 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 la bonne page $this->assertContains("Statistiques À La Demande", $this->byId("title")->text());sleep(1); //On vérifie les entêtes du tableau for ( $i = 0 ; $i < count($tableau) ; $i++){ $this->assertContains($tableau[$i], $this->byclassName("col-".$i)->text()); } //On vérifie les données $this->assertContains($donnees, $this->byId("content")->text()); //On clique sur le bouton retour $this->byClassName("retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le bouton retour $this->byClassName("retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); } /** * Effectue les vérifications pour les éditions * @param $dossier_instruction_type Type de dossier d'instruction * @param $nom_debut Nom du premier champ * @param $debut Valeur du premier champ * @param $nom_fin Nom du second champ * @param $fin Valeur du second champ * @param $type_sortie Type de sortie des données * @param $donnees Données attendues * @param $tableau L'entête du tableau de données * @param $dit S'il faut sélectionner un type de dossier d'instruction * @param $champAnnee Nom du champ de l'année * @param $champMois Nom du champ du mois * @param $champJour Nom du champ du jour * @param $contains Si l'on doit tester contains ou notcontains */ public function verifyEdition($dossier_instruction_type, $nom_debut, $debut, $nom_fin, $fin, $type_sortie, $donnees, $tableau, $dit = true, $contains = true){ if ( $dit ) { //On choisit le type de dossier d'autorisation $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type); } //On saisit la date de début et de fin $this->byName($nom_debut)->value($debut); $this->byName($nom_fin)->value($fin); //On choisit le format de sortie $this->select($this->byName("sortie"))->selectOptionByValue($type_sortie); //On valide le formulaire $this->byClassName("formControls")->submit(); // 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 la bonne page $this->assertContains("Statistiques À La Demande", $this->byId("title")->text()); //On vérifie que le lien est bien affiché $this->assertContains("Télécharger le fichier", $this->byClassName("message")->text()); //On affiche le PDF $this->byCssSelector("a.bold")->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 les textes sont présents foreach ( $tableau as $value ){ $this->assertRegExp("/^[\s\S]*".$value."[\s\S]*$/",$this->source()); } //On vérifie les données if($contains){ $this->assertRegExp("/^[\s\S]*".$donnees."[\s\S]*$/",$this->source()); } else { $this->assertNotRegExp("/^[\s\S]*".$donnees."[\s\S]*$/",$this->source()); } // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); //On clique sur le bouton retour $this->byClassName("retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); //On clique sur le bouton retour $this->byClassName("retour")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifyNoErrors(); } } ?>