tor-browser

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

TestUsageInfo.cpp (3772B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include <cstdint>
      8 #include <ostream>
      9 
     10 #include "gtest/gtest.h"
     11 #include "mozilla/Maybe.h"
     12 #include "mozilla/dom/quota/QuotaCommon.h"
     13 #include "mozilla/dom/quota/UsageInfo.h"
     14 
     15 using namespace mozilla;
     16 using namespace mozilla::dom::quota;
     17 
     18 namespace {
     19 constexpr uint64_t kTestValue = 42;
     20 constexpr uint64_t kTestValueZero = 0;
     21 }  // namespace
     22 
     23 TEST(DOM_Quota_UsageInfo, DefaultConstructed)
     24 {
     25  const UsageInfo usageInfo;
     26  EXPECT_EQ(Nothing(), usageInfo.FileUsage());
     27  EXPECT_EQ(Nothing(), usageInfo.TotalUsage());
     28 }
     29 
     30 TEST(DOM_Quota_UsageInfo, FileOnly)
     31 {
     32  const UsageInfo usageInfo = [] {
     33    UsageInfo usageInfo;
     34    usageInfo += FileUsageType(Some(kTestValue));
     35    return usageInfo;
     36  }();
     37  EXPECT_EQ(Some(kTestValue), usageInfo.FileUsage());
     38  EXPECT_EQ(Some(kTestValue), usageInfo.TotalUsage());
     39 }
     40 
     41 TEST(DOM_Quota_UsageInfo, DatabaseOnly)
     42 {
     43  const UsageInfo usageInfo = [] {
     44    UsageInfo usageInfo;
     45    usageInfo += DatabaseUsageType(Some(kTestValue));
     46    return usageInfo;
     47  }();
     48  EXPECT_EQ(Nothing(), usageInfo.FileUsage());
     49  EXPECT_EQ(Some(kTestValue), usageInfo.TotalUsage());
     50 }
     51 
     52 TEST(DOM_Quota_UsageInfo, FileOnly_Zero)
     53 {
     54  const UsageInfo usageInfo = [] {
     55    UsageInfo usageInfo;
     56    usageInfo += FileUsageType(Some(kTestValueZero));
     57    return usageInfo;
     58  }();
     59  EXPECT_EQ(Some(kTestValueZero), usageInfo.FileUsage());
     60  EXPECT_EQ(Some(kTestValueZero), usageInfo.TotalUsage());
     61 }
     62 
     63 TEST(DOM_Quota_UsageInfo, DatabaseOnly_Zero)
     64 {
     65  const UsageInfo usageInfo = [] {
     66    UsageInfo usageInfo;
     67    usageInfo += DatabaseUsageType(Some(kTestValueZero));
     68    return usageInfo;
     69  }();
     70  EXPECT_EQ(Nothing(), usageInfo.FileUsage());
     71  EXPECT_EQ(Some(kTestValueZero), usageInfo.TotalUsage());
     72 }
     73 
     74 TEST(DOM_Quota_UsageInfo, Both)
     75 {
     76  const UsageInfo usageInfo = [] {
     77    UsageInfo usageInfo;
     78    usageInfo += FileUsageType(Some(kTestValue));
     79    usageInfo += DatabaseUsageType(Some(kTestValue));
     80    return usageInfo;
     81  }();
     82  EXPECT_EQ(Some(kTestValue), usageInfo.FileUsage());
     83  EXPECT_EQ(Some(2 * kTestValue), usageInfo.TotalUsage());
     84 }
     85 
     86 TEST(DOM_Quota_UsageInfo, Both_Zero)
     87 {
     88  const UsageInfo usageInfo = [] {
     89    UsageInfo usageInfo;
     90    usageInfo += FileUsageType(Some(kTestValueZero));
     91    usageInfo += DatabaseUsageType(Some(kTestValueZero));
     92    return usageInfo;
     93  }();
     94  EXPECT_EQ(Some(kTestValueZero), usageInfo.FileUsage());
     95  EXPECT_EQ(Some(kTestValueZero), usageInfo.TotalUsage());
     96 }
     97 
     98 TEST(DOM_Quota_UsageInfo, CapCombined)
     99 {
    100  const UsageInfo usageInfo = [] {
    101    UsageInfo usageInfo;
    102    usageInfo += FileUsageType(Some(UINT64_MAX));
    103    usageInfo += DatabaseUsageType(Some(kTestValue));
    104    return usageInfo;
    105  }();
    106  EXPECT_EQ(Some(UINT64_MAX), usageInfo.FileUsage());
    107  EXPECT_EQ(Some(UINT64_MAX), usageInfo.TotalUsage());
    108 }
    109 
    110 TEST(DOM_Quota_UsageInfo, CapFileUsage)
    111 {
    112  const UsageInfo usageInfo = [] {
    113    UsageInfo usageInfo;
    114    usageInfo += FileUsageType(Some(UINT64_MAX));
    115    usageInfo += FileUsageType(Some(kTestValue));
    116    return usageInfo;
    117  }();
    118  EXPECT_EQ(Some(UINT64_MAX), usageInfo.FileUsage());
    119  EXPECT_EQ(Some(UINT64_MAX), usageInfo.TotalUsage());
    120 }
    121 
    122 TEST(DOM_Quota_UsageInfo, CapDatabaseUsage)
    123 {
    124  const UsageInfo usageInfo = [] {
    125    UsageInfo usageInfo;
    126    usageInfo += DatabaseUsageType(Some(UINT64_MAX));
    127    usageInfo += DatabaseUsageType(Some(kTestValue));
    128    return usageInfo;
    129  }();
    130  EXPECT_EQ(Nothing(), usageInfo.FileUsage());
    131  EXPECT_EQ(Some(UINT64_MAX), usageInfo.TotalUsage());
    132 }