*** Settings *** Documentation Les widgets dossiers. # 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 *** Création du jeu de données [Documentation] Constitue le jeu de données. # &{args_petitionnaire} = Create Dictionary ... particulier_nom=Reault ... particulier_prenom=Julienne ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... petitionnaire=${args_petitionnaire} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours contentieux ... demande_type=Dépôt Initial REC ... autorisation_contestee=PC 013055 12 00001P0 ... om_collectivite=MARSEILLE ${args_peti} = Create Dictionary ${di_rec} = Ajouter la demande par WS ${args_demande} ${args_peti} ${args_autres_demandeurs} # &{args_petitionnaire} = Create Dictionary ... particulier_nom=Boncoeur ... particulier_prenom=Amélie ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... petitionnaire=${args_petitionnaire} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours gracieux ... demande_type=Dépôt Initial REG ... autorisation_contestee=PC 013055 12 00001P0 ... om_collectivite=MARSEILLE ${di_reg} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # &{args_contrevenant} = Create Dictionary ... particulier_nom=Ferland ... particulier_prenom=Honoré ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Routhier ... particulier_prenom=Vick ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} # &{args_contrevenant} = Create Dictionary ... particulier_nom=Chnadonnet ... particulier_prenom=Gaston ... om_collectivite=MARSEILLE &{args_plaignant} = Create Dictionary ... particulier_nom=Audet ... particulier_prenom=Saber ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} ... plaignant_principal=${args_plaignant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf_2} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} Set Suite Variable ${di_rec} Set Suite Variable ${di_reg} Set Suite Variable ${di_inf} Set Suite Variable ${di_inf_2} Widget "Dossiers Limites" [Documentation] L'objet de ce 'Test Case' est de vérifier le ... fonctionnement du widget 'Dossiers Limites' ... (widget_dossiers_limites). ... Ajoute 1 enjeu sur un des dossiers et 2 sur un autre puis vérifie ... l'affichage des icônes des enjeux sur le listing du widget et le listing ... accessible via le bouton "Voir +" # # Cas d'utilisation n°1 # Un paramètre permet de filtrer les dossiers qui apparaissent soit par : # - instructeur # - division # - aucun # ${om_widget_libelle} = Set Variable dossiers_limites # Ajout d'un instructeur secondaire à affecter aux dossiers ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_dl # Isole le contexte du test (création d'une collectivité, 2 divisions et 3 instructeurs) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_045_DS ... departement=001 ... commune=001 ... insee=01001 ... direction_code=B ... direction_libelle=Direction B de LIBRECOM_045_DS ... direction_chef=Chef ... division_code=B ... division_libelle=Division B ... division_chef=Chef ... instr_om_utilisateur_nom=Phillipa Durand ... instr_om_utilisateur_email=pdurand@openads-test.fr ... instr_om_utilisateur_login=pdurand ... instr_om_utilisateur_pwd=pdurand ... instr_2_om_utilisateur_nom=${instructeur_secondaire_login} ... instr_2_om_utilisateur_email=${instructeur_secondaire_login}@openads-test.fr ... instr_2_om_utilisateur_login=${instructeur_secondaire_login} ... instr_2_om_utilisateur_pwd=${instructeur_secondaire_login} Isolation d'un contexte ${librecom_values} # Ajouter la direction depuis le menu K Direction K de LIBRECOM_045_DS null Chef null null ${librecom_values.om_collectivite_libelle} # Ajouter la division depuis le menu K Division K null Chef null null Direction K de LIBRECOM_045_DS Ajouter l'utilisateur depuis le menu Simone Girard sgirard@openads-test.fr sgirard sgirard INSTRUCTEUR ${librecom_values.om_collectivite_libelle} Ajouter l'instructeur depuis le menu Simone Girard Division B instructeur Simone Girard &{args_affectation} = Create Dictionary ... instructeur=Simone Girard (B) ... om_collectivite=${librecom_values.om_collectivite_libelle} ... dossier_autorisation_type_detaille=DP - Déclaration préalable Ajouter l'affectation depuis le menu ${args_affectation} Ajouter la direction depuis le menu M Direction M de LIBRECOM_045_DS null Chef null null ${librecom_values.om_collectivite_libelle} Ajouter la division depuis le menu M Division M null Chef null null Direction M de LIBRECOM_045_DS Ajouter l'utilisateur depuis le menu Louis Laprise llaprise@openads-test.fr llaprise llaprise INSTRUCTEUR ${librecom_values.om_collectivite_libelle} Ajouter l'instructeur depuis le menu Louis Laprise Division M instructeur Louis Laprise &{args_affectation} = Create Dictionary ... instructeur=Louis Laprise (M) ... om_collectivite=${librecom_values.om_collectivite_libelle} ... dossier_autorisation_type_detaille=PD - Permis de démolir Ajouter l'affectation depuis le menu ${args_affectation} # Création de deux enjeux @{om_collectivite} = Create List LIBRECOM_045_DS @{dossier_instruction_type} = Create List PCI - P - Initial DP - P - Initiale &{values_enjeux_1} = Create Dictionary ... libelle=TST_045_ENJEUX_1 ... couleur=AAAAAA ... om_collectivite=${om_collectivite} ... dossier_instruction_type=${dossier_instruction_type} Ajouter un enjeu ${values_enjeux_1} &{values_enjeux_2} = Create Dictionary ... libelle=TST_045_ENJEUX_2 ... couleur=BBBBBB ... om_collectivite=${om_collectivite} ... dossier_instruction_type=${dossier_instruction_type} Ajouter un enjeu ${values_enjeux_2} # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 50 days result_format=%Y-%m-%d ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y &{args_petitionnaire} = Create Dictionary ... particulier_nom=PETIPRINC_NOM_01_045_DS ... particulier_prenom=PETIPRINC_PRENOM_01_045_DS ... om_collectivite=${librecom_values.om_collectivite_libelle} &{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=${librecom_values.om_collectivite_libelle} ... date_demande=${date_di} ${di_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=PETIPRINC_NOM_02_045_DS ... particulier_prenom=PETIPRINC_PRENOM_02_045_DS ... om_collectivite=${librecom_values.om_collectivite_libelle} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Déclaration préalable ... demande_type=Dépôt Initial ... om_collectivite=${librecom_values.om_collectivite_libelle} ... date_demande=${date_di} ${di_instr_2_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=PETIPRINC_NOM_03_045_DS ... particulier_prenom=PETIPRINC_PRENOM_03_045_DS ... om_collectivite=${librecom_values.om_collectivite_libelle} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de démolir ... demande_type=Dépôt Initial ... om_collectivite=${librecom_values.om_collectivite_libelle} ... date_demande=${date_di} ${di_instr_3_division_2_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Ajout d'un enjeu simple sur le dossier di_instr_1_division_1_commune_1 @{enjeux} = Create List ${values_enjeux_1.libelle} ${values} = Create Dictionary ... enjeux=${enjeux} Modifier le dossier d'instruction ${di_instr_1_division_1_commune_1} ${values} # Ajout d'enjeux multiples sur le dossier di_instr_2_division_1_commune_1 @{enjeux} = Create List ${values_enjeux_1.libelle} ${values_enjeux_2.libelle} ${values} = Create Dictionary ... enjeux=${enjeux} Modifier le dossier d'instruction ${di_instr_2_division_1_commune_1} ${values} ${di_instr_1_division_1_commune_1_se} = Sans espace ${di_instr_1_division_1_commune_1} ${di_instr_2_division_1_commune_1_se} = Sans espace ${di_instr_2_division_1_commune_1} # Filtre sur l'instructeur Insérer les paramètres suivants dans le widget ... filtre=instructeur ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} # Cas 1 : affichage d'un dossier avec un seul enjeu Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[style*="color:#${values_enjeux_1.couleur}"] Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[title="${values_enjeux_1.libelle}"] Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} # Cas 1 : affichage d'un dossier avec un seul enjeu Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[style*="color:#${values_enjeux_1.couleur}"] Page Should Contain Element css=a[href*="idx=${di_instr_1_division_1_commune_1_se}"] i.ri-alert-line[title="${values_enjeux_1.libelle}"] Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1} # Filtre sur la division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=division ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} # Cas 2 : affichage d'un dossier avec un plusieurs enjeu Page Should Contain Element css=a[href*="idx=${di_instr_2_division_1_commune_1_se}"] i.omi-alert-multiple-line Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} # Cas 2 : affichage d'un dossier avec un plusieurs enjeu Page Should Contain Element css=a[href*="idx=${di_instr_2_division_1_commune_1_se}"] i.omi-alert-multiple-line Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1} # Filtre sur l'instructeur secondaire Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur_secondaire ... ${om_widget_libelle} Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1} # L'instructeur du dossier ne dois pas avoir de résultat Depuis la page d'accueil pdurand pdurand Element Should Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. # Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=aucun ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1} # # Cas d'utilisation n°2 # Un paramètre permet de filtrer sur les types de dossiers qui apparaissent # ${di_type_dp} = Set Variable ${di_instr_2_division_1_commune_1} ${di_type_pc} = Set Variable ${di_instr_1_division_1_commune_1} # Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... codes_datd=PCI;PCA;PC\nfiltre=aucun ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_type_pc} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_dp} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_type_pc} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_type_dp} # Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... codes_datd=DP;DPS\nfiltre=aucun ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_type_dp} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_pc} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_type_dp} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_type_pc} # Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... codes_datd=ZZ\nfiltre=aucun ... ${om_widget_libelle} # Depuis la page d'accueil pdurand pdurand Element Should Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_dp} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_type_pc} Element Should Not Contain css=.widget_${om_widget_libelle} Voir + # # Cas d'utilisation n°3 # Vérifier le paramètre nombre de jours # # Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... nombre_de_jours=7\nfiltre=aucun ... ${om_widget_libelle} # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 55 days result_format=%Y-%m-%d ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y &{args_petitionnaire} = Create Dictionary ... particulier_nom=PETIPRINC_NOM_04_045_DS ... particulier_prenom=PETIPRINC_PRENOM_04_045_DS ... om_collectivite=${librecom_values.om_collectivite_libelle} &{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=${librecom_values.om_collectivite_libelle} ... date_demande=${date_di} ${di2_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Depuis la page d'accueil pdurand pdurand Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_3_division_2_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_3_division_2_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1} # # Cas d'utilisation n°4 # Vérifie l'affichage d'un dossier d'instruction icomplet # Le délai d'incomplétude est géré par un autre champ que celui pour la date limite complet # ${di_limite} = Set Variable ${di_instr_1_division_1_commune_1} # ${di_limite_incomplet} = Set Variable AT 013055 13 00001P0 # Filtre sur la division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=division ... ${om_widget_libelle} Ajouter l'utilisateur depuis le menu Arthur Heureux aheureux@openads-test.fr aheureux aheureux DIVISIONNAIRE ${librecom_values.om_collectivite_libelle} Ajouter l'instructeur depuis le menu Arthur Heureux Division B instructeur Arthur Heureux # En se basant sur le fait que les 3 types de dossiers ont un délai d'instruction à 2 mois ${date_di_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 100 days result_format=%Y-%m-%d ${date_di} = Convert Date ${date_di_db} result_format=%d/%m/%Y &{args_petitionnaire} = Create Dictionary ... particulier_nom=PETIPRINC_NOM_05_045_DS ... particulier_prenom=PETIPRINC_PRENOM_05_045_DS ... om_collectivite=${librecom_values.om_collectivite_libelle} &{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=${librecom_values.om_collectivite_libelle} ... date_demande=${date_di} ${di3_instr_1_division_1_commune_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_limite_incomplet} = Set Variable ${di3_instr_1_division_1_commune_1} Constitution du Workflow de gestion d'une incomplétude 045 ${date_incomplet_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 80 days result_format=%Y-%m-%d ${date_incomplet} = Convert Date ${date_incomplet_db} result_format=%d/%m/%Y Ajouter une instruction au DI et la finaliser ${di3_instr_1_division_1_commune_1} ${incompletude_libelle} false ${date_incomplet} Depuis l'instruction du dossier d'instruction ${di3_instr_1_division_1_commune_1} ${incompletude_libelle} Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_retour_signature ${date_incomplet} Click On Submit Button In Subform # Depuis la page d'accueil aheureux aheureux Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_${om_widget_libelle} ${di_limite} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.widget_${om_widget_libelle} ${di_limite_incomplet} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_limite} Element Should Contain css=#tab-${om_widget_libelle} ${di_limite_incomplet} # # Cas d'utilisation n°5 # Restreindre le resultat aux dossiers d'instruction dont le caractère # tacite est actif # # Filtre sur la division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... restreindre_aux_tacites=true\nfiltre=division ... ${om_widget_libelle} # Ajout de l'action et de l'événement pour suspendre le tacite automatique &{args_action} = Create Dictionary ... action=susp_tacite_auto ... libelle=Suspendre le tacite automatique ... regle_accord_tacite=accord_tacite Ajouter l'action depuis le menu ${args_action} @{etat_source} = Create List delai de notification envoye @{type_di} = Create List PCI - P - Initial &{args_evenement} = Create Dictionary ... libelle=Suspendre le tacite automatique ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... action=Suspendre le tacite automatique ... accord_tacite=Non Ajouter l'événement depuis le menu ${args_evenement} # Depuis la page d'accueil aheureux aheureux Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di3_instr_1_division_1_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di3_instr_1_division_1_commune_1} # Suspend le tacite automatique d'un dossiers Depuis la page d'accueil admin admin Ajouter une instruction au DI ${di_instr_1_division_1_commune_1} Suspendre le tacite automatique # Le dossier ne doit plus apparaitre dans les dossiers limites Depuis la page d'accueil aheureux aheureux Element Should Not Contain css=.widget_${om_widget_libelle} Vous n'avez pas de dossiers limites pour le moment. Element Should Not Contain css=.widget_${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di2_instr_1_division_1_commune_1} Element Should Contain css=.widget_${om_widget_libelle} ${di3_instr_1_division_1_commune_1} Click Element css=.widget_${om_widget_libelle} .widget-footer a Le titre de la page doit être Instruction > Dossiers Limites Element Should Not Contain css=#tab-${om_widget_libelle} ${di_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di_instr_2_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di2_instr_1_division_1_commune_1} Element Should Contain css=#tab-${om_widget_libelle} ${di3_instr_1_division_1_commune_1} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... restreindre_aux_tacites=true\nfiltre=division\naffichage=nombre ... ${om_widget_libelle} Depuis la page d'accueil aheureux aheureux Element Should Contain css=.widget_${om_widget_libelle} span.bg-info 3 # Désactive la restriction aux dossiers d'instruction tacites sur le widget # des dossiers limites Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... ${EMPTY} ... ${om_widget_libelle} Widget "Recherche Dossier" [Documentation] L'objet de ce 'Test Case' est de vérifier le ... fonctionnement du widget 'Recherche Dossier' ... (widget_recherche_dossier) &{isolation_values_01} = Create Dictionary ... om_collectivite_libelle=JIYUCITY045WRD01 ... departement=066 ... commune=088 ... insee=66088 ... direction_code=O ... direction_libelle=Direction de JIYUCITY045WRD01 ... direction_chef=Chef ... division_code=O ... division_libelle=Division O ... division_chef=Chef ... instr_om_utilisateur_nom=Alexandria Le Menard ... instr_om_utilisateur_email=alemenard@openads-test.fr ... instr_om_utilisateur_login=alemenard ... instr_om_utilisateur_pwd=alemenard Isolation d'un contexte ${isolation_values_01} &{isolation_values_02} = Create Dictionary ... om_collectivite_libelle=JIYUCITY045WRD02 ... departement=066 ... commune=089 ... insee=66089 ... direction_code=P ... direction_libelle=Direction de JIYUCITY045WRD02 ... direction_chef=Chef ... division_code=P ... division_libelle=Division P ... division_chef=Chef ... instr_om_utilisateur_nom=Daniel LeGrand ... instr_om_utilisateur_email=dlegrand@openads-test.fr ... instr_om_utilisateur_login=dlegrand ... instr_om_utilisateur_pwd=dlegrand Isolation d'un contexte ${isolation_values_02} # Dossier pour vérifier les différents cas &{args_petitionnaire_di} = Create Dictionary ... particulier_nom=LABONTÉ ... particulier_prenom=WILLIAM ... om_collectivite=${isolation_values_01.om_collectivite_libelle} &{args_demande_di} = 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=${isolation_values_01.om_collectivite_libelle} ${di} = Ajouter la demande par WS ${args_demande_di} ${args_petitionnaire_di} ${di_ns} = Sans espace ${di} &{args_petitionnaire_di_a} = Create Dictionary ... particulier_nom=DUPÉRÉ ... particulier_prenom=ZURIE ... om_collectivite=${isolation_values_02.om_collectivite_libelle} &{args_demande_di_a} = 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=${isolation_values_02.om_collectivite_libelle} ${di_allauch} = Ajouter la demande par WS ${args_demande_di_a} ${args_petitionnaire_di_a} &{args_petitionnaire_di_b} = Create Dictionary ... particulier_nom=MARTEL ... particulier_prenom=LAURENT ... om_collectivite=${isolation_values_01.om_collectivite_libelle} &{args_demande_di_b} = 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=${isolation_values_01.om_collectivite_libelle} ${di_b} = Ajouter la demande par WS ${args_demande_di_b} ${args_petitionnaire_di_b} # En tant qu'instructeur Depuis la page d'accueil alemenard alemenard # # Cas d'utilisation n°1 # # Saisie d'un numéro de dossier complet (avec et sans espaces) # Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur # Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_ns} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur # # Cas d'utilisation n°2 # # Saisie d'une portion d'un numéro de dossier # # Cas 2a : un seul dossier Go To Dashboard via Link ${search_2a_1} = Get Substring ${di_ns} 0 2 ${search_2a_2} = Get Substring ${di_ns} 6 9 ${search_2a_3} = Get Substring ${di_ns} 14 16 ${search_2a} = Catenate SEPARATOR=* ${search_2a_1} ${search_2a_2} ${search_2a_3} Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${search_2a} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur # Cas 2b : plusieurs dossiers Go To Dashboard via Link ${search_2b} = Get Substring ${di_ns} 2 7 ${search_2b_adv} = Catenate SEPARATOR= * ${search_2b} Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${search_2b} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction La page ne doit pas contenir d'erreur Textfield Value Should Be css=#advanced-form input#dossier ${search_2b_adv} # # Cas d'utilisation n°3 # # Saisie d'un numéro de dossier inexistant # Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ZZZZZZZZZZZZ Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord La page ne doit pas contenir d'erreur Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé. # # Cas d'utilisation n°4 # # Aucune valeur saisie # Go To Dashboard via Link Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord La page ne doit pas contenir d'erreur Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Veuillez saisir un No de dossier. # # TNR Bug "Erreur de base de données" lors de saisie de caractères spéciaux # Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ;"?#' Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction La page ne doit pas contenir d'erreur Textfield Value Should Be css=#advanced-form input#dossier *, # # Les DI contentieux ne doivent pas accessibles # Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_rec} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord La page ne doit pas contenir d'erreur Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé. # L'utilisateur étant mono, le DI d'une autre collectivité ne doit pas être trouvé Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier input#dossier ${di_allauch} Click Element css=#dashboard div.widget_recherche_dossier div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Text Should Be css=#dashboard div.widget_recherche_dossier div.message.ui-state-error p span.text Aucun dossier trouvé. La page ne doit pas contenir d'erreur Widget "Recherche Dossier par type" [Documentation] L'objet de ce 'Test Case' est de vérifier le ... fonctionnement du widget 'Recherche Dossier par type' ... (widget_recherche_dossier_par_type) ... ... Vérification des points suivants : ... - un utilisateur mono ne doit pas pouvoir rechercher un DI d'une autre collectivité ... - la recherche fonctionne avec des numéros de dossier avec et sans espaces ... - selon le type de dossier, on est redirigés au bon endroit # &{args_petitionnaire_di} = Create Dictionary ... particulier_nom=PETIT ... particulier_prenom=SEBASTIEN ... om_collectivite=MARSEILLE &{args_demande_di} = 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 ... date_demande=01/01/1999 ${di} = Ajouter la demande par WS ${args_demande_di} ${args_petitionnaire_di} ${di_ns} = Sans espace ${di} &{args_petitionnaire_di_a} = Create Dictionary ... particulier_nom=PETRIE ... particulier_prenom=CHRISTELLE ... om_collectivite=ALLAUCH &{args_demande_di_a} = 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=ALLAUCH ... date_demande=01/01/1999 ${di_allauch} = Ajouter la demande par WS ${args_demande_di_a} ${args_petitionnaire_di_a} Depuis la page d'accueil assist assist # Aucune valeur saisie Go To Dashboard via Link Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Selected List Label Should Be css=select#type_dossier_recherche ADS Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord La page ne doit pas contenir d'erreur Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Veuillez saisir un No de dossier. # Saisie d'un numéro de dossier inexistant Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ZZZZZZZZZZZZ Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Tableau De Bord La page ne doit pas contenir d'erreur Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Aucun dossier trouvé. # Contrôle de la saisie de caractères spéciaux Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ;"?#'';' Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction La page ne doit pas contenir d'erreur Textfield Value Should Be css=#advanced-form input#dossier *, # L'utilisateur étant mono, le DI d'une autre collectivité ne doit pas être trouvé Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_allauch} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Text Should Be css=#dashboard div.widget_recherche_dossier_par_type div.message.ui-state-error p span.text Aucun dossier trouvé. La page ne doit pas contenir d'erreur # Recherche de dossiers ADS existants avec et sans espaces dans le numéro Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_ns} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur # Saisie d'une portion d'un numéro de dossier, avec un seul dossier en résultat Go To Dashboard via Link ${search_2a_1} = Get Substring ${di_ns} 0 2 ${search_2a_2} = Get Substring ${di_ns} 6 9 ${search_2a_3} = Get Substring ${di_ns} 14 16 ${search_2a} = Catenate SEPARATOR=* ${search_2a_1} ${search_2a_2} ${search_2a_3} Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${search_2a} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di} ${args_petitionnaire_di.particulier_nom} ${args_petitionnaire_di.particulier_prenom} La page ne doit pas contenir d'erreur # Saisie d'une portion d'un numéro de dossier, avec plusieurs dossiers en résultat Go To Dashboard via Link ${search_2b} = Get Substring ${di_ns} 2 7 ${search_2b_adv} = Catenate SEPARATOR= *${search_2b} Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${search_2b} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction La page ne doit pas contenir d'erreur Textfield Value Should Be css=#advanced-form input#dossier ${search_2b_adv} # Passage de l'utilisateur juriste sur la collectivité agglo pour tester le filtre sur # la collectivité Depuis la page d'accueil admin admin Modifier l'utilisateur juriste support@atreal.fr juriste juriste JURISTE agglo # Un utilisateur multi doit pouvoir rechercher des dossiers de toutes les collectivités Depuis la page d'accueil juriste juriste Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_allauch} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_allauch} ${args_petitionnaire_di_a.particulier_nom} ${args_petitionnaire_di_a.particulier_prenom} La page ne doit pas contenir d'erreur # Modification du type de dossier sélectionné par défaut Depuis la page d'accueil admin admin Depuis le contexte du widget recherche_dossier_par_type Click On Form Portlet Action om_widget modifier Input Text arguments type_defaut=RE* Click On Submit Button Modifier l'utilisateur juriste support@atreal.fr juriste juriste JURISTE MARSEILLE Depuis la page d'accueil juriste juriste # Recherche d'un dossier IN Go To Dashboard via Link Selected List Label Should Be css=select#type_dossier_recherche RE* Select From List By Label css=select#type_dossier_recherche IN Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_inf} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Infraction > ${di_inf} La page ne doit pas contenir d'erreur # Recherche de dossiers IN Go To Dashboard via Link Select From List By Label css=select#type_dossier_recherche IN Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier IN Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Infractions La page ne doit pas contenir d'erreur # Recherche d'un dossier RE Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier ${di_rec} Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Recours > ${di_rec} La page ne doit pas contenir d'erreur # Recherche de dossiers RE Go To Dashboard via Link Input Text css=#dashboard div.widget_recherche_dossier_par_type input#dossier RE Click Element css=#dashboard div.widget_recherche_dossier_par_type div.formControls input Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Contentieux > Recours La page ne doit pas contenir d'erreur Widget "Dossiers incomplets ou majorés sans date de notification" [Documentation] L'objet de ce 'Test Case' est de vérifier le ... fonctionnement du widget 'Dossiers incomplets ou majorés sans date de notification' ... (dossiers_evenement_incomplet_majoration) ## ## Constitution du jeu de données ## ## On crée deux nouvelles collectivités pour être sûr du nombre ## de retours de messages à vérifier dans les widgets et tableaux ## # ${collectivite_a} = Set Variable DAKAR ${collectivite_b} = Set Variable SINESALOUM # ${utilisateur_nom_01} = Set Variable Nicole Leduc ${utilisateur_login_01} = Set Variable nleduc ${utilisateur_nom_02} = Set Variable Julie Giguère ${utilisateur_login_02} = Set Variable jguiguere ${utilisateur_nom_03} = Set Variable Arno Perreault ${utilisateur_login_03} = Set Variable aperreault ${utilisateur_nom_04} = Set Variable Albertine Echeverri ${utilisateur_login_04} = Set Variable aecheverri ${utilisateur_secondaire_login} = Set Variable instructeur_secondaire_eim # Depuis la page d'accueil admin admin # Ajouter la collectivité depuis le menu ${collectivite_a} mono Ajouter la collectivité depuis le menu ${collectivite_b} mono # Ajouter l'utilisateur ${utilisateur_nom_01} nospam@openmairie.org ${utilisateur_login_01} ${utilisateur_login_01} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_02} nospam@openmairie.org ${utilisateur_login_02} ${utilisateur_login_02} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_03} nospam@openmairie.org ${utilisateur_login_03} ${utilisateur_login_03} INSTRUCTEUR ${collectivite_a} Ajouter l'utilisateur ${utilisateur_nom_04} nospam@openmairie.org ${utilisateur_login_04} ${utilisateur_login_04} INSTRUCTEUR ${collectivite_b} Ajouter l'utilisateur ${utilisateur_secondaire_login} nospam@openmairie.org ${utilisateur_secondaire_login} ${utilisateur_secondaire_login} INSTRUCTEUR ${collectivite_a} # Ajouter la direction depuis le menu D Direction D null Chef D null null ${collectivite_a} Ajouter la direction depuis le menu S Direction S null Chef S null null ${collectivite_b} # Ajouter la division depuis le menu D subdivision D null Chef D null null Direction D Ajouter la division depuis le menu DD subdivision DD null Chef D null null Direction D Ajouter la division depuis le menu S subdivision S null Chef S null null Direction S # # Ajouter l'instructeur depuis le menu ${utilisateur_nom_01} subdivision D instructeur ${utilisateur_nom_01} Ajouter l'instructeur depuis le menu ${utilisateur_nom_02} subdivision DD instructeur ${utilisateur_nom_02} Ajouter l'instructeur depuis le menu ${utilisateur_nom_03} subdivision D instructeur ${utilisateur_nom_03} Ajouter l'instructeur depuis le menu ${utilisateur_nom_04} subdivision S instructeur ${utilisateur_nom_04} Ajouter l'instructeur depuis le menu ${utilisateur_secondaire_login} subdivision D instructeur ${utilisateur_secondaire_login} # &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_01} (D) ... instructeur_2=${utilisateur_secondaire_login} (D) ... om_collectivite=${collectivite_a} Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_02} (DD) ... instructeur_2=${utilisateur_secondaire_login} (D) ... om_collectivite=${collectivite_a} ... dossier_autorisation_type_detaille=PCA - Permis de construire comprenant ou non des démolitions Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_03} (D) ... instructeur_2=${utilisateur_secondaire_login} (D) ... om_collectivite=${collectivite_a} ... dossier_autorisation_type_detaille=PD - Permis de démolir Ajouter l'affectation depuis le menu ${args_affectation} &{args_affectation} = Create Dictionary ... instructeur=${utilisateur_nom_04} (S) ... om_collectivite=${collectivite_b} Ajouter l'affectation depuis le menu ${args_affectation} # DI n°1 : Permis de démolir dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_03}' (${utilisateur_login_03}) # => Division 'D' # &{args_petitionnaire_01} = Create Dictionary ... particulier_nom=Chandonnet ... particulier_prenom=Leone ... om_collectivite=${collectivite_a} # &{args_demande_01} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de démolir ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_01} = Ajouter la demande par WS ${args_demande_01} ${args_petitionnaire_01} # DI n°2 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_01}' (${utilisateur_login_01}) # => Division 'D' # &{args_petitionnaire_02} = Create Dictionary ... particulier_nom=Joly ... particulier_prenom=Frédérique ... om_collectivite=${collectivite_a} # &{args_demande_02} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_02} = Ajouter la demande par WS ${args_demande_02} ${args_petitionnaire_02} # DI n°3 : Permis de construire comprenant ou non des démolitions dans Collectivité A (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_02}' (${utilisateur_login_02}) # => Division 'DD' # &{args_petitionnaire_03} = Create Dictionary ... particulier_nom=Boucher ... particulier_prenom=Bernadette ... om_collectivite=${collectivite_a} # &{args_demande_03} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_a} # ${di_03} = Ajouter la demande par WS ${args_demande_03} ${args_petitionnaire_03} # DI n°4 : Permis de construire pour une maison individuelle et / ou ses annexes dans Collectivité B (niveau mono) # => Affecté à l'instructeur '${utilisateur_nom_04}' (${utilisateur_login_04}) # => Division 'S' # &{args_petitionnaire_04} = Create Dictionary ... particulier_nom=BOULAGE ... particulier_prenom=Damien ... om_collectivite=${collectivite_b} # &{args_demande_04} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... demande_type=Dépôt Initial ... date_demande=${date_ddmmyyyy} ... om_collectivite=${collectivite_b} # ${di_04} = Ajouter la demande par WS ${args_demande_04} ${args_petitionnaire_04} # On applique l'événement "majoration + DPC hors SS" à chaque dossier et on met une # date d'envoi AR à l'événement pour que les dossiers soient affichés dans le widget Ajouter une instruction au DI et la finaliser ${di_01} majoration + DPC hors SS false ${date_ddmmyyyy} Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_envoi_rar ${date_ddmmyyyy} Click On Submit Button In Subform Ajouter une instruction au DI et la finaliser ${di_02} majoration + DPC hors SS false ${date_ddmmyyyy} Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_envoi_rar ${date_ddmmyyyy} Click On Submit Button In Subform Ajouter une instruction au DI et la finaliser ${di_03} majoration + DPC hors SS false ${date_ddmmyyyy} Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_envoi_rar ${date_ddmmyyyy} Click On Submit Button In Subform Ajouter une instruction au DI et la finaliser ${di_04} majoration + DPC hors SS false ${date_ddmmyyyy} Click On SubForm Portlet Action instruction modifier_suivi Input Datepicker date_envoi_rar ${date_ddmmyyyy} Click On Submit Button In Subform # # Cas d'utilisation n°1 # Un paramètre permet de filtrer les dossiers qui apparaissent soit par : # - instructeur # - division # - aucun (collectivite) # # Vérification du : # - fonctionnement des filtres # - de la redirection vers le dossier # - des dossiers affichés dans le widget ET la liste "voir plus" # ${widget_id} = Set Variable widget_10 ${libelle_widget} = Set Variable dossiers_evenement_incomplet_majoration ## Vérification du filtre par défaut (instructeur) # On se connecte en tant que "${utilisateur_login_01}" (Profil 'INSTRUCTEUR') Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} Element Should Contain css=#${widget_id} ${di_02} Element Should Not Contain css=#${widget_id} ${di_01} Element Should Not Contain css=#${widget_id} ${di_03} Element Should Not Contain css=#${widget_id} ${di_04} Click Link ${di_02} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_02} JOLY FRÉDÉRIQUE Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=#${widget_id} .widget-footer a Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04} Click Link ${di_02} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Le titre de la page doit être Instruction > Dossiers D'instruction > ${di_02} JOLY FRÉDÉRIQUE ## Vérification du filtre instructeur Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur ... ${libelle_widget} # L'instructeur doit seulement voir son dossier Depuis la page d'accueil ${utilisateur_login_04} ${utilisateur_login_04} Element Should Contain css=#${widget_id} ${di_04} Element Should Not Contain css=#${widget_id} ${di_01} Element Should Not Contain css=#${widget_id} ${di_02} Element Should Not Contain css=#${widget_id} ${di_03} Click Element css=#${widget_id} .widget-footer a Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03} # Filtre sur la division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=division ... ${libelle_widget} # On doit avoir 2 dossiers de la division Depuis la page d'accueil ${utilisateur_login_01} ${utilisateur_login_01} Element Should Contain css=#${widget_id} ${di_01} Element Should Contain css=#${widget_id} ${di_02} Element Should Not Contain css=#${widget_id} ${di_04} Element Should Not Contain css=#${widget_id} ${di_03} Click Element css=#${widget_id} .widget-footer a Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03} # Filtre "aucun" donc sur la collectivité Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=aucun ... ${libelle_widget} # On doit avoir les 3 dossiers de la collectivité Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03} Element Should Contain css=#${widget_id} ${di_01} Element Should Contain css=#${widget_id} ${di_02} Element Should Contain css=#${widget_id} ${di_03} Element Should Not Contain css=#${widget_id} ${di_04} Click Element css=#${widget_id} .widget-footer a Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04} ## Vérification du filtre instructeur_secondaire Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur_secondaire ... ${libelle_widget} # On doit avoir les 3 dossiers sur lesquels l'instructeur secondaire est affecté Depuis la page d'accueil ${utilisateur_secondaire_login} ${utilisateur_secondaire_login} Element Should Contain css=#${widget_id} ${di_01} Element Should Contain css=#${widget_id} ${di_02} Element Should Contain css=#${widget_id} ${di_03} Element Should Not Contain css=#${widget_id} ${di_04} Click Element css=#${widget_id} .widget-footer a Le titre de la page doit être Instruction > Dossiers Incomplets Ou Majorés Sans Date De Notification Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_01} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_02} Element Should Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_03} Element Should Not Contain css=#tab-dossiers_evenement_incomplet_majoration ${di_04} # l'instructeur n'aura aucun résultat Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03} Element Should Contain ... css=.widget_dossiers_evenement_incomplet_majoration ... Vous n'avez pas de dossiers d'instruction avec un événement d'incomplétude ou de majoration de délai sans date de notification. # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=aucun\naffichage=nombre ... ${libelle_widget} Depuis la page d'accueil ${utilisateur_login_03} ${utilisateur_login_03} Element Should Contain css=.widget_dossiers_evenement_incomplet_majoration span.bg-info 3 # Suppression des affectations automatique Depuis la page d'accueil admin admin Supprimer l'affectation depuis le menu ${utilisateur_nom_01} (D) Supprimer l'affectation depuis le menu ${utilisateur_nom_02} (DD) Supprimer l'affectation depuis le menu ${utilisateur_nom_03} (D) Supprimer l'affectation depuis le menu ${utilisateur_nom_04} (S) Depuis le contexte du widget ${libelle_widget} Click On Form Portlet Action om_widget modifier Input Text arguments ${EMPTY} Click On Submit Button Widget "Nouveau dossier" et "Nouveau dossier contentieux" [Documentation] Ces widgets affichent un lien pour rediriger l'utilisateur ... Soit vers un nouveau dossier ADS soit vers un nouveau dossier contentieux. Depuis la page d'accueil guichet guichet Go To Dashboard via Link Click On Link Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier Submenu In Menu Should Be Selected guichet_unique nouveau-dossier Depuis la page d'accueil assist assist Go To Dashboard via Link Click On Link Cliquer ici pour saisir une nouvelle demande concernant le dépôt d'un nouveau dossier Submenu In Menu Should Be Selected contentieux nouveau-dossier Widget "Dossiers Consultés" [Documentation] Ce widget affiche dans un tableau les X derniers dossiers consultés. # Permet de réinitialiser la session Depuis la page d'accueil instr instr Depuis la page d'accueil admin admin # Ajouter des DI &{args_petitionnaire} = Create Dictionary ... particulier_nom=Parfa ... particulier_prenom=Pierre ... 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_consulte_1} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=Maurice ... particulier_prenom=Eric ... 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_consulte_2} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=Oracle ... particulier_prenom=Yeal ... 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_consulte_3} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=Paya ... particulier_prenom=Tim ... 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_consulte_4} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=Marcel ... particulier_prenom=Jean ... 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_consulte_5} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Suppression du widget des dossiers consultés par défaut du tableau de bord Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_dashboard Use Simple Search Profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Click Link Les derniers dossiers consultés Click On Form Portlet Action om_dashboard supprimer Click On Submit Button # Ajout du Widget avec un nombre limite à 3 Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_widget&action=0 Input Text libelle Les derniers dossiers consultés (3) # Selection Select From List By Label type file - le contenu du widget provient d'un script sur le serveur Select From List By Label script dossier_consulter Input Text arguments nb_dossiers=3 Click On Submit Button # Ajouter a la composition Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Input Text bloc C1 Select From List By Label om_widget Les derniers dossiers consultés (3) Click On Submit Button Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_1} Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_2} Element Should Contain css=.widget_dossier_consulter Vous n'avez pas consulté de dossier pour le moment. # Les consulter Go To ${PROJECT_URL}/app/index.php?module=tab&obj=dossier_instruction Input Text dossier ${di_consulte_1},${di_consulte_2} Click Element css=#adv-search-submit Click On Link ${di_consulte_1} Click On Back Button Click On Link ${di_consulte_2} # On vérifie que le bouton "Afficher +" n'est pas affiché Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_consulter Afficher + Go To ${PROJECT_URL}/app/index.php?module=tab&obj=dossier_instruction Input Text dossier ${di_consulte_3},${di_consulte_4},${di_consulte_5} Click Element css=#adv-search-submit Click On Link ${di_consulte_3} Click On Back Button Click On Link ${di_consulte_4} Click On Back Button Click On Link ${di_consulte_5} Go To Dashboard via Link Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_1} Element Should Not Contain css=.widget_dossier_consulter ${di_consulte_2} Element Should Contain css=.widget_dossier_consulter ${di_consulte_3} Element Should Contain css=.widget_dossier_consulter ${di_consulte_4} Element Should Contain css=.widget_dossier_consulter ${di_consulte_5} Element Should Not Contain css=.widget_dossier_consulter Vous n'avez pas consulté de dossier pour le moment. # Test contenu du Afficher + Click Element css=.widget_dossier_consulter .widget-footer a Element Should Contain css=.widget_dossier_consulter ${di_consulte_1} Element Should Contain css=.widget_dossier_consulter ${di_consulte_2} # Ajout d'un dossier de recours et d'un dossier d'infraction pour tester les # différentes redirections possibles &{args_petitionnaire} = Create Dictionary ... particulier_nom=Parfa ... particulier_prenom=Pierre ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... petitionnaire=${args_petitionnaire} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Recours gracieux ... demande_type=Dépôt Initial REG ... autorisation_contestee=${di_consulte_1} ... om_collectivite=MARSEILLE ${di_reg} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} &{args_contrevenant} = Create Dictionary ... particulier_nom=Massé ... particulier_prenom=Madelene ... om_collectivite=MARSEILLE &{args_autres_demandeurs} = Create Dictionary ... contrevenant_principal=${args_contrevenant} &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Infraction ... demande_type=Dépôt Initial IN ... om_collectivite=MARSEILLE ${di_inf} = Ajouter la demande par WS ${args_demande} ${NULL} ${args_autres_demandeurs} Depuis le contexte du dossier recours ${di_reg} Depuis le contexte du dossier infraction ${di_inf} Depuis le contexte du dossier d'instruction ${di_consulte_1} Go To Dashboard via Link Click Element css=.widget_dossier_consulter .widget-footer a Click On Link ${di_consulte_1} Page Should Not Contain Droits insuffisants Go To Dashboard via Link Click Element css=.widget_dossier_consulter .widget-footer a Click On Link ${di_reg} Page Should Not Contain Droits insuffisants Go To Dashboard via Link Click Element css=.widget_dossier_consulter .widget-footer a Click On Link ${di_inf} Page Should Not Contain Droits insuffisants # Suppression du widget du tableau de bord Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_dashboard Use Simple Search Profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Click Link Les derniers dossiers consultés (3) Click On Form Portlet Action om_dashboard supprimer Click On Submit Button # Suppression du widget Go To ${PROJECT_URL}/app/index.php?module=tab&obj=om_widget Use Simple Search libellé Les derniers dossiers consultés (3) Click Link Les derniers dossiers consultés (3) Click On Form Portlet Action om_widget supprimer Click On Submit Button # Ajout le widget par défaut Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Input Text bloc C1 Select From List By Label om_widget Les derniers dossiers consultés Click On Submit Button Widget "Derniers dossiers déposés" [Documentation] Ce widget affiche le nombre des derniers ... dossiers déposés. # On crée une collectivité, ses divisions et ses instructeurs # pour ne pas perturber ni être perturbé par les autres tests. # Depuis la page d'accueil admin admin # Ajouter la collectivité depuis le menu STORYBROOK mono Ajouter la direction depuis le menu STORYBROOK STORYBROOK null Chef STORYBROOK null null STORYBROOK Ajouter la division depuis le menu SB1 subdivision SB1 null ... Chef STORYBROOK null null STORYBROOK Ajouter la division depuis le menu SB2 subdivision SB2 null ... Chef STORYBROOK null null STORYBROOK # Ajout d'un instructeur secondaire à affecter aux dossiers ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_ddd Ajouter l'utilisateur ${instructeur_secondaire_login} nospam@openmairie.org ${instructeur_secondaire_login} ${instructeur_secondaire_login} INSTRUCTEUR STORYBROOK Ajouter l'instructeur depuis le menu ${instructeur_secondaire_login} subdivision SB1 instructeur ${instructeur_secondaire_login} Ajouter l'utilisateur Peter Pan nospam@openmairie.org ppan ppan INSTRUCTEUR STORYBROOK Ajouter l'instructeur depuis le menu Peter Pan subdivision SB1 instructeur Peter Pan &{args_affectation} = Create Dictionary ... instructeur=Peter Pan (SB1) ... instructeur_2=${instructeur_secondaire_login} (SB1) ... om_collectivite=STORYBROOK ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes Ajouter l'affectation depuis le menu ${args_affectation} # Ajouter l'utilisateur Wendy Darling nospam@openmairie.org wdarling wdarling INSTRUCTEUR STORYBROOK Ajouter l'instructeur depuis le menu Wendy Darling subdivision SB2 instructeur Wendy Darling &{args_affectation} = Create Dictionary ... instructeur=Wendy Darling (SB2) ... instructeur_2=${instructeur_secondaire_login} (SB1) ... om_collectivite=STORYBROOK ... dossier_autorisation_type_detaille=PD - Permis de démolir Ajouter l'affectation depuis le menu ${args_affectation} # #Création des divisions, instructeurs et affectations automatiques # On ajoute le droit au profil instructeur Depuis la page d'accueil admin admin Ajouter le droit depuis le menu derniers_dossiers_deposes INSTRUCTEUR # On vérifie que le widget est paramétré correctement: # DATD: PCI et PD # Filtre division # Intervalle de date de dépôt: 15 jours # type de dépôt: dépôt électronique Insérer les paramètres suivants dans le widget ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15 ... derniers_dossiers_deposes # On ajoute le widget au tableau de bord des instructeurs Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil INSTRUCTEUR Input Text bloc C1 Select From List By Label om_widget Les derniers dossiers déposés Click On Submit Button # On vérifie que le widget n'indique aucun dossier déposé Depuis la page d'accueil ppan ppan Element Should Contain css=.widget_derniers_dossiers_deposes .widget-content ... Aucun dossier déposé dernièrement. #En DIVISION 1 :Création d'un jeu de dossiers remplissant les critères : # intervalle de dépôt, dépôt électronique &{args_petitionnaire} = Create Dictionary ... particulier_nom=Applefield ... particulier_prenom=Nadia ... om_collectivite=STORYBROOK &{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=STORYBROOK ... depot_electronique=true ${di_01} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} &{args_petitionnaire} = Create Dictionary ... particulier_nom=Dandelion ... particulier_prenom=Leopold ... om_collectivite=STORYBROOK &{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=STORYBROOK ... depot_electronique=true ${di_02} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} #En DIVISION 2: Création d'un jeu de dossiers remplissant les critères : # intervalle de dépôt, dépôt électronique &{args_petitionnaire} = Create Dictionary ... particulier_nom=Haskill ... particulier_prenom=George ... om_collectivite=STORYBROOK &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de démolir ... demande_type=Dépôt Initial ... om_collectivite=STORYBROOK ... depot_electronique=true ${di_03} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} #DIV 1: Création d'un dossier ne remplissant pas le critère intervalle de dépôt &{args_petitionnaire} = Create Dictionary ... particulier_nom=Prince ... particulier_prenom=François ... om_collectivite=STORYBROOK &{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=STORYBROOK ... date_demande=01/01/2015 ... depot_electronique=true ${di_04} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} #DIV 1: Création d'un dossier ne remplissant pas le critère dépôt électronique &{args_petitionnaire} = Create Dictionary ... particulier_nom=Noire ... particulier_prenom=Rose ... om_collectivite=STORYBROOK ... 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=STORYBROOK ... depot_electronique=false ${di_05} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ## Vérification du widget et du listing Division 1 Depuis la page d'accueil ppan ppan ${nombre_derniers_dossiers_deposes} = Get Text ... css=div#content.ui-widget.ui-widget-content.ui-corner-all div.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info Should Not Be Empty ${nombre_derniers_dossiers_deposes} Should Be Equal ${nombre_derniers_dossiers_deposes} 2 # On clique sur le lien du widget (Voir +) Click Link css=.widget_derniers_dossiers_deposes .widget-footer a Le titre de la page doit être Instruction > Dossiers Déposés # L'instructeur doit voir tous les dossiers de sa division # qui respectent les paramètres du widget(sauf intervalle de dépot) Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_03} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_05} ## Vérification du widget et du listing Division 2 Depuis la page d'accueil wdarling wdarling ${nombre_derniers_dossiers_deposes} = Get Text ... css=.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info Should Not Be Empty ${nombre_derniers_dossiers_deposes} Should Be Equal ${nombre_derniers_dossiers_deposes} 1 # On clique sur le lien du widget (Voir +) Click Link css=.widget_derniers_dossiers_deposes .widget-footer a Le titre de la page doit être Instruction > Dossiers Déposés # L'instructeur doit voir tous les dossiers de sa division # qui respectent les paramètres du widget(sauf intervalle de dépot) Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_01} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_02} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_03} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_05} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04} # Modification du filtre de dépôt pour vérifier la modification du résultat # et l'ajout d'une colonne au lisitng Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=aucun\nnombre_de_jours=15 ... derniers_dossiers_deposes ## Vérification du widget et du listing Division 1 Depuis la page d'accueil ppan ppan ${nombre_derniers_dossiers_deposes} = Get Text ... css=div#content.ui-widget.ui-widget-content.ui-corner-all div.widget_derniers_dossiers_deposes .widget-content span.size-h3.box-icon.rounded.bg-info Should Not Be Empty ${nombre_derniers_dossiers_deposes} Should Be Equal ${nombre_derniers_dossiers_deposes} 3 # On clique sur le lien du widget (Voir +) Click Link css=.widget_derniers_dossiers_deposes .widget-footer a Le titre de la page doit être Instruction > Dossiers Déposés # L'instructeur doit voir tous les dossiers de sa division # qui respectent les paramètres du widget(sauf intervalle de dépot) Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_03} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_05} # Vérifie que la colonne "dépôt électronique" est affichée Element Should Contain css=#tab-derniers_dossiers_deposes dépôt électronique # Modification du filtre de dépôt pour tester le filtre sur l'instructeur secondaire Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... filtre=instructeur_secondaire\ncodes_datd=PCI;PD\nfiltre_depot=aucun\nnombre_de_jours=15 ... derniers_dossiers_deposes # Vérification des résultats affichés dans le widgets Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Element Should Contain css=.widget_derniers_dossiers_deposes span.bg-info 4 # On clique sur le lien du widget (Voir +) Click Link css=.widget_derniers_dossiers_deposes .widget-footer a # L'instructeur doit voir tous les dossiers sur lesquels il est affecté en tant qu'instructeur # secondaire et qui respectent les paramètres du widget(sauf intervalle de dépot) Wait Until Page Contains Element css=#tab-derniers_dossiers_deposes Element Should Contain css=#tab-derniers_dossiers_deposes ${di_01} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_02} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_03} Element Should Not Contain css=#tab-derniers_dossiers_deposes ${di_04} Element Should Contain css=#tab-derniers_dossiers_deposes ${di_05} #Supprimer le droit ajouté en début de test pour revenir en condition initiale Depuis la page d'accueil admin admin Depuis le listing des droits Use Simple Search libellé derniers_dossiers_deposes Select From List By Label name=selectioncol Tous Click Element css=button#search-submit Wait Until Element Is Visible css=table.tab-tab Click On Link INSTRUCTEUR Click On Form Portlet Action om_droit supprimer Click On Submit Button Widget "Dossiers à qualifier (limite de la notification du délai)" [Documentation] Ce widget affiche les dossiers à qualifier ... et dont la date notification de délai n'est par encore dépassée. # Depuis la page d'accueil admin admin # Isolation du contexte Ajouter la collectivité depuis le menu TESTNOTIFICATIONDELAI mono Ajouter la direction depuis le menu TESTNOTIFICATIONDELAI TESTNOTIFICATIONDELAI null Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI Ajouter la division depuis le menu SB8 subdivision SB8 null ... Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI Ajouter la division depuis le menu SB9 subdivision SB9 null ... Chef TESTNOTIFICATIONDELAI null null TESTNOTIFICATIONDELAI Ajouter l'utilisateur delai_pre_inst nospam@openmairie.org delai_pre_inst delai_pre_inst INSTRUCTEUR POLYVALENT TESTNOTIFICATIONDELAI ${instructeur_secondaire_login} = Set Variable instructeur_secondaire Ajouter l'utilisateur ${instructeur_secondaire_login} nospam@openmairie.org ${instructeur_secondaire_login} ${instructeur_secondaire_login} INSTRUCTEUR POLYVALENT TESTNOTIFICATIONDELAI # TODO : ajouter un 3ème profil et l'affecter en instructeur secondaire # On affecte cet instructeur aux PCI Ajouter l'instructeur depuis le menu delai_pre_inst subdivision SB8 instructeur delai_pre_inst Ajouter l'instructeur depuis le menu ${instructeur_secondaire_login} subdivision SB8 instructeur ${instructeur_secondaire_login} &{args_affectation} = Create Dictionary ... instructeur=delai_pre_inst (SB8) ... instructeur_2=${instructeur_secondaire_login} (SB8) ... om_collectivite=TESTNOTIFICATIONDELAI ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes Ajouter l'affectation depuis le menu ${args_affectation} # On affecte cet instructeur aux CU Ajouter l'utilisateur delai_pre_inst_polycomm nospam@openmairie.org delai_pre_inst_polycomm delai_pre_inst_polycomm INSTRUCTEUR POLYVALENT COMMUNE TESTNOTIFICATIONDELAI Ajouter l'instructeur depuis le menu delai_pre_inst_polycomm subdivision SB9 instructeur delai_pre_inst_polycomm &{args_affectation} = Create Dictionary ... instructeur=delai_pre_inst_polycomm (SB9) ... instructeur_2=${instructeur_secondaire_login} (SB8) ... om_collectivite=TESTNOTIFICATIONDELAI ... dossier_autorisation_type_detaille=CU - Certificat d'urbanisme Ajouter l'affectation depuis le menu ${args_affectation} # On vérifie que le widget apparaît sur le tableau de bord des utilisateurs instrpolycomm Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance. # Calcul de la date de demande des dossiers pour leur donner une date limite de notification (dln) # le plus proche possible de celle du jour # La dln est calculé en ajoutant 1 mois à la date de demande. On enlève donc 1 mois # à la date courante pour s'en approcher ${date_di} = Ajouter ou supprimer des mois à une date -1 ${date_ddmmyyyy} # Calcul la dln à partir de la date de demande précédente ${date_limite_notification} = Ajouter ou supprimer des mois à une date 1 ${date_di} # Vérifie si la date courante n'est pas supérieure à la dln. # Ce cas est possible pour les jours en 31 ou si on est le 29, 30 ou 31 mars. # Si c'est le cas on prend le 1 jour du mois courant comme jour pour la date de demande ${date_dmy} = Convert Date ${date_ddmmyyyy} datetime date_format=%d/%m/%Y ${month_dmy} = Set Variable If ${date_dmy.month} < 10 0${date_dmy.month} ${date_dmy.month} ${date_dln} = Convert Date ${date_limite_notification} datetime date_format=%d/%m/%Y ${date_di} = Run Keyword If ${date_dmy.day} > ${date_dln.day} ... Convert date ${date_dmy.year}-${month_dmy}-01 result_format=%d/%m/%Y ... ELSE Set Variable ${date_di} # Ajout d'un dossier afin qu'il soit affiché dans le widget (-1 mois avant) &{args_petitionnaire_alert_pre_instruction} = Create Dictionary ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM ... om_collectivite=TESTNOTIFICATIONDELAI &{args_demande_alert_pre_instruction} = Create Dictionary ... date_demande=${date_di} ... dossier_autorisation_type_detaille=Certificat d'urbanisme ... demande_type=Dépôt Initial ... om_collectivite=TESTNOTIFICATIONDELAI ${di_alert_pre_instruction} = Ajouter la demande par WS ${args_demande_alert_pre_instruction} ${args_petitionnaire_alert_pre_instruction} # On vérifie que le dossier apparraît ou non dans le widget des utilisateurs Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction} Depuis la page d'accueil delai_pre_inst delai_pre_inst Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance. # On change le filtre sur 'aucun' Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=aucun dossiers_pre_instruction Depuis la page d'accueil delai_pre_inst delai_pre_inst Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction} # On remet le filtre par défaut (instructeur) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ${EMPTY} dossiers_pre_instruction &{args_petitionnaire_alert_pre_instruction1} = Create Dictionary ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM1 ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM1 ... om_collectivite=TESTNOTIFICATIONDELAI &{args_demande_alert_pre_instruction1} = Create Dictionary ... date_demande=${date_di} ... dossier_autorisation_type_detaille=Certificat d'urbanisme ... demande_type=Dépôt Initial ... om_collectivite=TESTNOTIFICATIONDELAI ${di_alert_pre_instruction1} = Ajouter la demande par WS ${args_demande_alert_pre_instruction1} ${args_petitionnaire_alert_pre_instruction1} Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction} Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1} Depuis la page d'accueil delai_pre_inst delai_pre_inst Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance. # On change le filtre sur 'aucun' Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=aucun dossiers_pre_instruction Depuis la page d'accueil delai_pre_inst delai_pre_inst Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction} Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1} Click Element css=.widget_dossiers_pre_instruction .widget-footer a Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai) Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction} Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1} # On met un filtre sur les PCI Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=aucun\ncodes_datd=PCI dossiers_pre_instruction # L'utilisateur ne possède que des CU donc il ne doit pas y avoir de dossier. Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=.widget_dossiers_pre_instruction Vous n'avez aucun dossier d'instruction à qualifier dont la date limite de notification du délai au pétitionnaire arrive bientôt à échéance. &{args_petitionnaire_alert_pre_instruction2} = Create Dictionary ... particulier_nom=045TESTDELAIPREINSTRUCTIONNOM2 ... particulier_prenom=045TESTDELAIPREINSTRUCTIONPRENOM2 ... om_collectivite=TESTNOTIFICATIONDELAI &{args_demande_alert_pre_instruction2} = Create Dictionary ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes ... date_demande=${date_di} ... demande_type=Dépôt Initial ... om_collectivite=TESTNOTIFICATIONDELAI ${di_alert_pre_instruction2} = Ajouter la demande par WS ${args_demande_alert_pre_instruction2} ${args_petitionnaire_alert_pre_instruction2} Depuis la page d'accueil delai_pre_inst delai_pre_inst Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction2} Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction2} # On clique sur Voir + pour vérifier que les dossiers sont présents Click Element css=.widget_dossiers_pre_instruction .widget-footer a Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai) Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction} Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1} Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction2} # On met un filtre de division Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=division dossiers_pre_instruction #On vérifie que seulement les dossier de la division de l'utilisateur sont présentes Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=#dossier_dossiers_pre_instruction_0 ${di_alert_pre_instruction} Element Should Contain css=#dossier_dossiers_pre_instruction_1 ${di_alert_pre_instruction1} Page Should Not Contain ${di_alert_pre_instruction2} # De même dans Voir + Click Element css=.widget_dossiers_pre_instruction .widget-footer a Le titre de la page doit être Instruction > Dossiers À Qualifier (limite De La Notification Du Délai) Element Should Not Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction2} Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction} Element Should Contain css=#tab-dossiers_pre_instruction ${di_alert_pre_instruction1} # Test l'affichage du widget avec un nombre plutôt qu'une liste Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=division\naffichage=nombre dossiers_pre_instruction Depuis la page d'accueil delai_pre_inst_polycomm delai_pre_inst_polycomm Element Should Contain css=.widget_dossiers_pre_instruction span.bg-info 2 # Test du filtrage par instructeur secondaire Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget filtre=instructeur_secondaire\naffichage=nombre dossiers_pre_instruction Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Element Should Contain css=.widget_dossiers_pre_instruction span.bg-info 3 Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ${EMPTY} dossiers_pre_instruction TNR Vérifier que la pagination fonctionne pour le widget "Derniers dossiers déposés" [Documentation] Suite à un bug concernant la pagination du listing du widget "Derniers dossiers déposés" ... on vérifie que cette pagination fonctionne correctement # On crée une collectivité, ses divisions et ses instructeurs # pour ne pas perturber ni être perturbé par les autres tests. # Depuis la page d'accueil admin admin # Ajouter la collectivité depuis le menu DDD mono Ajouter la direction depuis le menu DDD DDD null Chef DDD null null DDD Ajouter la division depuis le menu SB11 subdivision SB11 null ... Chef DDD null null DDD Ajouter l'utilisateur Poter Pun nospam@openmairie.org ppun ppun INSTRUCTEUR DDD Ajouter l'instructeur depuis le menu Poter Pun subdivision SB11 instructeur Poter Pun &{args_affectation} = Create Dictionary ... instructeur=Poter Pun (SB11) ... om_collectivite=DDD ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes Ajouter l'affectation depuis le menu ${args_affectation} # On ajoute le droit au profil instructeur Depuis la page d'accueil admin admin Ajouter le droit depuis le menu si il n'existe pas derniers_dossiers_deposes INSTRUCTEUR # On paramètre le widget : # DATD: PCI et PD # Filtre division # Intervalle de date de dépôt: 15 jours # type de dépôt: dépôt électronique Depuis le contexte du widget derniers_dossiers_deposes Click On Form Portlet Action om_widget modifier Input Text arguments ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15 Click On Submit Button # On ajoute le widget au tableau de bord des instructeurs Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil INSTRUCTEUR Input Text bloc C1 Select From List By Label om_widget Les derniers dossiers déposés Click On Submit Button # On vérifie que le widget n'indique aucun dossier déposé Depuis la page d'accueil ppun ppun Element Should Contain css=.widget_derniers_dossiers_deposes .widget-content ... Aucun dossier déposé dernièrement. # On doit ajouter 16 dossiers afin de pouvoir utiliser la page suivant dans le listing de "Voir +" # du widget. &{args_petitionnaire} = Create Dictionary ... particulier_nom=Applefield ... particulier_prenom=Nadia ... om_collectivite=DDD &{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=DDD ... depot_electronique=true # TODO : faire une boucle pour ajouter les demandes ${di_01} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_02} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_03} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_04} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_05} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_06} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_07} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_08} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_09} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_10} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_11} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_12} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_13} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_14} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_15} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${di_16} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil ppun ppun # On accède au "Voir +" Click Element css=.widget_derniers_dossiers_deposes .widget-footer a Wait Until Page Contains Element css=.pagination-next # On change de page Click Element css=.pagination-next Wait Until Element Contains css=div.pagination-nb 16 - # On doit trouver le dernier dossier ajouté Element Should Contain css=td.col-3 a.lienTable ${di_16} #Supprimer le droit ajouté en début de test pour revenir en condition initiale Depuis la page d'accueil admin admin Depuis le listing des droits Use Simple Search libellé derniers_dossiers_deposes Select From List By Label name=selectioncol Tous Click Element css=button#search-submit Wait Until Element Is Visible css=table.tab-tab Click On Link INSTRUCTEUR Click On Form Portlet Action om_droit supprimer Click On Submit Button TNR Vérifier que les widget de recherche de dossier fonctionne si le nom du dossier a une minuscule [Documentation] Suite à un bug concernant les widget de recherche de dossier ... on vérifie que cette recherche fonctionne correctement Depuis la page d'accueil admin admin # On ajoute le widget au tableau de bord des admin Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL Input Text bloc C1 Select From List By Label om_widget Recherche accès direct Click On Submit Button # Paramètre l'appli pour pouvoir choisir le nom du dossier &{param_values} = Create Dictionary ... libelle=option_dossier_saisie_numero ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} # On ajoute deux dossier contenant des minuscules dans leur nom &{args_petitionnaire} = Create Dictionary ... particulier_nom=Applefield ... particulier_prenom=Nadia ... om_collectivite=agglo &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes ... om_collectivite=agglo Ajouter la nouvelle demande depuis le menu sans validation du formulaire ${args_demande} ${args_petitionnaire} # Les champs du numéro de dossier devraient être présent mais desactivées. Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#num_doss_sequence[disabled="disabled"] # Activer le remplissage manuel du numéro de dossier pour la séquence et la division Click Element css=#num_doss_manuel Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Be Visible css=#num_doss_sequence[disabled="disabled"] # Saisie du numéro de dossier avec une lettre en minuscule Wait Until Element Is Visible css=#num_doss_division Input Text css=#num_doss_division a Validation du formulaire de la demande # On récupère le libelle du dossier d'instruction ${libelle_di} = Get Text new_di # On effectue une recherche à l'aide du widget Go To Dashboard via Link Input Text css=#widget_recherche_dossier_form input#dossier ${libelle_di} Click Element css=#widget_recherche_dossier_form input.om-button Page should not contain Droit insuffisants Element Should Contain css=#dossier_libelle ${libelle_di} Reset Params - TNR Vérifier que les widget de recherche de dossier fonctionne si le nom du dossier a une minuscule #Supprime le paramètre de saisie du numéro des dossiers &{param_values} = Create Dictionary ... delete=true ... libelle=option_dossier_saisie_numero ... om_collectivite=agglo Gerer le paramètre par WS ${param_values} TNR vérifier que le listing du widget derniers dossiers déposés n'affiche pas de doublon # On crée une collectivité, ses divisions et ses instructeurs # pour ne pas perturber ni être perturbé par les autres tests. # Depuis la page d'accueil admin admin # Ajouter la collectivité depuis le menu EEE mono Ajouter la direction depuis le menu EEE EEE null Chef EEE null null EEE Ajouter la division depuis le menu SB12 subdivision SB12 null ... Chef EEE null null EEE Ajouter l'utilisateur Poter Pin nospam@openmairie.org ppin ppin INSTRUCTEUR EEE Ajouter l'instructeur depuis le menu Poter Pin subdivision SB12 instructeur Poter Pin &{args_affectation} = Create Dictionary ... instructeur=Poter Pin (SB12) ... om_collectivite=EEE ... dossier_autorisation_type_detaille=PCI - Permis de construire pour une maison individuelle et / ou ses annexes Ajouter l'affectation depuis le menu ${args_affectation} # On ajoute le droit au profil instructeur Depuis la page d'accueil admin admin Ajouter le droit depuis le menu si il n'existe pas derniers_dossiers_deposes INSTRUCTEUR Depuis le contexte du widget derniers_dossiers_deposes Click On Form Portlet Action om_widget modifier Input Text arguments ... codes_datd=PCI;PD\nfiltre=division\nfiltre_depot=depot_electronique\nnombre_de_jours=15 Click On Submit Button # On ajoute le widget au tableau de bord des instructeurs Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&action=0 Select From List By Label om_profil INSTRUCTEUR Input Text bloc C1 Select From List By Label om_widget Les derniers dossiers déposés Click On Submit Button &{args_petitionnaire} = Create Dictionary ... particulier_nom=045WIDGETDOUBLONNOM ... particulier_prenom=045WIDGETDOUBLONPRENOM ... om_collectivite=EEE &{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=EEE ... depot_electronique=true ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter un message dans le dossier d'instruction ${di} Test doublon message 1 Ajouter un message dans le dossier d'instruction ${di} Test doublon message 2 Depuis la page d'accueil ppin ppin # On accède au "Voir +" Click Element css=.widget_derniers_dossiers_deposes .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=.pagination-nb .pagination-text 1 - 1 enregistrement(s) sur 1 #Supprimer le droit ajouté en début de test pour revenir en condition initiale Depuis la page d'accueil admin admin Supprimer le droit depuis le contexte du profil derniers_dossiers_deposes INSTRUCTEUR