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