OLD | NEW |
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 "content/browser/service_worker/service_worker_database.h" | 5 #include "content/browser/service_worker/service_worker_database.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 | 73 |
74 } // namespace | 74 } // namespace |
75 | 75 |
76 TEST(ServiceWorkerDatabaseTest, OpenDatabase) { | 76 TEST(ServiceWorkerDatabaseTest, OpenDatabase) { |
77 base::ScopedTempDir database_dir; | 77 base::ScopedTempDir database_dir; |
78 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); | 78 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); |
79 scoped_ptr<ServiceWorkerDatabase> database( | 79 scoped_ptr<ServiceWorkerDatabase> database( |
80 CreateDatabase(database_dir.path())); | 80 CreateDatabase(database_dir.path())); |
81 | 81 |
82 // Should be false because the database does not exist at the path. | 82 // Should be false because the database does not exist at the path. |
83 EXPECT_FALSE(database->LazyOpen(false)); | 83 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 84 database->LazyOpen(false)); |
84 | 85 |
85 EXPECT_TRUE(database->LazyOpen(true)); | 86 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
86 | 87 |
87 database.reset(CreateDatabase(database_dir.path())); | 88 database.reset(CreateDatabase(database_dir.path())); |
88 EXPECT_TRUE(database->LazyOpen(false)); | 89 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(false)); |
89 } | 90 } |
90 | 91 |
91 TEST(ServiceWorkerDatabaseTest, OpenDatabase_InMemory) { | 92 TEST(ServiceWorkerDatabaseTest, OpenDatabase_InMemory) { |
92 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 93 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
93 | 94 |
94 // Should be false because the database does not exist in memory. | 95 // Should be false because the database does not exist in memory. |
95 EXPECT_FALSE(database->LazyOpen(false)); | 96 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 97 database->LazyOpen(false)); |
96 | 98 |
97 EXPECT_TRUE(database->LazyOpen(true)); | 99 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
98 database.reset(CreateDatabaseInMemory()); | 100 database.reset(CreateDatabaseInMemory()); |
99 | 101 |
100 // Should be false because the database is not persistent. | 102 // Should be false because the database is not persistent. |
101 EXPECT_FALSE(database->LazyOpen(false)); | 103 EXPECT_EQ(ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, |
| 104 database->LazyOpen(false)); |
102 } | 105 } |
103 | 106 |
104 TEST(ServiceWorkerDatabaseTest, DatabaseVersion) { | 107 TEST(ServiceWorkerDatabaseTest, DatabaseVersion) { |
105 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 108 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
106 EXPECT_TRUE(database->LazyOpen(true)); | 109 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
107 | 110 |
108 // Opening a new database does not write anything, so its schema version | 111 // Opening a new database does not write anything, so its schema version |
109 // should be 0. | 112 // should be 0. |
110 int64 db_version = -1; | 113 int64 db_version = -1; |
111 EXPECT_TRUE(database->ReadDatabaseVersion(&db_version)); | 114 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 115 database->ReadDatabaseVersion(&db_version)); |
112 EXPECT_EQ(0u, db_version); | 116 EXPECT_EQ(0u, db_version); |
113 | 117 |
114 // First writing triggers database initialization and bumps the schema | 118 // First writing triggers database initialization and bumps the schema |
115 // version. | 119 // version. |
116 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; | 120 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; |
117 ServiceWorkerDatabase::RegistrationData data; | 121 ServiceWorkerDatabase::RegistrationData data; |
118 ASSERT_TRUE(database->WriteRegistration(data, resources)); | 122 ASSERT_TRUE(database->WriteRegistration(data, resources)); |
119 | 123 |
120 EXPECT_TRUE(database->ReadDatabaseVersion(&db_version)); | 124 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 125 database->ReadDatabaseVersion(&db_version)); |
121 EXPECT_LT(0, db_version); | 126 EXPECT_LT(0, db_version); |
122 } | 127 } |
123 | 128 |
124 TEST(ServiceWorkerDatabaseTest, GetNextAvailableIds) { | 129 TEST(ServiceWorkerDatabaseTest, GetNextAvailableIds) { |
125 base::ScopedTempDir database_dir; | 130 base::ScopedTempDir database_dir; |
126 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); | 131 ASSERT_TRUE(database_dir.CreateUniqueTempDir()); |
127 scoped_ptr<ServiceWorkerDatabase> database( | 132 scoped_ptr<ServiceWorkerDatabase> database( |
128 CreateDatabase(database_dir.path())); | 133 CreateDatabase(database_dir.path())); |
129 | 134 |
130 GURL origin("http://example.com"); | 135 GURL origin("http://example.com"); |
131 | 136 |
132 // The database has never been used, so returns initial values. | 137 // The database has never been used, so returns initial values. |
133 AvailableIds ids; | 138 AvailableIds ids; |
134 EXPECT_EQ(SERVICE_WORKER_OK, database->GetNextAvailableIds( | 139 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( |
135 &ids.reg_id, &ids.ver_id, &ids.res_id)); | 140 &ids.reg_id, &ids.ver_id, &ids.res_id)); |
136 EXPECT_EQ(0, ids.reg_id); | 141 EXPECT_EQ(0, ids.reg_id); |
137 EXPECT_EQ(0, ids.ver_id); | 142 EXPECT_EQ(0, ids.ver_id); |
138 EXPECT_EQ(0, ids.res_id); | 143 EXPECT_EQ(0, ids.res_id); |
139 | 144 |
140 ASSERT_TRUE(database->LazyOpen(true)); | 145 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); |
141 EXPECT_EQ(SERVICE_WORKER_OK, database->GetNextAvailableIds( | 146 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( |
142 &ids.reg_id, &ids.ver_id, &ids.res_id)); | 147 &ids.reg_id, &ids.ver_id, &ids.res_id)); |
143 EXPECT_EQ(0, ids.reg_id); | 148 EXPECT_EQ(0, ids.reg_id); |
144 EXPECT_EQ(0, ids.ver_id); | 149 EXPECT_EQ(0, ids.ver_id); |
145 EXPECT_EQ(0, ids.res_id); | 150 EXPECT_EQ(0, ids.res_id); |
146 | 151 |
147 // Writing a registration bumps the next available ids. | 152 // Writing a registration bumps the next available ids. |
148 std::vector<Resource> resources; | 153 std::vector<Resource> resources; |
149 RegistrationData data1; | 154 RegistrationData data1; |
150 data1.registration_id = 100; | 155 data1.registration_id = 100; |
151 data1.scope = URL(origin, "/foo"); | 156 data1.scope = URL(origin, "/foo"); |
152 data1.script = URL(origin, "/script1.js"); | 157 data1.script = URL(origin, "/script1.js"); |
153 data1.version_id = 200; | 158 data1.version_id = 200; |
154 ASSERT_TRUE(database->WriteRegistration(data1, resources)); | 159 ASSERT_TRUE(database->WriteRegistration(data1, resources)); |
155 | 160 |
156 EXPECT_EQ(SERVICE_WORKER_OK, database->GetNextAvailableIds( | 161 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( |
157 &ids.reg_id, &ids.ver_id, &ids.res_id)); | 162 &ids.reg_id, &ids.ver_id, &ids.res_id)); |
158 EXPECT_EQ(101, ids.reg_id); | 163 EXPECT_EQ(101, ids.reg_id); |
159 EXPECT_EQ(201, ids.ver_id); | 164 EXPECT_EQ(201, ids.ver_id); |
160 EXPECT_EQ(0, ids.res_id); | 165 EXPECT_EQ(0, ids.res_id); |
161 | 166 |
162 // Writing a registration whose ids are lower than the stored ones should not | 167 // Writing a registration whose ids are lower than the stored ones should not |
163 // bump the next available ids. | 168 // bump the next available ids. |
164 RegistrationData data2; | 169 RegistrationData data2; |
165 data2.registration_id = 10; | 170 data2.registration_id = 10; |
166 data2.scope = URL(origin, "/bar"); | 171 data2.scope = URL(origin, "/bar"); |
167 data2.script = URL(origin, "/script2.js"); | 172 data2.script = URL(origin, "/script2.js"); |
168 data2.version_id = 20; | 173 data2.version_id = 20; |
169 ASSERT_TRUE(database->WriteRegistration(data2, resources)); | 174 ASSERT_TRUE(database->WriteRegistration(data2, resources)); |
170 | 175 |
171 // Close and reopen the database to verify the stored values. | 176 // Close and reopen the database to verify the stored values. |
172 database.reset(CreateDatabase(database_dir.path())); | 177 database.reset(CreateDatabase(database_dir.path())); |
173 | 178 |
174 EXPECT_EQ(SERVICE_WORKER_OK, database->GetNextAvailableIds( | 179 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->GetNextAvailableIds( |
175 &ids.reg_id, &ids.ver_id, &ids.res_id)); | 180 &ids.reg_id, &ids.ver_id, &ids.res_id)); |
176 EXPECT_EQ(101, ids.reg_id); | 181 EXPECT_EQ(101, ids.reg_id); |
177 EXPECT_EQ(201, ids.ver_id); | 182 EXPECT_EQ(201, ids.ver_id); |
178 EXPECT_EQ(0, ids.res_id); | 183 EXPECT_EQ(0, ids.res_id); |
179 } | 184 } |
180 | 185 |
181 TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) { | 186 TEST(ServiceWorkerDatabaseTest, GetOriginsWithRegistrations) { |
182 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 187 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
183 | 188 |
184 std::set<GURL> origins; | 189 std::set<GURL> origins; |
185 EXPECT_EQ(SERVICE_WORKER_OK, database->GetOriginsWithRegistrations(&origins)); | 190 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 191 database->GetOriginsWithRegistrations(&origins)); |
186 EXPECT_TRUE(origins.empty()); | 192 EXPECT_TRUE(origins.empty()); |
187 | 193 |
188 std::vector<Resource> resources; | 194 std::vector<Resource> resources; |
189 | 195 |
190 GURL origin1("http://example.com"); | 196 GURL origin1("http://example.com"); |
191 RegistrationData data1; | 197 RegistrationData data1; |
192 data1.registration_id = 123; | 198 data1.registration_id = 123; |
193 data1.scope = URL(origin1, "/foo"); | 199 data1.scope = URL(origin1, "/foo"); |
194 data1.script = URL(origin1, "/script1.js"); | 200 data1.script = URL(origin1, "/script1.js"); |
195 data1.version_id = 456; | 201 data1.version_id = 456; |
(...skipping 17 matching lines...) Expand all Loading... |
213 | 219 |
214 // |origin3| has two registrations. | 220 // |origin3| has two registrations. |
215 RegistrationData data4; | 221 RegistrationData data4; |
216 data4.registration_id = 456; | 222 data4.registration_id = 456; |
217 data4.scope = URL(origin3, "/fuga"); | 223 data4.scope = URL(origin3, "/fuga"); |
218 data4.script = URL(origin3, "/script4.js"); | 224 data4.script = URL(origin3, "/script4.js"); |
219 data4.version_id = 789; | 225 data4.version_id = 789; |
220 ASSERT_TRUE(database->WriteRegistration(data4, resources)); | 226 ASSERT_TRUE(database->WriteRegistration(data4, resources)); |
221 | 227 |
222 origins.clear(); | 228 origins.clear(); |
223 EXPECT_EQ(SERVICE_WORKER_OK, database->GetOriginsWithRegistrations(&origins)); | 229 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 230 database->GetOriginsWithRegistrations(&origins)); |
224 EXPECT_EQ(3U, origins.size()); | 231 EXPECT_EQ(3U, origins.size()); |
225 EXPECT_TRUE(ContainsKey(origins, origin1)); | 232 EXPECT_TRUE(ContainsKey(origins, origin1)); |
226 EXPECT_TRUE(ContainsKey(origins, origin2)); | 233 EXPECT_TRUE(ContainsKey(origins, origin2)); |
227 EXPECT_TRUE(ContainsKey(origins, origin3)); | 234 EXPECT_TRUE(ContainsKey(origins, origin3)); |
228 | 235 |
229 // |origin3| has another registration, so should not remove it from the | 236 // |origin3| has another registration, so should not remove it from the |
230 // unique origin list. | 237 // unique origin list. |
231 ASSERT_TRUE(database->DeleteRegistration(data4.registration_id, origin3)); | 238 ASSERT_TRUE(database->DeleteRegistration(data4.registration_id, origin3)); |
232 | 239 |
233 origins.clear(); | 240 origins.clear(); |
234 EXPECT_EQ(SERVICE_WORKER_OK, database->GetOriginsWithRegistrations(&origins)); | 241 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 242 database->GetOriginsWithRegistrations(&origins)); |
235 EXPECT_EQ(3U, origins.size()); | 243 EXPECT_EQ(3U, origins.size()); |
236 EXPECT_TRUE(ContainsKey(origins, origin1)); | 244 EXPECT_TRUE(ContainsKey(origins, origin1)); |
237 EXPECT_TRUE(ContainsKey(origins, origin2)); | 245 EXPECT_TRUE(ContainsKey(origins, origin2)); |
238 EXPECT_TRUE(ContainsKey(origins, origin3)); | 246 EXPECT_TRUE(ContainsKey(origins, origin3)); |
239 | 247 |
240 // |origin3| should be removed from the unique origin list. | 248 // |origin3| should be removed from the unique origin list. |
241 ASSERT_TRUE(database->DeleteRegistration(data3.registration_id, origin3)); | 249 ASSERT_TRUE(database->DeleteRegistration(data3.registration_id, origin3)); |
242 | 250 |
243 origins.clear(); | 251 origins.clear(); |
244 EXPECT_EQ(SERVICE_WORKER_OK, database->GetOriginsWithRegistrations(&origins)); | 252 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 253 database->GetOriginsWithRegistrations(&origins)); |
245 EXPECT_EQ(2U, origins.size()); | 254 EXPECT_EQ(2U, origins.size()); |
246 EXPECT_TRUE(ContainsKey(origins, origin1)); | 255 EXPECT_TRUE(ContainsKey(origins, origin1)); |
247 EXPECT_TRUE(ContainsKey(origins, origin2)); | 256 EXPECT_TRUE(ContainsKey(origins, origin2)); |
248 } | 257 } |
249 | 258 |
250 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) { | 259 TEST(ServiceWorkerDatabaseTest, GetRegistrationsForOrigin) { |
251 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 260 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
252 | 261 |
253 GURL origin1("http://example.com"); | 262 GURL origin1("http://example.com"); |
254 GURL origin2("https://www.example.com"); | 263 GURL origin2("https://www.example.com"); |
255 GURL origin3("https://example.org"); | 264 GURL origin3("https://example.org"); |
256 | 265 |
257 std::vector<RegistrationData> registrations; | 266 std::vector<RegistrationData> registrations; |
258 EXPECT_TRUE(database->GetRegistrationsForOrigin(origin1, ®istrations)); | 267 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 268 database->GetRegistrationsForOrigin(origin1, ®istrations)); |
259 EXPECT_TRUE(registrations.empty()); | 269 EXPECT_TRUE(registrations.empty()); |
260 | 270 |
261 std::vector<Resource> resources; | 271 std::vector<Resource> resources; |
262 | 272 |
263 RegistrationData data1; | 273 RegistrationData data1; |
264 data1.registration_id = 100; | 274 data1.registration_id = 100; |
265 data1.scope = URL(origin1, "/foo"); | 275 data1.scope = URL(origin1, "/foo"); |
266 data1.script = URL(origin1, "/script1.js"); | 276 data1.script = URL(origin1, "/script1.js"); |
267 data1.version_id = 1000; | 277 data1.version_id = 1000; |
268 ASSERT_TRUE(database->WriteRegistration(data1, resources)); | 278 ASSERT_TRUE(database->WriteRegistration(data1, resources)); |
(...skipping 14 matching lines...) Expand all Loading... |
283 | 293 |
284 // |origin3| has two registrations. | 294 // |origin3| has two registrations. |
285 RegistrationData data4; | 295 RegistrationData data4; |
286 data4.registration_id = 400; | 296 data4.registration_id = 400; |
287 data4.scope = URL(origin3, "/fuga"); | 297 data4.scope = URL(origin3, "/fuga"); |
288 data4.script = URL(origin3, "/script4.js"); | 298 data4.script = URL(origin3, "/script4.js"); |
289 data4.version_id = 4000; | 299 data4.version_id = 4000; |
290 ASSERT_TRUE(database->WriteRegistration(data4, resources)); | 300 ASSERT_TRUE(database->WriteRegistration(data4, resources)); |
291 | 301 |
292 registrations.clear(); | 302 registrations.clear(); |
293 EXPECT_TRUE(database->GetRegistrationsForOrigin(origin3, ®istrations)); | 303 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 304 database->GetRegistrationsForOrigin(origin3, ®istrations)); |
294 EXPECT_EQ(2U, registrations.size()); | 305 EXPECT_EQ(2U, registrations.size()); |
295 VerifyRegistrationData(data3, registrations[0]); | 306 VerifyRegistrationData(data3, registrations[0]); |
296 VerifyRegistrationData(data4, registrations[1]); | 307 VerifyRegistrationData(data4, registrations[1]); |
297 } | 308 } |
298 | 309 |
299 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) { | 310 TEST(ServiceWorkerDatabaseTest, GetAllRegistrations) { |
300 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 311 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
301 | 312 |
302 std::vector<RegistrationData> registrations; | 313 std::vector<RegistrationData> registrations; |
303 EXPECT_TRUE(database->GetAllRegistrations(®istrations)); | 314 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 315 database->GetAllRegistrations(®istrations)); |
304 EXPECT_TRUE(registrations.empty()); | 316 EXPECT_TRUE(registrations.empty()); |
305 | 317 |
306 std::vector<Resource> resources; | 318 std::vector<Resource> resources; |
307 | 319 |
308 GURL origin1("http://www1.example.com"); | 320 GURL origin1("http://www1.example.com"); |
309 RegistrationData data1; | 321 RegistrationData data1; |
310 data1.registration_id = 100; | 322 data1.registration_id = 100; |
311 data1.scope = URL(origin1, "/foo"); | 323 data1.scope = URL(origin1, "/foo"); |
312 data1.script = URL(origin1, "/script1.js"); | 324 data1.script = URL(origin1, "/script1.js"); |
313 data1.version_id = 1000; | 325 data1.version_id = 1000; |
(...skipping 17 matching lines...) Expand all Loading... |
331 | 343 |
332 // |origin3| has two registrations. | 344 // |origin3| has two registrations. |
333 RegistrationData data4; | 345 RegistrationData data4; |
334 data4.registration_id = 400; | 346 data4.registration_id = 400; |
335 data4.scope = URL(origin3, "/fuga"); | 347 data4.scope = URL(origin3, "/fuga"); |
336 data4.script = URL(origin3, "/script4.js"); | 348 data4.script = URL(origin3, "/script4.js"); |
337 data4.version_id = 4000; | 349 data4.version_id = 4000; |
338 ASSERT_TRUE(database->WriteRegistration(data4, resources)); | 350 ASSERT_TRUE(database->WriteRegistration(data4, resources)); |
339 | 351 |
340 registrations.clear(); | 352 registrations.clear(); |
341 EXPECT_TRUE(database->GetAllRegistrations(®istrations)); | 353 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 354 database->GetAllRegistrations(®istrations)); |
342 EXPECT_EQ(4U, registrations.size()); | 355 EXPECT_EQ(4U, registrations.size()); |
343 VerifyRegistrationData(data1, registrations[0]); | 356 VerifyRegistrationData(data1, registrations[0]); |
344 VerifyRegistrationData(data2, registrations[1]); | 357 VerifyRegistrationData(data2, registrations[1]); |
345 VerifyRegistrationData(data3, registrations[2]); | 358 VerifyRegistrationData(data3, registrations[2]); |
346 VerifyRegistrationData(data4, registrations[3]); | 359 VerifyRegistrationData(data4, registrations[3]); |
347 } | 360 } |
348 | 361 |
349 TEST(ServiceWorkerDatabaseTest, Registration_Basic) { | 362 TEST(ServiceWorkerDatabaseTest, Registration_Basic) { |
350 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); | 363 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); |
351 | 364 |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
721 | 734 |
722 std::vector<Resource> resources3; | 735 std::vector<Resource> resources3; |
723 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"))); | 736 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"))); |
724 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"))); | 737 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"))); |
725 ASSERT_TRUE(database->WriteRegistration(data3, resources3)); | 738 ASSERT_TRUE(database->WriteRegistration(data3, resources3)); |
726 | 739 |
727 EXPECT_TRUE(database->DeleteAllDataForOrigin(origin1)); | 740 EXPECT_TRUE(database->DeleteAllDataForOrigin(origin1)); |
728 | 741 |
729 // |origin1| should be removed from the unique origin list. | 742 // |origin1| should be removed from the unique origin list. |
730 std::set<GURL> unique_origins; | 743 std::set<GURL> unique_origins; |
731 EXPECT_EQ(SERVICE_WORKER_OK, | 744 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
732 database->GetOriginsWithRegistrations(&unique_origins)); | 745 database->GetOriginsWithRegistrations(&unique_origins)); |
733 EXPECT_EQ(1u, unique_origins.size()); | 746 EXPECT_EQ(1u, unique_origins.size()); |
734 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); | 747 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); |
735 | 748 |
736 // The registrations for |origin1| should be removed. | 749 // The registrations for |origin1| should be removed. |
737 std::vector<RegistrationData> registrations; | 750 std::vector<RegistrationData> registrations; |
738 EXPECT_TRUE(database->GetRegistrationsForOrigin(origin1, ®istrations)); | 751 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, |
| 752 database->GetRegistrationsForOrigin(origin1, ®istrations)); |
739 EXPECT_TRUE(registrations.empty()); | 753 EXPECT_TRUE(registrations.empty()); |
740 | 754 |
741 // The registration for |origin2| should not be removed. | 755 // The registration for |origin2| should not be removed. |
742 RegistrationData data_out; | 756 RegistrationData data_out; |
743 std::vector<Resource> resources_out; | 757 std::vector<Resource> resources_out; |
744 EXPECT_TRUE(database->ReadRegistration( | 758 EXPECT_TRUE(database->ReadRegistration( |
745 data3.registration_id, origin2, &data_out, &resources_out)); | 759 data3.registration_id, origin2, &data_out, &resources_out)); |
746 VerifyRegistrationData(data3, data_out); | 760 VerifyRegistrationData(data3, data_out); |
747 VerifyResourceRecords(resources3, resources_out); | 761 VerifyResourceRecords(resources3, resources_out); |
748 | 762 |
749 // The resources associated with |origin1| should be purgeable. | 763 // The resources associated with |origin1| should be purgeable. |
750 std::set<int64> purgeable_ids_out; | 764 std::set<int64> purgeable_ids_out; |
751 EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); | 765 EXPECT_TRUE(database->GetPurgeableResourceIds(&purgeable_ids_out)); |
752 EXPECT_EQ(4u, purgeable_ids_out.size()); | 766 EXPECT_EQ(4u, purgeable_ids_out.size()); |
753 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 1)); | 767 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 1)); |
754 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 2)); | 768 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 2)); |
755 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 3)); | 769 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 3)); |
756 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 4)); | 770 EXPECT_TRUE(ContainsKey(purgeable_ids_out, 4)); |
757 } | 771 } |
758 | 772 |
759 } // namespace content | 773 } // namespace content |
OLD | NEW |