Don't crash on empty message
Test for empty message
Return parsed request in authenticate callback
Use some utility methods for tests. Add more .authenticate() tests.