test(12.2-05): prove relation child and protected file scoping through the router

- acme.deferred fixture plugin over testdata/deferred (test-only), two
  controllers, recording Form and Relation hooks, two admins
- TestRelationChildScope*: every child route answers 404 for another
  parent, a hidden parent and another admin's pending child, changes
  nothing; undeclared toolbar buttons 403 before SQL; pivot whitelist
- TestProtectedFile*: foreign, pending and public files 404; only jpeg,
  png, gif and webp inline; nosniff, no-store and sandbox CSP everywhere
This commit is contained in:
Jakub Zych
2026-10-02 20:10:10 +02:00
parent 162a8ec5a1
commit 9d2b1c1848
15 changed files with 1336 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
columns:
name:
label: Name
searchable: true
released_on:
label: Released on
type: date
opens_at:
label: Opens at
type: time

View File

@@ -0,0 +1,37 @@
fields:
name:
label: Name
type: text
required: true
released_on:
label: Released on
type: datepicker
mode: date
minDate: 2000-01-01
maxDate: 2030-12-31
starts_at:
label: Starts at
type: datepicker
mode: datetime
minDate: 2000-01-01
maxDate: 2030-12-31
opens_at:
label: Opens at
type: datepicker
mode: time
members:
type: relation-manager
relation: members
parts:
type: relation-manager
relation: parts
photos:
label: Photos
type: fileupload
mode: image
maxFiles: 3
manual:
label: Manual
type: fileupload
fileTypes: [pdf, png, svg, txt, html]
useCaption: true

View File

@@ -0,0 +1,15 @@
fields:
name:
label: Name
type: text
required: true
members:
type: relation-manager
relation: members
parts:
type: relation-manager
relation: parts
manual:
label: Manual
type: fileupload
required: true

View File

@@ -0,0 +1,5 @@
fields:
email:
label: Email
type: text
required: true

View File

@@ -0,0 +1,4 @@
fields:
pivot[note]:
label: Note
type: text

View File

@@ -0,0 +1,19 @@
fields:
label:
label: Label
type: text
required: true
due_on:
label: Due on
type: datepicker
mode: date
minDate: 2020-01-01
images:
label: Images
type: fileupload
mode: image
useCaption: true
sheet:
label: Sheet
type: fileupload
fileTypes: [txt, pdf]