Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: chrome/browser/invalidation/invalidation_logger_unittest.cc

Issue 159773006: [invalidations] Added table with registered objectsIds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@about_invalidations_clean
Patch Set: Removed a redefinition of GetOwnerName Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/invalidation/invalidation_logger.h" 5 #include "chrome/browser/invalidation/invalidation_logger.h"
6 #include "chrome/browser/invalidation/invalidation_logger_observer.h" 6 #include "chrome/browser/invalidation/invalidation_logger_observer.h"
7 7
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace invalidation { 10 namespace invalidation {
11 11
12 class InvalidationLoggerTest : public testing::Test { 12 class InvalidationLoggerTest : public testing::Test {
13 public: 13 public:
14 InvalidationLoggerTest() {} 14 InvalidationLoggerTest() {}
15 }; 15 };
16 16
17 class InvalidationLoggerObserverTest : public InvalidationLoggerObserver { 17 class InvalidationLoggerObserverTest : public InvalidationLoggerObserver {
18 public: 18 public:
19 InvalidationLoggerObserverTest() { resetStates(); } 19 InvalidationLoggerObserverTest() { ResetStates(); }
20 20
21 void resetStates() { 21 void ResetStates() {
22 registrationReceived = false; 22 registrationReceived = false;
Nicolas Zea 2014/02/11 21:58:25 all of these variables (and all variables in the r
mferreria_g 2014/02/12 00:03:46 They are not checked by cl format. Applied that mo
23 unregistrationReceived = false; 23 unregistrationReceived = false;
24 stateReceived = false; 24 stateReceived = false;
25 updateIdReceived = false; 25 updateIdReceived = false;
26 debugMessageReceived = false; 26 debugMessageReceived = false;
27 invalidationReceived = false; 27 invalidationReceived = false;
28 updateIdsReplicated = std::map<std::string, syncer::ObjectIdSet>();
28 } 29 }
29 30
30 virtual void OnRegistration(const base::DictionaryValue& details) OVERRIDE { 31 virtual void OnRegistration(const base::DictionaryValue& details) OVERRIDE {
31 registrationReceived = true; 32 registrationReceived = true;
32 } 33 }
33 34
34 virtual void OnUnregistration(const base::DictionaryValue& details) OVERRIDE { 35 virtual void OnUnregistration(const base::DictionaryValue& details) OVERRIDE {
35 unregistrationReceived = true; 36 unregistrationReceived = true;
36 } 37 }
37 38
38 virtual void OnStateChange(const syncer::InvalidatorState& newState) 39 virtual void OnStateChange(const syncer::InvalidatorState& newState)
39 OVERRIDE { 40 OVERRIDE {
40 stateReceived = true; 41 stateReceived = true;
41 } 42 }
42 43
43 virtual void OnUpdateIds(const base::DictionaryValue& details) OVERRIDE { 44 virtual void OnUpdateIds(std::string handler,
45 const syncer::ObjectIdSet& details) OVERRIDE {
44 updateIdReceived = true; 46 updateIdReceived = true;
47 updateIdsReplicated[handler] = details;
45 } 48 }
46 49
47 virtual void OnDebugMessage(const base::DictionaryValue& details) OVERRIDE { 50 virtual void OnDebugMessage(const base::DictionaryValue& details) OVERRIDE {
48 debugMessageReceived = true; 51 debugMessageReceived = true;
49 } 52 }
50 53
51 virtual void OnInvalidation( 54 virtual void OnInvalidation(
52 const syncer::ObjectIdInvalidationMap& newInvalidations) OVERRIDE { 55 const syncer::ObjectIdInvalidationMap& newInvalidations) OVERRIDE {
53 invalidationReceived = true; 56 invalidationReceived = true;
54 } 57 }
55 58
56 bool registrationReceived; 59 bool registrationReceived;
57 bool unregistrationReceived; 60 bool unregistrationReceived;
58 bool stateReceived; 61 bool stateReceived;
59 bool updateIdReceived; 62 bool updateIdReceived;
60 bool debugMessageReceived; 63 bool debugMessageReceived;
61 bool invalidationReceived; 64 bool invalidationReceived;
65 std::map<std::string, syncer::ObjectIdSet> updateIdsReplicated;
62 }; 66 };
63 67
64 // Test that the callbacks are actually being called when observers are 68 // Test that the callbacks are actually being called when observers are
65 // registered and don't produce any other callback in the meantime. 69 // registered and don't produce any other callback in the meantime.
66 TEST_F(InvalidationLoggerTest, TestCallbacks) { 70 TEST_F(InvalidationLoggerTest, TestCallbacks) {
67 InvalidationLogger log; 71 InvalidationLogger log;
68 InvalidationLoggerObserverTest observerTest; 72 InvalidationLoggerObserverTest observerTest;
69 73
70 log.RegisterForDebug(&observerTest); 74 log.RegisterForDebug(&observerTest);
71 log.OnStateChange(syncer::INVALIDATIONS_ENABLED); 75 log.OnStateChange(syncer::INVALIDATIONS_ENABLED);
72 EXPECT_TRUE(observerTest.stateReceived); 76 EXPECT_TRUE(observerTest.stateReceived);
73 EXPECT_FALSE(observerTest.updateIdReceived); 77 EXPECT_FALSE(observerTest.updateIdReceived);
74 EXPECT_FALSE(observerTest.registrationReceived); 78 EXPECT_FALSE(observerTest.registrationReceived);
75 EXPECT_FALSE(observerTest.invalidationReceived); 79 EXPECT_FALSE(observerTest.invalidationReceived);
76 EXPECT_FALSE(observerTest.unregistrationReceived); 80 EXPECT_FALSE(observerTest.unregistrationReceived);
77 EXPECT_FALSE(observerTest.debugMessageReceived); 81 EXPECT_FALSE(observerTest.debugMessageReceived);
78 82
79 observerTest.resetStates(); 83 observerTest.ResetStates();
80 84
81 log.OnInvalidation(syncer::ObjectIdInvalidationMap()); 85 log.OnInvalidation(syncer::ObjectIdInvalidationMap());
82 EXPECT_TRUE(observerTest.invalidationReceived); 86 EXPECT_TRUE(observerTest.invalidationReceived);
83 EXPECT_FALSE(observerTest.stateReceived); 87 EXPECT_FALSE(observerTest.stateReceived);
84 EXPECT_FALSE(observerTest.updateIdReceived); 88 EXPECT_FALSE(observerTest.updateIdReceived);
85 EXPECT_FALSE(observerTest.registrationReceived); 89 EXPECT_FALSE(observerTest.registrationReceived);
86 EXPECT_FALSE(observerTest.unregistrationReceived); 90 EXPECT_FALSE(observerTest.unregistrationReceived);
87 EXPECT_FALSE(observerTest.debugMessageReceived); 91 EXPECT_FALSE(observerTest.debugMessageReceived);
88 92
89 log.UnregisterForDebug(&observerTest); 93 log.UnregisterForDebug(&observerTest);
90 } 94 }
91 95
92 // Test that after registering an observer and then unregistering it 96 // Test that after registering an observer and then unregistering it
93 // no callbacks regarding that observer are called. 97 // no callbacks regarding that observer are called.
94 // (i.e. the observer is cleanly removed) 98 // (i.e. the observer is cleanly removed)
95 TEST_F(InvalidationLoggerTest, TestReleaseOfObserver) { 99 TEST_F(InvalidationLoggerTest, TestReleaseOfObserver) {
96 InvalidationLogger log; 100 InvalidationLogger log;
97 InvalidationLoggerObserverTest observerTest; 101 InvalidationLoggerObserverTest observerTest;
98 102
99 log.RegisterForDebug(&observerTest); 103 log.RegisterForDebug(&observerTest);
100 log.UnregisterForDebug(&observerTest); 104 log.UnregisterForDebug(&observerTest);
101 105
102 log.OnInvalidation(syncer::ObjectIdInvalidationMap()); 106 log.OnInvalidation(syncer::ObjectIdInvalidationMap());
103 log.OnStateChange(syncer::INVALIDATIONS_ENABLED); 107 log.OnStateChange(syncer::INVALIDATIONS_ENABLED);
104 log.OnRegistration(base::DictionaryValue()); 108 log.OnRegistration(base::DictionaryValue());
105 log.OnUnregistration(base::DictionaryValue()); 109 log.OnUnregistration(base::DictionaryValue());
106 log.OnDebugMessage(base::DictionaryValue()); 110 log.OnDebugMessage(base::DictionaryValue());
107 log.OnUpdateIds(base::DictionaryValue()); 111 log.OnUpdateIds(std::map<std::string, syncer::ObjectIdSet>());
108 EXPECT_FALSE(observerTest.registrationReceived); 112 EXPECT_FALSE(observerTest.registrationReceived);
109 EXPECT_FALSE(observerTest.unregistrationReceived); 113 EXPECT_FALSE(observerTest.unregistrationReceived);
110 EXPECT_FALSE(observerTest.updateIdReceived); 114 EXPECT_FALSE(observerTest.updateIdReceived);
111 EXPECT_FALSE(observerTest.invalidationReceived); 115 EXPECT_FALSE(observerTest.invalidationReceived);
112 EXPECT_FALSE(observerTest.stateReceived); 116 EXPECT_FALSE(observerTest.stateReceived);
113 EXPECT_FALSE(observerTest.debugMessageReceived); 117 EXPECT_FALSE(observerTest.debugMessageReceived);
114 } 118 }
115 119
116 // Test the EmitContet in InvalidationLogger is actually 120 // Test the EmitContet in InvalidationLogger is actually
117 // sending (only) state notifications. 121 // sending state and updateIds notifications.
118 TEST_F(InvalidationLoggerTest, TestEmitContent) { 122 TEST_F(InvalidationLoggerTest, TestEmitContent) {
119 InvalidationLogger log; 123 InvalidationLogger log;
120 InvalidationLoggerObserverTest observerTest; 124 InvalidationLoggerObserverTest observerTest;
121 125
122 log.RegisterForDebug(&observerTest); 126 log.RegisterForDebug(&observerTest);
123 EXPECT_FALSE(observerTest.stateReceived); 127 EXPECT_FALSE(observerTest.stateReceived);
128 EXPECT_FALSE(observerTest.updateIdReceived);
124 log.EmitContent(); 129 log.EmitContent();
125 130 // Only expect state because no Ids were registered.
126 EXPECT_TRUE(observerTest.stateReceived); 131 EXPECT_TRUE(observerTest.stateReceived);
127 EXPECT_FALSE(observerTest.registrationReceived); 132 EXPECT_FALSE(observerTest.registrationReceived);
128 EXPECT_FALSE(observerTest.unregistrationReceived); 133 EXPECT_FALSE(observerTest.unregistrationReceived);
129 EXPECT_FALSE(observerTest.updateIdReceived); 134 EXPECT_FALSE(observerTest.updateIdReceived);
130 EXPECT_FALSE(observerTest.invalidationReceived); 135 EXPECT_FALSE(observerTest.invalidationReceived);
131 EXPECT_FALSE(observerTest.debugMessageReceived); 136 EXPECT_FALSE(observerTest.debugMessageReceived);
137
138 observerTest.ResetStates();
139 std::map<std::string, syncer::ObjectIdSet> testMap;
140 testMap["Test"] = syncer::ObjectIdSet();
141 log.OnUpdateIds(testMap);
142 EXPECT_TRUE(observerTest.updateIdReceived);
143 observerTest.ResetStates();
144
145 log.EmitContent();
146 // Expect now state and ids change.
147 EXPECT_TRUE(observerTest.stateReceived);
148 EXPECT_TRUE(observerTest.updateIdReceived);
149 EXPECT_FALSE(observerTest.registrationReceived);
150 EXPECT_FALSE(observerTest.unregistrationReceived);
151 EXPECT_FALSE(observerTest.invalidationReceived);
152 EXPECT_FALSE(observerTest.debugMessageReceived);
153 log.UnregisterForDebug(&observerTest);
154 }
155
156 // Test that the updateId notification actually sends
157 // what was is sent to the Observer.
Nicolas Zea 2014/02/11 21:58:25 nit: what was is -> what was
mferreria_g 2014/02/12 00:03:46 Done.
158 // The ObserverTest rebuilds the map that is sent in pieces by the logger.
Nicolas Zea 2014/02/11 21:58:25 nit: that is sent -> that was sent
mferreria_g 2014/02/12 00:03:46 Done.
159 TEST_F(InvalidationLoggerTest, TestUpdateIdsMap) {
160 InvalidationLogger log;
161 InvalidationLoggerObserverTest observerTest;
162 std::map<std::string, syncer::ObjectIdSet> testMap;
163 log.RegisterForDebug(&observerTest);
164
165 syncer::ObjectIdSet syncSetA;
166 syncSetA.insert(ObjectId(1000, "DataType1"));
167 syncSetA.insert(ObjectId(1000, "DataType2"));
168 syncer::ObjectIdSet syncSetB;
169 syncSetB.insert(ObjectId(1020, "DataTypeA"));
170 testMap["TestA"] = syncSetA;
171 testMap["TestB"] = syncSetB;
172
173 log.OnUpdateIds(testMap);
174 EXPECT_EQ(testMap, observerTest.updateIdsReplicated);
175
176 syncer::ObjectIdSet syncSetB2;
177 syncSetB2.insert(ObjectId(1020, "DataTypeF"));
178 syncSetB2.insert(ObjectId(1020, "DataTypeG"));
179 testMap["TestB"] = syncSetB2;
180
181 log.OnUpdateIds(testMap);
182 EXPECT_EQ(testMap, observerTest.updateIdsReplicated);
183
184 // The emit content should return the same map too.
185 observerTest.ResetStates();
186 log.EmitContent();
187 EXPECT_EQ(testMap, observerTest.updateIdsReplicated);
188
132 log.UnregisterForDebug(&observerTest); 189 log.UnregisterForDebug(&observerTest);
133 } 190 }
134 } // namespace invalidation 191 } // namespace invalidation
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698