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

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: Change constness of iterators for android clang 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 registration_received = false;
23 unregistrationReceived = false; 23 unregistration_received = false;
24 stateReceived = false; 24 state_received = false;
25 updateIdReceived = false; 25 update_id_received = false;
26 debugMessageReceived = false; 26 debug_message_received = false;
27 invalidationReceived = false; 27 invalidation_received = false;
28 update_id_replicated = 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 registration_received = 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 unregistration_received = 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 state_received = true;
41 } 42 }
42 43
43 virtual void OnUpdateIds(const base::DictionaryValue& details) OVERRIDE { 44 virtual void OnUpdateIds(const std::string& handler,
44 updateIdReceived = true; 45 const syncer::ObjectIdSet& details) OVERRIDE {
46 update_id_received = true;
47 update_id_replicated[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 debug_message_received = 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 invalidation_received = true;
54 } 57 }
55 58
56 bool registrationReceived; 59 bool registration_received;
57 bool unregistrationReceived; 60 bool unregistration_received;
58 bool stateReceived; 61 bool state_received;
59 bool updateIdReceived; 62 bool update_id_received;
60 bool debugMessageReceived; 63 bool debug_message_received;
61 bool invalidationReceived; 64 bool invalidation_received;
65 std::map<std::string, syncer::ObjectIdSet> update_id_replicated;
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 observer_test;
69 73
70 log.RegisterForDebug(&observerTest); 74 log.RegisterObserver(&observer_test);
71 log.OnStateChange(syncer::INVALIDATIONS_ENABLED); 75 log.OnStateChange(syncer::INVALIDATIONS_ENABLED);
72 EXPECT_TRUE(observerTest.stateReceived); 76 EXPECT_TRUE(observer_test.state_received);
73 EXPECT_FALSE(observerTest.updateIdReceived); 77 EXPECT_FALSE(observer_test.update_id_received);
74 EXPECT_FALSE(observerTest.registrationReceived); 78 EXPECT_FALSE(observer_test.registration_received);
75 EXPECT_FALSE(observerTest.invalidationReceived); 79 EXPECT_FALSE(observer_test.invalidation_received);
76 EXPECT_FALSE(observerTest.unregistrationReceived); 80 EXPECT_FALSE(observer_test.unregistration_received);
77 EXPECT_FALSE(observerTest.debugMessageReceived); 81 EXPECT_FALSE(observer_test.debug_message_received);
78 82
79 observerTest.resetStates(); 83 observer_test.ResetStates();
80 84
81 log.OnInvalidation(syncer::ObjectIdInvalidationMap()); 85 log.OnInvalidation(syncer::ObjectIdInvalidationMap());
82 EXPECT_TRUE(observerTest.invalidationReceived); 86 EXPECT_TRUE(observer_test.invalidation_received);
83 EXPECT_FALSE(observerTest.stateReceived); 87 EXPECT_FALSE(observer_test.state_received);
84 EXPECT_FALSE(observerTest.updateIdReceived); 88 EXPECT_FALSE(observer_test.update_id_received);
85 EXPECT_FALSE(observerTest.registrationReceived); 89 EXPECT_FALSE(observer_test.registration_received);
86 EXPECT_FALSE(observerTest.unregistrationReceived); 90 EXPECT_FALSE(observer_test.unregistration_received);
87 EXPECT_FALSE(observerTest.debugMessageReceived); 91 EXPECT_FALSE(observer_test.debug_message_received);
88 92
89 log.UnregisterForDebug(&observerTest); 93 log.UnregisterObserver(&observer_test);
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 observer_test;
98 102
99 log.RegisterForDebug(&observerTest); 103 log.RegisterObserver(&observer_test);
100 log.UnregisterForDebug(&observerTest); 104 log.UnregisterObserver(&observer_test);
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(observer_test.registration_received);
109 EXPECT_FALSE(observerTest.unregistrationReceived); 113 EXPECT_FALSE(observer_test.unregistration_received);
110 EXPECT_FALSE(observerTest.updateIdReceived); 114 EXPECT_FALSE(observer_test.update_id_received);
111 EXPECT_FALSE(observerTest.invalidationReceived); 115 EXPECT_FALSE(observer_test.invalidation_received);
112 EXPECT_FALSE(observerTest.stateReceived); 116 EXPECT_FALSE(observer_test.state_received);
113 EXPECT_FALSE(observerTest.debugMessageReceived); 117 EXPECT_FALSE(observer_test.debug_message_received);
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 observer_test;
121 125
122 log.RegisterForDebug(&observerTest); 126 log.RegisterObserver(&observer_test);
123 EXPECT_FALSE(observerTest.stateReceived); 127 EXPECT_FALSE(observer_test.state_received);
128 EXPECT_FALSE(observer_test.update_id_received);
124 log.EmitContent(); 129 log.EmitContent();
130 // Only expect state because no Ids were registered.
131 EXPECT_TRUE(observer_test.state_received);
132 EXPECT_FALSE(observer_test.registration_received);
133 EXPECT_FALSE(observer_test.unregistration_received);
134 EXPECT_FALSE(observer_test.update_id_received);
135 EXPECT_FALSE(observer_test.invalidation_received);
136 EXPECT_FALSE(observer_test.debug_message_received);
125 137
126 EXPECT_TRUE(observerTest.stateReceived); 138 observer_test.ResetStates();
127 EXPECT_FALSE(observerTest.registrationReceived); 139 std::map<std::string, syncer::ObjectIdSet> test_map;
128 EXPECT_FALSE(observerTest.unregistrationReceived); 140 test_map["Test"] = syncer::ObjectIdSet();
129 EXPECT_FALSE(observerTest.updateIdReceived); 141 log.OnUpdateIds(test_map);
130 EXPECT_FALSE(observerTest.invalidationReceived); 142 EXPECT_TRUE(observer_test.update_id_received);
131 EXPECT_FALSE(observerTest.debugMessageReceived); 143 observer_test.ResetStates();
132 log.UnregisterForDebug(&observerTest); 144
145 log.EmitContent();
146 // Expect now state and ids change.
147 EXPECT_TRUE(observer_test.state_received);
148 EXPECT_TRUE(observer_test.update_id_received);
149 EXPECT_FALSE(observer_test.registration_received);
150 EXPECT_FALSE(observer_test.unregistration_received);
151 EXPECT_FALSE(observer_test.invalidation_received);
152 EXPECT_FALSE(observer_test.debug_message_received);
153 log.UnregisterObserver(&observer_test);
154 }
155
156 // Test that the updateId notification actually sends
157 // what was sent to the Observer.
158 // The ObserverTest rebuilds the map that was sent in pieces by the logger.
159 TEST_F(InvalidationLoggerTest, TestUpdateIdsMap) {
160 InvalidationLogger log;
161 InvalidationLoggerObserverTest observer_test;
162 std::map<std::string, syncer::ObjectIdSet> test_map;
163 log.RegisterObserver(&observer_test);
164
165 syncer::ObjectIdSet sync_set_A;
166 sync_set_A.insert(ObjectId(1000, "DataType1"));
167 sync_set_A.insert(ObjectId(1000, "DataType2"));
168 syncer::ObjectIdSet sync_set_B;
169 sync_set_B.insert(ObjectId(1020, "DataTypeA"));
170 test_map["TestA"] = sync_set_A;
171 test_map["TestB"] = sync_set_B;
172
173 log.OnUpdateIds(test_map);
174 EXPECT_EQ(test_map, observer_test.update_id_replicated);
175
176 syncer::ObjectIdSet sync_set_B2;
177 sync_set_B2.insert(ObjectId(1020, "DataTypeF"));
178 sync_set_B2.insert(ObjectId(1020, "DataTypeG"));
179 test_map["TestB"] = sync_set_B2;
180
181 log.OnUpdateIds(test_map);
182 EXPECT_EQ(test_map, observer_test.update_id_replicated);
183
184 // The emit content should return the same map too.
185 observer_test.ResetStates();
186 log.EmitContent();
187 EXPECT_EQ(test_map, observer_test.update_id_replicated);
188
189 log.UnregisterObserver(&observer_test);
133 } 190 }
134 } // namespace invalidation 191 } // namespace invalidation
OLDNEW
« no previous file with comments | « chrome/browser/invalidation/invalidation_logger_observer.h ('k') | chrome/browser/invalidation/p2p_invalidation_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698