topic_and_domains_unittest.cc 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/browsing_topics/topic_and_domains.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace browsing_topics {
  7. class TopicAndDomainsTest : public testing::Test {};
  8. TEST_F(TopicAndDomainsTest, FromEmptyDictionaryValue) {
  9. TopicAndDomains read_topic_and_domains =
  10. TopicAndDomains::FromDictValue(base::Value::Dict());
  11. EXPECT_FALSE(read_topic_and_domains.IsValid());
  12. EXPECT_EQ(read_topic_and_domains.topic(), Topic(0));
  13. EXPECT_TRUE(read_topic_and_domains.hashed_domains().empty());
  14. }
  15. TEST_F(TopicAndDomainsTest, EmptyTopicAndDomains_ToAndFromDictValue) {
  16. TopicAndDomains topic_and_domains;
  17. base::Value::Dict dict_value = topic_and_domains.ToDictValue();
  18. TopicAndDomains read_topic_and_domains =
  19. TopicAndDomains::FromDictValue(dict_value);
  20. EXPECT_FALSE(read_topic_and_domains.IsValid());
  21. EXPECT_EQ(read_topic_and_domains.topic(), Topic(0));
  22. EXPECT_TRUE(read_topic_and_domains.hashed_domains().empty());
  23. }
  24. TEST_F(TopicAndDomainsTest, PopulatedTopicAndDomains_ToAndFromValue) {
  25. TopicAndDomains topic_and_domains(
  26. Topic(2),
  27. /*hashed_domains=*/{HashedDomain(123), HashedDomain(456)});
  28. base::Value::Dict dict_value = topic_and_domains.ToDictValue();
  29. TopicAndDomains read_topic_and_domains =
  30. TopicAndDomains::FromDictValue(dict_value);
  31. EXPECT_TRUE(read_topic_and_domains.IsValid());
  32. EXPECT_EQ(read_topic_and_domains.topic(), Topic(2));
  33. EXPECT_EQ(read_topic_and_domains.hashed_domains(),
  34. std::set({HashedDomain(123), HashedDomain(456)}));
  35. }
  36. TEST_F(TopicAndDomainsTest, ClearDomain) {
  37. TopicAndDomains topic_and_domains(
  38. Topic(2),
  39. /*hashed_domains=*/{HashedDomain(123), HashedDomain(456)});
  40. topic_and_domains.ClearDomain(HashedDomain(123));
  41. EXPECT_EQ(topic_and_domains.topic(), Topic(2));
  42. EXPECT_EQ(topic_and_domains.hashed_domains().size(), 1u);
  43. EXPECT_EQ(*topic_and_domains.hashed_domains().begin(), HashedDomain(456));
  44. }
  45. } // namespace browsing_topics