*** Settings *** Documentation Test du Widget "Suivi d'instruction paramétrable" filtres, parametres de colonnes # 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${/} Setup context et paramétrage - 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 Set Suite Variable ${instructeur_secondaire_login} # 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} Set Suite Variable ${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} Set Suite Variable ${args_signataire_case_ok_suivi_instr} # 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} Set Suite Variable ${signataire_id} Set Suite Variable &{args_signataire_case_canceled_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 Set Suite Variable ${om_widget} ${om_widget_libelle} = Set Variable 046WidgetSuivitINSTRUCTIONPARAMETRABLE Set Suite Variable ${om_widget_libelle} &{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} Set Suite Variable ${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. Présence de résultats - Widget "Suivi d'instruction paramétrable" # 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} Set Suite variable ${di_case_ok_1_suiv_instr} 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) ${case_ok_2_suiv_instr_NOM} = Set Variable TEST046WidgetSuivitINSTRUCTIONPETNOM8_2 Set Suite Variable ${case_ok_2_suiv_instr_NOM} ${case_ok_2_suiv_instr_PRENOM} = Set Variable TEST046WidgetSuivitINSTRUCTIONPETPRENOM8_2 Set Suite Variable ${case_ok_2_suiv_instr_PRENOM} &{args_petitionnaire} = Create Dictionary ... particulier_nom=${case_ok_2_suiv_instr_NOM} ... particulier_prenom=${case_ok_2_suiv_instr_PRENOM} ... 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} Set Suite Variable ${di_case_ok_2_suiv_instr} 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 - Widget "Suivi d'instruction paramétrable" 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} # Ne lance pas le test précédent à fail Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' ... FAIL Le step précédent ayant échoué, il n'est pas utile d'effectuer les tests suivants. # 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} On vérifie que le paramétrage avec plusieurs statut fonctionne correctement # En tant qu'admin Depuis la page d'accueil admin admin &{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} Set Suite Variable ${di_case_canceled_suiv_instr} 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} On vérifie le bon fonctionnement du filtre instructeur ou division 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} Set Suite variable ${di_case_canceled_2_suiv_instr} # 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} On vérifie qu'il n'y a pas de doublon dans le listing du "Voir +" du widget 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} Set Suite variable ${di_3_suiv_instr} 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} # Ne lance pas le test précédent à fail Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' ... FAIL Le step précédent ayant échoué, il n'est pas utile d'effectuer les tests suivants. 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} # Ne lance pas le test précédent à fail Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' ... FAIL Le step précédent ayant échoué, il n'est pas utile d'effectuer les tests suivants. 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} # Ne lance pas le test précédent à fail Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' ... FAIL Le step précédent ayant échoué, il n'est pas utile d'effectuer les tests suivants. 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} Set Suite Variable ${di_6_suiv_instr} 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" [Documentation] 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 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} Set Suite variable ${di_sans_alerte_5_jour} 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} Test de la modification d'affichage des colonnes : Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=Suivi de signature\nevenement_id=30\nnb_max_resultat=20\naffichage_colonne=instruction;signataire;date_limite;statut_signature ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} Instruction Element Should Contain css=.widget_${om_widget} signataire Element Should Contain css=.widget_${om_widget} ${args_signataire_case_canceled_suivi_instr.prenom} ${args_signataire_case_canceled_suivi_instr.nom} Filtre Type de contrôle de légalité : Papier Depuis la page d'accueil admin admin Rendre les types de dossier d'autorisation détaillés utilisés transmissible à Plat'AU PCI Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=type_cl:Papier\nnb_max_resultat=20\ntype_cl=Papier ... ${om_widget} ${6_type_clNOM} = Set Variable TEST046FILTREtype_clNOM ${6_type_clPRENOM} = Set Variable TEST046FILTREtype_clPRENOM &{args_petitionnaire} = Create Dictionary ... particulier_nom=${6_type_clNOM} ... particulier_prenom=${6_type_clPRENOM} ... localite=LIBRECOM ... 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 ... terrain_adresse_voie_numero=46 ... terrain_adresse_voie=rue des widgets ... terrain_adresse_lieu_dit=Tout pré des widgets ... terrain_adresse_code_postal=13333 ... terrain_adresse_localite=LIBRECOM ... om_collectivite=LIBRECOM_WIDGET_SUIVI_INSTR ${di_6_controle_legalite} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Set Suite variable ${di_6_controle_legalite} Ajouter une instruction au DI et la finaliser ${di_6_controle_legalite} accepter un dossier avec reserve &{args_date} = Create Dictionary ... date_retour_signature=${date_ddmmyyyy} ... date_envoi_controle_legalite=${date_ddmmyyyy} Modifier le suivi des dates ${di_6_controle_legalite} accepter un dossier avec reserve ${args_date} &{args_date} = Create Dictionary ... date_retour_signature=${date_ddmmyyyy} ... date_envoi_controle_legalite=${date_ddmmyyyy} Modifier le suivi des dates ${di_6_suiv_instr} accepter un dossier avec reserve ${args_date} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_6_controle_legalite} Element Should Contain css=.widget_${om_widget} ${di_6_suiv_instr} Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} Depuis la page d'accueil admin admin Filtre Type de contrôle de légalité : PlatAU Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=type_cl:Plat'AU\nnb_max_resultat=20\ntype_cl=Plat'AU ... ${om_widget} Depuis l'instruction du dossier d'instruction ${di_6_controle_legalite} accepter un dossier avec reserve Click On SubForm Portlet Action instruction definaliser # Vérification qu'il n'y a aucune erreur La page ne doit pas contenir d'erreur Supprimer l'instruction ${di_6_controle_legalite} accepter un dossier avec reserve #Modification de l'événement pour transmission au CL par Plat'AU &{args_evenement} = Create Dictionary ... libelle=accepter un dossier avec reserve ... envoi_cl_platau=true Modifier l'événement ${args_evenement} &{donnees_techniques_values} = Create Dictionary ... enga_decla_lieu=TEST046_widgets ... enga_decla_date=${date_ddmmyyyy} Saisir les données techniques du DI ${di_6_controle_legalite} ${donnees_techniques_values} Ajouter une instruction au DI et la finaliser ${di_6_controle_legalite} accepter un dossier avec reserve Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite &{args_date} = Create Dictionary ... date_retour_signature=${date_ddmmyyyy} Modifier le suivi des dates ${di_6_controle_legalite} accepter un dossier avec reserve ${args_date} # déclenchement de l'envoi par plat'au Element Should Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite Click On SubForm Portlet Action instruction envoyer_au_controle_de_legalite modale Cliquer sur le bouton de la fenêtre modale Confirmer Valid Message Should Contain In Subform Votre demande de transfert au contrôle de légalité à bien été prise en compte. Element Should Not Be Visible css=#action-sousform-instruction-envoyer_au_controle_de_legalite ## Ici il faut probablement changer l'état de la task et faire le traitement de la valeur instruction.envoye_cl_platau # qui ne change pas d'état... Depuis la page d'accueil wsui wsui # l'envoi papier ne doit pas apparaitre Element Should Not Contain css=.widget_${om_widget} ${di_6_suiv_instr} # le non envoyée ne doit pas apparaitre Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} # L'envoi par Plat'AU doit apparaitre Element Should Contain css=.widget_${om_widget} ${di_6_controle_legalite} Filtre Envoyé au contrôle de légalité : oui / non ## oui Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=Suivi de signature\nevenement_id=30\nnb_max_resultat=20\nenvoi_cl=true ... ${om_widget} Depuis la page d'accueil wsui wsui # Envoyé au controle de l'égalité par papier Element Should Contain css=.widget_${om_widget} ${di_6_suiv_instr} # Envoyé au controle de l'égalité par PlatAU Element Should Contain css=.widget_${om_widget} ${di_6_controle_legalite} # non envoyé au controle Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} ## non Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=Suivi de signature\nnb_max_resultat=20\nenvoi_cl=false ... ${om_widget} Depuis la page d'accueil wsui wsui # Envoyé au controle de l'égalité par PlatAU Element Should Not Contain css=.widget_${om_widget} ${di_6_controle_legalite} # Envoyé au controle de l'égalité par papier Element Should Not Contain css=.widget_${om_widget} ${di_6_suiv_instr} # non envoyé au controle Element Should Contain css=.widget_${om_widget} ${di_case_ok_2_suiv_instr} Element Should Contain css=.widget_${om_widget} ${di_3_suiv_instr} Filtre combinées Depuis la page d'accueil admin admin Insérer les paramètres suivants dans le widget ... affichage=liste\nfiltre=instructeur\ntri=-6\nmessage_help=Suivi de signature\nevenement_id=81\nnb_max_resultat=20\nenvoi_cl=true\ncombinaison_criteres=evenement_id|envoi_cl ... ${om_widget} Depuis la page d'accueil wsui wsui Element Should Contain css=.widget_${om_widget} ${di_6_controle_legalite} Element Should Contain css=.widget_${om_widget} ${di_6_suiv_instr} Element Should Contain css=.widget_${om_widget} ${di_case_ok_2_suiv_instr} Element Should Not Contain css=.widget_${om_widget} ${di_3_suiv_instr} Params Reset - Filtre Type de contrôle de légalité : Plat'AU / papier Depuis la page d'accueil admin admin &{args_type_DA_detaille_modification} = Create Dictionary ... dossier_platau=false Modifier type de dossier d'autorisation détaillé PCI ${args_type_DA_detaille_modification} # Modification de l'événement pour transmission au CL par Plat'AU &{args_evenement} = Create Dictionary ... libelle=accepter un dossier avec reserve ... envoi_cl_platau=false Modifier l'événement ${args_evenement} Suppression du fichier de configuration du connecteur parapheur de test Remove File ..${/}dyn${/}electronicsignature.inc.php