*** Settings *** Documentation Compteur de signatures # 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${/} Depuis la page d'accueil admin admin # Isolation du contexte &{collectivite_values} = Create Dictionary ... om_collectivite_libelle=Collectivité-CPTSIGN ... departement=018 ... commune=001 ... insee=18001 ... direction_code=G ... direction_libelle=Direction de Collectivité-CPTSIGN ... direction_chef=Chef ... division_code=G ... division_libelle=Division G ... division_chef=Chef ... guichet_om_utilisateur_nom=Jean Roule ... guichet_om_utilisateur_email=jroule@openads-test.fr ... guichet_om_utilisateur_login=jroule ... guichet_om_utilisateur_pwd=jroule ... instr_om_utilisateur_nom=Hector Blumberg ... instr_om_utilisateur_email=hblumberg@openads-test.fr ... instr_om_utilisateur_login=hblumberg ... instr_om_utilisateur_pwd=hblumberg Isolation d'un contexte ${collectivite_values} Set Suite Variable ${collectivite_values} # Ajout des sinataires &{args_signataire_1} = Create Dictionary ... civilite=Monsieur ... nom=Signataire-CPTSIGN-nom-1 ... prenom=Signataire-CPTSIGN-prénom-1 ... qualite=Signataire-CPTSIGN-qualité-1 ... signature=X ... defaut=false ... om_collectivite=Collectivité-CPTSIGN ... email=signataire-cptsign-1@test.test Ajouter le signataire depuis le menu ${args_signataire_1} Set Suite Variable ${args_signataire_1} &{args_signataire_2} = Create Dictionary ... civilite=Monsieur ... nom=Signataire-CPTSIGN-nom-2 ... prenom=Signataire-CPTSIGN-prénom-2 ... qualite=Signataire-CPTSIGN-qualité-2 ... signature=X ... defaut=false ... om_collectivite=Collectivité-CPTSIGN ... email=signataire-cptsign-2@test.test Ajouter le signataire depuis le menu ${args_signataire_2} Set Suite Variable ${args_signataire_2} &{args_signataire_3} = Create Dictionary ... civilite=Monsieur ... nom=Signataire-CPTSIGN-nom-3 ... prenom=Signataire-CPTSIGN-prénom-3 ... qualite=Signataire-CPTSIGN-qualité-3 ... signature=X ... defaut=false ... om_collectivite=Collectivité-CPTSIGN ... email=signataire-cptsign-3@test.test Ajouter le signataire depuis le menu ${args_signataire_3} Set Suite Variable ${args_signataire_3} Ajoute puis modifie un compteur Depuis la page d'accueil admin admin &{args_compteur} = Create Dictionary ... code=testcpt1 ... description=Description de testcpt1 ... unite=kg ... quantite=0 ... quota=100 ... alerte=80 ... om_collectivite=Collectivité-CPTSIGN ... om_validite_debut=02/02/2020 ${compteur_id} = Ajouter compteur avec dates validité ${args_compteur} La page ne doit pas contenir d'erreur Set To Dictionary ${args_compteur} unite=l Modifier compteur avec dates validité ${compteur_id} ${args_compteur} La page ne doit pas contenir d'erreur Vérifie l'incrémentation du compteur de signature lorsqu'un document est signé Depuis la page d'accueil admin admin # ajoute un compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' &{args_compteur} = Create Dictionary ... code=signatures ... description=Nombre de signatures ... quantite=0 ... quota=0 ... om_collectivite=Collectivité-CPTSIGN ... om_validite_debut=02/02/2020 Set Suite Variable ${args_compteur} ${compteur_id} = Ajouter compteur avec dates validité ${args_compteur} La page ne doit pas contenir d'erreur Set Suite Variable ${compteur_id} # ajoute un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=Pétitionaire-CPTSIGN-nom ... particulier_prenom=Pétitionaire-CPTSIGN-prénom ... om_collectivite=Collectivité-CPTSIGN &{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=Collectivité-CPTSIGN ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # ajoute une instruction au dossier associée au signataire 1 Ajouter une instruction au DI et la finaliser ... ${di} accepter un dossier sans réserve ... signataire_arrete=${args_signataire_1.prenom} ${args_signataire_1.nom} # envoie le document (de l'instruction) en signature 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. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction annuler_envoi_en_signature Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_signature[readonly="readonly"] Element Should Be Visible css=#date_retour_signature[readonly="readonly"] ${id_instruction} = Get Value css=.form-content input#instruction # déclenche la réception des documents signés et vérifie que l'instruction a bien été mise à jour ${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 ... L'instruction ${id_instruction} et son document ont bien été mis à jour # vérifie que le document signé a bien été récupéré Depuis l'instruction du dossier d'instruction ${di} ${id_instruction} Form Static Value Should Be css=#date_retour_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature signé Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Form Value Should Contain css=#commentaire_signature Test commentaire document signé. Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain PARAPHEUR CONNECTEUR DE TEST Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain DOCUMENT SIGNÉ Close PDF # constate que le compteur 'signatures' de la collectivité 'Collectivité-CPTSIGN' a été incrémenté Depuis le contexte compteur avec dates validité ${compteur_id} ${compteur_qte} = Get Text css=div.form-content span#quantite Should Be Equal 1 ${compteur_qte} Vérifie la non-incrémentation du compteur de signature lorsqu'un document est en cours de signature Depuis la page d'accueil admin admin # le compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' existe déjà # (ajouté dans le test précédent) # ajoute un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=Pétitionaire-CPTSIGN-nom ... particulier_prenom=Pétitionaire-CPTSIGN-prénom ... om_collectivite=Collectivité-CPTSIGN &{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=Collectivité-CPTSIGN ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # ajoute une instruction au dossier associée au signataire 2 Ajouter une instruction au DI et la finaliser ... ${di} accepter un dossier sans réserve ... signataire_arrete=${args_signataire_2.prenom} ${args_signataire_2.nom} # envoie le document (de l'instruction) en signature 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. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction annuler_envoi_en_signature Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_signature[readonly="readonly"] Element Should Be Visible css=#date_retour_signature[readonly="readonly"] ${id_instruction} = Get Value css=.form-content input#instruction # déclenche la réception des documents signés et vérifie que l'instruction n'a pas été mise à jour ${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 # constate que le compteur 'signatures' de la collectivité 'Collectivité-CPTSIGN' # n'a pas été incrémenté (était égal à 1 suite au test précédent) Depuis le contexte compteur avec dates validité ${compteur_id} ${compteur_qte} = Get Text css=div.form-content span#quantite Should Be Equal 1 ${compteur_qte} Vérifie que la date de validité d'un compteur signature est prise en compte correctement Depuis la page d'accueil admin admin # le compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' existe déjà # (ajouté dans le test précédent) # récupère la valeur actuelle du compteur de signatures pour la collectivité # 'Collectivité-CPTSIGN' ainsi que sa date de dernière mise à jour Depuis le contexte compteur avec dates validité ${compteur_id} ${compteur_qte} = Get Text css=div.form-content span#quantite Should Be Equal 1 ${compteur_qte} # archive le compteur de signature existant Set To Dictionary ${args_compteur} quantite=${compteur_qte} Set To Dictionary ${args_compteur} om_validite_fin=02/02/2021 Modifier compteur avec dates validité ${compteur_id} ${args_compteur} La page ne doit pas contenir d'erreur # ajoute un compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' &{args_compteur_new} = Create Dictionary ... code=signatures ... description=Nombre de signatures ... quantite=0 ... quota=0 ... om_collectivite=Collectivité-CPTSIGN ... om_validite_debut=02/02/2022 Set Suite Variable ${args_compteur_new} ${compteur_id_new} = Ajouter compteur avec dates validité ${args_compteur_new} La page ne doit pas contenir d'erreur Set Suite Variable ${compteur_id_new} # ajoute un dossier &{args_petitionnaire} = Create Dictionary ... particulier_nom=Pétitionaire-CPTSIGN-nom ... particulier_prenom=Pétitionaire-CPTSIGN-prénom ... om_collectivite=Collectivité-CPTSIGN &{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=Collectivité-CPTSIGN ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} # ajoute une instruction au dossier associée au signataire 3 Ajouter une instruction au DI et la finaliser ... ${di} accepter un dossier sans réserve ... signataire_arrete=${args_signataire_3.prenom} ${args_signataire_3.nom} # envoie le document (de l'instruction) en signature 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. Form Static Value Should Be css=#date_envoi_signature ${date_ddmmyyyy} Form Static Value Should Be css=#statut_signature en cours de signature Portlet Action Should Not Be In SubForm instruction envoyer_a_signature Portlet Action Should Not Be In SubForm instruction annuler_envoi_en_signature Click On SubForm Portlet Action instruction modifier_suivi Element Should Be Visible css=#date_envoi_signature[readonly="readonly"] Element Should Be Visible css=#date_retour_signature[readonly="readonly"] ${id_instruction} = Get Value css=.form-content input#instruction # déclenche la réception des documents signés et vérifie que l'instruction n'a pas été mise à jour ${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 ... L'instruction ${id_instruction} et son document ont bien été mis à jour # constate que le compteur archivé 'signatures' de la collectivité 'Collectivité-CPTSIGN' # n'a pas été incrémenté (était égal à 1 suite au test précédent) Depuis le contexte compteur avec dates validité ${compteur_id} ${compteur_qte} = Get Text css=div.form-content span#quantite Should Be Equal 1 ${compteur_qte} # constate que le compteur actuel 'signatures' de la collectivité 'Collectivité-CPTSIGN' # a pas été incrémenté Depuis le contexte compteur avec dates validité ${compteur_id_new} ${compteur_qte_new} = Get Text css=div.form-content span#quantite Should Be Equal 1 ${compteur_qte_new} Vérification des différents affichages du widget de compteur de signatures Depuis la page d'accueil admin admin # ajout d'un administrateur fonctionnel pour la collectivité 'Collectivité-CPTSIGN' Ajouter l'utilisateur depuis le menu Admin CPTSIGN ... acptsign@openads-test.fr acptsign acptsign ADMINISTRATEUR FONCTIONNEL ... ${collectivite_values.om_collectivite_libelle} # ajout d'un widget de compteur signatures au tableau de bord de l'administrateur fonctionnel ${om_widget_libelle} = Set Variable Signatures &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=compteur_signatures ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=ADMINISTRATEUR FONCTIONNEL ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} # le compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' existe déjà # (ajouté dans le test précédent) # modifie le compteur existant (celui qui est valide, donc le nouveau du test précédent) Set To Dictionary ${args_compteur_new} quantite=100 Set To Dictionary ${args_compteur_new} alerte=80 Set To Dictionary ${args_compteur_new} quota=500 Modifier compteur avec dates validité ${compteur_id_new} ${args_compteur_new} La page ne doit pas contenir d'erreur # vérifie l'affichage du widget sur le tableau de bord de l'administrateur fonctionnel Depuis la page d'accueil acptsign acptsign Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 100 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 400 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 20 % # modifie le compteur pour augmenter le nombre de signature pour qu'il dépasse l'alerte Depuis la page d'accueil admin admin Set To Dictionary ${args_compteur_new} quantite=450 Set To Dictionary ${args_compteur_new} alerte=80 Set To Dictionary ${args_compteur_new} quota=500 Modifier compteur avec dates validité ${compteur_id_new} ${args_compteur_new} La page ne doit pas contenir d'erreur # vérifie l'affichage du widget sur le tableau de bord de l'administrateur fonctionnel Depuis la page d'accueil acptsign acptsign Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 450 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 50 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 90 % Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures ... Attention vous approchez de la limite de votre quota de signatures. Afin de l'augmenter, cliquez ici # modifie le compteur pour augmenter le nombre de signature pour qu'il dépasse le quota Depuis la page d'accueil admin admin Set To Dictionary ${args_compteur_new} quantite=550 Set To Dictionary ${args_compteur_new} alerte=80 Set To Dictionary ${args_compteur_new} quota=500 Modifier compteur avec dates validité ${compteur_id_new} ${args_compteur_new} La page ne doit pas contenir d'erreur # vérifie l'affichage du widget sur le tableau de bord de l'administrateur fonctionnel Depuis la page d'accueil acptsign acptsign Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 550 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 50 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 110 % Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures ... Vous avez atteint la limite de votre quota de signatures. Afin de l'augmenter, cliquez ici # ajoute un autre compteur 'signatures' pour une autre collectivité (ici 'Marseille') Depuis la page d'accueil admin admin &{args_compteur_other} = Create Dictionary ... code=signatures ... description=Nombre de signatures ... quantite=77 ... quota=0 ... om_collectivite=MARSEILLE ... om_validite_debut=02/02/2022 ${compteur_id_other} = Ajouter compteur avec dates validité ${args_compteur_other} La page ne doit pas contenir d'erreur # vérifie l'affichage du widget sur le tableau de bord de l'administrateur fonctionnel Depuis la page d'accueil adminfonct adminfonct Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 77 # vérifie le message d'erreur du widget lorsqu'il ne trouve pas le compteur de signatures # pour la collectivité associée à l'utilisateur actuel (ici on utilise une astuce en allant # dans la prévisualisation du tableau de bord avec l'utilisateur 'admin' qui est associé # à la collectivité de niveau 2 - identifiant 1 -, qui n'a pas de compteur de signatures) Depuis la page d'accueil admin admin Go To ${PROJECT_URL}/app/index.php?module=form&obj=om_dashboard&validation=1&idx=0&action=4 Select From List By Label om_profil ADMINISTRATEUR FONCTIONNEL Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures ... Aucun compteur 'signatures' valide pour la collectivité 1 # supprime le widget du dashboard (nécessaire au test suivant) Supprimer le tableau de bord depuis l'URL par l'identifiant ${om_dashboard} Vérification des paramètres du widget de compteur de signatures Depuis la page d'accueil admin admin Depuis le contexte de la collectivité ${collectivite_values.om_collectivite_libelle} ${collectivite_id} = Get Text css=span#om_collectivite # ajout d'un widget de compteur signatures au tableau de bord de l'administrateur fonctionnel ${om_widget_libelle} = Set Variable Signatures CTPSIGN &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=compteur_signatures ... arguments=om_collectivite=${collectivite_id} ${om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=ADMINISTRATEUR FONCTIONNEL ... bloc=C1 ... position=1 ${om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} # le compteur 'signatures' pour la collectivité 'Collectivité-CPTSIGN' existe déjà # (ajouté dans le test précédent) # vérifie que l'affichage du widget sur le tableau de bord de l'administrateur fonctionnel # correspond bien à la collectivité passée en paramètre du widget (ici 'Collectivité-CPTSIGN' # alors que l'on est sur la page d'un administrateur fonctionnel de 'Marseille') Depuis la page d'accueil adminfonct adminfonct Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 550 / 500 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 50 signatures Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures 110 % Element Should Contain css=#widget_${om_dashboard}.widget_compteur_signatures ... Vous avez atteint la limite de votre quota de signatures. Afin de l'augmenter, cliquez ici