2, "libelle" => "CIMETIERE DES NEUF COLLINES", "fichier" => "colline.png", ), array( "plans" => 3, "libelle" => "CIMETIERE SAINT-PIERRE", "fichier" => "saintpierre.png", ), ); /** * Fonction lancée en debut de chaque test */ public function setUp() { parent::setUp(); echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n"; } public function onNotSuccessfulTest(Exception $e){ echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n"; parent::onNotSuccessfulTest($e); } /** * Ce test permet simplement de vérifier l'ajout d'un plan dans le * paramétrage. */ public function test_01_parametrage_d_un_nouveau_plan() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Paramétrage du menu $this->byCssSelector("#menu li.rubrik a.parametrage-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Plans dans le menu $this->byCssSelector("#menu li.elem a.plans-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->plans as $plan) { // On clique sur le bouton ajouter du 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 saisit le libellé du plan $this->byId("planslib")->value($plan["libelle"]); // On clique sur l'icone pour permettre le téléchargement d'un fichier $this->byCssSelector("a.upload 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 plan à envoyer $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/".$plan["fichier"].""); // On clique sur le bouton Enregistrer pour envoyer le fichier au serveur $this->byCssSelector("#upload-form input[type=submit]")->click(); // On temporise pour que le fichier se télécharge et que le champ se remplisse correctement sleep(1); // On vérifie que le champ fichier est rempli correctement $this->assertEquals($plan["fichier"], $this->byCssSelector("#fichier_upload")->attribute("value")); // On clique sur le bouton AJouter pour valider le formulaire $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'plans'\"]")->click(); // On vérifie que le message de validation est correct $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("div.message span.text")->text()); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } // On se déconnecte $this->logout(); } /** * Ces données sont utilisées pour les tests suivants */ var $concessions = array( array( "concession" => 1, "famille" => "DURAND", "numero" => "12", "plans" => "1", "positionx" => "45", "positiony" => "125", "cimetiere" => "1", "zone" => "1", "voie" => "4", "concessionnaires" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "DURAND", "nom_d_usage" => "", "prenom" => "Philippe", "date_de_naissance" => "14/01/1964", "adresse1" => "33 Boulevard de Normandie", "adresse2" => "", "cp" => "94120", "ville" => "FONTENAY-SOUS-BOIS", "telephone" => "", "decede" => "", "observation" => "", ), ), "operation_defunts" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "DURAND", "nom_d_usage" => "", "prenom" => "PHILIPPE", "date_de_naissance" => "14/01/1964", "date_du_deces" => "12/04/2012", "lieu_du_deces" => "FONTENAY-SOUS-BOIS", "nature" => "", "date_d_inhumation" => "", "reduction" => "", "date_de_reduction" => "", "exhumation" => "", "date_d_exhumation" => "", ), ), ), array( "concession" => 2, "famille" => "MARTIN", "numero" => "15", "plans" => "2", "positionx" => "35", "positiony" => "125", "cimetiere" => "1", "zone" => "1", "voie" => "10", "concessionnaires" => array( array( "titre_de_civilite" => "Madame", "nom" => "BOISVERT", "nom_d_usage" => "MARTIN", "prenom" => "Marjolaine", "date_de_naissance" => "09/01/1951", "adresse1" => "22 avenue de l'Amandier", "adresse2" => "", "cp" => "41000", "ville" => "BLOIS", "telephone" => "02.63.03.82.04", "decede" => "", "observation" => "", ), ), "operation_defunts" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "MARTIN", "nom_d_usage" => "", "prenom" => "PAUL", "date_de_naissance" => "18/05/1923", "date_du_deces" => "12/03/2013", "lieu_du_deces" => "BLOIS", "nature" => "", "date_d_inhumation" => "", "reduction" => "", "date_de_reduction" => "", "exhumation" => "", "date_d_exhumation" => "", ), ), ), array( "concession" => 3, "famille" => "BONNET", "numero" => "6", "plans" => "1", "positionx" => "85", "positiony" => "215", "cimetiere" => "1", "zone" => "1", "voie" => "8", "concessionnaires" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "BONNET", "nom_d_usage" => "", "prenom" => "Jules", "date_de_naissance" => "20/01/1918", "adresse1" => "51 rue Goya", "adresse2" => "", "cp" => "94170", "ville" => "LE PERREUX-SUR-MARNE", "telephone" => "01.43.77.97.47", "decede" => "", "observation" => "", ), ), "operation_defunts" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "BONNET", "nom_d_usage" => "", "prenom" => "Jean", "date_de_naissance" => "18/01/1938", "date_du_deces" => "25/04/2012", "lieu_du_deces" => "LE PERREUX-SUR-MARNE", "nature" => "", "date_d_inhumation" => "", "reduction" => "", "date_de_reduction" => "", "exhumation" => "", "date_d_exhumation" => "", ), ), ), array( "concession" => 4, "famille" => "NEUFVILLE", "numero" => "14", "plans" => "2", "positionx" => "350", "positiony" => "120", "cimetiere" => "1", "zone" => "1", "voie" => "20", "concessionnaires" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "NEUFVILLE", "nom_d_usage" => "", "prenom" => "Latimer", "date_de_naissance" => "11/10/1923", "adresse1" => "44 rue Ernest Renan", "adresse2" => "", "cp" => "94600", "ville" => "CHOISY-LE-ROI", "telephone" => "01.47.77.72.86", "decede" => "", "observation" => "", ), ) ), array( "concession" => 5, "famille" => "PATEL", "numero" => "28", "plans" => "1", "positionx" => "135", "positiony" => "415", "cimetiere" => "1", "zone" => "1", "voie" => "22", "concessionnaires" => array( array( "titre_de_civilite" => "Monsieur", "nom" => "PATEL", "nom_d_usage" => "", "prenom" => "Raina", "date_de_naissance" => "14/01/1964", "adresse1" => "31 rue de Lille", "adresse2" => "", "cp" => "94120", "ville" => "FONTENAY-SOUS-BOIS", "telephone" => "", "decede" => "", "observation" => "", ), ) ), array( "concession" => 6, "famille" => "VARIEUR", "numero" => "37", "plans" => "2", "positionx" => "85", "positiony" => "235", "cimetiere" => "1", "zone" => "1", "voie" => "10", ), array( "concession" => 7, "famille" => "THIBODEAU", "numero" => "151", "plans" => "1", "positionx" => "350", "positiony" => "100", "cimetiere" => "1", "zone" => "1", "voie" => "2", ), array( "concession" => 8, "famille" => "GRONDIN", "numero" => "19", "plans" => "2", "positionx" => "435", "positiony" => "425", "cimetiere" => "1", "zone" => "1", "voie" => "4", ), array( "concession" => 9, "famille" => "LEMIEUX", "numero" => "31", "plans" => "1", "positionx" => "452", "positiony" => "180", "cimetiere" => "1", "zone" => "1", "voie" => "2", ), array( "concession" => 10, "famille" => "MARGAND", "numero" => "32", "plans" => "2", "positionx" => "335", "positiony" => "534", "cimetiere" => "1", "zone" => "1", "voie" => "10", ), array( "concession" => 11, "famille" => "LAMOUR", "numero" => "27", "plans" => "1", "positionx" => "60", "positiony" => "180", "cimetiere" => "1", "zone" => "1", "voie" => "20", ), array( "concession" => 12, "famille" => "LOUIS", "numero" => "3", "plans" => "2", "positionx" => "435", "positiony" => "425", "cimetiere" => "1", "zone" => "1", "voie" => "20", ), ); /** * Ce test permet simplement de vérifier l'ajout d'une concession avec ses * informations obligatoires */ public function test_11_ajout_d_une_concession() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Emplacements du menu $this->byCssSelector("#menu li.rubrik a.emplacement-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Concession dans le menu $this->byCssSelector("#menu li.elem a.concession-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->concessions as $concession) { // On clique sur le bouton ajouter du 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 saisit le nom de la famille $this->byId("famille")->value($concession["famille"]); // On saisir le numéro d'adresse dans le cimetière $this->byId("numero")->value($concession["numero"]); // On clique sur le bouton d'aide à la sélection de cimetière $this->byCssSelector("span.ui-icon.ui-icon-extlink")->click(); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On sélectionne le cimetière $this->byCssSelector("#cimetiere > option[value=\"".$concession["cimetiere"]."\"]")->click(); // On sélectionne la zone $this->byCssSelector("#zone > option[value=\"".$concession["zone"]."\"]")->click(); // On sélectionne la voie $this->byCssSelector("#voie > option[value=\"".$concession["voie"]."\"]")->click(); // On clique sur le bouton fermer pour valider la sélection $this->byCssSelector("a.linkjsclosewindow")->click(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur le bouton AJouter pour valider le formulaire $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'Emplacements'\"]")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On vérifie que le message de validation est correct $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("div.message span.text")->text()); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } // On se déconnecte $this->logout(); } /** * Ce test permet de vérifier la localisation d'un emplacement sur plan */ public function test_21_localisation_sur_plan_d_une_concession() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Emplacements du menu $this->byCssSelector("#menu li.rubrik a.emplacement-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Concession dans le menu $this->byCssSelector("#menu li.elem a.concession-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->concessions as $concession) { // On clique sur le nom de la famille dans le tableau $this->byLinkText($concession["famille"])->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'action Modifier du portlet $this->byCssSelector("#portlet-actions span.edit-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On sélectionne le plan $this->byCssSelector("#plans > option[value=\"".$concession["plans"]."\"]")->click(); // On clique sur l'icone qui permet de localiser l'emplacement sur plan $this->byCssSelector("a.localisation span.ui-icon.ui-icon-pin-s")->click(); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On vérifie que nous sommes sur la bonne fenêtre $this->assertEquals("Localisation", $this->byCssSelector("#title h2")->text()); // On déplace l'élément pour simuler un déplacement utilisateur $this->execute(array( 'script' => "plop = $('#plan-draggable').offset();$('#plan-draggable').offset({ top: plop.top+".$concession["positionx"].", left: plop.left+".$concession["positiony"]."});", 'args' => array()) ); // On se positionne sur l'élément $element = $this->byCssSelector("#plan-draggable"); $this->moveto($element); // On double clique sur l'élément pour le valider $this->doubleclick(); // On change le focus de la fenêtre $this->window($windows[0]); // On clique sur le bouton Modifier pour valider le formulaire $this->byXPath("//input[@value=\"Modifier l'enregistrement de la table : 'Emplacements'\"]")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On vérifie que le message de validation est correct $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("div.message span.text")->text()); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } // On se déconnecte $this->logout(); } /** * Ce test permet de vérifier l'ajout d'un fichier sur un emplacement */ public function test_31_ajout_d_un_dossier_sur_une_concession() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Emplacements du menu $this->byCssSelector("#menu li.rubrik a.emplacement-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Concession dans le menu $this->byCssSelector("#menu li.elem a.concession-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->concessions as $concession) { // On clique sur le nom de la famille dans le tableau $this->byLinkText($concession["famille"])->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'onglet Dossier $this->byId("dossier")->click(); // On clique sur le bouton ajouter du 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 saisit le type de dossier $this->byId("typedossier")->value("photo"); // On saisit la date de dossier $this->byId("datedossier")->value("04/06/2013"); // On saisit une observation $this->byName("observation")->value("Photo de l'emplacement"); // On clique sur l'icone pour permettre le téléchargement d'un fichier $this->byCssSelector("a.upload 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 plan à envoyer $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/p-concession-".$concession["concession"].".jpg"); // On clique sur le bouton Enregistrer pour envoyer le fichier au serveur $this->byCssSelector("#upload-form input[type=submit]")->click(); // On temporise pour que le fichier se télécharge et que le champ se remplisse correctement sleep(2); // On vérifie que le champ fichier est rempli correctement $this->assertEquals("p-concession-".$concession["concession"].".jpg", $this->byCssSelector("#fichier_upload")->attribute("value")); // On clique sur le bouton Ajouter pour valider le formulaire $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'dossier'\"]")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On vérifie que le message de validation est correct $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-dossier div.message span.text")->text()); // On clique sur l'onglet Dossier $this->byId("main")->click(); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } // On se déconnecte $this->logout(); } /** * Ce test permet de vérifier l'ajout d'un fichier sur un emplacement */ public function test_32_ajout_d_un_concessionnaire_sur_une_concession() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Emplacements du menu $this->byCssSelector("#menu li.rubrik a.emplacement-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Concession dans le menu $this->byCssSelector("#menu li.elem a.concession-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->concessions as $concession) { // if (isset($concession["concessionnaires"])) { // foreach($concession["concessionnaires"] as $concessionnaire) { // On clique sur le nom de la famille dans le tableau $this->byLinkText($concession["famille"])->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'onglet Dossier $this->byId("concessionnaire")->click(); // On clique sur le bouton ajouter du 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 sélectionne le titre de civilité $select = $this->select($this->byId("titre")); $select->selectOptionByLabel($concessionnaire["titre_de_civilite"]); // On saisit le nom patronymique $this->byId("nom")->value($concessionnaire["nom"]); // On saisit le nom d'usage $this->byId("marital")->value($concessionnaire["nom_d_usage"]); // On saisit le prénom $this->byId("prenom")->value($concessionnaire["prenom"]); // On saisit la date de naissance $this->byId("datenaissance")->value($concessionnaire["date_de_naissance"]); // On saisit une adresse $this->byId("adresse1")->value($concessionnaire["adresse1"]); // On saisit un complément d'adresse $this->byId("adresse2")->value($concessionnaire["adresse2"]); // On saisit un code postal $this->byId("cp")->value($concessionnaire["cp"]); // On saisit une ville $this->byId("ville")->value($concessionnaire["ville"]); // On saisit un numéro de téléphone $this->byId("telephone")->value($concessionnaire["telephone"]); // On saisit une observation $this->byName("observation")->value($concessionnaire["observation"]); // On clique sur le bouton Ajouter pour valider le formulaire $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'autorisation'\"]")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On vérifie que le message de validation est correct $this->assertEquals("Vos modifications ont bien été enregistrées.", $this->byCssSelector("#sousform-concessionnaire div.message span.text")->text()); // On clique sur l'onglet Dossier $this->byId("main")->click(); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } } } // On se déconnecte $this->logout(); } /** * Ce test permet de créer une opération et de vérifier la génération de * l'édition liée à cette opération */ public function test_51_ajout_d_une_operation_d_inhumation_concession() { // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Opérations du menu $this->byCssSelector("#menu li.rubrik a.operation-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Inhumation Concession dans le menu $this->byLinkText("Inhumation Concession")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les concessions de tests foreach ($this->concessions as $concession) { // On clique sur le bouton Ajouter du tableau $this->byClassName("add-16")->click(); // On saisi l'heure de l'opération $this->byId("heure")->value("12:00:00"); // On met un wildcard dans le nom de la famille pour qu'il sorte tous les emplacements $this->byId("famille")->value("%%"); // On clique sur le bouton de recherche combo $this->byCssSelector("span.ui-icon.ui-icon-circle-arrow-w")->click(); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // sleep(1); // On sélectionne la famille/emplacement voulu $select = $this->select($this->byName("famille")); $select->selectOptionByValue($concession["concession"]."£".$concession["famille"]."£"); // On valider notre sélection $this->byXPath("//input[@value='Valider']")->click(); // On change le focus de la fenêtre $this->window($windows[0]); // On saisi les informations du défunt if (isset($concession["operation_defunts"])) { // foreach($concession["operation_defunts"] as $defunt) { // On sélectionne le titre de civilité $select = $this->select($this->byId("defunt_titre")); $select->selectOptionByLabel($defunt["titre_de_civilite"]); // On saisit le nom patronymique $this->byId("defunt_nom")->value($defunt["nom"]); // On saisit le nom d'usage $this->byId("defunt_marital")->value($defunt["nom_d_usage"]); // On saisit le prénom $this->byId("defunt_prenom")->value($defunt["prenom"]); // On saisit la date de naissance $this->byId("defunt_datenaissance")->value($defunt["date_de_naissance"]); // On saisit une adresse $this->byId("defunt_datedeces")->value($defunt["date_du_deces"]); // On saisit un complément d'adresse $this->byId("defunt_lieudeces")->value($defunt["lieu_du_deces"]); } } // On valide le formulaire $this->byXPath("//input[@value=\"Ajouter l'enregistrement de la table : 'opération'\"]")->click(); // On vérifie que le message de validation est correct try { $this->assertTrue((bool)preg_match('/^[\s\S]*Vos modifications ont bien été enregistrées\.[\s\S]*$/',$this->byCssSelector("#content")->text())); } catch (PHPUnit_Framework_AssertionFailedError $e) { array_push($this->verificationErrors, $e->__toString()); } // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); // On clique sur le lien de l'édition multiple de l'opération $this->byId("action-tab-inhumation-left-edition-operation-1")->click(); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On valide la sélection des éditions $this->byXPath("//button[@type='submit']")->click(); // On temporise pour laisser le temps au pdf de se charger sleep(2); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); // On valide l'opération //if (isset($concession["operation_defunts"])) { // // On clique sur le lien de validation de l'opération // $this->byXPath("//div[@id='tab-inhumation']/table/tbody/tr/td/a[2]/img")->click(); // // On vérifie qu'il n'y ait pas d'erreur // $this->verifynoerrors(); // // On valide le formulaire // $this->byXPath("//input[@type=\"submit\"]")->click(); // // On vérifie qu'il n'y ait pas d'erreur // $this->verifynoerrors(); // // On vérifie que le message de validation est correct // try { // $this->assertTrue((bool)preg_match('/^[\s\S]*Vtraitement ok\.[\s\S]*$/',$this->byCssSelector("#content")->text())); // } catch (PHPUnit_Framework_AssertionFailedError $e) { // array_push($this->verificationErrors, $e->__toString()); // } // // On clique sur la rubrique Opérations du menu // $this->byCssSelector("#menu li.rubrik a.operation-20")->click(); // // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché // $this->verifynoerrors(); // // On clique sur l'élément Inhumation Concession dans le menu // $this->byLinkText("Inhumation Concession")->click(); // // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché // $this->verifynoerrors(); //} } // On se déconnecte $this->logout(); } /** * Ce test permet de vérifier qu'aucune édition pdf du menu * "Export" -> "Édition" ne produit d'erreur de base de données. */ public function test_91_verifier_toutes_les_editions_pdf_inc() { // On récupère la liste des objets à traiter $pdfs = $this->get_list_of_files_in_sql_pgsql("pdf"); // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Export du menu $this->byCssSelector("#menu li.rubrik a.edition-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Edition dans le menu $this->byCssSelector("#menu li.elem a.edition-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les éditions disponibles ( *.pdf.inc.php ) foreach ($pdfs as $pdf) { // On clique sur le lien qui correspond au pdf $this->byCssSelector("#edition a.edition-16[href=\"../scr/edition.php?obj=".$pdf["file"]."\"]")->click(); // On temporise pour laisser le temps au pdf de se charger sleep(2); // Liste des fenêtres ouvertes $windows = $this->windowHandles(); // On change le focus de la fenêtre $this->window($windows[1]); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On ferme la fenêtre $this->closeWindow(); // On change le focus de la fenêtre $this->window($windows[0]); } // On se déconnecte $this->logout(); } /** * Ce test permet de vérifier qu'aucune requête mémorisée reqmo du menu * "Export" -> "Requêtes mémorisées" ne produit d'erreur de base de données. */ public function test_92_verifier_tous_les_exports_reqmo_inc() { // On récupère la liste des objets à traiter $reqmos = $this->get_list_of_files_in_sql_pgsql("reqmo"); // On se connecte en tant que "admin" $this->login("admin", "admin"); // On clique sur la rubrique Export du menu $this->byCssSelector("#menu li.rubrik a.edition-20")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On clique sur l'élément Requêtes mémorisées dans le menu $this->byCssSelector("#menu li.elem a.reqmo-16")->click(); // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché $this->verifynoerrors(); // On boucle sur les requêtes mémorisées disponibles ( *.reqmo.inc.php ) foreach ($reqmos as $reqmo) { // On clique sur le lien qui correspond à la requête mémorisée $this->byCssSelector("#reqmo-list a.reqmo-16[href=\"../scr/reqmo.php?obj=".$reqmo["file"]."\"]")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On valide le formulaire $this->byCssSelector("#reqmo-form > form > div.formControls > input[type='submit']")->click(); // On vérifie qu'il n'y ait pas d'erreur $this->verifynoerrors(); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); // On clique sur le bouton retour $this->byCssSelector("a.retour")->click(); } // On se déconnecte $this->logout(); } // {{{ Fonctions utilitaires pour le fonctionnement des tests /** * Cette méthode permet de récupérer un tableau contentant la liste des * fichiers présents dans le dossier sql/pgsql. En fonction du paramètre * passé la liste concerne les fichiers *.pdf.inc.php soit les fichiers * *.reqmo.inc.php. */ private function get_list_of_files_in_sql_pgsql($type = NULL) { // if (is_null($type) || !in_array($type, array("pdf", "reqmo",))) { // return array(); } // $dir = getcwd(); $dir = substr($dir, 0, strlen($dir) - 6)."/sql/pgsql/"; $dossier = opendir($dir); $tab = array(); while ($entree = readdir($dossier)) { if (strstr($entree, $type)) { // Si l'extention du fichier $entree est .inc.php if (strpos($entree, ".inc.php")) { $filext = strlen(".".$type.".inc.php"); } else { // Sinon on considere qu'elle est -> .inc (compatibilite) $filext = strlen(".".$type.".inc"); } // array_push($tab, array('file' => substr($entree, 0, strlen($entree) - $filext))); } } closedir($dossier); asort($tab); // return $tab; } // }}} } ?>