*** Settings *** Resource resources/resources.robot Suite Setup Run Keywords ... For Suite Setup ... AND Constitution du jeu de données Suite Teardown Run Keywords ... Décomposition du jeu de données ... AND For Suite Teardown **Keywords # TODO ce mot-clé pourrait être utilisé à d'autres endroits, et donc déplacé à un endroit générique Marquer ce test comme échoué si le test précédent est raté [Documentation] Permet de facilement identifier un test dont l'échec est ... à directement attribuer à un échec précédent Run Keyword If '${PREV_TEST_STATUS}' == 'FAIL' ... FAIL Ce test dépend du précédent. Comme le test précédent a échoué, le contexte risque d'être incomplet. Constitution du jeu de données # Autoriser les pièces numérisées &{om_param} = Create Dictionary ... libelle=option_notification_piece_numerisee ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} # Créer et remplir une 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 ... om_collectivite=MARSEILLE &{args_petitionnaire} = Create Dictionary ... particulier_civilite=Madame ... particulier_nom=Rivière ... particulier_prenom=Coralie ... om_collectivite=MARSEILLE ${di} = Ajouter la demande par WS ${args_demande} ${args_petitionnaire} Depuis la page d'accueil instr instr Ajouter une consultation depuis un dossier ${di} 59.13 - Régie des Tranports de Marseille - DTP/CIP Set Suite Variable ${di} # Variables communes ${now_ddmmyyyy} = Date du jour FR Set Suite Variable ${now_ddmmyyyy} ${now_yyyymmdd} = Date du jour au format yyyymmdd Set Suite Variable ${now_yyyymmdd} Décomposition du jeu de données &{option_miniature} = Create Dictionary ... delete=true ... libelle=option_notification_piece_numerisee ... om_collectivite=agglo Gerer le paramètre par WS ${option_miniature} Activer l'option de normalisation du nommage des documents numérisés &{om_param} = Create Dictionary ... libelle=option_normaliser_nommage_document_numerise ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} Désactiver l'option de normalisation du nommage des documents numérisés &{om_param} = Create Dictionary ... libelle=option_normaliser_nommage_document_numerise ... valeur=false ... om_collectivite=agglo Gerer le paramètre par WS ${om_param} *** Test Cases *** CRUD sur un document d'instruction importé - Création Depuis la page d'accueil instr instr # Vérifie que l'onglet "Pièces & documents > Docs instruction" s'affiche sans erreur # avec le tableau des documents d'instruction générés Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # Vérifier que le bouton retour ramène bien à la liste des documents Click Element id=action-soustab-document_numerise-corner-ajouter Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # CRUD - Ajout Cliquer sur le bouton d'ajout de document d'instruction importé &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf ... document_type=Courrier (demande de prorogation) # code 29 ... description=J'ai rajouté ce fichier moi-même Saisir le document d'instruction importé ${doc_values} Set Suite Variable ${nom_document_genere} ${now_yyyymmdd}29.pdf # Le fichier a été renommé en fonction de la date du jour et de son type Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # Vérifier que la description a bien été enregistrée (seulement dispo sur la consultation) Element Should Contain css=#sousform-document_instruction_importe #description J'ai rajouté ce fichier moi-même # Vérification de l'affichage dans le tableau des bonnes valeurs Click On Back Button In SubForm Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_document_genere} Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-2 Courrier (demande de prorogation) Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-3 ${now_ddmmyyyy} # Date de création Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-4 ${now_ddmmyyyy} # Date de modification CRUD sur un document d'instruction importé - Consultation [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # Vérifier que le bouton retour ramène bien à la liste des documents Consulter le document d'instruction importé ${nom_document_genere} Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # CRUD - Consultation Consulter le document d'instruction importé ${nom_document_genere} Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_document_genere} Element Should Contain css=#sousform-document_instruction_importe #document_type Courrier (demande de prorogation) Element Should Contain css=#sousform-document_instruction_importe #date_creation ${now_ddmmyyyy} Element Should Contain css=#sousform-document_instruction_importe #date_modification ${now_ddmmyyyy} Element Should Contain css=#sousform-document_instruction_importe #description J'ai rajouté ce fichier moi-même CRUD sur un document d'instruction importé - Téléchargement [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes Télécharger le document d'instruction importé ${nom_document_genere} Open PDF ${OM_PDF_TITLE} Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain TEST IMPORT MANUEL 1 Close PDF CRUD sur un document d'instruction importé - Prévisualisation de PDF [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes Prévisualiser le document d'instruction importé ${nom_document_genere} # vérifie que l'iframe PDF est bien chargée dans la fenêtre modale Wait Until Page Contains Element css=.ui-dialog iframe#frame_pdf # vérifie que le PDF contient la bonne valeur dans l'ifram Select Frame frame_pdf Wait Until Page Contains Element css=div#viewer .page .textLayer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=div#viewer .page .textLayer TEST IMPORT MANUEL 1 # ferme la fenêtre modale en cliquant sur le bouton retour Unselect Frame Click Element Until No More Element ... css=.ui-dialog div#sousform-document_instruction_importe_preview_edition .retour Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Not Be Visible css=.ui-widget-overlay CRUD sur un document d'instruction importé - Modification complète [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # Vérifier que le bouton retour ramène bien au document, puis à la liste des documents Consulter le document d'instruction importé ${nom_document_genere} Click On SubForm Portlet Action document_instruction_importe modifier Click On Back Button In SubForm Element Should Contain css=#fieldset-sousform-document_instruction_importe-document-d_instruction-importe > legend Document d'instruction importé Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # CRUD - Modification Consulter le document d'instruction importé ${nom_document_genere} Click On SubForm Portlet Action document_instruction_importe modifier &{document_numerise_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.jpg ... document_type=Constat d’infraction # code 25 ... description=Version 2 du super fichier rajouté manuellement Saisir le document d'instruction importé ${document_numerise_values} Set Suite Variable ${nom_document_genere} ${now_yyyymmdd}25.jpg # Le fichier a été renommé en fonction de la date du jour et de son type Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # Vérifier que la description a bien été enregistrée (seulement dispo sur la consultation) Element Should Contain css=#sousform-document_instruction_importe #description Version 2 du super fichier rajouté manuellement # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_document_genere} # Redirection de l'action retour vers l'onglet des documents Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # Vérification de l'affichage des modifications dans le tableau Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_document_genere} Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-2 Constat d’infraction Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-3 ${now_ddmmyyyy} # Date de création Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-4 ${now_ddmmyyyy} # Date de modification CRUD sur un document d'instruction importé - Modification partielle [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # CRUD - Modification partielle Consulter le document d'instruction importé ${nom_document_genere} # Avant de mettre à jour, on stocke l'uid pour le test suivant Click On SubForm Portlet Action document_instruction_importe modifier ${document_uid} = Get Value uid Set Suite Variable ${document_uid} &{document_numerise_values} = Create Dictionary ... document_type=Jugement # code 42 ... description=Toujours la version 2 mais j'ai modifié le type Saisir le document d'instruction importé ${document_numerise_values} Set Suite Variable ${nom_document_genere} ${now_yyyymmdd}42.jpg # Le fichier a été renommé en fonction de la date du jour et de son type Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # Vérifier que la description a bien été enregistrée (seulement dispo sur la consultation) Element Should Contain css=#sousform-document_instruction_importe #description Toujours la version 2 mais j'ai modifié le type # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_document_genere} # Redirection de l'action retour vers l'onglet des documents Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # Vérification de l'affichage des modifications dans le tableau Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_document_genere} Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-2 Jugement Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-3 ${now_ddmmyyyy} # Date de création Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-4 ${now_ddmmyyyy} # Date de modification CRUD sur un document d'instruction importé - Suppression [Setup] Marquer ce test comme échoué si le test précédent est raté Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # Vérifier que le bouton retour ramène bien au document, puis à la liste des documents Consulter le document d'instruction importé ${nom_document_genere} Click On SubForm Portlet Action document_instruction_importe supprimer Click On Back Button In SubForm Element Should Contain css=#fieldset-sousform-document_instruction_importe-document-d_instruction-importe > legend Document d'instruction importé Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # Les fichiers existent bien avant la suppression ${path_1} = Get Substring ${document_uid} 0 2 ${path_2} = Get Substring ${document_uid} 0 4 File Should Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_uid} File Should Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_uid}.info # CRUD - Suppression Consulter le document d'instruction importé ${nom_document_genere} Click On SubForm Portlet Action document_instruction_importe supprimer Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click On Submit Button In Subform # TODO le message n'est pas affiché car on arrive sur la liste complète. Peut-être devrait il être affiché ? # Valid Message Should Contain La suppression a été correctement effectuée. La liste des documents d'instruction importés est visible avec les autres listes # Vérification dans le système de fichier File Should Not Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_uid} File Should Not Exist ..${/}var${/}filestorage${/}${path_1}${/}${path_2}${/}${document_uid}.info Renommage actif avec option de option_normaliser_nommage_document_numerise [Setup] Activer l'option de normalisation du nommage des documents numérisés Depuis la page d'accueil instr instr Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # ------------- # Premier ajout Cliquer sur le bouton d'ajout de document d'instruction importé &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf ... document_type=Recours # code 22 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. ${id_document} = Get Value css=input#document_instruction_importe # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} 22 ${id_document} ${doc_values.document_type} Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_normalise}.pdf # On vérifie aussi sur la liste (le nom vient alors de la base de données) Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_normalise}.pdf # ------------------------------------------------------------------------------- # On modifie en changeant la catégorie, et on vérifie que le libellé change aussi Consulter le document d'instruction importé ${nom_normalise}.pdf Click On SubForm Portlet Action document_instruction_importe modifier &{doc_values} = Create Dictionary ... document_type=Contestation de DAACT # code 33 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. # Vérifier que le nom du document est correct (sur la consultation, c'est le nom qui vient des métadonnées, pas de la table) ${nom_normalise} = Normaliser nom document ${di} ${DATE_FORMAT_YYYY-MM-DD} 33 ${id_document} ${doc_values.document_type} Element Should Contain css=#sousform-document_instruction_importe #uid ${nom_normalise}.pdf # On vérifie aussi sur la liste (le nom vient alors de la base de données) Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes Element Should Contain css=#sousform-document_instruction_importe .tab-data .col-1 ${nom_normalise}.pdf [Teardown] Désactiver l'option de normalisation du nommage des documents numérisés TNR - Bouton retour après mauvaise validation sur un document d'instruction importé Depuis la page d'accueil instr instr Accéder à l'onglet documents de l'onglet pièces par le dossier d'instruction ${di} La liste des documents d'instruction importés est visible avec les autres listes # -------------------------------------------------------- # On ajoute en omettant le champ obligatoire document_type Cliquer sur le bouton d'ajout de document d'instruction importé &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Until Message Le champ Type du document est obligatoire # Vérification que le bouton retour emmène bien sur la liste Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # ------------------------------------------------------- # On réessaie un ajout après l'avoir corrigé Cliquer sur le bouton d'ajout de document d'instruction importé &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Until Message Le champ Type du document est obligatoire &{doc_values} = Create Dictionary ... chemin_fichier_a_uploader=testImportManuel.pdf ... document_type=Recours # code 22 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. Set Suite Variable ${nom_document_genere} ${now_yyyymmdd}22.pdf # Le fichier a été renommé en fonction de la date du jour et de son type # Vérification que le bouton retour emmène bien sur la liste Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # ------------------------------------------------------- # On modifie en omettant un champ obligatoire Consulter le document d'instruction importé ${nom_document_genere} Click On SubForm Portlet Action document_instruction_importe modifier &{doc_values} = Create Dictionary ... document_type=Choisir type de documents Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Until Message Le champ Type du document est obligatoire &{doc_values} = Create Dictionary ... document_type=Constat d’infraction # code 25 Saisir le document d'instruction importé ${doc_values} Click On Submit Button In Subform Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées. Set Suite Variable ${nom_document_genere} ${now_yyyymmdd}25.pdf # Le fichier a été renommé en fonction de la date du jour et de son type # Vérification que le bouton retour emmène bien sur la liste Click On Back Button In SubForm La liste des documents d'instruction importés est visible avec les autres listes # TODO créer un test séparé en 159_* pour ces fonctionnalités communes aux documents # Téléchargement de l'intégralité des documents numerise # TODO même chose que "Téléchargement de l'ensemble des documents" ? # TODO créer un test séparé en 159_* pour ces fonctionnalités communes aux documents # Constitution du dossier final # Télécharger tous les documents # TODO vérification que les permissions sont les mêmes que pour les documents de travail