/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "OriginParser.h"
#include "gtest/gtest.h"
#include "mozilla/OriginAttributes.h"
#include "nsFmtString.h"
namespace mozilla::dom::quota {
TEST(DOM_Quota_OriginParser_IsUUIDOrigin, Valid)
{
EXPECT_TRUE(IsUUIDOrigin(
"uuid://1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
}
TEST(DOM_Quota_OriginParser_IsUUIDOrigin, Invalid)
{
EXPECT_FALSE(IsUUIDOrigin(
"Invalid UUID Origin"_ns));
EXPECT_FALSE(IsUUIDOrigin(
"1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
EXPECT_FALSE(IsUUIDOrigin(
"uuid://1ef9867c-e754-4303-a18b"_ns));
EXPECT_FALSE(IsUUIDOrigin(
"uuid+++1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
}
TEST(DOM_Quota_OriginParser_IsUserContextSuffix,
True)
{
const uint32_t userContextId = 5;
EXPECT_TRUE(IsUserContextSuffix(
nsFmtCString(FMT_STRING(
"^userContextId={}"), userContextId),
userContextId));
EXPECT_TRUE(IsUserContextSuffix(
nsFmtCString(FMT_STRING(
"^inBrowser=1&userContextId={}"), userContextId),
userContextId));
}
TEST(DOM_Quota_OriginParser_IsUserContextSuffix,
False)
{
const uint32_t userContextId = 5;
EXPECT_FALSE(IsUserContextSuffix(
""_ns, userContextId));
EXPECT_FALSE(IsUserContextSuffix(
"^inBrowser=1"_ns, userContextId));
EXPECT_FALSE(IsUserContextSuffix(
"^userContextId=1"_ns, userContextId));
EXPECT_FALSE(
IsUserContextSuffix(
"^inBrowser=1&userContextId=1"_ns, userContextId));
}
TEST(DOM_Quota_OriginParser_IsUserContextPattern,
True)
{
const uint32_t userContextId = 5;
{
OriginAttributesPattern pattern;
pattern.Init(
nsFmtString(FMT_STRING(u
"{{ \"userContextId\
": {} }}"), userContextId));
EXPECT_TRUE(IsUserContextPattern(pattern, userContextId));
}
{
OriginAttributesPattern pattern;
pattern.Init(nsFmtString(
FMT_STRING(u
"{{ \"userContextId\
": 5, \"privateBrowsingId\
": 1 }}"),
userContextId));
EXPECT_TRUE(IsUserContextPattern(pattern, userContextId));
}
}
TEST(DOM_Quota_OriginParser_IsUserContextPattern,
False)
{
const uint32_t userContextId = 5;
{
OriginAttributesPattern pattern;
pattern.Init(u
"{ \"inBrowser\
": 1 }"_ns);
EXPECT_FALSE(IsUserContextPattern(pattern, userContextId));
}
{
OriginAttributesPattern pattern;
pattern.Init(u
"{ \"userContextId\
": 1 }"_ns);
EXPECT_FALSE(IsUserContextPattern(pattern, userContextId));
}
}
}
// namespace mozilla::dom::quota