MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / authorizationHelpers

Method authorizationHelpers

Tests/Libraries/Http/HttpHeadersTest.cpp:89–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87
88 SC_TEST_EXPECT(not it.next(pair));
89}
90
91void 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));

Callers

nothing calls this directly

Calls 7

HttpParseBearerTokenFunction · 0.85
isBearerMethod · 0.80
isBasicMethod · 0.80
resultMessageEqualsFunction · 0.70
parseMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected