- add sources.
[platform/framework/web/crosswalk.git] / src / sync / notifier / object_id_invalidation_map_unittest.cc
1 // Copyright 2013 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
5 #include "sync/notifier/object_id_invalidation_map.h"
6
7 #include "google/cacheinvalidation/types.pb.h"
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace syncer {
12
13 namespace {
14
15 class ObjectIdInvalidationMapTest : public testing::Test {
16  public:
17   ObjectIdInvalidationMapTest()
18       : kIdOne(ipc::invalidation::ObjectSource::TEST, "one"),
19         kIdTwo(ipc::invalidation::ObjectSource::TEST, "two"),
20         kInv1(Invalidation::Init(kIdOne, 10, "ten")) {
21     set1.insert(kIdOne);
22     set2.insert(kIdTwo);
23     all_set.insert(kIdOne);
24     all_set.insert(kIdTwo);
25
26     one_invalidation.Insert(kInv1);
27     invalidate_all = ObjectIdInvalidationMap::InvalidateAll(all_set);
28   }
29
30  protected:
31   const invalidation::ObjectId kIdOne;
32   const invalidation::ObjectId kIdTwo;
33   const Invalidation kInv1;
34
35   ObjectIdSet set1;
36   ObjectIdSet set2;
37   ObjectIdSet all_set;
38   ObjectIdInvalidationMap empty;
39   ObjectIdInvalidationMap one_invalidation;
40   ObjectIdInvalidationMap invalidate_all;
41 };
42
43 TEST_F(ObjectIdInvalidationMapTest, Empty) {
44   EXPECT_TRUE(empty.Empty());
45   EXPECT_FALSE(one_invalidation.Empty());
46   EXPECT_FALSE(invalidate_all.Empty());
47 }
48
49 TEST_F(ObjectIdInvalidationMapTest, Equality) {
50   ObjectIdInvalidationMap empty2;
51   EXPECT_TRUE(empty == empty2);
52
53   ObjectIdInvalidationMap one_invalidation2;
54   one_invalidation2.Insert(kInv1);
55   EXPECT_TRUE(one_invalidation == one_invalidation2);
56
57   EXPECT_FALSE(empty == invalidate_all);
58 }
59
60 TEST_F(ObjectIdInvalidationMapTest, GetObjectIds) {
61   EXPECT_EQ(ObjectIdSet(), empty.GetObjectIds());
62   EXPECT_EQ(set1, one_invalidation.GetObjectIds());
63   EXPECT_EQ(all_set, invalidate_all.GetObjectIds());
64 }
65
66 TEST_F(ObjectIdInvalidationMapTest, GetSubsetWithObjectIds) {
67   EXPECT_TRUE(empty.GetSubsetWithObjectIds(set1).Empty());
68
69   EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(set1) ==
70               one_invalidation);
71   EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(all_set) ==
72               one_invalidation);
73   EXPECT_TRUE(one_invalidation.GetSubsetWithObjectIds(set2).Empty());
74
75   EXPECT_TRUE(invalidate_all.GetSubsetWithObjectIds(ObjectIdSet()).Empty());
76 }
77
78 TEST_F(ObjectIdInvalidationMapTest, SerializeEmpty) {
79   scoped_ptr<base::ListValue> value = empty.ToValue();
80   ASSERT_TRUE(value.get());
81   ObjectIdInvalidationMap deserialized;
82   deserialized.ResetFromValue(*value.get());
83   EXPECT_TRUE(empty == deserialized);
84 }
85
86 TEST_F(ObjectIdInvalidationMapTest, SerializeOneInvalidation) {
87   scoped_ptr<base::ListValue> value = one_invalidation.ToValue();
88   ASSERT_TRUE(value.get());
89   ObjectIdInvalidationMap deserialized;
90   deserialized.ResetFromValue(*value.get());
91   EXPECT_TRUE(one_invalidation == deserialized);
92 }
93
94 TEST_F(ObjectIdInvalidationMapTest, SerializeInvalidateAll) {
95   scoped_ptr<base::ListValue> value = invalidate_all.ToValue();
96   ASSERT_TRUE(value.get());
97   ObjectIdInvalidationMap deserialized;
98   deserialized.ResetFromValue(*value.get());
99   EXPECT_TRUE(invalidate_all == deserialized);
100 }
101
102 }  // namespace
103
104 }  // namespace syncer