Improve supported protocols unit test by exposing supported protocols in headers

Currently, we hard-code a lot of supported protocols in the supported protocols unit test.

Instead, we should expose a list of supported protocols in each header, and check those. Or, we can expose a maximum supported protocol.

This allows us to write unit tests like the LinkAuth tests.