| 87 | |
| 88 | SC_TEST_EXPECT(not it.next(pair)); |
| 89 | } |
| 90 | |
| 91 | void HttpHeadersTest::authorizationHelpers() |
| 92 | { |
| 93 | HttpAuthorizationView authorization; |
| 94 | SC_TEST_EXPECT(authorization.parse(" bEaReR token-123 ")); |
| 95 | SC_TEST_EXPECT(authorization.isBearer()); |
| 96 | SC_TEST_EXPECT(not authorization.isBasic()); |
| 97 | SC_TEST_EXPECT(authorization.scheme == "bEaReR"); |
| 98 | SC_TEST_EXPECT(authorization.credentials == "token-123"); |
| 99 | |
| 100 | StringSpan token; |
| 101 | SC_TEST_EXPECT(HttpParseBearerToken("Bearer abc.def", token)); |
| 102 | SC_TEST_EXPECT(token == "abc.def"); |
| 103 | |
| 104 | char storage[64]; |
| 105 | StringSpan username; |
| 106 | StringSpan password; |
| 107 | SC_TEST_EXPECT(HttpParseBasicCredentials("Basic dXNlcjpwYXNz", {storage, sizeof(storage)}, username, password)); |
| 108 | SC_TEST_EXPECT(username == "user"); |
| 109 | SC_TEST_EXPECT(password == "pass"); |
| 110 | |
| 111 | SC_TEST_EXPECT(HttpParseBasicCredentials("Basic dXNlcjo=", {storage, sizeof(storage)}, username, password)); |
| 112 | SC_TEST_EXPECT(username == "user"); |
| 113 | SC_TEST_EXPECT(password.isEmpty()); |
| 114 | |
| 115 | SC_TEST_EXPECT( |
| 116 | resultHasHttpError(HttpParseBearerToken("Basic dXNlcjpwYXNz", token), HttpError::AuthorizationNotBearer)); |
| 117 | SC_TEST_EXPECT(resultHasHttpError(HttpParseBasicCredentials("Bearer token", storage, username, password), |
| 118 | HttpError::AuthorizationNotBasic)); |
| 119 | SC_TEST_EXPECT(resultHasHttpError(authorization.parse("Bearer"), HttpError::AuthorizationCredentialsMissing)); |
| 120 | SC_TEST_EXPECT(resultHasHttpError(HttpParseBasicCredentials("Basic Zg", storage, username, password), |
| 121 | HttpError::BasicBase64Incomplete)); |
| 122 | SC_TEST_EXPECT(resultHasHttpError(HttpParseBasicCredentials("Basic !!!=", storage, username, password), |
| 123 | HttpError::BasicBase64Invalid)); |
| 124 | SC_TEST_EXPECT(resultHasHttpError(HttpParseBasicCredentials("Basic ====", storage, username, password), |
| 125 | HttpError::BasicBase64PaddingInvalid)); |
| 126 | SC_TEST_EXPECT(resultHasHttpError(HttpParseBasicCredentials("Basic dXNlcjo=AAAA", storage, username, password), |
| 127 | HttpError::BasicBase64TrailingData)); |
nothing calls this directly
no test coverage detected