topic_invalidation_map_unittest.cc 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright 2020 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/invalidation/public/topic_invalidation_map.h"
  5. #include <memory>
  6. #include "testing/gtest/include/gtest/gtest.h"
  7. namespace invalidation {
  8. namespace {
  9. // TODO(crbug.com/1056651): some methods aren't covered by tests, it's likely
  10. // worth adding them (especially for ToValue(), which is passed to js code).
  11. class TopicInvalidationMapTest : public testing::Test {
  12. public:
  13. TopicInvalidationMapTest()
  14. : kTopicOne("one"),
  15. kTopicTwo("two"),
  16. kInv1(Invalidation::Init(kTopicOne, 10, "ten")) {
  17. set1_.insert(kTopicOne);
  18. set2_.insert(kTopicTwo);
  19. all_set_.insert(kTopicOne);
  20. all_set_.insert(kTopicTwo);
  21. one_invalidation_.Insert(kInv1);
  22. invalidate_all_.Insert(Invalidation::InitUnknownVersion(kTopicOne));
  23. invalidate_all_.Insert(Invalidation::InitUnknownVersion(kTopicTwo));
  24. }
  25. ~TopicInvalidationMapTest() override = default;
  26. protected:
  27. const Topic kTopicOne;
  28. const Topic kTopicTwo;
  29. const Invalidation kInv1;
  30. TopicSet set1_;
  31. TopicSet set2_;
  32. TopicSet all_set_;
  33. TopicInvalidationMap empty_;
  34. TopicInvalidationMap one_invalidation_;
  35. TopicInvalidationMap invalidate_all_;
  36. };
  37. TEST_F(TopicInvalidationMapTest, Empty) {
  38. EXPECT_TRUE(empty_.Empty());
  39. EXPECT_FALSE(one_invalidation_.Empty());
  40. EXPECT_FALSE(invalidate_all_.Empty());
  41. }
  42. TEST_F(TopicInvalidationMapTest, Equality) {
  43. // TODO(crbug.com/1056651): equality operator is only used in tests, so maybe
  44. // factor it away from the TopicInvalidationMap.
  45. TopicInvalidationMap empty2;
  46. EXPECT_EQ(empty_, empty2);
  47. TopicInvalidationMap one_invalidation_2;
  48. one_invalidation_2.Insert(kInv1);
  49. EXPECT_EQ(one_invalidation_, one_invalidation_2);
  50. EXPECT_FALSE(empty_ == invalidate_all_);
  51. }
  52. TEST_F(TopicInvalidationMapTest, GetTopics) {
  53. EXPECT_EQ(TopicSet(), empty_.GetTopics());
  54. EXPECT_EQ(set1_, one_invalidation_.GetTopics());
  55. EXPECT_EQ(all_set_, invalidate_all_.GetTopics());
  56. }
  57. TEST_F(TopicInvalidationMapTest, GetSubsetWithTopics) {
  58. EXPECT_TRUE(empty_.GetSubsetWithTopics(set1_).Empty());
  59. EXPECT_EQ(one_invalidation_.GetSubsetWithTopics(set1_), one_invalidation_);
  60. EXPECT_EQ(one_invalidation_.GetSubsetWithTopics(all_set_), one_invalidation_);
  61. EXPECT_TRUE(one_invalidation_.GetSubsetWithTopics(set2_).Empty());
  62. EXPECT_TRUE(invalidate_all_.GetSubsetWithTopics(TopicSet()).Empty());
  63. }
  64. } // namespace
  65. } // namespace invalidation