The commissioning decision
A signage company requests a drawing and a reference photo. The confirmation shows only a fake path to the first file, so staff cannot tell whether both were selected or uploaded. Define separate evidence for selection, accepted upload and final storage; they are not interchangeable states.
Source and claim boundary
A file input value describes the first selected file using a privacy-preserving fake path. The files list exposes all selected File objects. MDN · Checked 16 October 2026.
Filled synthetic acceptance cases
Synthetic teaching data, not client records. Review the inputs and expected outcomes before running the isolated browser exercise. On narrow screens, scroll the table.
| Input | Check | Expected |
|---|---|---|
| drawing.txt + reference.txt | files.length | 2 |
| Two selected files | Array.from(files).map(name) | Both names |
| Input value contains fakepath | Upload evidence | Not proof of upload or storage |
How to verify beyond appearance
- Write the allowed attachment count, formats and server-side handling policy.
- Use the fixture’s two synthetic in-memory files; no personal document is loaded.
- Compare selected names with upload responses and storage records in a separate authorised integration test.
Interpret the result
The fixture proves enumeration, not file safety, malware scanning or successful transfer. Do not infer that a drawing was received because the picker shows its name. An upload receipt should identify each accepted file and its outcome without exposing local paths or sensitive contents. Failed and partly successful multi-file submissions need their own recovery record.
What this does not prove
The in-memory DataTransfer fixture targets current Chromium-compatible browser testing. It does not exercise an OS picker, mobile camera or server upload.
Runnable fixture and handover record
Open the browser acceptance fixture · Read the test source。The fixture creates temporary elements with synthetic values inside the browser. It reads no account, uploads no file, and sends no email or form. Record the browser version, check name, observed value and pass state. Keep real integration evidence separate: a local pass is not a live delivery result.