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

Side by Side Diff: components/download/internal/model_impl_unittest.cc

Issue 2881173003: Download Service : Added leveldb proto layer (Closed)
Patch Set: comments Created 3 years, 7 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "components/download/internal/model_impl.h" 5 #include "components/download/internal/model_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 68 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
69 std::vector<Entry> entries = {entry1, entry2}; 69 std::vector<Entry> entries = {entry1, entry2};
70 70
71 InSequence sequence; 71 InSequence sequence;
72 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 72 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
73 73
74 model_->Initialize(); 74 model_->Initialize();
75 EXPECT_TRUE(store_->init_called()); 75 EXPECT_TRUE(store_->init_called());
76 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries)); 76 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries));
77 77
78 EXPECT_TRUE(test::SuperficialEntryCompare(&entry1, model_->Get(entry1.guid))); 78 EXPECT_TRUE(test::CompareEntry(&entry1, model_->Get(entry1.guid)));
79 EXPECT_TRUE(test::SuperficialEntryCompare(&entry2, model_->Get(entry2.guid))); 79 EXPECT_TRUE(test::CompareEntry(&entry2, model_->Get(entry2.guid)));
80 } 80 }
81 81
82 TEST_F(DownloadServiceModelImplTest, BadInit) { 82 TEST_F(DownloadServiceModelImplTest, BadInit) {
83 EXPECT_CALL(client_, OnInitialized(false)).Times(1); 83 EXPECT_CALL(client_, OnInitialized(false)).Times(1);
84 84
85 model_->Initialize(); 85 model_->Initialize();
86 EXPECT_TRUE(store_->init_called()); 86 EXPECT_TRUE(store_->init_called());
87 store_->TriggerInit(false, base::MakeUnique<std::vector<Entry>>()); 87 store_->TriggerInit(false, base::MakeUnique<std::vector<Entry>>());
88 } 88 }
89 89
(...skipping 17 matching lines...) Expand all
107 107
108 InSequence sequence; 108 InSequence sequence;
109 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 109 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
110 EXPECT_CALL(client_, OnItemAdded(true, entry1.client, entry1.guid)).Times(1); 110 EXPECT_CALL(client_, OnItemAdded(true, entry1.client, entry1.guid)).Times(1);
111 EXPECT_CALL(client_, OnItemAdded(false, entry2.client, entry2.guid)).Times(1); 111 EXPECT_CALL(client_, OnItemAdded(false, entry2.client, entry2.guid)).Times(1);
112 112
113 model_->Initialize(); 113 model_->Initialize();
114 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>()); 114 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>());
115 115
116 model_->Add(entry1); 116 model_->Add(entry1);
117 EXPECT_TRUE(test::SuperficialEntryCompare(&entry1, model_->Get(entry1.guid))); 117 EXPECT_TRUE(test::CompareEntry(&entry1, model_->Get(entry1.guid)));
118 EXPECT_TRUE( 118 EXPECT_TRUE(test::CompareEntry(&entry1, store_->LastUpdatedEntry()));
119 test::SuperficialEntryCompare(&entry1, store_->LastUpdatedEntry()));
120 store_->TriggerUpdate(true); 119 store_->TriggerUpdate(true);
121 120
122 model_->Add(entry2); 121 model_->Add(entry2);
123 EXPECT_TRUE(test::SuperficialEntryCompare(&entry2, model_->Get(entry2.guid))); 122 EXPECT_TRUE(test::CompareEntry(&entry2, model_->Get(entry2.guid)));
124 EXPECT_TRUE( 123 EXPECT_TRUE(test::CompareEntry(&entry2, store_->LastUpdatedEntry()));
125 test::SuperficialEntryCompare(&entry2, store_->LastUpdatedEntry()));
126 124
127 store_->TriggerUpdate(false); 125 store_->TriggerUpdate(false);
128 EXPECT_EQ(nullptr, model_->Get(entry2.guid)); 126 EXPECT_EQ(nullptr, model_->Get(entry2.guid));
129 } 127 }
130 128
131 TEST_F(DownloadServiceModelImplTest, Update) { 129 TEST_F(DownloadServiceModelImplTest, Update) {
132 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 130 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
133 131
134 Entry entry2(entry1); 132 Entry entry2(entry1);
135 entry2.state = Entry::State::AVAILABLE; 133 entry2.state = Entry::State::AVAILABLE;
136 134
137 Entry entry3(entry1); 135 Entry entry3(entry1);
138 entry3.state = Entry::State::ACTIVE; 136 entry3.state = Entry::State::ACTIVE;
139 137
140 std::vector<Entry> entries = {entry1}; 138 std::vector<Entry> entries = {entry1};
141 139
142 InSequence sequence; 140 InSequence sequence;
143 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 141 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
144 EXPECT_CALL(client_, OnItemUpdated(true, entry1.client, entry1.guid)) 142 EXPECT_CALL(client_, OnItemUpdated(true, entry1.client, entry1.guid))
145 .Times(1); 143 .Times(1);
146 EXPECT_CALL(client_, OnItemUpdated(false, entry1.client, entry1.guid)) 144 EXPECT_CALL(client_, OnItemUpdated(false, entry1.client, entry1.guid))
147 .Times(1); 145 .Times(1);
148 146
149 model_->Initialize(); 147 model_->Initialize();
150 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries)); 148 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries));
151 149
152 model_->Update(entry2); 150 model_->Update(entry2);
153 EXPECT_TRUE(test::SuperficialEntryCompare(&entry2, model_->Get(entry2.guid))); 151 EXPECT_TRUE(test::CompareEntry(&entry2, model_->Get(entry2.guid)));
154 EXPECT_TRUE( 152 EXPECT_TRUE(test::CompareEntry(&entry2, store_->LastUpdatedEntry()));
155 test::SuperficialEntryCompare(&entry2, store_->LastUpdatedEntry()));
156 store_->TriggerUpdate(true); 153 store_->TriggerUpdate(true);
157 154
158 model_->Update(entry3); 155 model_->Update(entry3);
159 EXPECT_TRUE(test::SuperficialEntryCompare(&entry3, model_->Get(entry3.guid))); 156 EXPECT_TRUE(test::CompareEntry(&entry3, model_->Get(entry3.guid)));
160 EXPECT_TRUE( 157 EXPECT_TRUE(test::CompareEntry(&entry3, store_->LastUpdatedEntry()));
161 test::SuperficialEntryCompare(&entry3, store_->LastUpdatedEntry()));
162 158
163 store_->TriggerUpdate(false); 159 store_->TriggerUpdate(false);
164 EXPECT_TRUE(test::SuperficialEntryCompare(&entry3, model_->Get(entry3.guid))); 160 EXPECT_TRUE(test::CompareEntry(&entry3, model_->Get(entry3.guid)));
165 } 161 }
166 162
167 TEST_F(DownloadServiceModelImplTest, Remove) { 163 TEST_F(DownloadServiceModelImplTest, Remove) {
168 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 164 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
169 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 165 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
170 std::vector<Entry> entries = {entry1, entry2}; 166 std::vector<Entry> entries = {entry1, entry2};
171 167
172 InSequence sequence; 168 InSequence sequence;
173 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 169 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
174 EXPECT_CALL(client_, OnItemRemoved(true, entry1.client, entry1.guid)) 170 EXPECT_CALL(client_, OnItemRemoved(true, entry1.client, entry1.guid))
(...skipping 19 matching lines...) Expand all
194 Entry entry = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 190 Entry entry = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
195 191
196 std::vector<Entry> entries = {entry}; 192 std::vector<Entry> entries = {entry};
197 193
198 InSequence sequence; 194 InSequence sequence;
199 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 195 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
200 196
201 model_->Initialize(); 197 model_->Initialize();
202 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries)); 198 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries));
203 199
204 EXPECT_TRUE(test::SuperficialEntryCompare(&entry, model_->Get(entry.guid))); 200 EXPECT_TRUE(test::CompareEntry(&entry, model_->Get(entry.guid)));
205 EXPECT_EQ(nullptr, model_->Get(base::GenerateGUID())); 201 EXPECT_EQ(nullptr, model_->Get(base::GenerateGUID()));
206 } 202 }
207 203
208 TEST_F(DownloadServiceModelImplTest, PeekEntries) { 204 TEST_F(DownloadServiceModelImplTest, PeekEntries) {
209 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 205 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
210 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 206 Entry entry2 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
211 std::vector<Entry> entries = {entry1, entry2}; 207 std::vector<Entry> entries = {entry1, entry2};
212 208
213 InSequence sequence; 209 InSequence sequence;
214 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 210 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
215 211
216 model_->Initialize(); 212 model_->Initialize();
217 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries)); 213 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries));
218 214
219 std::vector<Entry*> expected_peek = {&entry1, &entry2}; 215 std::vector<Entry*> expected_peek = {&entry1, &entry2};
220 216
221 EXPECT_TRUE( 217 EXPECT_TRUE(test::CompareEntryList(expected_peek, model_->PeekEntries()));
222 test::SuperficialEntryListCompare(expected_peek, model_->PeekEntries()));
223 } 218 }
224 219
225 TEST_F(DownloadServiceModelImplTest, TestRemoveAfterAdd) { 220 TEST_F(DownloadServiceModelImplTest, TestRemoveAfterAdd) {
226 Entry entry = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 221 Entry entry = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
227 222
228 InSequence sequence; 223 InSequence sequence;
229 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 224 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
230 EXPECT_CALL(client_, OnItemAdded(_, _, _)).Times(0); 225 EXPECT_CALL(client_, OnItemAdded(_, _, _)).Times(0);
231 EXPECT_CALL(client_, OnItemRemoved(true, entry.client, entry.guid)).Times(1); 226 EXPECT_CALL(client_, OnItemRemoved(true, entry.client, entry.guid)).Times(1);
232 227
233 model_->Initialize(); 228 model_->Initialize();
234 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>()); 229 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>());
235 230
236 model_->Add(entry); 231 model_->Add(entry);
237 EXPECT_TRUE(test::SuperficialEntryCompare(&entry, model_->Get(entry.guid))); 232 EXPECT_TRUE(test::CompareEntry(&entry, model_->Get(entry.guid)));
238 233
239 model_->Remove(entry.guid); 234 model_->Remove(entry.guid);
240 EXPECT_EQ(nullptr, model_->Get(entry.guid)); 235 EXPECT_EQ(nullptr, model_->Get(entry.guid));
241 236
242 store_->TriggerUpdate(true); 237 store_->TriggerUpdate(true);
243 store_->TriggerRemove(true); 238 store_->TriggerRemove(true);
244 } 239 }
245 240
246 TEST_F(DownloadServiceModelImplTest, TestRemoveAfterUpdate) { 241 TEST_F(DownloadServiceModelImplTest, TestRemoveAfterUpdate) {
247 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID()); 242 Entry entry1 = test::BuildEntry(DownloadClient::TEST, base::GenerateGUID());
248 243
249 Entry entry2(entry1); 244 Entry entry2(entry1);
250 entry2.state = Entry::State::AVAILABLE; 245 entry2.state = Entry::State::AVAILABLE;
251 246
252 std::vector<Entry> entries = {entry1}; 247 std::vector<Entry> entries = {entry1};
253 248
254 InSequence sequence; 249 InSequence sequence;
255 EXPECT_CALL(client_, OnInitialized(true)).Times(1); 250 EXPECT_CALL(client_, OnInitialized(true)).Times(1);
256 EXPECT_CALL(client_, OnItemUpdated(_, _, _)).Times(0); 251 EXPECT_CALL(client_, OnItemUpdated(_, _, _)).Times(0);
257 EXPECT_CALL(client_, OnItemRemoved(true, entry1.client, entry1.guid)) 252 EXPECT_CALL(client_, OnItemRemoved(true, entry1.client, entry1.guid))
258 .Times(1); 253 .Times(1);
259 254
260 model_->Initialize(); 255 model_->Initialize();
261 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries)); 256 store_->TriggerInit(true, base::MakeUnique<std::vector<Entry>>(entries));
262 EXPECT_TRUE(test::SuperficialEntryCompare(&entry1, model_->Get(entry1.guid))); 257 EXPECT_TRUE(test::CompareEntry(&entry1, model_->Get(entry1.guid)));
263 258
264 model_->Update(entry2); 259 model_->Update(entry2);
265 EXPECT_TRUE(test::SuperficialEntryCompare(&entry2, model_->Get(entry2.guid))); 260 EXPECT_TRUE(test::CompareEntry(&entry2, model_->Get(entry2.guid)));
266 261
267 model_->Remove(entry2.guid); 262 model_->Remove(entry2.guid);
268 EXPECT_EQ(nullptr, model_->Get(entry2.guid)); 263 EXPECT_EQ(nullptr, model_->Get(entry2.guid));
269 264
270 store_->TriggerUpdate(true); 265 store_->TriggerUpdate(true);
271 store_->TriggerRemove(true); 266 store_->TriggerRemove(true);
272 } 267 }
273 268
274 } // namespace download 269 } // namespace download
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698