Add isolated file-upload form variants for DLP E2E testing
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 72/100
Piste de recherche
Start at the advanced-fields page and inspect the consuming apps/webext-e2e activity/file-upload DLP specs and their page-object selectors. Add isolated, stable file-upload form fixtures for the requested submit and destination cases, with a harmless same-origin endpoint, then verify the E2E specs can target them without serializing the existing catch-all form.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Context
The PixieBrix browser-extension file-upload DLP enforcer (activity Phase 5) gates uploads at the <form> submit vector and resolves the upload destination from the form's action — so apps/webext-e2e needs a faithful multipart form to drive it.
Today the advanced-fields page only has a file input nested inside the big catch-all <form class="input">, which has no action, no enctype, and no method. That's enough for the metadata-block-at-change test, but not for faithful submit/destination testing:
- The destination resolves to the page URL only (can't exercise destination-scoped rules).
- Submitting the shared catch-all form drags in every other field and does a real GET navigation.
A temporary E2E is landing against the catch-all form (using a synthetic submit event to avoid navigation), but we'd like a dedicated, isolated fixture to switch to.
Request
Add one or more isolated file-upload forms to the advanced-fields page (separate from <form class="input">), each with stable selectors (ids / aria-labels) and vendor-neutral example domains. Prioritized:
Must-have
- Basic single-file multipart POST form —
<form action="/dlp-upload" method="post" enctype="multipart/form-data">with a labeled<input type="file">+ a submit<button>. A same-originaction(a route that just returns204) so an allowed upload doesn't error the page (tests will also route-intercept it).
Nice-to-have (each exercises a specific enforcer branch)
- Cross-origin
action— same form butaction=\"https://uploads.example.com/files\", to test destination-scopedurlPatternrules (the enforcer judges origin + path). -
formactionoverride — a form with oneactionplus a submit<button formaction=\"https://uploads.example.com/other\">; the enforcer prefers the submitter'sformactionas the destination. -
form=-associated input outside the form —<input type=\"file\" form=\"<form-id>\">living outside the<form>subtree; the enforcer readsform.elementsto catch these. - Multiple-file input —
<input type=\"file\" multiple>for multi-file uploads. - Drag-and-drop dropzone — a labeled dropzone that accepts dropped files, for the
drop/pasteinterception vectors (a later follow-up).
Constraints
- Keep each form isolated from the existing catch-all
<form class="input">so submitting it doesn't serialize unrelated fields. - Stable, documented selectors (ids or
aria-labels) — the E2E page object targets these. - Use neutral
example.comdomains for cross-origin actions. - The endpoint(s) can be a trivial
204(Vercel serverless or a static handler) — no real storage needed.
Consumed by the pixiebrix-source apps/webext-e2e activity/file-upload DLP specs.
- Langage dominant
- HTML
- Étoiles
- 3
- Forks
- 1
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
jessepollak/home#2223 ·
Les mainteneurs répondent en général sous 1 jour
-
grep fixture corpus test follows the corpus's loop symlink under the receipt runner (fails on main)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
code-yeongyu/senpi#3756 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
rheeloaded/paperpull#116 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
bug dependencies github_actions
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
ChristianHandy/FleetPilot#233 ·
Les mainteneurs répondent en général sous 1 jour