Second coverage batch — config, request state and the XML parser:
- SettingsManagerTest: set/getAll roundtrip, update, and the typed getters.
Locks the deliberate split on a present-null value (get()/getArray() fall back
via ?? while getBool/getInt/getString cast), and getBool()'s PHP truthiness.
- DomainResolverTest: the non-proxied resolve() path — forced vs kept protocol,
https on :443, Host-header port stripping, and the domain_name / server_ip
fallbacks. Captures a latent bug: an https:// prefix in domain_name yields
'https:host' because '/' is stripped before 'https://' in the str_replace
order (documented in the test so a fix updates it deliberately).
- RequestManagerTest: same store shape as SettingsManager, with has() on isset
semantics (present-null reads as absent).
- XmlStringStreamerTest: end-to-end StringWalker (depth-2 children) and
UniqueNode (named element) parsing over an in-memory stream, empty document,
the File "missing path" and UniqueNode "missing option" error paths.
+26 tests. Suite: 634 tests, 0 errors.