toBe('modern'); }); test('invalid requested theme returns a valid configured default', function () { set_configured_default_theme('dark'); expect(cacti_validate_theme('does_not_exist'))->toBe('dark'); }); test('invalid requested theme with a poisoned default returns the safe fallback', function () { set_configured_default_theme('../../tmp/x'); $result = cacti_validate_theme('also_invalid'); expect($result)->toBe('modern') ->and($result)->not->toContain('..') ->and($result)->not->toContain('/'); }); test('traversal in the requested theme never escapes the theme set', function () { set_configured_default_theme('dark'); $result = cacti_validate_theme('../../../etc/passwd'); expect($result)->not->toContain('..') ->and($result)->not->toContain('/') ->and(is_dir(CACTI_PATH_INCLUDE . '/themes/' . $result))->toBeTrue(); });