forked from drogonframework/drogon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHttpDateUnittest.cpp
35 lines (30 loc) · 965 Bytes
/
HttpDateUnittest.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <drogon/utils/Utilities.h>
#include <gtest/gtest.h>
using namespace drogon;
TEST(HttpDate, rfc850)
{
auto date = utils::getHttpDate("Fri, 05-Jun-20 09:19:38 GMT");
EXPECT_EQ(date.microSecondsSinceEpoch() / MICRO_SECONDS_PRE_SEC, 1591348778);
}
TEST(HttpDate, redditFormat)
{
auto date = utils::getHttpDate("Fri, 05-Jun-2020 09:19:38 GMT");
EXPECT_EQ(date.microSecondsSinceEpoch() / MICRO_SECONDS_PRE_SEC, 1591348778);
}
TEST(HttpDate, invalidFormat)
{
auto date = utils::getHttpDate("Fri, this format is invalid");
EXPECT_EQ(date.microSecondsSinceEpoch(), (std::numeric_limits<int64_t>::max)());
}
TEST(HttpDate, asctimeFormat)
{
auto epoch = time(nullptr);
auto str = asctime(gmtime(&epoch));
auto date = utils::getHttpDate(str);
EXPECT_EQ(date.microSecondsSinceEpoch() / MICRO_SECONDS_PRE_SEC, epoch);
}
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}