| 12345678910111213141516171819202122232425262728 |
- #include <gtest/gtest.h>
- #include "auth.hpp"
- using namespace svapi;
- using clk = std::chrono::system_clock;
- TEST(Auth, ParsesBearer) {
- EXPECT_EQ(bearerToken("Bearer abc").value(), "abc");
- EXPECT_FALSE(bearerToken("Basic x").has_value());
- }
- TEST(Auth, ParsesCookie) {
- EXPECT_EQ(cookieValue("a=1; svapi_session=tok; b=2", "svapi_session").value(), "tok");
- EXPECT_FALSE(cookieValue("a=1", "svapi_session").has_value());
- }
- TEST(Auth, SessionMapsToKey) {
- SessionStore s(std::chrono::minutes(10));
- auto now = clk::now();
- std::string tok = s.create("APIKEY-XYZ", now);
- ASSERT_TRUE(s.keyFor(tok, now).has_value());
- EXPECT_EQ(s.keyFor(tok, now).value(), "APIKEY-XYZ");
- EXPECT_FALSE(s.keyFor("bad", now).has_value());
- EXPECT_FALSE(s.keyFor(tok, now + std::chrono::minutes(11)).has_value()); // expired
- }
- TEST(Auth, RemoveInvalidates) {
- SessionStore s(std::chrono::minutes(10));
- auto now = clk::now(); std::string tok = s.create("K", now);
- s.remove(tok);
- EXPECT_FALSE(s.keyFor(tok, now).has_value());
- }
|