diff options
Diffstat (limited to 'dom/quota/test/gtest/TestStorageOriginAttributes.cpp')
-rw-r--r-- | dom/quota/test/gtest/TestStorageOriginAttributes.cpp | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/dom/quota/test/gtest/TestStorageOriginAttributes.cpp b/dom/quota/test/gtest/TestStorageOriginAttributes.cpp new file mode 100644 index 0000000000..4529e1d53b --- /dev/null +++ b/dom/quota/test/gtest/TestStorageOriginAttributes.cpp @@ -0,0 +1,165 @@ +/* -*- 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 "gtest/gtest.h" +#include "mozilla/StorageOriginAttributes.h" + +namespace mozilla::dom::quota::test { + +TEST(DOM_Quota_StorageOriginAttributes, PopulateFromOrigin_NoOriginAttributes) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin("https://www.example.com"_ns, + originNoSuffix); + + ASSERT_TRUE(ok); + ASSERT_FALSE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, + PopulateFromOrigin_InvalidOriginAttribute) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^foo=bar"_ns, originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_FALSE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, + PopulateFromOrigin_InIsolatedMozBrowser_Valid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=1"_ns, originNoSuffix); + + ASSERT_TRUE(ok); + ASSERT_TRUE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, + PopulateFromOrigin_InIsolatedMozBrowser_Invalid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=0"_ns, originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_FALSE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } + + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=true"_ns, originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_FALSE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } + + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=false"_ns, originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_FALSE(originAttributes.InIsolatedMozBrowser()); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, PopulateFromOrigin_UserContextId_Valid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^userContextId=1"_ns, originNoSuffix); + + ASSERT_TRUE(ok); + ASSERT_EQ(originAttributes.UserContextId(), 1u); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } + + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^userContextId=42"_ns, originNoSuffix); + + ASSERT_TRUE(ok); + ASSERT_EQ(originAttributes.UserContextId(), 42u); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, + PopulateFromOrigin_UserContextId_Invalid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^userContextId=foo"_ns, originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_EQ(originAttributes.UserContextId(), 0u); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, PopulateFromOrigin_Mixed_Valid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=1&userContextId=1"_ns, + originNoSuffix); + + ASSERT_TRUE(ok); + ASSERT_TRUE(originAttributes.InIsolatedMozBrowser()); + ASSERT_EQ(originAttributes.UserContextId(), 1u); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +TEST(DOM_Quota_StorageOriginAttributes, PopulateFromOrigin_Mixed_Invalid) +{ + { + StorageOriginAttributes originAttributes; + nsCString originNoSuffix; + bool ok = originAttributes.PopulateFromOrigin( + "https://www.example.com^inBrowser=1&userContextId=1&foo=bar"_ns, + originNoSuffix); + + ASSERT_FALSE(ok); + ASSERT_TRUE(originAttributes.InIsolatedMozBrowser()); + ASSERT_EQ(originAttributes.UserContextId(), 1u); + ASSERT_TRUE(originNoSuffix.Equals("https://www.example.com"_ns)); + } +} + +} // namespace mozilla::dom::quota::test |