tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestCacheControlParser.cpp (3170B)


      1 #include "gtest/gtest.h"
      2 
      3 #include "CacheControlParser.h"
      4 
      5 using namespace mozilla;
      6 using namespace mozilla::net;
      7 
      8 TEST(TestCacheControlParser, NegativeMaxAge)
      9 {
     10  CacheControlParser cc(
     11      "no-store,no-cache,max-age=-3600,max-stale=7,private"_ns);
     12  ASSERT_TRUE(cc.NoStore());
     13  ASSERT_TRUE(cc.NoCache());
     14  uint32_t max_age{2};
     15  ASSERT_FALSE(cc.MaxAge(&max_age));
     16  ASSERT_EQ(max_age, 0U);
     17  uint32_t max_stale;
     18  ASSERT_TRUE(cc.MaxStale(&max_stale));
     19  ASSERT_EQ(max_stale, 7U);
     20  ASSERT_TRUE(cc.Private());
     21 }
     22 
     23 TEST(TestCacheControlParser, EmptyMaxAge)
     24 {
     25  CacheControlParser cc("no-store,no-cache,max-age,max-stale=77,private"_ns);
     26  ASSERT_TRUE(cc.NoStore());
     27  ASSERT_TRUE(cc.NoCache());
     28  uint32_t max_age{5};
     29  ASSERT_FALSE(cc.MaxAge(&max_age));
     30  ASSERT_EQ(max_age, 0U);
     31  uint32_t max_stale;
     32  ASSERT_TRUE(cc.MaxStale(&max_stale));
     33  ASSERT_EQ(max_stale, 77U);
     34  ASSERT_TRUE(cc.Private());
     35 }
     36 
     37 TEST(TestCacheControlParser, NegaTiveMaxStale)
     38 {
     39  CacheControlParser cc(
     40      "no-store,no-cache,max-age=3600,max-stale=-222,private"_ns);
     41  ASSERT_TRUE(cc.NoStore());
     42  ASSERT_TRUE(cc.NoCache());
     43  uint32_t max_age;
     44  ASSERT_TRUE(cc.MaxAge(&max_age));
     45  ASSERT_EQ(max_age, 3600U);
     46  uint32_t max_stale;
     47  ASSERT_TRUE(cc.MaxStale(&max_stale));
     48  ASSERT_EQ(max_stale, PR_UINT32_MAX);
     49  ASSERT_TRUE(cc.Private());
     50 }
     51 
     52 TEST(TestCacheControlParser, EmptyMaxStale)
     53 {
     54  CacheControlParser cc("no-store,no-cache,max-age=3600,max-stale,private"_ns);
     55  ASSERT_TRUE(cc.NoStore());
     56  ASSERT_TRUE(cc.NoCache());
     57  uint32_t max_age;
     58  ASSERT_TRUE(cc.MaxAge(&max_age));
     59  ASSERT_EQ(max_age, 3600U);
     60  uint32_t max_stale;
     61  ASSERT_TRUE(cc.MaxStale(&max_stale));
     62  ASSERT_EQ(max_stale, PR_UINT32_MAX);
     63  ASSERT_TRUE(cc.Private());
     64 }
     65 // cache control parser case-insensitive`
     66 TEST(TestCacheControlParser, CaseInsensitive)
     67 {
     68  CacheControlParser cc(
     69      "No-Store,No-Cache,Max-Age=3600,Max-Stale=7,Private,Min-Fresh=1,Stale-while-revalidate=3"_ns);
     70  ASSERT_TRUE(cc.NoStore());
     71  ASSERT_TRUE(cc.NoCache());
     72  uint32_t max_age;
     73  ASSERT_TRUE(cc.MaxAge(&max_age));
     74  ASSERT_EQ(max_age, 3600U);
     75  uint32_t max_stale;
     76  ASSERT_TRUE(cc.MaxStale(&max_stale));
     77  ASSERT_EQ(max_stale, 7U);
     78  ASSERT_TRUE(cc.Private());
     79  uint32_t min_fresh;
     80  ASSERT_TRUE(cc.MinFresh(&min_fresh));
     81  ASSERT_EQ(min_fresh, 1U);
     82  uint32_t stale_while_revalidate;
     83  ASSERT_TRUE(cc.StaleWhileRevalidate(&stale_while_revalidate));
     84  ASSERT_EQ(stale_while_revalidate, 3U);
     85 
     86  // Test case-insensitive capitalization
     87  CacheControlParser cc2(
     88      "NO-STORE,NO-CACHE,MAX-AGE=2600,MAX-STALE=12,PUBLIC,MIN-FRESH=3,STALE-WHILE-REVALIDATE=8"_ns);
     89  ASSERT_TRUE(cc2.NoStore());
     90  ASSERT_TRUE(cc2.NoCache());
     91  ASSERT_TRUE(cc2.MaxAge(&max_age));
     92  ASSERT_EQ(max_age, 2600U);
     93  ASSERT_TRUE(cc2.MaxStale(&max_stale));
     94  ASSERT_EQ(max_stale, 12u);
     95  ASSERT_TRUE(cc2.Public());
     96  ASSERT_TRUE(cc2.MinFresh(&min_fresh));
     97  ASSERT_EQ(min_fresh, 3U);
     98  ASSERT_TRUE(cc2.StaleWhileRevalidate(&stale_while_revalidate));
     99  ASSERT_EQ(stale_while_revalidate, 8U);
    100 }
    101 
    102 TEST(TestCacheControlParser, NoCacheAfterNoStore)
    103 {
    104  CacheControlParser cc("no-store, no-cache"_ns);
    105  ASSERT_TRUE(cc.NoCache());
    106  ASSERT_TRUE(cc.NoStore());
    107 }