*** Settings *** Documentation Tests relatifs au formulaire d'ajout d'une demande de nouveau dossier. # 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 *** Keywords *** Activer la saisie du numéro de dossier [Documentation] Permet d'activer la saisie du numéro de dossier par sections sur le formulaire ... d'ajout d'une nouvelle demande Click Element css=#num_doss_manuel Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Be Visible css=#num_doss_sequence[disabled="disabled"] *** Test Cases *** Initialisation du paramétrage - Gestion de la commune associée au dossier [Documentation] Prépare le paramétrage nécessaires pour faire fonctionner le test case : ... Gestion de la commune associée au dossier. ... Ajoute 2 collectivités LIBRECOM et LOINCOM et leur paramétrage (instructeur, guichet, commune, etc) ... Active les options : option_afficher_division et option_dossier_commune (agglo, LIBRECOM, LOINCOM) # Permet le même comportement du test qu'il soit exécuté en runone ou runall &{param_values} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} # isole le contexte du test (création d'une collectivité) &{isolation_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM ... departement=013 ... commune=095 ... insee=13095 ... direction_code=X ... direction_libelle=Direction de LIBRECOM ... direction_chef=Chef ... division_code=X ... division_libelle=Division X ... division_chef=Chef ... guichet_om_utilisateur_nom=Alain Posteur ... guichet_om_utilisateur_email=aposteur@openads-test.fr ... guichet_om_utilisateur_login=aposteur ... guichet_om_utilisateur_pwd=aposteur ... instr_om_utilisateur_nom=Abdel Ledba ... instr_om_utilisateur_email=aledba@openads-test.fr ... instr_om_utilisateur_login=aledba ... instr_om_utilisateur_pwd=aledba Isolation d'un contexte ${isolation_values} &{isolation_values} = Create Dictionary ... om_collectivite_libelle=LOINCOM ... departement=796 ... commune=095 ... insee=79695 ... direction_code=Y ... direction_libelle=Direction de LOINCOM ... direction_chef=Chef ... division_code=Y ... division_libelle=Division Y ... division_chef=Chef ... guichet_om_utilisateur_nom=Olice Ecilo ... guichet_om_utilisateur_email=olicelecilo@openads-test.fr ... guichet_om_utilisateur_login=oecilo ... guichet_om_utilisateur_pwd=oecilo ... instr_om_utilisateur_nom=Oliot Toilo ... instr_om_utilisateur_email=oliottoilo@openads-test.fr ... instr_om_utilisateur_login=otoilo ... instr_om_utilisateur_pwd=otoilo Isolation d'un contexte ${isolation_values} # pour l'utilisateur admin &{param_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_commune} # pour les autres utilisateurs &{param_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=LIBRECOM Gerer le paramètre par WS ${param_commune} &{param_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=LOINCOM Gerer le paramètre par WS ${param_commune} Création du jeu de données Commune_03 [Documentation] L'objet de ce 'Test Case' est de constituer le jeu de données Run Keyword If '${CONTEXT_COMMUNE_CREATED}' == 'False' Initialisation du jeu de données Commune Set Global Variable ${CONTEXT_COMMUNE_CREATED} True Gestion de la commune associée au dossier - Communes Selectionnables [Documentation] Vérifie le bon fonctionnement de la gestion du ... champ 'commune' associé au dossier. # En tant que guichet unique de LIBRECOM Depuis la page d'accueil aposteur aposteur # à l'ajout d'un dossier # vérifier que le le champ 'commune' n'apparait pas (option désactivée) Depuis le contexte de nouvelle demande via l'URL Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Page Should Not Contain css=#commune Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Page Should Not Contain css=#autocomplete-commune-id # TODO vérifier que le champ 'commune' n'apparait pas dans les nouvelles demandes de contentieux # limiter les communes associables à LIBRECOM &{param_commune} = Create Dictionary ... libelle=param_communes ... valeur=13095,45645,13909,13904,13901 ... om_collectivite=LIBRECOM Gerer le paramètre par WS ${param_commune} # à l'ajout d'un dossier # vérifier que les communes non valides ne soient pas sélectionnables Depuis le contexte de nouvelle demande via l'URL Wait Until Element Is Visible commune_chosen Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element css=div#commune_loader_div.loader Select From Chosen List Should Not Contain commune 45645 - Expiredcom Click Element css=#commune_chosen .info-16.chosen-tooltip Select From Chosen List Should Not Contain commune 46646 - Futurcom Click Element css=#commune_chosen .info-16.chosen-tooltip Select From Chosen List Should Not Contain commune 13905 - LibreCom 5e Arrondissement Click Element css=#commune_chosen .info-16.chosen-tooltip Select From Chosen List Should Contain commune 13904 - LibreCom 4e Arrondissement Click Element css=#commune_chosen .info-16.chosen-tooltip # mais que les communes anciennes soient sélectionnables si la date de demande correspond Select From Chosen List dossier_autorisation_type_detaille DP - Déclaration préalable Sleep 2 # obligation d'attendre car lors d'un changement de type de dossier il y a une temporisation JS d'une seconde Wait Until Element Is Visible css=input#date_demande Input Text until text is correct css=input#date_demande 02/01/2020 Simulate Event css=input#date_demande change Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element css=div#commune_loader_div.loader ${chosen_val} = Get Value css=select#commune Should Be Equal ${chosen_val} ${EMPTY} Select From Chosen List Should Contain commune 45645 - Expiredcom Gestion de la commune associée au dossier - Remise à zéro du champ commune ${yyyy} = Get Time year ${yyyy_futur} = Evaluate ${yyyy}+1 ${yyyy_past} = Evaluate ${yyyy}-1 # Vérification de la remise à zéro du champ 'commune' # Dans le cas où le changement de 'date demande' n'affecte pas la présence de la commune # sélectionnée dans la liste des communes disponibles, le champ 'commune' n'est pas # remis à zéro # En tant que guichet unique de LIBRECOM Depuis la page d'accueil aposteur aposteur Depuis le contexte de nouvelle demande via l'URL Wait Until Element Is Visible commune_chosen Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element css=div#commune_loader_div.loader Select From Chosen List commune 13904 - LibreCom 4e Arrondissement Select From Chosen List dossier_autorisation_type_detaille DP - Déclaration préalable Sleep 2 # obligation d'attendre car lors d'un changement de type de dossier il y a une temporisation JS d'une seconde Wait Until Element Is Visible css=input#date_demande Input Text until text is correct css=input#date_demande 01/01/${yyyy_futur} Simulate Event css=input#date_demande change Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element css=div#commune_loader_div.loader Click Element css=#commune_chosen .search-choice-close Select From Chosen List commune 13904 - LibreCom 4e Arrondissement # Dans le cas où le changement de 'date demande' affecte la présence de la commune # sélectionnée dans la liste des communes disponibles, le champ 'commune' est # remis à zéro et un message est affiché à l'utilisateur Input Text until text is correct css=input#date_demande 01/01/${yyyy_past} Simulate Event css=input#date_demande change ${alert} = Handle Alert Should Be Equal As Strings ${alert} Les données saisies ne permettent pas de rattacher la demande à la commune sélectionnée. Wait Until Form Value Should Be css=select#commune ${EMPTY} Gestion de la commune associée au dossier - Ajouter un dossier sans saisir de commune # ajouter un dossier sans saisir de commune # vérifier l'échec &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=DP - Déclaration préalable &{args_petitionnaire} = Create Dictionary ... particulier_nom=Lacharité ... particulier_prenom=Juliette Ajouter la nouvelle demande depuis le menu sans validation du formulaire ${args_demande} ${args_petitionnaire} Click On Submit Button Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=div.ui-state-error p span.text La commune doit être définie. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=div.ui-state-error p span.text SAISIE NON ENREGISTRÉE La page ne doit pas contenir d'erreur # TODO ajouter un dossier avec une commune invalide et vérifier le message d'erreur Gestion de la commune associée au dossier - Vérifier le succès et l'association de la commune avec le DI et le DA # ajouter un premier dossier en saisissant une commune # vérifier le succès et l'association de la commune avec le DI et le DA Depuis la page d'accueil aposteur aposteur &{args_demande} = Create Dictionary ... om_collectivite=LIBRECOM ... dossier_autorisation_type_detaille=Déclaration préalable ... demande_type=Dépôt Initial ... commune=13095 - LibreCom &{args_petitionnaire} = Create Dictionary ... om_collectivite=LIBRECOM ... particulier_nom=Lacharité ... particulier_prenom=Juliette ${demande2_di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis le contexte du dossier d'instruction ${demande2_di} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#commune LibreCom Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#dossier_libelle 013095 ${demande2_da} = Get Substring ${demande2_di} 0 -2 Depuis le contexte du dossier d'autorisation ${demande2_da} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#commune LibreCom # dans le listing des DI, faire une recherche sur le champ commune avec les deux codes communes # vérifier la présence du dossiers dans les résultats Depuis le listing dossier_instruction Input Text commune 976,LibreCom Click On Search Button Element Should Be Visible xpath=//div[@id = "tab-dossier_instruction"]/descendant::a[normalize-space(text()) = "${demande2_di}"]/ancestor::tr/td/a[normalize-space(text()) = "LibreCom"] Activation du paramètre : option_dossier_saisie_numero # activer la numérotation manuelle des dossiers (pour l'admin/agglo) &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_saisie_complete} Gestion de la commune associée au dossier - Vérifier le lien Commune et Saisie du Numéro de dossier Depuis la page d'accueil admin admin # à l'ajout d'un dossier Depuis le contexte de nouvelle demande via l'URL # après avoir sélectionné la collectivité, le DAtd, et activer la saisie manuelle du numéro &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme ... om_collectivite=LOINCOM &{args_petitionnaire} = Create Dictionary ... particulier_nom=Lacharité ... particulier_prenom=Juliette ... om_collectivite=LOINCOM Ajouter la nouvelle demande depuis le menu sans validation du formulaire ${args_demande} ${args_petitionnaire} # vérifier que par défaut le code depcom est vide Wait Until Form Value Should Be css=#num_doss_code_depcom ${EMPTY} # vérifier que le changement de commune se répercute sur le numéro de dossier (code depcom) Wait Until Element Is Visible commune_chosen Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Not Contain Element css=div#commune_loader_div.loader Select From Chosen List commune 13095 - LibreCom Wait Until Form Value Should Be css=#num_doss_code_depcom 013095 Select From Chosen List commune 97695 - LoinCom Wait Until Form Value Should Be css=#num_doss_code_depcom 976095 # ajouter le dossier avec les éléments par défaut (hormis division et séquence, à saisir) # vérifier le succès et le numéro de dossier obtenu (devant correspondre) Activer la saisie du numéro de dossier Input text css=#num_doss_division Y Input text css=#num_doss_sequence 1 Click On Submit Button Until Message Création du dossier d'instruction n ${demande3_di} = Get Text new_di # dans le listing des DI, faire une recherche sur le champ commune avec les deux codes communes # vérifier la présence des 2 dossiers dans les résultats Depuis le listing dossier_instruction Input Text commune 976,LibreCom Click On Search Button Element Should Be Visible xpath=//div[@id = "tab-dossier_instruction"]/descendant::a[normalize-space(text()) = "${demande3_di}"]/ancestor::tr/td/a[normalize-space(text()) = "LoinCom"] Gestion de la commune associée au dossier - Vérifier les affectations automatiques en lien avec les communes # TODO : vérifier les mêmes élements dans le listing des DA # ajouter les instructeurs pour pouvoir faire des affectations automatiques Ajouter la division depuis le menu X1 Division X1 null Chef null null Direction de LIBRECOM Ajouter l'utilisateur depuis le menu Atienne Gamelin atiennegamelin@openads-test.fr agamelin agamelin INSTRUCTEUR POLYVALENT COMMUNE LIBRECOM Ajouter l'instructeur depuis le menu Atienne Gamelin Division X1 instructeur Abdel Ledba Ajouter la division depuis le menu Y1 Division Y1 null Chef null null Direction de LOINCOM Ajouter l'utilisateur depuis le menu Nenée Pinette nenéepinette@openads-test.fr npinette npinette INSTRUCTEUR POLYVALENT COMMUNE LOINCOM Ajouter l'instructeur depuis le menu Nenée Pinette Division Y1 instructeur Oliot Toilo # ajouter une affectation automatique contenant le code INSEE d'une commune et un instructeur # qui n'est pas celui par défaut pour le type de DI/DA sélectionné Depuis la page d'accueil admin admin &{args_affectation} = Create Dictionary ... instructeur=Atienne Gamelin (X1) ... om_collectivite=LIBRECOM ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme ... communes=13095 ... affectation_manuelle=Atienne Gamelin (X1) pour LibreCom Ajouter l'affectation depuis le menu ${args_affectation} # ajouter un dossier correspondant au code commune et au type de DI/DA spécifiés précédemment # vérifier le succès et que c'est bien l'instructeur défini dans l'affectation automatique qui # est associé au dossier Depuis la page d'accueil aposteur aposteur &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme ... commune=13095 - LibreCom ... affectation_automatique=Atienne Gamelin (X1) pour LibreCom &{args_petitionnaire} = Create Dictionary ... particulier_nom=Lacharité ... particulier_prenom=Juliette ${demande4_di} = Ajouter la nouvelle demande ${args_demande} ${args_petitionnaire} ${demande4_instr} = Obtenir l'instructeur du dossier d'instruction ${demande4_di} Should Be True "${demande4_instr}" == "Atienne Gamelin (X1)" # ajouter une affectation automatique contenant le code département d'une commune et un instructeur # qui n'est pas celui par défaut pour le type de DI/DA sélectionné Depuis la page d'accueil admin admin &{args_affectation} = Create Dictionary ... instructeur=Nenée Pinette (Y1) ... om_collectivite=LOINCOM ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme ... communes=976 Ajouter l'affectation depuis le menu ${args_affectation} Depuis la page d'accueil oecilo oecilo &{args_demande} = Create Dictionary ... om_collectivite=LOINCOM ... dossier_autorisation_type_detaille=Certificat d'urbanisme ... demande_type=Dépôt Initial ... commune=97695 - LoinCom &{args_petitionnaire} = Create Dictionary ... om_collectivite=LOINCOM ... particulier_nom=Lacharité ... particulier_prenom=Juliette ${demande5_di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${demande5_instr} = Obtenir l'instructeur du dossier d'instruction ${demande5_di} Should Be True "${demande5_instr}" == "Nenée Pinette (Y1)" # TODO : vérifier qu'avec une date demande dans le passé et une commune plus valide au jour # courant, mais valide à la date de la demande, l'affectation automatique lié à cette # commune apparait bien, et que l'ajout du dossier avec tous ces paramètres se passe bien # TODO : vérifier que lorsque l'option dossier_commune est désactivée le champ 'commune' # n'apparait ni dans les dossiers, ni dans les recherches Dès-activation du paramètre option_dossier_saisie_numero # désactiver la numérotation manuelle des dossiers (pour l'admin/agglo) &{param_args} = Create Dictionary ... delete=true ... libelle=option_dossier_saisie_numero ... om_collectivite=agglo Gerer le paramètre par WS ${param_args} Réinitialisation du paramétrage - Gestion de la commune associée au dossier [Documentation] Désactive les options qui ont été activées pour faire fonctionner ... le test case : Gestion de la commune associée au dossier. # désactiver l'option dossier_commune # pour l'utilisateur admin &{param_commune} = Create Dictionary ... delete=true ... libelle=option_dossier_commune ... om_collectivite=agglo Gerer le paramètre par WS ${param_commune} # pour les autres utilisateurs &{param_args} = Create Dictionary ... delete=true ... libelle=option_dossier_commune ... om_collectivite=LIBRECOM Gerer le paramètre par WS ${param_args} &{param_args} = Create Dictionary ... delete=true ... libelle=option_dossier_commune ... om_collectivite=LOINCOM Gerer le paramètre par WS ${param_args}