tor-browser

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

TestOriginParser.cpp (2698B)


      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 "OriginParser.h"
      8 #include "gtest/gtest.h"
      9 #include "mozilla/OriginAttributes.h"
     10 #include "nsFmtString.h"
     11 
     12 namespace mozilla::dom::quota {
     13 
     14 TEST(DOM_Quota_OriginParser_IsUUIDOrigin, Valid)
     15 {
     16  EXPECT_TRUE(IsUUIDOrigin("uuid://1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
     17 }
     18 
     19 TEST(DOM_Quota_OriginParser_IsUUIDOrigin, Invalid)
     20 {
     21  EXPECT_FALSE(IsUUIDOrigin("Invalid UUID Origin"_ns));
     22 
     23  EXPECT_FALSE(IsUUIDOrigin("1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
     24 
     25  EXPECT_FALSE(IsUUIDOrigin("uuid://1ef9867c-e754-4303-a18b"_ns));
     26 
     27  EXPECT_FALSE(IsUUIDOrigin("uuid+++1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
     28 }
     29 
     30 TEST(DOM_Quota_OriginParser_IsUserContextSuffix, True)
     31 {
     32  const uint32_t userContextId = 5;
     33 
     34  EXPECT_TRUE(IsUserContextSuffix(
     35      nsFmtCString(FMT_STRING("^userContextId={}"), userContextId),
     36      userContextId));
     37  EXPECT_TRUE(IsUserContextSuffix(
     38      nsFmtCString(FMT_STRING("^inBrowser=1&userContextId={}"), userContextId),
     39      userContextId));
     40 }
     41 
     42 TEST(DOM_Quota_OriginParser_IsUserContextSuffix, False)
     43 {
     44  const uint32_t userContextId = 5;
     45 
     46  EXPECT_FALSE(IsUserContextSuffix(""_ns, userContextId));
     47  EXPECT_FALSE(IsUserContextSuffix("^inBrowser=1"_ns, userContextId));
     48  EXPECT_FALSE(IsUserContextSuffix("^userContextId=1"_ns, userContextId));
     49  EXPECT_FALSE(
     50      IsUserContextSuffix("^inBrowser=1&userContextId=1"_ns, userContextId));
     51 }
     52 
     53 TEST(DOM_Quota_OriginParser_IsUserContextPattern, True)
     54 {
     55  const uint32_t userContextId = 5;
     56 
     57  {
     58    OriginAttributesPattern pattern;
     59    pattern.Init(
     60        nsFmtString(FMT_STRING(u"{{ \"userContextId\": {} }}"), userContextId));
     61    EXPECT_TRUE(IsUserContextPattern(pattern, userContextId));
     62  }
     63 
     64  {
     65    OriginAttributesPattern pattern;
     66    pattern.Init(nsFmtString(
     67        FMT_STRING(u"{{ \"userContextId\": 5, \"privateBrowsingId\": 1 }}"),
     68        userContextId));
     69    EXPECT_TRUE(IsUserContextPattern(pattern, userContextId));
     70  }
     71 }
     72 
     73 TEST(DOM_Quota_OriginParser_IsUserContextPattern, False)
     74 {
     75  const uint32_t userContextId = 5;
     76 
     77  {
     78    OriginAttributesPattern pattern;
     79    pattern.Init(u"{ \"inBrowser\": 1 }"_ns);
     80    EXPECT_FALSE(IsUserContextPattern(pattern, userContextId));
     81  }
     82 
     83  {
     84    OriginAttributesPattern pattern;
     85    pattern.Init(u"{ \"userContextId\": 1 }"_ns);
     86    EXPECT_FALSE(IsUserContextPattern(pattern, userContextId));
     87  }
     88 }
     89 
     90 }  //  namespace mozilla::dom::quota