| 87 | } |
| 88 | |
| 89 | void HttpHeadersTest::authorizationHelpers() |
| 90 | { |
| 91 | HttpAuthorizationView authorization; |
| 92 | SC_TEST_EXPECT(authorization.parse(" bEaReR token-123 ")); |
| 93 | SC_TEST_EXPECT(authorization.isBearer()); |
| 94 | SC_TEST_EXPECT(not authorization.isBasic()); |
| 95 | SC_TEST_EXPECT(authorization.scheme == "bEaReR"); |
| 96 | SC_TEST_EXPECT(authorization.credentials == "token-123"); |
| 97 | |
| 98 | StringSpan token; |
| 99 | SC_TEST_EXPECT(HttpParseBearerToken("Bearer abc.def", token)); |
| 100 | SC_TEST_EXPECT(token == "abc.def"); |
| 101 | |
| 102 | char storage[64]; |
| 103 | StringSpan username; |
| 104 | StringSpan password; |
| 105 | SC_TEST_EXPECT(HttpParseBasicCredentials("Basic dXNlcjpwYXNz", {storage, sizeof(storage)}, username, password)); |
| 106 | SC_TEST_EXPECT(username == "user"); |
| 107 | SC_TEST_EXPECT(password == "pass"); |
| 108 | |
| 109 | SC_TEST_EXPECT(HttpParseBasicCredentials("Basic dXNlcjo=", {storage, sizeof(storage)}, username, password)); |
| 110 | SC_TEST_EXPECT(username == "user"); |
| 111 | SC_TEST_EXPECT(password.isEmpty()); |
| 112 | |
| 113 | SC_TEST_EXPECT( |
| 114 | resultMessageEquals(HttpParseBearerToken("Basic dXNlcjpwYXNz", token), "Authorization scheme is not Bearer")); |
| 115 | SC_TEST_EXPECT( |
| 116 | resultMessageEquals(HttpParseBasicCredentials("Basic !!!=", {storage, sizeof(storage)}, username, password), |
| 117 | "Basic authorization has invalid base64")); |
| 118 | SC_TEST_EXPECT(resultMessageEquals( |
| 119 | HttpParseBasicCredentials("Basic bm9jb2xvbg==", {storage, sizeof(storage)}, username, password), |
| 120 | "Basic authorization missing password separator")); |
| 121 | SC_TEST_EXPECT( |
| 122 | resultMessageEquals(HttpParseBasicCredentials("Basic dXNlcjpwYXNz", {storage, 3}, username, password), |
| 123 | "Basic authorization output buffer is too small")); |
| 124 | } |
| 125 | |
| 126 | void HttpHeadersTest::setCookieHelpers() |
| 127 | { |
nothing calls this directly
no test coverage detected