The importer copied URLs, targets and cross-menu parents as exported, so
a javascript: URL or a _parent target broke the first admin save of the
row, and an entry under a parent in another menu vanished from the
public tree. Kept entries now get a trimmed or cleared URL, a cleared
target and a top-level place in their own menu, each with a report
line.
- TestAllowedURL and TestMenuTree (Docker-free): the URL scheme and
target rules, BuildTree order, unreachable and looping entries, list
and single registry types, generated children, locale alternates,
left-out entries logged, the JSON shape
- TestMenuEntryModel (Docker-free): fillable, rules, filter scope
- TestMenuEntryBeforeSave, TestMenuAPI and TestMenuImport (Postgres):
PHP beforeSave rules, D-16 API rules beyond the smoke test, import
drops for page subtrees, foreign menus, missing parents, maps to
nothing and unregistered types