Hotfix/4431

I've rewritten the tests slightly to do the following:

- Move the skip logic into the test case, and out of the data provider. PHPUnit was raising warnings when the skip happened inside a data provider.
- Made the skip conditional based on what was being tested. I wanted as many tests to run as possible.

Please use this as a base if you continue investigating this issue -- and many thanks!