From 68d0b0ade34ff8ffd16fbd2611d03581b5afa5a6 Mon Sep 17 00:00:00 2001 From: Lakhdar Berache Date: Tue, 26 May 2026 16:30:14 +0200 Subject: [PATCH 1/2] SCENARIO: Imported images should have restricted files extensions (see #368) Co-authored-by: Chartier Corentin --- frontend/scenarios/add_picture.feature | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/scenarios/add_picture.feature b/frontend/scenarios/add_picture.feature index 0c682825..301f8462 100644 --- a/frontend/scenarios/add_picture.feature +++ b/frontend/scenarios/add_picture.feature @@ -6,5 +6,13 @@ Fonctionnalité: Ajouter une image à une glose Soit un document dont je suis l'auteur affiché comme glose Et une session active avec mon compte - Quand j'essaie d'ajouter une image à une glose - Alors je vois l'image "" dans la glose + Quand j'essaie d'ajouter une image "docs/architecture.png" à une glose + Alors je vois l'image "architecture.png" dans la glose + + Scénario: avec un fichier qui n'est pas une image + + Soit un document dont je suis l'auteur affiché comme glose + Et une session active avec mon compte + Quand j'essaie d'ajouter une image "samples/hyperglosae/cinema_script.json" à une glose + Alors je peux lire "Please choose an image file (png,jpg,jpeg...)." + Et je ne vois pas "cinema_script.json" \ No newline at end of file From cf409d1186c79993128deacc70c91b7f179eed12 Mon Sep 17 00:00:00 2001 From: Lakhdar Berache Date: Tue, 26 May 2026 17:28:16 +0200 Subject: [PATCH 2/2] TEST: Imported images should have restricted files extensions (see #368) Co-authored-by: Chartier Corentin --- frontend/tests/event.js | 4 ++-- frontend/tests/outcome.js | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/tests/event.js b/frontend/tests/event.js index 7beec42b..02dc5af5 100644 --- a/frontend/tests/event.js +++ b/frontend/tests/event.js @@ -140,10 +140,10 @@ Quand("je supprime le lien entre le document principal et la référence", () => cy.get(".modal-dialog").get(".btn-primary").click(); }); -Quand("j'essaie d'ajouter une image à une glose", () => { +Quand("j'essaie d'ajouter une image {string} à une glose", (imagePath) => { context = cy.get('.scholium').eq(1); cy.click_on_contextual_menu_item(context, 'Add a picture...'); - cy.get('[id="image-input"]').selectFile('../docs/architecture.png', { + cy.get('[id="image-input"]').selectFile(`../${imagePath}`, { force: true, }); }); diff --git a/frontend/tests/outcome.js b/frontend/tests/outcome.js index 0720f45f..f1889ec7 100644 --- a/frontend/tests/outcome.js +++ b/frontend/tests/outcome.js @@ -17,8 +17,14 @@ Alors("je ne peux pas lire {string}", (text) => { cy.get('body').should('not.contain', text); }); -Alors("je vois l'image {string} dans la glose", (alternative_text) => { - cy.get('.row:not(.runningHead)>.scholium').should('have.descendants', `img[alt='${alternative_text}']`); +Alors("je vois l'image {string} dans la glose", (image_name) => { + cy.get('.row:not(.runningHead)>.scholium img[src]') + .invoke('attr', 'src') + .should('match', /^http.*:\/\/(?!.*\/#).*/) +}); + +Alors("l'image a un texte alternatif {string}", (alternative_text) => { + cy.get('.row:not(.runningHead)>.scholium').should('have.descendants', `img[alt='${alternative_text}']`); }); Alors("je vois l'image {string} dans le document principal", (alternative_text) => {