*** Settings *** Documentation Test sur les dossiers d'instruction. # On inclut les mots-clefs Resource resources/resources.robot # On ouvre/ferme le navigateur au début/à la fin du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Test Cases *** Constitution du jeu de données [Documentation] Constitution du jeu de données nécessaire pour les tests. Depuis la page d'accueil admin admin &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ... terrain_adresse_voie_numero=56 ... terrain_adresse_voie=boulevard Amiral Courbet ... terrain_adresse_lieu_dit= ... terrain_adresse_code_postal= ... terrain_adresse_localite=Marseille ... terrain_adresse_bp= ... terrain_adresse_cedex= Set Suite Variable ${args_demande} &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Reault ... particulier_prenom=Yvette ... om_collectivite=MARSEILLE ${di_normalisation_address_terrain_id} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Set Suite Variable ${di_normalisation_address_terrain_id} # On crée une nouvelle demande pour tester le commentaire d'un événement &{args_petitionnaire} = Create Dictionary ... particulier_nom=COMMENTAIRE ... particulier_prenom=Evenement ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ${di_comment_envent} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Set Suite Variable ${di_comment_envent} Normalisation de l'adresse du terrain [Documentation] Création d'une adresse normalisée récupérée depuis la BAN, ... sur un dossier d'instruction et vérification de l'utilisation de cette ... adresse dans certains affichages et pour la recherche avancée. Depuis la page d'accueil admin admin # Utilisation de la fonctionnalité de normalisation de l'adresse Depuis le contexte du dossier d'instruction ${di_normalisation_address_terrain_id} Click On Form Portlet Action dossier_instruction normalize_address modale ${expected_address_value} = Catenate ... SEPARATOR=${SPACE} ... ${args_demande.terrain_adresse_voie_numero} ... ${args_demande.terrain_adresse_voie} ... ${args_demande.terrain_adresse_localite} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Value Should Be css=#sousform-normalize_address input#address ${expected_address_value} Wait Until Element Is Visible css=ul.ui-autocomplete ${normalized_address} = Get Text css=ul.ui-autocomplete li.ui-menu-item a Click Element Until No More Element ... css=ul.ui-autocomplete li.ui-menu-item a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Value Should Be css=#sousform-normalize_address input#address ${normalized_address} Click Element Until No More Element ... css=#sousform-normalize_address form[name="f2_normalize_address"] div.formControls input[type="submit"] Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Value Should Contain From List css=.localisation-terrain-adresse ${normalized_address} # Message précisant que l'adresse a déjà été normalisée Click On Form Portlet Action dossier_instruction normalize_address modale Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Value Should Be css=#sousform-normalize_address input#address ${normalized_address} Element Text Should Be css=div#sousform-normalize_address div.message p span.text L'adresse de ce terrain a déjà été normalisée. # Recherche du dossier depuis l'adresse normalisée Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#adresse *${normalized_address} Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_normalisation_address_terrain_id} # Recherche du dossier depuis l'adresse du dossier Input Text css=div#adv-search-adv-fields input#adresse *${args_demande.terrain_adresse_voie} Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_normalisation_address_terrain_id} # Ajoute une instruction pour mettre à jour l'adresse du dossier d'autorisation # et vérifie l'adresse dans son listing et sur la fiche ${da} = Get Substring ${di_normalisation_address_terrain_id} 0 -2 Ajouter une instruction au DI ${di_normalisation_address_terrain_id} Notification de pieces manquante Depuis le listing des dossiers d'autorisation Input Text css=div#adv-search-adv-fields input#adresse *${normalized_address} Click On Search Button Element Should Contain css=#tab-dossier_autorisation table.tab-tab tbody ${da} Input Text css=div#adv-search-adv-fields input#adresse *${args_demande.terrain_adresse_voie} Click On Search Button Element Should Contain css=#tab-dossier_autorisation table.tab-tab tbody ${da} Click On Link ${da} Form Static Value Should Be css=#infos_localisation_terrain ${normalized_address} # Modification de l'adresse depuis le dossier &{di_values} = Create Dictionary ... terrain_adresse_voie_numero=${EMPTY} ... terrain_adresse_voie=rue de la république ... terrain_adresse_lieu_dit= ... terrain_adresse_code_postal= ... terrain_adresse_localite=Marseille ... terrain_adresse_bp= ... terrain_adresse_cedex= Modifier le dossier d'instruction ${di_normalisation_address_terrain_id} ${di_values} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Text Should Not Be css=.localisation-terrain-adresse ${normalized_address} Click On Form Portlet Action dossier_instruction normalize_address modale Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=#sousform-normalize_address L'adresse de ce terrain a déjà été normalisée. # Recherche du dossier depuis l'adresse normalisée doit échouée Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#adresse *${normalized_address} Click On Search Button Element Should Not Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_normalisation_address_terrain_id} # Recherche du dossier depuis l'adresse du dossier Input Text css=div#adv-search-adv-fields input#adresse *${di_values.terrain_adresse_voie} Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_normalisation_address_terrain_id} Normaliser l'adresse du terrain avec le premier résultat ${di_normalisation_address_terrain_id} Vérification de l'apparition de journal d'instruction depuis le menu 'mes encours', 'tous les encours', 'mes clotures' et 'tous les clotures' [Documentation] Ce test vérifie que l'option journal d'instruction apparait depuis ... le menu 'mes encours', 'tous les encours', 'mes clotures' et 'tous les clotures' Depuis la page d'accueil admin admin # Création d'un instructeur ADMINISTRATEUR GENERAL &{args_instructeur} = Create Dictionary ... nom=Uriel ... division=subdivision H ... instructeur_qualite=instructeur ... om_utilisateur=Administrateur gen Marseile Ajouter l'instructeur ${args_instructeur} # Création d'un dossier &{args_dossier} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035LOGS ... particulier_prenom=TEST035LOGS ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire} &{di_values} = Create Dictionary ... instructeur=Uriel Modifier le dossier d'instruction ${di} ${di_values} Depuis la page d'accueil admingenmars admingenmars # Depuis le menu mes encours Depuis le contexte du dossier d'instruction de mes encours ${di} # Vérifie l'action Journnal d'instruction pour l'instructeur polyvalent Element Should Be Visible css=.om-prev-icon.om-icon-16.journal-instruction-16 # Depuis le menu tous les encours Depuis le contexte du dossier d'instruction de tous les encours ${di} # Vérifie l'action Journnal d'instruction pour l'instructeur polyvalent Element Should Be Visible css=.om-prev-icon.om-icon-16.journal-instruction-16 Ajouter une instruction au DI et la finaliser ${di} ... accepter un dossier sans réserve # Depuis le menu mes clotures Depuis le contexte du dossier d'instruction de mes clotures ${di} # Vérifie l'action Journnal d'instruction pour l'instructeur polyvalent Element Should Be Visible css=.om-prev-icon.om-icon-16.journal-instruction-16 # Depuis le menu tous les clotures Depuis le contexte du dossier d'instruction de tous les cloture ${di} # Vérifie l'action Journnal d'instruction pour l'instructeur polyvalent Element Should Be Visible css=.om-prev-icon.om-icon-16.journal-instruction-16 Vérification du découpage des données mises à jour du DA [Documentation] Vérifie le découpage des mises à jour des données du ... dossier d'autorisation. ... Depuis un PCI initial qui met à jour toutes les données du DA, la mise ... à jour des données techniques est désactivée et la fiche du DA est ... contrôlé. &{args_dossier_para} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1_para} = Create Dictionary ... qualite=particulier ... particulier_nom=T035DOSSPARAN ... particulier_prenom=T035DOSSPARAP ... om_collectivite=MARSEILLE ${dipara1} = Ajouter la demande par WS ${args_dossier_para} ${args_petitionnaire1_para} # Vérifie la mise à jour des données techniques su DA depuis le DI initial Depuis la page d'accueil instr instr &{donnees_techniques_values} = Create Dictionary ... ope_proj_desc=Description test dossier parallèle Saisir les données techniques du DI ${dipara1} ${donnees_techniques_values} ${da_para} = Get Substring ${dipara1} 0 -2 Depuis le contexte du dossier d'autorisation ${da_para} Element Should Contain da_description_projet - Depuis le formulaire de modification du dossier d'instruction ${dipara1} Open Fieldset dossier_instruction demandeur Click Element Until New Element css=#petitionnaire_principal_delegataire .demande__demandeur--actions button.button-edit css=.ui-widget-overlay Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Input Text css=#particulier_nom T035DOSSPARANCHANGED Click Element Until No More Element css=#sousform-petitionnaire input[value="Modifier le demandeur"] Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain liste_demandeur T035DOSSPARANCHANGED Ajouter une instruction au DI ${dipara1} adjoint Depuis le contexte du dossier d'autorisation ${da_para} Element Should Contain css=#da_demandeur T035DOSSPARANCHANGED Element Should Contain css=#da_description_projet Description test dossier parallèle # Désactive la mise à jour des données techniques du DA depuis le DI initial Depuis la page d'accueil admin admin &{val_type_PCI_P} = Create Dictionary ... maj_da_dt=false Modifier type de dossier d'instruction PCI P ${val_type_PCI_P} # Vérifie que les données techniques n'ont pas été mise à jour sur le DA Depuis la page d'accueil instr instr Depuis le contexte du dossier d'instruction ${dipara1} &{donnees_techniques_values_2} = Create Dictionary ... ope_proj_desc=Dossier sans maj données techniques Saisir les données techniques du DI ${dipara1} ${donnees_techniques_values_2} Depuis le contexte du dossier d'autorisation ${da_para} Element Should Contain css=#da_description_projet Description test dossier parallèle Depuis le formulaire de modification du dossier d'instruction ${dipara1} Open Fieldset dossier_instruction demandeur Click Element Until New Element css=#petitionnaire_principal_delegataire .demande__demandeur--actions button.button-edit css=.ui-widget-overlay Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Input Text css=#particulier_nom T035DOSSPARANCHANGED2 Click Element Until No More Element css=#sousform-petitionnaire input[value="Modifier le demandeur"] Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain liste_demandeur T035DOSSPARANCHANGED2 Ajouter une instruction au DI ${dipara1} ARRÊTÉ DE REFUS Depuis le contexte du dossier d'autorisation ${da_para} Element Should Contain css=#da_demandeur T035DOSSPARANCHANGED2 Element Should Contain css=#da_description_projet Description test dossier parallèle # Réactive la mise à jour des données techniques du DA depuis le DI initial Depuis la page d'accueil admin admin &{val_type_PCI_P} = Create Dictionary ... maj_da_dt=true Modifier type de dossier d'instruction PCI P ${val_type_PCI_P} Vérification de l'instruction de dossier en parallèle [Documentation] Vérifie l'instruction de plusieurs dossiers d'instruction ... sur la même autorisation, en parallèle. ... Depuis un PCI initial accordé, ajout d'un modificatif, d'une DOC et ... à nouveau d'un modificatif. Les trois dossiers d'instruction sont ... instruits parallèlement. ... On vérifie également le comportemet de la mise à jour des données du DA ... lors de l'ajout d'un DI en parallèle mais également lors de la ... suppression d'un DI en parallèle. ... On s'attarde également sur la mise à jour des demandeurs sur le DA afin ... de ne pas avoir de doublon de demandeur principal dans les liaisons ... entre le DA et les demandeurs. Depuis la page d'accueil admin admin # Modification des types d'instruction PCI modificatif et DOC pour ne plus # mettre à jour toutes les données du DA # Le modificatif met à jour toutes les données excepté la date de DOC # La DOC met à jour seulement la date de DOC et les données techniques &{val_type_PCI_DOC} = Create Dictionary ... maj_da_date_daact=false ... maj_da_date_validite=false ... maj_da_date_init=false ... maj_da_etat=false ... maj_da_demandeur=false ... maj_da_lot=false ... maj_da_localisation=false ... maj_da_date_doc=true ... maj_da_dt=true Modifier type de dossier d'instruction PCI DOC ${val_type_PCI_DOC} &{val_type_PCI_M} = Create Dictionary ... maj_da_date_doc=false Modifier type de dossier d'instruction PCI M ${val_type_PCI_M} # Ajout d'un événement disponible pour une DOC et Modificatif, permettant de # modifier la date de chantier (un modificatif ne devrait pas pouvoir # modifier la date de chantier) @{type_di} = Create List ... PCI - DOC - Ouverture de chantier ... PCI - M - Modificatif @{etats_autorises} = Create List delai de notification envoye &{args_evenement_para} = Create Dictionary ... libelle=Déclaration ouverture de chantier - 035_dossier_instruction ... dossier_instruction_type=${type_di} ... action=executer les travaux ... etats_autorises=${etats_autorises} ... etats_depuis_lequel_l_evenement_est_disponible=${etats_autorises} ... etat=delai de notification envoye Ajouter l'événement depuis le menu ${args_evenement_para} # Ajout d'un événement de réouverture de l'instruction du dossier pour les # Modificatif et les DOC &{args_action} = Create Dictionary ... action=reprise_instruction_035 ... libelle=reprise de l'instruction - 035 ... regle_etat=etat ... regle_accord_tacite=accord_tacite ... regle_avis=null ... regle_date_validite=null ... regle_date_decision=null Ajouter Action ${args_action} @{etats_autorises2} = Create List dossier accepter &{args_evenement_para2} = Create Dictionary ... libelle=Reprise de l'instruction - 035_dossier_instruction ... dossier_instruction_type=${type_di} ... action=${args_action.libelle} ... etats_autorises=${etats_autorises2} ... etats_depuis_lequel_l_evenement_est_disponible=${etats_autorises2} ... etat=delai de notification envoye ... accord_tacite=Non Ajouter l'événement depuis le menu ${args_evenement_para2} &{args_dossier_para2} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1_para2} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DOSSIERPARALLELENOM2 ... particulier_prenom=TEST035DOSSIERPARALLELEPRENOM2 ... om_collectivite=MARSEILLE ${dipara2} = Ajouter la demande par WS ${args_dossier_para2} ${args_petitionnaire1_para2} ${da_para2} = Get Substring ${dipara2} 0 -2 Set Suite Variable ${da_para2} Depuis la page d'accueil instr instr Ajouter une instruction au DI et la finaliser ${dipara2} accepter un dossier sans réserve # Vérifie que l'ajout d'un modificatif sur l'initial est possible puis ajout # de celui-ci &{args_demande_modif_para} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${dipara2} Set Suite Variable ${args_demande_modif_para} Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara2} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain demande_type ${args_demande_modif_para.demande_type} &{args_petitionnaire_modif_para} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DOSSIERPARALLELENOM2.5 ... particulier_prenom=TEST035DOSSIERPARALLELEPRENOM2.5 ... delete_demandeur=true ${di_modif_para} = Ajouter la demande sur dossier en cours ${dipara2} ${args_demande_modif_para} ${args_petitionnaire_modif_para} # Vérifie que le DA ne soit pas lié à deux demandeurs principaux # Donc on vérifie que le DA n'apparait qu'une fois dans le listing des DA Depuis le listing des dossiers d'autorisation ${da_para2_sans_espace} = Sans espace ${da_para2} Input Text css=div#adv-search-adv-fields input#dossier ${da_para2_sans_espace} Click On Search Button Total Results Should Be Equal 1 Elements From Column Should Be 2 ${args_petitionnaire1_para2.particulier_nom} ${args_petitionnaire1_para2.particulier_prenom} # Vérifie que l'ajout d'une DOC dans ce contexte n'est pas possible &{args_demande_doc_para} = Create Dictionary ... demande_type=Demande d'ouverture de chantier ... dossier_instruction=${dipara2} Depuis le contexte de demande sur dossier en cours via le menu ${dipara2} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain demande_type ${args_demande_doc_para.demande_type} Depuis le contexte de demande sur dossier en cours via le menu ${di_modif_para} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain demande_type ${args_demande_doc_para.demande_type} # Modification des types de demande pour qu'une DOC et un modificatif soient # compatibles à l'instruction en parallèle @{type_di_comp_doc} = Create List PCI - Modificatif &{type_PCI_DOC_comp} = Create Dictionary ... dossier_instruction_type_compatible=${type_di_comp_doc} Depuis la page d'accueil admin admin Modifier le type de demande PCI DOC ${type_PCI_DOC_comp} Set Suite Variable ${type_PCI_DOC_comp} # Vérifie que l'ajout d'une DOC sur l'initial ou le modificatif est # désormais possible puis ajout de celle-ci Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara2} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain demande_type ${args_demande_doc_para.demande_type} Depuis le contexte de demande sur dossier en cours via le menu ${di_modif_para} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain demande_type ${args_demande_doc_para.demande_type} ${di_doc_para} = Ajouter la demande par WS ${args_demande_doc_para} # Vérifie que la DOC ne soit pas liée à deux demandeurs principaux # Donc on vérifie que le DI n'apparait qu'une fois dans le listing des DI Depuis le listing dossier_instruction ${di_doc_para_sans_espace} = Sans espace ${di_doc_para} Input Text css=div#adv-search-adv-fields input#dossier ${di_doc_para_sans_espace} Click On Search Button Total Results Should Be Equal 1 Elements From Column Should Be 4 ${args_petitionnaire1_para2.particulier_nom} ${args_petitionnaire1_para2.particulier_prenom} # Vérifie que les deux dossiers d'instruction en cours sont affichés sur la # fiche du DA et que les données techniques du DI sont affichées Depuis la page d'accueil instr instr Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain da_demandeur ${args_petitionnaire1_para2.particulier_nom} ${args_petitionnaire1_para2.particulier_prenom} Element Should Contain dit_libelle_0 Ouverture de chantier Element Should Contain dit_libelle_1 Modificatif # Vérifie les modifications sur la fiche du DA ${date_chantier_doc} = Add Time To Date ${DATE_DDMMYYYY} 5 days %d/%m/%Y True %d/%m/%Y Set Suite Variable ${date_chantier_doc} Ajouter une instruction au DI ${di_doc_para} Déclaration ouverture de chantier - 035_dossier_instruction ${date_chantier_doc} &{donnees_techniques_values_doc} = Create Dictionary ... ope_proj_desc=Description test dossier parallèle doc Set Suite Variable ${donnees_techniques_values_doc} Saisir les données techniques du DI ${di_doc_para} ${donnees_techniques_values_doc} Ajouter une instruction au DI et la finaliser ${di_doc_para} accepter un dossier sans réserve Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain da_demandeur ${args_petitionnaire1_para2.particulier_nom} ${args_petitionnaire1_para2.particulier_prenom} Element Should Contain dit_libelle_0 Modificatif Element Should Not Be Visible dit_libelle_1 Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} ${date_chantier_m} = Add Time To Date ${DATE_DDMMYYYY} 10 days %d/%m/%Y True %d/%m/%Y Ajouter une instruction au DI ${di_modif_para} Déclaration ouverture de chantier - 035_dossier_instruction ${date_chantier_m} &{donnees_techniques_values_m} = Create Dictionary ... co_tot_coll_nb=10 Set Suite Variable ${donnees_techniques_values_m} Saisir les données techniques du DI ${di_modif_para} ${donnees_techniques_values_m} Ajouter une instruction au DI et la finaliser ${di_modif_para} accepter un dossier sans réserve Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain da_demandeur ${args_petitionnaire_modif_para.particulier_nom} ${args_petitionnaire_modif_para.particulier_prenom} Element Should Not Be Visible dit_libelle_0 Element Should Not Be Visible dit_libelle_1 Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} Vérification des données sur la fiche du DA suite à l'ajout d'un nouveau [Documentation] ... # DI, à la suppression de l'instruction de clôture et à la suppression du DI &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Ajouter le droit depuis le menu si il n'existe pas dossier_instruction_supprimer INSTRUCTEUR Depuis la page d'accueil instr instr ${di_modif_para2} = Ajouter la demande par WS ${args_demande_modif_para} Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain dit_libelle_0 Modificatif Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} &{donnees_techniques_values_m2} = Create Dictionary ... ope_proj_desc=Une description vraiment différente pour le M02 Set Suite Variable ${donnees_techniques_values_m2} Saisir les données techniques du DI ${di_modif_para2} ${donnees_techniques_values_m2} Ajouter une instruction au DI ${di_modif_para2} accepter un dossier sans réserve Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Not Be Visible dit_libelle_0 Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_m2.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} Depuis la page d'accueil admin admin Supprimer l'instruction ${di_modif_para2} accepter un dossier sans réserve Depuis la page d'accueil instr instr Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain dit_libelle_0 Modificatif Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} Supprimer le dossier d'instruction ${di_modif_para2} Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Not Be Visible dit_libelle_0 Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} ${di_modif_para3} = Ajouter la demande par WS ${args_demande_modif_para} Set Suite Variable ${di_modif_para3} &{donnees_techniques_values_m3} = Create Dictionary ... ope_proj_desc=Encore plus différent pour le M03 ... co_tot_coll_nb=25 Set Suite Variable ${donnees_techniques_values_m3} Saisir les données techniques du DI ${di_modif_para3} ${donnees_techniques_values_m3} Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain dit_libelle_0 Modificatif Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} Vérification de la reprise de l'instruction [Documentation] ... Ajouter une instruction au DI ${di_modif_para3} accepter un dossier sans réserve Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Not Be Visible dit_libelle_0 Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_m3.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m3.co_tot_coll_nb} Ajouter une instruction au DI ${di_modif_para3} Reprise de l'instruction - 035_dossier_instruction Depuis le contexte du dossier d'autorisation ${da_para2} Element Should Contain dit_libelle_0 Modificatif Element Should Contain date_depot_DOC ${date_chantier_doc} Element Should Contain da_description_projet ${donnees_techniques_values_doc.ope_proj_desc} Element Should Contain da_nombre_logement_crees_collectif ${donnees_techniques_values_m.co_tot_coll_nb} Reset params - Vérification des données sur la fiche du DA suite à l'ajout d'un nouveau et Vérification de la reprise de l'instruction [Documentation] ... # Remise à la valeur initiale des paramètres &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Supprimer le droit depuis le contexte du profil dossier_instruction_supprimer INSTRUCTEUR # Réactive la mise à jour des infos pour les deux types de dossier &{val_type_PCI_DOC} = Create Dictionary ... maj_da_dt=true ... maj_da_date_daact=true ... maj_da_date_validite=true ... maj_da_date_init=true ... maj_da_etat=true ... maj_da_demandeur=true ... maj_da_lot=true ... maj_da_localisation=true Modifier type de dossier d'instruction PCI DOC ${val_type_PCI_DOC} &{val_type_PCI_M} = Create Dictionary ... maj_da_date_doc=true Modifier type de dossier d'instruction PCI M ${val_type_PCI_M} # Supprime le dossier compatible du type de demande Désactiver les types de demande compatible PCI DOC ${type_PCI_DOC_comp} Vérification du cas des dossiers en parallèle sur un initial dont l'autorité compétente est différent de commune [Documentation] Vérifie l'instruction de plusieurs dossiers d'instruction ... sur la même autorisation, en parallèle dont l'un est l'initial. ... Depuis un PCI initial en cours dont l'autorité compétente n'est pas la ... commune, ajout d'un modificatif. Les deux dossiers d'instruction sont ... instruits parallèlement. Depuis la page d'accueil admin admin # Ajout du type de dossier d'instruction compatible @{type_di_comp} = Create List PCI - Initial &{type_PCI_DM_comp} = Create Dictionary ... dossier_instruction_type_compatible=${type_di_comp} Modifier le type de demande PCI DM ${type_PCI_DM_comp} # Ajout du dossier d'instruction initial et modifie son autorité compétente &{args_dossier_para3} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1_para3} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DOSSIERPARALLELENOM3 ... particulier_prenom=TEST035DOSSIERPARALLELEPRENOM3 ... om_collectivite=MARSEILLE ${dipara3} = Ajouter la demande par WS ${args_dossier_para3} ${args_petitionnaire1_para3} ${da_para3} = Get Substring ${dipara3} 0 -2 &{args_demande_modif_para3} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${dipara3} # Vérifie qu'avec l'autorité commune, il n'est pas possible d'avoir de DI # en parallèle Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara3} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain demande_type ${args_demande_modif_para3.demande_type} Depuis la page d'accueil instr instr Ajouter une instruction au DI ${dipara3} Changer l'autorité compétente 'commune état' Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara3} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain demande_type ${args_demande_modif_para3.demande_type} ${di_modif_para3} = Ajouter la demande par WS ${args_demande_modif_para3} Depuis la page d'accueil instr instr Depuis le contexte du dossier d'autorisation ${da_para3} Element Should Contain dit_libelle_0 Modificatif Element Should Contain dit_libelle_1 Initial # Supprime le dossier compatible du type de demande Depuis la page d'accueil admin admin Désactiver les types de demande compatible PCI DM ${type_PCI_DM_comp} Vérification de l'ajout de demande ne créant pas de DI [Documentation] Vérifie la possibilité d''ajouter des demandes sans ... création de dossier d'instruction mais seulement d'un événement sur le ... dossier ciblé. &{args_dossier_para4} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire1_para4} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DOSSIERPARALLELENOM4 ... particulier_prenom=TEST035DOSSIERPARALLELEPRENOM4 ... om_collectivite=MARSEILLE ${dipara4} = Ajouter la demande par WS ${args_dossier_para4} ${args_petitionnaire1_para4} ${da_para4} = Get Substring ${dipara4} 0 -2 # Ajout de la demande en parallèle &{args_demande_modif_para4} = Create Dictionary ... demande_type=Demande de modification ... dossier_instruction=${dipara4} ${di_modif_para4} = Ajouter la demande par WS ${args_demande_modif_para4} # Vérifie la possibilité d'ajouter la demande dans les différents contextes # et contrôle la création de l'événement et la non création de DI &{args_demande_depot_para4} = Create Dictionary ... demande_type=Dépôt de pièces complémentaire ... om_collectivite=MARSEILLE ... dossier_instruction=${dipara4} Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara4} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain demande_type ${args_demande_depot_para4.demande_type} Depuis la page d'accueil instr instr Ajouter une instruction au DI ${dipara4} Notification de pieces manquante Depuis la page d'accueil guichet guichet Depuis le contexte de demande sur dossier en cours via le menu ${dipara4} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain demande_type ${args_demande_depot_para4.demande_type} ${di_depot_para4} = Ajouter la demande par WS ${args_demande_depot_para4} Depuis la page d'accueil instr instr Depuis l'onglet instruction du dossier d'instruction ${dipara4} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain dépôt de pièces complémentaires Depuis l'onglet instruction du dossier d'instruction ${di_modif_para4} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain dépôt de pièces complémentaires Depuis le contexte du dossier d'autorisation ${da_para4} Page Should Not Contain Element dit_libelle_1 # Vérifie qu'il n'existe pas de doublon dans le listing des dossiers d'instruction Depuis le listing dossier_instruction ${libelle_sans_espace} = Sans espace ${dipara4} Input Text css=div#adv-search-adv-fields input#dossier ${libelle_sans_espace} Click On Search Button ${count} = Get Element Count css=table.tab-tab tbody tr Should Be True ${count} == 1 Date d'affichage obligatoire [Documentation] Vérifie la gestion de la date d'affichage obligatoire Depuis la page d'accueil admin admin #-- ajout du paramétrage # action de mise à jour de la date d'affichage &{args_action} = Create Dictionary ... action=maj_date_affichage ... libelle=mise à jour de la date d'affichage ... regle_date_affichage=date_evenement Ajouter Action ${args_action} # évènement d'affichage obligatoire &{args_evenement} = Create Dictionary ... evenement=89 ... libelle=affichage_obligatoire ... action=mise à jour de la date d'affichage Modifier l'événement ${args_evenement} #-- jeu de données &{args_dossier} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial &{args_petitionnaire} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035DATEAFF ... particulier_prenom=TEST035DATEAFF ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire} #-- présence de la date d'Affichage obligatoire #-- absence de l'action de portlet d'Affichage obligatoire # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage Portlet Action Should Not Be In SubForm dossier_instruction date_affichage # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage Portlet Action Should Not Be In SubForm dossier_instruction date_affichage #-- modification manuelle de la date d'affichage # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} ${d_aff_1} = Get Text date_affichage Should Be Equal ${d_aff_1} Néant &{di_values} = Create Dictionary ... date_affichage=26/02/2019 Modifier le dossier d'instruction ${di} ${di_values} ${d_aff_2} = Get Text date_affichage Should Be Equal ${d_aff_2} 26/02/2019 Should Not Be Equal ${d_aff_1} ${d_aff_2} # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Click On Form Portlet Action dossier_instruction modifier Page Should Not Contain css=input#date_affichage Click On Submit Button Until Message Vos modifications ont bien été enregistrées. #-- modification de la date d'affichage par le menu "Registre" # Le traitement de registre applique l'événement d'instruction identifié # comme attestation d'affichage et c'est celui-ci qui change la date # d'affichage Depuis la page d'accueil instrpoly instrpoly &{di_values} = Create Dictionary ... date_affichage=${EMPTY} # Supprime la date d'affichage pour l'événement puisse la mettre à jour Modifier le dossier d'instruction ${di} ${di_values} ${d_aff_3} = Get Text date_affichage Should Not Be Equal ${d_aff_3} ${d_aff_2} Should Be Equal ${d_aff_3} Néant Depuis la page d'accueil guichet guichet Go To Submenu In Menu guichet_unique affichage_reglementaire_registre Click Element id=registre-form-submit Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds 2 min 0.4 sec Valid Message Should Contain Traitement terminé. Le registre a été généré. # Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain Traitement terminé. Le registre a été généré. La page ne doit pas contenir d'erreur ${date_ddmmyyyy} = Date du jour FR Click Element id=registre-form-download Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Registre des dossiers en cours Close PDF Depuis la page d'accueil guichetsuivi guichetsuivi Depuis le contexte du dossier d'instruction ${di} Element Should Contain lib-date_affichage Date d'affichage ${d_aff_4} = Get Text date_affichage Should Not Be Equal ${d_aff_4} ${d_aff_3} Should Be Equal ${d_aff_4} ${date_ddmmyyyy} #-- vérification de l'action de portlet d'Affichage obligatoire # avec un profil n'ayant pas l'autorisation Depuis la page d'accueil guichet guichet Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage # avec un profil ayant l'autorisation Depuis la page d'accueil instrpoly instrpoly Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Be In Form dossier_instruction date_affichage #-- accéder à l'attestation d'affichage via l'action de portlet Click On Form Portlet Action dossier_instruction date_affichage new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ATTESTATION D'AFFICHAGE REGLEMENTAIRE Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ${di} Close PDF #-- modification de la lettre type d'Affichage Règlementaire (inclusion complément dans corps) Depuis la page d'accueil admin admin Modifier la lettre-type attestation_affichage corps=[complement1_instruction] #-- définalisation de l'évènement d'instruction d'affichage obligatoire Depuis la page d'accueil instrpoly instrpoly Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction definaliser Depuis l'onglet instruction du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage #-- ajout de la date d'affichage dans les compléments de l'édition Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction modifier Input HTML complement_om_html Date d'affichage: [date_affichage] Click On Submit Button In Subform Until Message Vos modifications ont bien été enregistrées. Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ATTESTATION D'AFFICHAGE REGLEMENTAIRE Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain ${di} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Date d'affichage: ${DATE_DDMMYYYY} Close PDF #-- suppression de l'instruction # supprimer l'instruction et vérifier que la valeur du dossier n'est pas # modifiée Depuis l'onglet instruction du dossier d'instruction ${di} Click Element Until No More Element xpath=//a[text()[contains(.,"affichage_obligatoire")]] Click On SubForm Portlet Action instruction supprimer Click On Submit Button In Subform Until Message La suppression a été correctement effectuée. css=div.soustab-message div.message Depuis le contexte du dossier d'instruction ${di} Portlet Action Should Not Be In Form dossier_instruction date_affichage Element Should Contain lib-date_affichage Date d'affichage ${d_aff_5} = Get Text date_affichage Should Be Equal ${d_aff_5} ${d_aff_4} Should Not Be Equal ${d_aff_5} Néant #-- la modification de la date d'affichage depuis l'événement ne doit pas # écraser la date déjà renseignée Depuis la page d'accueil instrpoly instrpoly Ajouter une instruction au DI ${di} affichage_obligatoire 27/02/2019 Depuis le contexte du dossier d'instruction ${di} ${d_aff_6} = Get Text date_affichage Should Not Be Equal ${d_aff_6} 27/02/2019 Should Be Equal ${d_aff_6} ${d_aff_5} # restauration de l'action de l'évènement Depuis la page d'accueil admin admin &{args_evenement} = Create Dictionary ... evenement=89 ... libelle=affichage_obligatoire ... action=action sans effet sur le dossier Modifier l'événement ${args_evenement} Transfert d'un dossier sur une année dont aucune séquence n'existe encore [Documentation] Vérifie la possibilité de transférer un dossier dont ... la (nouvelle) date de dépot est d'une année pour laquelle il n'y ... a pas encore de dossier de ce type et donc pas de séquence en BDD. Depuis la page d'accueil admin admin # créé une collectivité Ajouter la collectivité depuis le menu testville1 mono &{departement} = Create Dictionary ... libelle=departement ... valeur=059 ... om_collectivite=testville1 Gerer le paramètre par WS ${departement} &{commune} = Create Dictionary ... libelle=commune ... valeur=679 ... om_collectivite=testville1 Gerer le paramètre par WS ${commune} &{insee} = Create Dictionary ... libelle=insee ... valeur=59679 ... om_collectivite=testville1 Gerer le paramètre par WS ${insee} # active l'option de suppression des dossiers d'instruction &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} # créer un dossier d'instruction &{di_testville1} = Create Dictionary ... om_collectivite=testville1 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... date_demande=20/04/2018 &{petitionnaire_testville1} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST035TRANSFERTNOSEQUENCE ... particulier_prenom=TEST035TRANSFERTNOSEQUENCE ... om_collectivite=testville1 ${di_id} = Ajouter la demande par WS ${di_testville1} ${petitionnaire_testville1} # accepte le dossier sans réserve (ajoute une instruction) Ajouter une instruction au DI ${di_id} accepter un dossier sans réserve # créé un autre dossier avec demande de modification # dans une année où il n'y a pas encore de dossier de ce type # (le fait d'avoir créé une nouvelle collectivité permet d'en être sûr) &{dim_testville1} = Create Dictionary ... om_collectivite=testville1 ... demande_type=Demande de modification ... dossier_instruction=${di_id} ... date_demande=20/05/2019 ${dim_id} = Ajouter la demande par WS ${dim_testville1} # accède au dossier Depuis le contexte du dossier d'instruction ${dim_id} # il ne doit pas y avoir de bug (erreur de base de données) La page ne doit pas contenir d'erreur Reset params - Transfert d'un dossier sur une année dont aucune séquence n'existe encore [Documentation] ... # Désactive option &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} TNR affichage de l'adresse suite à la normalisation [Documentation] Vérifie que l'adresse est toujours correctement affiché ... après une normalisation avec une adresse vide. Depuis la page d'accueil admin admin &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ... terrain_adresse_voie_numero=56 ... terrain_adresse_voie=boulevard Amiral Courbet ... terrain_adresse_lieu_dit= ... terrain_adresse_code_postal= ... terrain_adresse_localite=Marseille ... terrain_adresse_bp= ... terrain_adresse_cedex= &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Reault ... particulier_prenom=Yvette ... om_collectivite=MARSEILLE ${di_tnr_normalisation1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Utilisation de la fonctionnalité de normalisation de l'adresse Depuis le contexte du dossier d'instruction ${di_tnr_normalisation1} Click On Form Portlet Action dossier_instruction normalize_address modale Input Text css=input#address ${EMPTY} Click Element css=input[value="Normaliser l'adresse"] # Vérification que l'adresse est correcte dans la synthèse du di et dans le listing Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=.localisation-terrain-adresse 56 boulevard Amiral Courbet Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#adresse *boulevard Amiral Courbet Click On Search Button Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_tnr_normalisation1} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ... terrain_adresse_voie_numero=47 ... terrain_adresse_voie=rue de la Boétie ... terrain_adresse_lieu_dit= ... terrain_adresse_code_postal= ... terrain_adresse_localite=Poissy ... terrain_adresse_bp= ... terrain_adresse_cedex= &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Bonami ... particulier_prenom=Inès ... om_collectivite=MARSEILLE ${di_tnr_normalisation2} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Utilisation de la fonctionnalité de normalisation de l'adresse Depuis le contexte du dossier d'instruction ${di_tnr_normalisation2} Click On Form Portlet Action dossier_instruction normalize_address modale Input Text css=input#address ${SPACE} Click Element css=input[value="Normaliser l'adresse"] # Vérification que l'adresse est correcte dans la synthèse du di et dans le listing Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.localisation-terrain-adresse 47 rue de la Boétie Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#adresse *rue de la Boétie Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di_tnr_normalisation2} Affichage du lien streetView [Documentation] Test servant à vérifier que le clic sur le lien streetview ouvre ... bien une nouvelle fenêtre sur Google Maps # Active l'affichage du lien streetView &{om_param} = Create Dictionary ... libelle=option_streetview ... valeur=true ... om_collectivite=MARSEILLE Gerer le paramètre par WS ${om_param} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ... terrain_adresse_voie_numero=56 ... terrain_adresse_voie=boulevard Amiral Courbet ... terrain_adresse_lieu_dit= ... terrain_adresse_code_postal= ... terrain_adresse_localite=Marseille ... terrain_adresse_bp= ... terrain_adresse_cedex= &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Reault ... particulier_prenom=Yvette ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil admin admin # clic sur le lien street map Depuis le contexte du dossier d'instruction ${di} Click Link css=#action-form-gstreetview La page ne doit pas contenir d'erreur # Vérifie que Maps est bien ouvert Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Select Window NEW Location Should Contain https://www.google.com/maps # Désactive l'affichage du lien streetview &{om_param} = Create Dictionary ... libelle=option_streetview ... valeur=false ... om_collectivite=MARSEILLE Gerer le paramètre par WS ${om_param} Affichage des champs de la recherche avancée [Documentation] ce test vérifie quand on est en mode service consulte que certains ... champs ne sont pas affichés. # activation de mode service consulté &{om_param} = Create Dictionary ... libelle=option_mode_service_consulte ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis la page d'accueil admin admin Depuis le listing dossier_instruction Page Should Not Contain Element css=#accord_tacite Page Should Not Contain Element css=#date_chantier_min Page Should Not Contain Element css=#date_chantier_max Page Should Not Contain Element css=#date_achevement_min Page Should Not Contain Element css=#date_achevement_max Page Should Not Contain Element css=#date_conformite_min Page Should Not Contain Element css=#date_conformite_max Page Should Not Contain Element css=#date_validite_min Page Should Not Contain Element css=#date_validite_max Page Should Not Contain Element css=#date_rejet_min Page Should Not Contain Element css=#date_rejet_max Reset params - Affichage des champs de la recherche avancée [Documentation] ... # desactivation du mode service consulté &{param_values} = Create Dictionary ... delete=true ... libelle=option_mode_service_consulte ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} Modification de la division lors de la modification de l'instructeur [Documentation] ce test vérifie qu'en modification d'un dossier d'instruction ... si l'instructeur est modifié alors la division du dossier est positionnée ... à celle de l'instructeur sélectionné. Depuis la page d'accueil admin admin # Désactive l'affichage de la division pour éviter que le nom de la division fasse bugger # la recherche du nom de l'instructeur # Cette option est activer globalement dans le test 010_multicollectivite -> Direction # Comme l'impact de la modif directement depuis ce test n'est pas connu la modification # est faite uniquement ici pour le moment # TODO : déplacer cette modif directement dans le test 010 # Remarque : pour que le nom de la division ne soit pas afficher avec le nom de l'instructeur # il faut que option_afficher_division ait pour valeur false pour l'agglo et true pour # la collectivité &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} Ajouter la collectivité depuis le menu TestModifDiv mono &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=TestModifDiv Gerer le paramètre par WS ${param_division} # Ajout de 2 instructeur ayant chacun une division différente Ajouter la direction depuis le menu TModifDiv Direction TModifDiv null Chef TModifDiv null null TestModifDiv Ajouter la division depuis le menu test 1 subdivision test 1 null Jeanette Rochefort null null Direction TModifDiv Ajouter l'utilisateur LANGELIER Audric alangelier@mail.fr alangelier alangelier INSTRUCTEUR TestModifDiv Ajouter l'instructeur depuis le menu LANGELIER Audric subdivision test 1 instructeur LANGELIER Audric Ajouter la division depuis le menu test 2 subdivision test 2 null CJeanette Rochefort null null Direction TModifDiv Ajouter l'utilisateur LaGrande Olympia olagrande@mail.fr olagrande olagrande INSTRUCTEUR TestModifDiv Ajouter l'instructeur depuis le menu LaGrande Olympia subdivision test 2 instructeur LaGrande Olympia # Création d'un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=Veilleux ... particulier_prenom=Charles ... om_collectivite=TestModifDiv &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=TestModifDiv ${di1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Modification du dossier pour choisir le premier instructeur Depuis le contexte du dossier d'instruction ${di1} Click On Form Portlet Action dossier_instruction modifier Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Select From List By Label css=select#instructeur LANGELIER Audric List Selection Should Be css=select#division subdivision test 1 La page ne doit pas contenir d'erreur # Sélection du deuxième instructeur Select From List By Label css=select#instructeur LaGrande Olympia List Selection Should Be css=select#division subdivision test 2 La page ne doit pas contenir d'erreur # Sélection d'aucun instructeur pour vérifier qu'il n'y a pas d'erreur Select From List By Label css=select#instructeur Choisir l'instructeur List Selection Should Be css=select#division Choisir division La page ne doit pas contenir d'erreur Reset params - Modification de la division lors de la modification de l'instructeur [Documentation] Supprime l'affichage de la division pour la collectivité TestModifDiv &{param_args} = Create Dictionary ... delete=true ... libelle=option_afficher_division ... om_collectivite=TestModifDiv Gerer le paramètre par WS ${param_args} TNR ajout DI si option commune activée [Documentation] Ce test vérifie qu'après avoir ajouté l'option ... option_dossier_commune dans Administration -> Paramètre, ... puis ajouté un DI(en spécifiant la commune) et l'avoir accepté (ajout instruction). ... lors de l'ajout d'un DI à partir de ce premier, il ne doit y avoir de message d'erreur. Depuis la page d'accueil admin admin # Ajout de l'option &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_dossier_commune} # Ajout d'une commune &{com_values} = Create Dictionary ... typecom=COM ... com=40192 ... reg=40 ... dep=40 ... arr=192 ... tncc=0 ... ncc=Mont-de-Marsan ... nccenr=Mont-de-Marsan ... libelle=Mont-de-Marsan ... can=40 ... comparent= ... om_validite_debut=${DATE_DDMMYYYY} Ajouter commune avec dates validité ${com_values} # Création du dossier demande &{args_petitionnaire} = Create Dictionary ... particulier_nom=TESTAJOUTDIOPTIONCOMMUNENOM ... particulier_prenom=TESTAJOUTDIOPTIONCOMMUNEPRENOM ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... om_collectivite=MARSEILLE ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... commune=40192 - Mont-de-Marsan ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Ajout de l'instruction en admin Depuis la page d'accueil admin admin Ajouter une instruction au DI et la finaliser ${di} accepter un dossier sans réserve # Tentative d'ajout d'un DI sur dossier existant Depuis le contexte de demande sur dossier en cours via l'URL ${di} # Saisie des informations du DI &{args_demande} = Create Dictionary ... om_collectivite=MARSEILLE ... demande_type=Déclaration attestant l'achèvement et la conformité des travaux # Ajout de la demande pour vérifier l'absence d'erreur Ajouter la demande sur existant ${di} ${args_demande} Reset params - TNR ajout DI si option commune activée [Documentation] ... # Suppression de l'option &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_dossier_commune} TNR suppression DI transmissible a Plat'AU après modification de son instructeur [Documentation] ce test vérifie qu'après une modification de l'instructeur du dossier ... il est toujours possible de supprimer le dossier. Ajouter la collectivité depuis le menu TNRSUPPRDI mono &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=TNRSUPPRDI Gerer le paramètre par WS ${param_division} Depuis la page d'accueil admin admin # Le dossier doit être transmissible a Plat'AU &{args_type_DA_detaille_modification} = Create Dictionary ... dossier_platau=true Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification} # Création de 2 instructeur pour la collectivité Ajouter la direction depuis le menu TNRSUPPRDI Direction TNRSUPPRDI null Chef TNRSUPPRDI null null TNRSUPPRDI Ajouter la division depuis le menu test 1 subdivision TNRSUPPRDI 1 null Delphine Anglais null null Direction TNRSUPPRDI Ajouter l'utilisateur Delphine Anglais danglais@mail.fr danglais danglais INSTRUCTEUR TNRSUPPRDI Ajouter l'instructeur depuis le menu Delphine Anglais subdivision TNRSUPPRDI 1 instructeur Delphine Anglais Ajouter la division depuis le menu test 2 subdivision TNRSUPPRDI 2 null Soren Ayot null null Direction TNRSUPPRDI Ajouter l'utilisateur Soren Ayot sayot@mail.fr sayot sayot INSTRUCTEUR TNRSUPPRDI Ajouter l'instructeur depuis le menu Soren Ayot subdivision TNRSUPPRDI 2 instructeur Soren Ayot Reset params - TNR suppression DI transmissible a Plat'AU après modification de son instructeur [Documentation] ... # On désactive l'option de suppression des dossiers d'instruction &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} TNR suppression DI transmissible a Plat'AU après modification de son instructeur 2 [Documentation] ... &{args_dossier} = Create Dictionary ... om_collectivite=TNRSUPPRDI ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TEST300AdresseLocalite &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TNRSUPPRESSIONDOSSIER ... particulier_prenom=TNRSUPPRESSIONDOSSIER ... om_collectivite=TNRSUPPRDI ... localite=TEST300Localite ${di1} = Ajouter la demande par WS ${args_dossier} ${args_petitionnaire1} &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST300engadelalieu ... enga_decla_date=${DATE_DDMMYYYY} Saisir les données techniques du DI ${di1} ${donnees_techniques_values} # Modification de l'instructeur du dossier &{modifications} = Create Dictionary ... instructeur=Soren Ayot Modifier le dossier d'instruction ${di1} ${modifications} Valid Message Should Be Vos modifications ont bien été enregistrées. # Vérification que la tâche qualification_DI fait maintenant reférence au dossier ${di1_sans_espace} = Sans espace ${di1} ${di1_da} = Replace String Using Regexp ${di1_sans_espace} [A-Z][0-9]+$ ${EMPTY} &{task_values} = Create Dictionary ... type=qualification_DI ... dossier=${di1_sans_espace} ... state=new ... object_id=${di1_sans_espace} ... link_dossier=${di1_sans_espace} ... stream=output Vérifier que la tâche a bien été ajoutée ou modifiée ${task_values} # Suppression du dossier d'instruction Supprimer le dossier d'instruction ${di1} La page ne doit pas contenir d'erreur # Désactive l'option de suppression # On désactive l'option &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} # Le type de dossier ne doit plus être transmissible &{args_type_DA_detaille_modification} = Create Dictionary ... dossier_platau=false Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification} Reset params - TNR suppression DI transmissible a Plat'AU après modification de son instructeur 2 [Documentation] AZ des paramètres du test # Supprime l'affichage de la division TNRSUPPRDI &{param_args} = Create Dictionary ... delete=true ... libelle=option_afficher_division ... om_collectivite=TNRSUPPRDI Gerer le paramètre par WS ${param_args} # On désactive l'option &{om_param} = Create Dictionary ... libelle=option_suppression_dossier_instruction ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} TNR la date de dépôt ne doit pas être supérieur à la date du jour [Documentation] Ce test vérifie que si dans le formulaire de modification du dossier ... l'utilisateur à saisi une date de dépôt dans le futur un message d'erreur ... s'affiche et ses modifications ne sont pas enregistrées ${date_ddmmyyyy} = Date du jour FR ${demain} = Add Time To Date ${date_ddmmyyyy} 1 days %d/%m/%Y True %d/%m/%Y # Création d'un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=Futur ... particulier_prenom=Date ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ${di1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Modification du dossier pour tester l'enregistrement avec une date de dépôt dans le futur Depuis la page d'accueil instr instr Depuis le contexte du dossier d'instruction ${di1} Click On Form Portlet Action dossier_instruction modifier Input Datepicker date_depot ${demain} Click On Submit Button Error Message Should Contain La date de depot ne peut pas être superieure à la date du jour. TNR la colonne du geom doit restée cachée dans les listings des dossiers [Documentation] ... # Isolation du contexte &{isolation_values} = Create Dictionary ... om_collectivite_libelle=TNRCITYPICTO ... departement=013 ... commune=032 ... insee=13032 ... direction_code=AZE ... direction_libelle=Direction de TNRCITYPICTO ... direction_chef=Chef ... division_code=AZE ... division_libelle=Division AZE ... division_chef=Chef ... guichet_om_utilisateur_nom=Julia Arranccini ... guichet_om_utilisateur_email=jarranccini@openads-test.fr ... guichet_om_utilisateur_login=jarranccini ... guichet_om_utilisateur_pwd=jarranccini ... instr_om_utilisateur_nom=Robert Vissoux ... instr_om_utilisateur_email=rvissoux@openads-test.fr ... instr_om_utilisateur_login=rvissoux ... instr_om_utilisateur_pwd=rvissoux Isolation d'un contexte ${isolation_values} Copy File ..${/}tests${/}binary_files${/}geoads_test${/}sig.inc.php ..${/}dyn${/} &{param_values} = Create Dictionary ... libelle=option_sig ... valeur=sig_externe ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} @{ref_cad} = Create List 999 ZZ 0013 &{args_di1} = Create Dictionary ... om_collectivite=TNRCITYPICTO ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TNRCITYPICTOAdresseLocalite ... date_demande=01/01/2018 ... terrain_references_cadastrales=${ref_cad} &{args_di2} = Create Dictionary ... om_collectivite=TNRCITYPICTO ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... terrain_adresse_localite=TNRCITYPICTOAdresseLocalite ... date_demande=02/02/2018 &{args_petitionnaire1} = Create Dictionary ... qualite=particulier ... particulier_nom=TNRCITYPICTONOM ... particulier_prenom=TNRCITYPICTOPRENOM ... om_collectivite=TNRCITYPICTO ... localite=TNRCITYPICTOLocalite Depuis la page d'accueil admin admin ${di1} = Ajouter la demande par WS ${args_di1} ${args_petitionnaire1} ${di1_sans_espace} = Sans espace ${di1} ${di2} = Ajouter la demande par WS ${args_di2} ${args_petitionnaire1} ${di2_sans_espace} = Sans espace ${di2} Go To Submenu In Menu administration geocoder Click On Submit Button Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#dossier ${di1} Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di1} Page Should Not Contain Element css=#tab-dossier_instruction table.tab-tab tr.no-geoloc > td > a#action-tab-dossier_instruction-left-localiser-sig-externe-${di1_sans_espace} > span.sig-16 Page Should Contain Element css=#tab-dossier_instruction table.tab-tab tr > td > a#action-tab-dossier_instruction-left-localiser-sig-externe-${di1_sans_espace} > span.sig-16 Input Text css=div#adv-search-adv-fields input#dossier ${di2} Click On Search Button Element Should Contain css=#tab-dossier_instruction table.tab-tab tbody ${di2} Page Should Contain Element css=#tab-dossier_instruction table.tab-tab tr.no-geoloc > td > a#action-tab-dossier_instruction-left-localiser-sig-externe-${di2_sans_espace} > span.sig-16 Page Should Contain Element xpath=//a[text()[contains(.,"geom_picto")]] Element Should Not Be Visible xpath=//a[text()[contains(.,"geom_picto")]] Supprimer le paramètre option_sig Un lien vers le journal d'instruction doit apparaître pour les admins [Documentation] Ce test vérifie que dans un dossier d'instruction ... un lien dans le portlet s'affiche menant vers le journal ... d'instruction (ACTION 200) &{args_petitionnaire} = Create Dictionary ... qualite=particulier ... particulier_nom=TEST200 ... particulier_prenom=TESTACTION ... om_collectivite=MARSEILLE &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... om_collectivite=MARSEILLE ${di1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # On entre dans le dossier d'instruction en tant qu'admin afin d'accéder au journal d'instruction Depuis la page d'accueil admin admin Depuis le contexte du dossier d'instruction ${di1} Click On Form Portlet Action dossier_instruction get_log_di # Vérification de l'affichage du tableau du journal d'instruction Element Should Contain css=div#log_instructions_jsontotab date Element Should Contain css=div#log_instructions_jsontotab id Element Should Contain css=div#log_instructions_jsontotab contexte Element Should Contain css=div#log_instructions_jsontotab login Element Should Contain css=div#log_instructions_jsontotab date d'événement Element Should Contain css=div#log_instructions_jsontotab retour RAR Element Should Contain css=div#log_instructions_jsontotab retour signature Element Should Contain css=div#log_instructions_jsontotab événement Element Should Contain css=div#log_instructions_jsontotab Action Element Should Contain css=div#log_instructions_jsontotab état #On vérifie que d'autres éléments n'apparaissent pas: Page Should Not Contain Element css=fieldset#liste_contrainte Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-dossier-d_instruction Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-suivi Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-decision Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-validite-de-l_autorisation Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-localisation Page Should Not Contain Element css=fieldset#fieldset_contraintes_liees Page Should Not Contain Element css=fieldset#fieldset-form-dossier_instruction-demandeur Vérification de l'affichage au survol du numéro de dossier de la localisation sur un DI [Documentation] On vérifie qu'au survol du numéro de dossier, d'un dossier d'instruction ... dans le listing, la localisation est bien affiché dans le span Depuis la page d'accueil admin admin &{om_param} = Create Dictionary ... libelle=option_afficher_localisation_colonne_dossier ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Depuis le listing dossier_instruction ${libelle_sans_espace} = Sans espace ${di_normalisation_address_terrain_id} # On fait une recherche sur le libellé du DI Input Text css=div#adv-search-adv-fields input#dossier ${libelle_sans_espace} Click On Search Button Wait Until Element Is Visible id=tab-dossier_instruction ${span_content}= Get Element Attribute css=#tab-dossier_instruction table.tab-tab tbody .col-3 .lienTable span title Should Be Equal As Strings ${span_content} ${di_normalisation_address_terrain_id}\n Rue de la republique 13002 Marseille Reset params - Vérification de l'affichage au survol du numéro de dossier de la localisation sur un DI [Documentation] ... # On désactive l'option de suppression des dossiers d'instruction &{om_param} = Create Dictionary ... delete=true ... libelle=option_afficher_localisation_colonne_dossier ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} TNR affichage du champ commentaire au besoin à l'ajout d'une instruction [Documentation] Le champ "commentaire" ne doit être affiché ... lors de l'ajout d'une nouvelle instruction ... que s'il est configuré pour cette instruction. Depuis la page d'accueil admin admin # Modification de l'événement &{args_evenement} = Create Dictionary ... libelle=accepter un dossier avec reserve ... commentaire=true Modifier l'événement ${args_evenement} # Vérification de la présence et de l'absence du champ 'Commentaire', selon l'événement Depuis le formulaire d'ajout d'une instruction du DI ${di_comment_envent} Select From Chosen List evenement accepter un dossier avec reserve Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible commentaire Select From Chosen List evenement accepter un dossier sans réserve Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Be Visible commentaire # Reset de l'événement &{args_evenement} = Create Dictionary ... libelle=accepter un dossier avec reserve ... commentaire=false