summaryrefslogtreecommitdiffstats
path: root/netwerk/test/gtest/TestCacheControlParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/test/gtest/TestCacheControlParser.cpp')
-rw-r--r--netwerk/test/gtest/TestCacheControlParser.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/netwerk/test/gtest/TestCacheControlParser.cpp b/netwerk/test/gtest/TestCacheControlParser.cpp
new file mode 100644
index 0000000000..df1cd9ec73
--- /dev/null
+++ b/netwerk/test/gtest/TestCacheControlParser.cpp
@@ -0,0 +1,64 @@
+#include "gtest/gtest.h"
+
+#include "CacheControlParser.h"
+
+using namespace mozilla;
+using namespace mozilla::net;
+
+TEST(TestCacheControlParser, NegativeMaxAge)
+{
+ CacheControlParser cc(
+ "no-store,no-cache,max-age=-3600,max-stale=7,private"_ns);
+ ASSERT_TRUE(cc.NoStore());
+ ASSERT_TRUE(cc.NoCache());
+ uint32_t max_age{2};
+ ASSERT_FALSE(cc.MaxAge(&max_age));
+ ASSERT_EQ(max_age, 0U);
+ uint32_t max_stale;
+ ASSERT_TRUE(cc.MaxStale(&max_stale));
+ ASSERT_EQ(max_stale, 7U);
+ ASSERT_TRUE(cc.Private());
+}
+
+TEST(TestCacheControlParser, EmptyMaxAge)
+{
+ CacheControlParser cc("no-store,no-cache,max-age,max-stale=77,private"_ns);
+ ASSERT_TRUE(cc.NoStore());
+ ASSERT_TRUE(cc.NoCache());
+ uint32_t max_age{5};
+ ASSERT_FALSE(cc.MaxAge(&max_age));
+ ASSERT_EQ(max_age, 0U);
+ uint32_t max_stale;
+ ASSERT_TRUE(cc.MaxStale(&max_stale));
+ ASSERT_EQ(max_stale, 77U);
+ ASSERT_TRUE(cc.Private());
+}
+
+TEST(TestCacheControlParser, NegaTiveMaxStale)
+{
+ CacheControlParser cc(
+ "no-store,no-cache,max-age=3600,max-stale=-222,private"_ns);
+ ASSERT_TRUE(cc.NoStore());
+ ASSERT_TRUE(cc.NoCache());
+ uint32_t max_age;
+ ASSERT_TRUE(cc.MaxAge(&max_age));
+ ASSERT_EQ(max_age, 3600U);
+ uint32_t max_stale;
+ ASSERT_TRUE(cc.MaxStale(&max_stale));
+ ASSERT_EQ(max_stale, PR_UINT32_MAX);
+ ASSERT_TRUE(cc.Private());
+}
+
+TEST(TestCacheControlParser, EmptyMaxStale)
+{
+ CacheControlParser cc("no-store,no-cache,max-age=3600,max-stale,private"_ns);
+ ASSERT_TRUE(cc.NoStore());
+ ASSERT_TRUE(cc.NoCache());
+ uint32_t max_age;
+ ASSERT_TRUE(cc.MaxAge(&max_age));
+ ASSERT_EQ(max_age, 3600U);
+ uint32_t max_stale;
+ ASSERT_TRUE(cc.MaxStale(&max_stale));
+ ASSERT_EQ(max_stale, PR_UINT32_MAX);
+ ASSERT_TRUE(cc.Private());
+}