*** Settings *** Documentation Test les pièces. # On inclut les mots-clefs Resource resources/resources.robot # On ouvre/ferme le navigateur au début/à la fin du Test Suite. Suite Setup For Suite Setup Suite Teardown For Suite Teardown *** Test Cases *** Constitution d'un jeu de données [Documentation] L'objet de ce 'Test Case' est de constituer un jeu de de ... données cohérent pour les scénarios fonctionnels qui suivent. # Depuis la page d'accueil guichet guichet # Liste des arguments pour la demande &{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 # Liste des arguments pour le pétitionnaire &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Rivière ... particulier_prenom=Coralie # ${di} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire} # Liste des arguments pour la demande &{args_demande_at} = Create Dictionary ... dossier_autorisation_type_detaille=Demande d'autorisation de construire, d'aménager ou de modifier un ERP ... demande_type=Dépôt Initial # Liste des arguments pour le pétitionnaire &{args_petitionnaire_at} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Duplanty ... particulier_prenom=Dominic # ${di_at} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande_at} ${args_petitionnaire_at} # Depuis la page d'accueil instr instr # Ajouter une consultation depuis un dossier ${di} 59.13 - Régie des Tranports de Marseille - DTP/CIP # Les dossiers sont accessibles dans la suite du test Set Suite Variable ${di} Set Suite Variable ${di_at} Ajout d'une pièce [Documentation] Ajoute une pièce. Vérifie l'unicité des pièces et ajoute une pièce ... sur une dossier AT pour vérifier l'envoi ERP. # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=15/09/2015 ... document_numerise_type=autres pièces composant le dossier (A0) # Depuis la page d'accueil instr instr # On vérifie le message en cas d'un listing vide Depuis l'onglet des pièces du dossier d'instruction ${di} Element Should Contain css=#sousform-document_numerise Aucun enregistrement # Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} # On vérifie qu'il n'y ait pas de confirmation de transmission ERP Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Not Contain css=#sformulaire div.message p span.text Le message a été transmis au référentiel ERP. # On ajoute la même pièce pour vérifier le message d'erreur, car une pièce # doit être unique Ajouter une pièce depuis le dossier d'instruction ${di} ${document_numerise_values} Les valeurs saisies dans les champs dossier, Nom du fichier existent déjà, veuillez saisir de nouvelles valeurs. # On vérifie le contrôle d'extension lors de l'upload d'un fichier Depuis l'onglet des pièces du dossier d'instruction ${di} # On clique sur l'action d'ajout Click On Add Button JS # On vérifie qu'une image ne peut pas être uploadée Add File and Expect Error Message Contain uid testImportManuel.jpg Le fichier n'est pas conforme à la liste des extension(s) autorisée(s) # On ajoute une pièce sur un AT pour vérifier la transmission ERP Ajouter une pièce depuis le dossier d'instruction ${di_at} ${document_numerise_values} Le message a été transmis au référentiel ERP. Modification d'une pièce [Documentation] Modifie une pièce et vérifie que son nom est régénéré. # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=20/09/2015 # Depuis la page d'accueil divi divi # Modifier une pièce depuis le dossier d'instruction ${di} autres pièces composant le dossier (A0) ${document_numerise_values} # Depuis la page d'accueil instr instr # Depuis le contexte du dossier d'instruction de mes encours ${di} On clique sur l'onglet document_numerise Pièce(s) # On clique pour visualiser le document, le nom doit avoir été modifié par # rapport à la date Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=tr.col3 td.firstcol a.lienTable span.reqmo-16 Open PDF file # On vérifie le contenu du PDF Wait Until Keyword Succeeds 5 sec 0.2 sec Page Should Contain TEST IMPORT MANUEL 2 # On ferme le PDF Close PDF Vérification de l'affichage sur le dossier d'autorisation [Documentation] Vérifie l'affichage sur les dossiers d'autorisation. # On récupère le numéro du dossier d'autorisation depuis le numéro du DI ${dossier_autorisation} = Get Substring ${di} 0 -2 # Depuis la page d'accueil guichet guichet # Depuis l'onglet des pièces du dossier d'autorisation ${dossier_autorisation} # On vérifie que le numéro du dossier d'instruction est affiché Page Should Contain ${di} # On vérifie que le nom du fichier est affiché Page Should Contain 20150920AUTPDG.pdf # On clique pour visualiser le document Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=tr.col4 td.col-1 a.lienTable span.reqmo-16 Open PDF file # On vérifie la localisation du terrain Wait Until Keyword Succeeds 5 sec 0.2 sec Page Should Contain TEST IMPORT MANUEL 2 # On ferme le PDF Close PDF Vérification de l'affichage sur la demande d'avis [Documentation] Vérifie l'affichage sur les demandes d'avis. # Depuis la page d'accueil consu consu # Depuis l'onglet des pièces de la demande d'avis en cours du dossier d'instruction ${di} # On vérifie que le nom du fichier est affiché Page Should Contain 20150920AUTPDG.pdf # On clique pour visualiser le document Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element css=tr.col3 td.firstcol a.lienTable span.reqmo-16 Open PDF file # On vérifie la localisation du terrain Wait Until Keyword Succeeds 5 sec 0.2 sec Page Should Contain TEST IMPORT MANUEL 2 # On ferme le PDF Close PDF Suppression d'une pièce [Documentation] Supprime une pièce. # Depuis la page d'accueil chef chef # Supprimer une pièce depuis le dossier d'instruction ${di} autres pièces composant le dossier (A0) TNR Ajout de pièces au DI en tant qu'instructeur [Documentation] L'utilisation d'un getval faisait qu'un dossier au hasard était ... récupéré lors de l'ajout de pièces, quand ce dossier était clôturé l'ajout de ... pièces produisait une erreur de droits insuffisants pour les instructeurs. # On crée une nouvelle demande pour le TNR Depuis la page d'accueil guichet guichet &{args_petitionnaire} = Create Dictionary ... particulier_nom=Riel ... particulier_prenom=Sébastien &{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 ${di_libelle} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire} # Le bug provenait du fait que l'on instanciait à tort le premier document # numérisé créé en base de données. Celui-ci est lié au AZ 013055 12 00001P0. # Ainsi on testait toujours ce DI pour savoir s'il était clôturé et donc si # on avait le droit ou non d'ajouter une pièce. Depuis la page d'accueil instrpoly instrpoly Ajouter une instruction au DI AZ 013055 12 00001P0 ARRÊTÉ DE REFUS Click On Back Button In Subform # En cloturant le AZ 013055 12 00001P0 on reproduit le use case. Click On Link ARRÊTÉ DE REFUS Click On SubForm Portlet Action instruction finaliser Click On SubForm Portlet Action instruction definaliser Click On SubForm Portlet Action instruction modifier ${today} = Date du jour FR Input Datepicker date_retour_rar ${today} Click On Submit Button In Subform # On teste l'ajout de pièces sur le DI de test en tant qu'instructeur # Cela doit fonctionner bien que le AZ 013055 12 00001P0 soit clôturé &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=15/09/2015 ... document_numerise_type=autres pièces composant le dossier (A0) Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On supprime les événements d'instruction créés spécifiquement pour le TNR Depuis la page d'accueil admin admin Supprimer l'instruction AZ 013055 12 00001P0 Arrêté de Refus signé Supprimer l'instruction AZ 013055 12 00001P0 ARRÊTÉ DE REFUS TNR Vérification des métadonnées des fichiers [Documentation] Vérifie les métadonnées des fichiers créé par ... l'application. # On crée une nouvelle demande pour le TNR Depuis la page d'accueil guichet guichet &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Monsieur ... particulier_nom=Dufresne ... particulier_prenom=Thierry # &{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 # ${di_metadata} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire} ${libelle_di_metadata} = Sans espace ${di_metadata} # On ajoute une pièce sur le dossier d'instruction initial Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata} Should Contain ${file_info} dossier_version=0 Should Contain ${file_info} typeInstruction=P # On accepte le dossier d'instruction initial Ajouter une instruction au DI ${di_metadata} accepter un dossier sans réserve # On ajoute un modificatif sur le dossier d'instruction Depuis la page d'accueil guichet guichet # &{args_demande} = Create Dictionary ... demande_type=Demande de modification # ${di_metadata_1} = Ajouter la demande sur existant depuis le tableau de bord ${di_metadata} ${args_demande} # On récupère le numéro du dossier sans espace ${libelle_di_metadata_1} = Sans espace ${di_metadata_1} # On ajoute une pièce sur le dossier d'instruction de modification 1 Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_1} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_1} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_1} Should Contain ${file_info} dossier_version=01 Should Contain ${file_info} typeInstruction=M # On accepte le dossier d'instruction de modification 1 Ajouter une instruction au DI ${di_metadata_1} accepter un dossier sans réserve # On ajoute un modificatif sur le dossier d'instruction Depuis la page d'accueil guichet guichet # &{args_demande} = Create Dictionary ... demande_type=Demande de modification # ${di_metadata_2} = Ajouter la demande sur existant depuis le tableau de bord ${di_metadata_1} ${args_demande} # On récupère le numéro du dossier sans espace ${libelle_di_metadata_2} = Sans espace ${di_metadata_2} # On ajoute une pièce sur le dossier d'instruction de modification 2 Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_2} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_2} arrêté Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_2} Should Contain ${file_info} dossier_version=02 Should Contain ${file_info} typeInstruction=M # On ajoute une pièce sur le dossier d'instruction de modification 1 Depuis la page d'accueil admin admin # Données de la pièce &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... document_numerise_type=arrêté de conformité # Ajouter une pièce depuis le dossier d'instruction ${di_metadata_1} ${document_numerise_values} # On récupére l'UID de la pièce pour définir les chemins Depuis le contexte de la pièce par le dossier d'instruction ${di_metadata_1} arrêté de conformité Click On Subform Portlet Action document_numerise modifier ${uid} = Get Value uid ${path_1} = Get Substring ${uid} 0 2 ${path_2} = Get Substring ${uid} 0 4 # On vérifie les métadonnées depuis le fichier ".info" dans le filesystem ${file_info} = Get File ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${uid}.info Should Contain ${file_info} dossier=${libelle_di_metadata_1} Should Contain ${file_info} dossier_version=01 Should Contain ${file_info} typeInstruction=M Téléchargement de l'intégralité des pièces [Documentation] Contrôle que l'action "télécharger toutes les pièces" dans l'onglet ... Pièce(s) d'un dossier d'instruction, dans l'onglet Pièce(s) du DA et les demandes ... d'avis produit bien une archive téléchargeable contenant toutes les pièces. Depuis la page d'accueil guichet guichet &{args_petitionnaire} = Create Dictionary ... particulier_nom=Compagnon ... particulier_prenom=Émilie &{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 ${di_libelle} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire} Depuis la page d'accueil admin admin &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=autres pièces composant le dossier (A0) Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel2.pdf ... date_creation=30/03/2016 ... document_numerise_type=autres pièces composant le dossier (A0) Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # Pièce de type "arrêté retour prefecture" qui sera disponible depuis le DA &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=31/03/2016 ... document_numerise_type=arrêté retour préfecture Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} Depuis la page d'accueil instr instr # Ajout d'une consultation au dossier pour que consu puisse accéder aux pièces Ajouter une consultation depuis un dossier ${di_libelle} 59.01 - Direction de l'Eau et de l'Assainissement Depuis l'onglet des pièces du dossier d'instruction ${di_libelle} ${path_archive} ${archive_name} = Télécharger toutes les pièces # Composition du nom correct de l'archive zip ${di_libelle_spaceless} = Sans espace ${di_libelle} ${date_jour} = Date du jour EN ${date_jour_sans_tirets} = STR_REPLACE - ${EMPTY} ${date_jour} ${correct_archive_name_di} = Set Variable ${di_libelle_spaceless}_${date_jour_sans_tirets}.zip # Vérification du nom de l'archive, qui doit commencer par le n° de DI Should Be Equal ${correct_archive_name_di} ${archive_name} # L'archive doit contenir les 3 pièces du DI Archive Should Contain File ${path_archive} 20160331AUTPDG.pdf Archive Should Contain File ${path_archive} 20160330AUTPDG.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # Récupération de l'archive dans le contexte du DA du DI utilisé précédemment ${da_libelle} = Get Substring ${di_libelle} 0 -2 ${da_libelle_spaceless} = Sans espace ${da_libelle} ${correct_archive_name_da} = Set Variable ${da_libelle_spaceless}_${date_jour_sans_tirets}.zip Depuis l'onglet des pièces du dossier d'autorisation ${da_libelle} ${path_archive} ${archive_name} = Télécharger toutes les pièces # Le nom de l'archive doit commencer par le numéro de DA (sans le P0 du DI) Should Be Equal ${correct_archive_name_da} ${archive_name} Archive Should Contain File ${path_archive} 20160331AUTPDG.pdf Archive Should Contain File ${path_archive} 20160330AUTPDG.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # Récupération de l'archive depuis la demande d'avis en cours Depuis la page d'accueil consu consu Depuis la demande d'avis en cours du dossier ${di_libelle} On clique sur l'onglet document_numerise Pièce(s) ${path_archive} ${archive_name} = Télécharger toutes les pièces Should Be Equal ${correct_archive_name_di} ${archive_name} Archive Should Contain File ${path_archive} 20160331AUTPDG.pdf Archive Should Contain File ${path_archive} 20160330AUTPDG.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf # On rend l'avis sur la consultation pour qu'elle devienne "passée" On clique sur l'onglet main Demandes D'avis En Cours &{args_avis_consultation} = Create Dictionary ... avis_consultation=Favorable ... motivation=Pas de réserves ... fichier_upload=testImportManuel.pdf Rendre l'avis sur la consultation du dossier ${di_libelle} ${args_avis_consultation} Depuis la demande d'avis passée du dossier ${di_libelle} On clique sur l'onglet document_numerise Pièce(s) ${path_archive} ${archive_name} = Télécharger toutes les pièces Should Be Equal ${correct_archive_name_di} ${archive_name} Archive Should Contain File ${path_archive} 20160331AUTPDG.pdf Archive Should Contain File ${path_archive} 20160330AUTPDG.pdf Archive Should Contain File ${path_archive} 20160331ART.pdf Vérification du message de notification à l'ajout d'une pièce numérisée [Documentation] Vérification des différents cas concernant la notification ... par message à l'ajout de pièce numérisée. # On récupère la date du jour ${date} = Date du jour FR # On ajoute un instructeur de la même division que instr ${utilisateur_nom} = Set Variable Patricia O''Maley Depuis la page d'accueil admin admin Ajouter l'utilisateur depuis le menu ${utilisateur_nom} nospam@openmairie.org pomaley pomaley INSTRUCTEUR MARSEILLE Ajouter l'instructeur depuis le menu ${utilisateur_nom} subdivision H ${utilisateur_nom} # On ajoute un DI Depuis la page d'accueil guichet guichet &{args_petitionnaire} = Create Dictionary ... particulier_nom=Rousseau ... particulier_prenom=Matilda &{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 ${di_libelle} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire} # # Cas n°1 # # On se connecte avec l'instructeur affecté au dossier pour ajouter une # pièce Depuis la page d'accueil instr instr &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date} ... document_numerise_type=autres pièces composant le dossier (A0) ${dossier_message_1} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est déjà marqué comme lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Be Equal 1 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_1} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Oui # # Cas n°2 # # On ajoute une nouvelle pièce sur le même dossier avec le même utilisateur &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date} ... document_numerise_type=autres pièces composant le dossier (A3/A4) ${dossier_message_2} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie qu'il n'y a pas de message ajouté Should Be Empty ${dossier_message_2} Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Be Equal 1 dossier_message # # Cas n°3 # # On se connecte avec un instructeur qui n'est pas affecté au dossier mais # de la même division Depuis la page d'accueil pomaley pomaley &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date} ... document_numerise_type=autres pièces composant le dossier délivré (A0) ${dossier_message_3} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est marqué comme non lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Be Equal 2 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_3} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Non # # Cas n°4 # # On ajoute une nouvelle pièce avec l'instructeur qui n'est pas affecté au # dossier mais de la même division &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date} ... document_numerise_type=autres pièces composant le dossier délivré (A3/A4) ${dossier_message_4} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie qu'il n'y a pas de message ajouté Should Be Empty ${dossier_message_4} Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Be Equal 2 dossier_message # # Cas n°5 # # On marque comme lu le message du précédent dépôt de pièce Marquer comme lu le message dans le dossier d'instruction ${di_libelle} ${dossier_message_3} # On ajoute une nouvelle pièce avec l'instructeur qui n'est pas affecté au # dossier mais de la même division &{document_numerise_values} = Create Dictionary ... uid_upload=testImportManuel.pdf ... date_creation=${date} ... document_numerise_type=avis obligatoires ${dossier_message_5} = Ajouter une pièce depuis le dossier d'instruction ${di_libelle} ${document_numerise_values} # On vérifie que le message est marqué comme non lu Depuis l'onglet des messages du dossier d'instruction ${di_libelle} Total Results In Subform Be Equal 3 dossier_message Depuis le contexte du message dans le dossier d'instruction ${di_libelle} ${dossier_message_5} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Form Static Value Should Be lu Non