*** Settings *** Documentation # On inclut les mots-clefs Resource resources/resources.robot # On ouvre et on ferme le navigateur respectivement au début et à la fin # du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Test Cases *** Constitution du jeu de données # Copie le fichier de configuration pour le connecteur test du parapheur Copy File ..${/}tests${/}binary_files${/}electronicsignature_test${/}electronicsignature.inc.php ..${/}dyn${/} Widget "Suivi d'instruction paramétrable" [Documentation] Permet de vérifier que le widget de suivi d'instruction paramétrable ... fonctionne correctement # instructeur qui sera affecté comme instructeur secondaire des dossiers ${instructeur_secondaire_login} = Set Variable instructeur_secondaire_sip # isole le contexte du test (création d'une collectivité) &{librecom_values} = Create Dictionary ... om_collectivite_libelle=LIBRECOM_WIDGET_SUIVI_INSTR ... departement=170 ... commune=170 ... insee=17170 ... direction_code=JA ... direction_libelle=Direction de LIBRECOM_WIDGET_SUIVI_INSTR ... direction_chef=Chef ... division_code=JA ... division_libelle=Division JA ... division_chef=Chef ... guichet_om_utilisateur_nom=Suivi Instr ... guichet_om_utilisateur_email=sinstr@openads-test.fr ... guichet_om_utilisateur_login=sinstr ... guichet_om_utilisateur_pwd=sinstr ... instr_om_utilisateur_nom=Widget Suivi ... instr_om_utilisateur_email=wsui@openads-test.fr ... instr_om_utilisateur_login=wsui ... instr_om_utilisateur_pwd=wsui ... 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} ... code_entite=LBCOM_120 ... acteur=LIBRECOM-ACT-120 Isolation d'un contexte ${librecom_values} # Ajout d'affectation de l'instructeur du contexte pour le type détaillé 'Déclaration préalable' &{args_affectation} = Create Dictionary ... instructeur=${librecom_values.instr_om_utilisateur_nom} (${librecom_values.division_code}) ... om_collectivite=${librecom_values.om_collectivite_libelle} ... dossier_autorisation_type_detaille=DP - Déclaration préalable Ajouter l'affectation depuis le menu ${args_affectation} Depuis le contexte de l'instructeur Widget Suivi ${id_instructeur} = Get Text css=#instructeur Depuis le contexte de l'instructeur ${instructeur_secondaire_login} ${id_instructeur_secondaire} = Get Text css=#instructeur Depuis la page d'accueil admin admin # On utilise un email permettant d'avoir un état in_progress après la récupération du statut &{args_signataire_case_ok_suivi_instr} = Create Dictionary ... civilite=Monsieur ... nom=TEST046WidgetSuivitINSTRUCTION ... prenom=TEST046WidgetSuivitINSTRUCTIONPRENOM ... qualite=TEST046WidgetSuivitINSTRUCTIONQUALITE ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR ... email=signataire-cptsign-2@test.test Ajouter le signataire depuis le menu ${args_signataire_case_ok_suivi_instr} # Ajout d'arguments en majuscules pour tester qu'ils sont retraités en minuscules (ncodes_datd=PCI;dp) ${om_widget} = Set Variable suivi_instruction_parametrable ${om_widget_libelle} = Set Variable 046WidgetSuivitINSTRUCTIONPARAMETRABLE &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=${om_widget} ... arguments=statut_signature=in_progress\naffichage=liste\ntri=-6\nmessage_help=plop\ncodes_datd=PCI;Dp\nnb_max_resultat=20 Ajouter le widget depuis l'URL ${args_om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=INSTRUCTEUR ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} # On vérifie lorsqu'il n'y a pas de résultats Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} .widget-content ... Il n'y a pas de documents pour le moment. # En tant qu'admin Depuis la page d'accueil admin admin # On ajoute un dossier et on met une instruction au statut de signature "in_progress" &{args_petitionnaire} = Create Dictionary ... particulier_nom=046WidgetSuivitINSTRUCTIONNOM8 ... particulier_prenom=TEST046WidgetSuivitINSTRUCTIONPRENOM8 ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_case_ok_1_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_1_suiv_instr} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_suivi_instr.prenom} ${args_signataire_case_ok_suivi_instr.nom} ${id_instruction} = Get Value css=.form-content input#instruction Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Rien à faire sur l'instruction ${id_instruction} # Ajout d'un dossier de type détaillé différent de PCI : DP (Déclaration préalable) &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046WidgetSuivitINSTRUCTIONPETNOM8_2 ... particulier_prenom=TEST046WidgetSuivitINSTRUCTIONPETPRENOM8_2 ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{args_demande} = Create Dictionary ... dossier_autorisation_type_detaille=Déclaration préalable ... demande_type=Dépôt Initial ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR ${di_case_ok_2_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_ok_2_suiv_instr} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_ok_suivi_instr.prenom} ${args_signataire_case_ok_suivi_instr.nom} ${id_instruction} = Get Value css=.form-content input#instruction Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 Rien à faire sur l'instruction ${id_instruction} # On vérifie qu'il y a bien le résultat Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_ok_1_suiv_instr} # On vérifie que les 2 entrées (Permis de construire pour une maison individuelle et / ou ses annexes # et Déclaration préalable) ont bien été créées dans le widget malgré leurs majuscules Element Should Contain css=.widget_${om_widget} .widget-content-wrapper .widget-content ${di_case_ok_1_suiv_instr} Element Should Contain css=.widget_${om_widget} .widget-content-wrapper .widget-content ${di_case_ok_2_suiv_instr} # L'instructeur secondaire ne dois pas avoir de résultat Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Element Should Contain css=.widget_${om_widget} .widget-content ... Il n'y a pas de documents pour le moment. # Test le filtre sur l'instructeur secondaire Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... statut_signature=in_progress;canceled\naffichage=liste\ntri=-6\nmessage_help=plop\nfiltre=instructeur_secondaire\nnb_max_resultat=20 ... ${om_widget} # L'instructeur ne dois pas avoir de résultat Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} .widget-content ... Il n'y a pas de documents pour le moment. # L'instructeur secondaire a bien un résultat Depuis la page d'accueil ${instructeur_secondaire_login} ${instructeur_secondaire_login} Element Should Contain css=.widget_${om_widget} ${di_case_ok_1_suiv_instr} # En tant qu'admin Depuis la page d'accueil admin admin # On ajout un dossier et on met une instruction au statut "canceled" &{args_signataire_case_canceled_suivi_instr} = Create Dictionary ... civilite=Monsieur ... nom=TEST046WidgetSuivitINSTRUCTIONNOMSUIVINSTRCANCELED ... prenom=TEST046WidgetSuivitINSTRUCTIONPRENOMSUIVINSTRCANCELED ... qualite=TEST046WidgetSuivitINSTRUCTIONQUALITESUIVINSTRCANCELED ... signature=X ... defaut=false ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR ... email=case3@test.test ${signataire_id} = Ajouter le signataire depuis le menu ${args_signataire_case_canceled_suivi_instr} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046WidgetSuivitINSTRUCTIONPETNOM9 ... particulier_prenom=TEST046WidgetSuivitINSTRUCTIONPETPRENOM9 ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_case_canceled_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_case_canceled_suiv_instr} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} ${id_instruction} = Get Value css=.form-content input#instruction Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour # On vérifie que le paramétrage avec plusieurs statut fonctionne correctement Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... statut_signature=in_progress;canceled\naffichage=liste\ntri=-6\nmessage_help=plop\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_ok_1_suiv_instr} Element Should Contain css=.widget_${om_widget} ${di_case_canceled_suiv_instr} Depuis la page d'accueil admin admin ${arg_instr} = Create Dictionary ... instr_om_utilisateur_nom=Suivi Instr ... instr_om_utilisateur_email=sinstr@openads-test.fr ... instr_om_utilisateur_login=sinstr ... instr_om_utilisateur_pwd=sinstr ... division_libelle=Division JA Ajouter l'instructeur depuis le menu ${arg_instr.instr_om_utilisateur_nom} ${arg_instr.division_libelle} instructeur ${arg_instr.instr_om_utilisateur_nom} # On vérifie le bon fonctionnement du filtre instructeur ou division &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046WidgetSuivitINSTRUCTIONPETNOM10 ... particulier_prenom=TEST046WidgetSuivitINSTRUCTIONPETPRENOM10 ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_case_canceled_2_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Permet d'afficher le select de la division sans avoir le nom de la division # derrière celui de l'instructeur &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR Gerer le paramètre par WS ${param_division} &{modifications} = Create Dictionary ... instructeur=Suivi Instr ... division=Division JA Modifier le dossier d'instruction ${di_case_canceled_2_suiv_instr} ${modifications} # Réinitialisation des paramètres &{param_division} = Create Dictionary ... libelle=option_afficher_division ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} &{param_args} = Create Dictionary ... delete=true ... libelle=option_afficher_division ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR Gerer le paramètre par WS ${param_args} Ajouter une instruction au DI et la finaliser ${di_case_canceled_2_suiv_instr} accepter un dossier sans réserve signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} ${id_instruction} = Get Value css=.form-content input#instruction Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... statut_signature=canceled\naffichage=liste\nfiltre=division\ntri=-6\nmessage_help=plop ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_canceled_suiv_instr} Element Should Contain css=.widget_${om_widget} ${di_case_canceled_2_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... statut_signature=canceled\naffichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_canceled_suiv_instr} Element Should Not Contain css=.widget_${om_widget} ${di_case_canceled_2_suiv_instr} Depuis la page d'accueil admin admin # On vérifie qu'il n'y a pas de doublon dans le listing du "Voir +" du widget Ajouter une instruction au DI et la finaliser ${di_case_canceled_suiv_instr} affichage_obligatoire signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} ${id_instruction} = Get Value css=.form-content input#instruction Click On SubForm Portlet Action instruction envoyer_a_signature modale Cliquer sur le bouton de la fenêtre modale Confirmer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform Le document a été envoyé pour signature dans le parapheur. Portlet Action Should Not Be In SubForm instruction envoyer_a_signature ${json} = Set Variable {"module":"update_parapheur_datas"} Vérifier le code retour du web service et vérifier que son message contient Post maintenance ${json} 200 ${id_instruction} a bien été mise à jour Depuis la page d'accueil wsui wsui Click Link css=.widget_${om_widget} .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.pageDescription plop Element Should Contain css=tr.odd ${di_case_canceled_suiv_instr} Element Should Not Be Visible css=tr.even # On vérifie qu'il n'y a pas d'erreur de bdd lors du tri sur une colonne Click Element css=.col-6 Wait Until Element Is Visible css=tr.odd La page ne doit pas contenir d'erreur # On vérifie que le retour vers le listing à partir d'un dossier sélectionné fonctionne correctement Click Element css=.consult-16 Click On Back Button Wait Until Element Is Visible css=.pageDescription Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.pageDescription plop # Filtre Identifiant d'évènement (peut-être multi-valué) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nevenement_id=30\nnb_max_resultat=20 ... ${om_widget} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046FILTREIDNOM ... particulier_prenom=TEST046FILTREIDPRENOM ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_3_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_3_suiv_instr} accepter un dossier avec reserve signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Filtre Type d’instruction (peut-être multi-valué) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nevenement_type=arrete\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nevenement_type=arrete;affichage\nnb_max_resultat=20 ... ${om_widget} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046FILTREINSTRTYPENOM ... particulier_prenom=TEST046FILTREINSTRTYPEPRENOM ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_4_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} ${date_event_db} = Subtract Time From Date ${DATE_FORMAT_YYYY-MM-DD} 3 days result_format=%Y-%m-%d ${date_evenement} = Convert Date ${date_event_db} result_format=%d/%m/%Y Ajouter une instruction au DI et la finaliser ${di_4_suiv_instr} affichage_obligatoire false ${date_evenement} signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_4_suiv_instr} # Filtre Instruction finalisée : oui / non / (pas de filtre si non remplit) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\ninstruction_finalisee=true ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Depuis le contexte du widget ${om_widget_libelle} Click On Form Portlet Action om_widget modifier Input Text arguments affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\ninstruction_finalisee=false\nnb_max_resultat=20 Click On Submit Button Depuis la page d'accueil wsui wsui Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Filtre Instruction notifiée : oui / non / (pas de filtre si non remplit) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\ninstruction_notifiee=false\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\ninstruction_notifiee=true\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Filtre Exclusion Identifiant d'évènement (peut-être multi-valué) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nexclure_evenement_id=30\nnb_max_resultat=20 ... ${om_widget} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046FILTREIDNOM ... particulier_prenom=TEST046FILTREIDPRENOM ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_5_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_5_suiv_instr} accepter un dossier avec reserve signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} Depuis la page d'accueil wsui wsui Element Should Not Contain css=.widget_${om_widget} ${di_5_suiv_instr} # Filtre Statut du di Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nstatut_dossier=cloture\nnb_max_resultat=20 ... ${om_widget} &{args_petitionnaire} = Create Dictionary ... particulier_nom=TEST046FILTREIDNOM ... particulier_prenom=TEST046FILTREIDPRENOM ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ${di_6_suiv_instr} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Ajouter une instruction au DI et la finaliser ${di_6_suiv_instr} accepter un dossier avec reserve signataire_arrete=${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_6_suiv_instr} # Filtre Signataire : filtre selon le champ 'description' du signataire. Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nsignataire_description=Division H\nnb_max_resultat=20 ... ${om_widget} &{args_signataire_case_canceled_suivi_instr_modif} = Create Dictionary ... description=Division H Modifier signataire ${signataire_id} ${args_signataire_case_canceled_suivi_instr_modif} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Filtre État : filtre selon l’état du dossier (peut-être multi-valué) Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\netat=accepter\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\netat=notifier\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Filtre Nombre de jours avant la date limite d'instruction : ce filtre ne dois pas prendre en compte les dates limites d’incomplétudes. Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_avant_date_limite=3\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_avant_date_limite=150\nnb_max_resultat=20 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} # Vérifications du bon fonctionnement de la gestion de l'icone "alerte_5_jours" # du widget suivi instruction paramétrable # On ajoute 2 dossiers, l'un affichant l'icône, l'autre non ${om_widget} = Set Variable suivi_instruction_parametrable Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_avant_date_limite=150\nnb_max_resultat=20\naffichage_colonne=alerte_5_jours ... ${om_widget} ${current_date} = Get Current Date result_format=%d/%m/%Y # Affichage icone alerte 5 jours # Date du jour moins un mois et 25 jours -> alerte 5 jours affiché ${add5days} = Add Time To Date ${current_date} 5 days %d/%m/%Y True %d/%m/%Y ${retranche2month25} = Ajouter ou supprimer des mois à une date -2 ${add5days} # Ajout dossier d'instruction qui affichera l'icône &{args_petitionnaire} = Create Dictionary ... particulier_nom=dors ... particulier_prenom=Jean ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ... date_demande=${retranche2month25} ... depot_electronique=true ${di_avec_alerte_5_jour} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # Non affichage icone alerte 5 jours # Date du jour moins un mois et 24 jours -> alerte 5 jours absente ${add4days} = Add Time To Date ${current_date} 6 days %d/%m/%Y True %d/%m/%Y ${retranche2month26} = Ajouter ou supprimer des mois à une date -2 ${add4days} # Ajout dossier d'instruction qui n'affichera pas l'icône &{args_petitionnaire} = Create Dictionary ... particulier_nom=cercle ... particulier_prenom=Jean ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR &{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_WIDGET_SUIVI_INSTR ... date_demande=${retranche2month26} ... depot_electronique=true ${di_sans_alerte_5_jour} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_avec_alerte_5_jour} Element Should Contain css=.widget_${om_widget} ${di_sans_alerte_5_jour} # Vérification que l'icône alerte_5_jours est bien affiché pour le dossier correspondant ${icone_present}= Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Get Element Attribute xpath=//a[normalize-space(text()) = '${di_avec_alerte_5_jour}']/ancestor::tr/td[contains(@class, 'col-10')]/a/img src should be true "${icone_present}" == "http://localhost/openads/app/img/enjeu-urba-16x16.png" # Vérification que l'icône alerte_5_jours n'est pas affiché pour le dossier correspondant ${icone_absent}= Get Text xpath=//a[normalize-space(text()) = '${di_sans_alerte_5_jour}']/ancestor::tr/td[contains(@class, 'col-10')]/a should be true "${icone_absent}" == "" ## Test d'utilisation de l'argument 'tri_tab_widget' Depuis la page d'accueil admin admin # Ajout des colonnes 'instruction' et 'signataire' et ajout de l'argument 'tri_tab_widget' en 'instruction' Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_avant_date_limite=150\nnb_max_resultat=20\naffichage_colonne=signataire;instruction\ntri_tab_widget=instruction ... ${om_widget} # Vérification de l'ordre du premier élément dans la colonne 'instruction', avec le tri appliqué Depuis la page d'accueil wsui wsui Element Should Contain css=div.widget-content table.tab-tab tr.tab-data td.col-3 a accepter un dossier avec reserve ## Test du tri tri_tab_widget sur le listing "Voir+", ce tri ne devrais pas changer le listing Click Link css=.widget_${om_widget} .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=tr.tab-data td.col-3 ${di_case_ok_1_suiv_instr} # Modification de l'argument 'tri_tab_widget' en '-instruction' : tri inverse attendu Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_avant_date_limite=150\nnb_max_resultat=20\naffichage_colonne=signataire;instruction\ntri_tab_widget=-instruction ... ${om_widget} # Vérification de l'ordre du premier élément dans la colonne 'instruction', avec le tri inverse appliqué Depuis la page d'accueil wsui wsui Element Should Contain css=div.widget-content table.tab-tab tr.tab-data td.col-3 a affichage_obligatoire ## Test du tri tri_tab_widget sur le listing "Voir+", ce tri ne devrais pas changer le listing Click Link css=.widget_${om_widget} .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=tr.tab-data td.col-3 ${di_case_ok_1_suiv_instr} # Filtre Nombre de jour maximum après la date d'évènement instruction : # Depuis la page d'accueil admin admin # Insérer les paramètres suivants dans le widget # ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_max_apres_date_evenement=3 # ... ${om_widget} # Depuis la page d'accueil wsui wsui # Element Should Contain css=.widget_${om_widget} ${di_4_suiv_instr} # Depuis la page d'accueil admin admin # Insérer les paramètres suivants dans le widget # ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=plop\nnb_jours_max_apres_date_evenement=5 # ... ${om_widget} # Depuis la page d'accueil wsui wsui # Element Should Not Contain css=.widget_${om_widget} ${di_4_suiv_instr} # Test du Tri sur Colonne applique au widget et a l'onglet voir + : Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\nmessage_help=plop\ntri=3 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_ok_2_suiv_instr} Click Link css=.widget_${om_widget} .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=tr.tab-data td.col-3 ${di_case_ok_2_suiv_instr} Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\nmessage_help=plop\ntri=-3 ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_case_ok_2_suiv_instr} Click Link css=.widget_${om_widget} .widget-footer a Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=tr.tab-data td.col-3 ${di_sans_alerte_5_jour} # Filtre Type de contrôle de légalité : Plat'AU / papier # Filtre Envoyé au contrôle de légalité : oui / non Suppression du fichier de configuration du connecteur parapheur de test Remove File ..${/}dyn${/}electronicsignature.inc.php