Your test assumes a common, though not guaranteed, environment and would fail in several modes. Things that come to mind are:
- restricted localhost traffic
- non-root user trying to bind port 80
- IPv6-only systems (?)
I'd say none of these really are your code's fault. Asking the testing user for environment details that should work for them seems pretty fair to me, even if you have (understandable) reservations. This reminds me of the Astro::SpaceTrack module I use for work (e.g. its query test). I'm sure there are other ways of doing this, though.
Alternatively, stick with localhost as a default and simply skip over the tests if the basic HTTP traffic fails. If you want to filter out noise in failure reports, have things fail with a reference error/warning text that's easy for you to filter out as noise.