Use httphelper and cache response even when it is empty


Fixes #12164
please split individual tests in their own functions