* Re-enable the network interface tests
I am pretty sure a Symfomy HTTP client bug was causing the issue we saw. Some time ago they published fixes related to the BIND_TO option with IPv6
* We actually should expect the result to be empty here
* Refactor `getExternalIP()` to use `RetryableHttpClient`
Refactor `FOSSBilling\Tools` `getExternalIP()` function to use `RetryableHttpClient`.
* Fix incorrect parameter names and add cURL timeout
* Disable Network Interface live-tests
* Removed the hardcoded currencies list
Also streamlined the process of adding new currencies by allowing the title & exchange rate to automatically be determined.
* Use an existing translatable string
* Update the test workflows
* Dropped the legacy test, wrote two new ones
* Fixed a typo in my assert
* Whooooops
I made a mistake when I setup the random password generation for the live tests and forgot that `bin2hex(random_bytes(6));` wasn't guaranteed to actually generate something with a number, this change fixes that to ensure one will be set.
* Slight structure change to the testcases
* Fix
* Ported some random low-level tests
* Spelling
* Ported over some other low-level tests
* Fixes
* And now other fixes
* Another one
* Wrote a few more tests, improvements
* Ran Rector & PHP-CS-Fixer
* Append a capital letter to the test client passwords
* Minor tweaks
* Display more info after the tests run
* Oops, I forgot to set the dir
* Fix cron behavior for test env, dropped legacy tests
* Rename the empty test suite so PHPUnit ignores it
* Update cspell.json
* Minor tweaks to the tests
* Fixes
* Feat: allow selection of the default network interface
* Update cspell.json
* Wrote some tests, moved the setting to the config file
* Cleanup, fixes, include Sentry in the bind setting
* Use JS to update the IP rather than reload, minor tweaks
* UI tweaks
* Removed leftover incomplete sentence, mention interface names
* Implemented a new class for config management
* Run Rector & PHP-CS-Fixer
* Spelling
* Pointed a bunch of code to the new class
* Fix tests, removed 2 broken ones that did nothing
* Quick run of PHP-CS-Fixer
* Fixed issues noticed in self review
* Updated remaining old methods. Fixed minor error page issue
* Very minor code tweak
* Fixes, added a related test
* Check for OPCache functions being defined
* I don't think this timeout is needed
* Rename tests to tests-legacy
* Groundwork for live tests
* Somewhat working tests on a live instance
* Hmmmmmm
* Fix
* Fixed the other bug
* Added a handful of various tests
* Typos, all these are admin endpoints
* Bypass this check for testing envs
* Disable it for now
* Mini cleanup
* Cleanup from debugging, ran PHP-CS-Fixer