OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 <stdint.h> | 5 #include <stdint.h> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 GURL origin("http://localhost:81"); | 276 GURL origin("http://localhost:81"); |
277 | 277 |
278 base::ScopedTempDir temp_directory; | 278 base::ScopedTempDir temp_directory; |
279 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 279 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
280 | 280 |
281 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); | 281 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); |
282 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( | 282 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( |
283 new MockIndexedDBDatabaseCallbacks()); | 283 new MockIndexedDBDatabaseCallbacks()); |
284 const int64_t transaction_id = 1; | 284 const int64_t transaction_id = 1; |
285 IndexedDBPendingConnection connection( | 285 IndexedDBPendingConnection connection( |
286 callbacks, | 286 callbacks, db_callbacks, 0, /* child_process_id */ |
287 db_callbacks, | 287 transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION); |
288 0, /* child_process_id */ | |
289 transaction_id, | |
290 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION); | |
291 factory()->Open(ASCIIToUTF16("db"), | 288 factory()->Open(ASCIIToUTF16("db"), |
292 connection, | 289 connection, |
293 NULL /* request_context */, | 290 NULL /* request_context */, |
294 origin, | 291 origin, |
295 temp_directory.path()); | 292 temp_directory.path()); |
296 | 293 |
297 EXPECT_TRUE(callbacks->connection()); | 294 EXPECT_TRUE(callbacks->connection()); |
298 | 295 |
299 EXPECT_TRUE(factory()->IsBackingStoreOpen(origin)); | 296 EXPECT_TRUE(factory()->IsBackingStoreOpen(origin)); |
300 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); | 297 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); |
301 | 298 |
302 callbacks->connection()->ForceClose(); | 299 callbacks->connection()->ForceClose(); |
303 | 300 |
304 EXPECT_FALSE(factory()->IsBackingStoreOpen(origin)); | 301 EXPECT_FALSE(factory()->IsBackingStoreOpen(origin)); |
305 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); | 302 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); |
306 } | 303 } |
307 | 304 |
308 TEST_F(IndexedDBFactoryTest, BackingStoreReleaseDelayedOnClose) { | 305 TEST_F(IndexedDBFactoryTest, BackingStoreReleaseDelayedOnClose) { |
309 GURL origin("http://localhost:81"); | 306 GURL origin("http://localhost:81"); |
310 | 307 |
311 base::ScopedTempDir temp_directory; | 308 base::ScopedTempDir temp_directory; |
312 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 309 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
313 | 310 |
314 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); | 311 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); |
315 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( | 312 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( |
316 new MockIndexedDBDatabaseCallbacks()); | 313 new MockIndexedDBDatabaseCallbacks()); |
317 const int64_t transaction_id = 1; | 314 const int64_t transaction_id = 1; |
318 IndexedDBPendingConnection connection( | 315 IndexedDBPendingConnection connection( |
319 callbacks, | 316 callbacks, db_callbacks, 0, /* child_process_id */ |
320 db_callbacks, | 317 transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION); |
321 0, /* child_process_id */ | |
322 transaction_id, | |
323 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION); | |
324 factory()->Open(ASCIIToUTF16("db"), | 318 factory()->Open(ASCIIToUTF16("db"), |
325 connection, | 319 connection, |
326 NULL /* request_context */, | 320 NULL /* request_context */, |
327 origin, | 321 origin, |
328 temp_directory.path()); | 322 temp_directory.path()); |
329 | 323 |
330 EXPECT_TRUE(callbacks->connection()); | 324 EXPECT_TRUE(callbacks->connection()); |
331 IndexedDBBackingStore* store = | 325 IndexedDBBackingStore* store = |
332 callbacks->connection()->database()->backing_store(); | 326 callbacks->connection()->database()->backing_store(); |
333 EXPECT_FALSE(store->HasOneRef()); // Factory and database. | 327 EXPECT_FALSE(store->HasOneRef()); // Factory and database. |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 GURL origin("http://localhost:81"); | 398 GURL origin("http://localhost:81"); |
405 | 399 |
406 base::ScopedTempDir temp_directory; | 400 base::ScopedTempDir temp_directory; |
407 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); | 401 ASSERT_TRUE(temp_directory.CreateUniqueTempDir()); |
408 | 402 |
409 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); | 403 scoped_refptr<MockIndexedDBCallbacks> callbacks(new MockIndexedDBCallbacks()); |
410 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( | 404 scoped_refptr<MockIndexedDBDatabaseCallbacks> db_callbacks( |
411 new MockIndexedDBDatabaseCallbacks()); | 405 new MockIndexedDBDatabaseCallbacks()); |
412 const int64_t transaction_id = 1; | 406 const int64_t transaction_id = 1; |
413 IndexedDBPendingConnection connection( | 407 IndexedDBPendingConnection connection( |
414 callbacks, | 408 callbacks, db_callbacks, 0, /* child_process_id */ |
415 db_callbacks, | 409 transaction_id, IndexedDBDatabaseMetadata::DEFAULT_VERSION); |
416 0, /* child_process_id */ | |
417 transaction_id, | |
418 IndexedDBDatabaseMetadata::DEFAULT_INT_VERSION); | |
419 factory()->Open(ASCIIToUTF16("db"), | 410 factory()->Open(ASCIIToUTF16("db"), |
420 connection, | 411 connection, |
421 NULL /* request_context */, | 412 NULL /* request_context */, |
422 origin, | 413 origin, |
423 temp_directory.path()); | 414 temp_directory.path()); |
424 | 415 |
425 EXPECT_TRUE(callbacks->connection()); | 416 EXPECT_TRUE(callbacks->connection()); |
426 EXPECT_TRUE(factory()->IsBackingStoreOpen(origin)); | 417 EXPECT_TRUE(factory()->IsBackingStoreOpen(origin)); |
427 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); | 418 EXPECT_FALSE(factory()->IsBackingStorePendingClose(origin)); |
428 | 419 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 temp_directory.path()); | 524 temp_directory.path()); |
534 EXPECT_TRUE(callbacks->saw_error()); | 525 EXPECT_TRUE(callbacks->saw_error()); |
535 EXPECT_FALSE(factory()->IsDatabaseOpen(origin, db_name)); | 526 EXPECT_FALSE(factory()->IsDatabaseOpen(origin, db_name)); |
536 } | 527 } |
537 | 528 |
538 // Terminate all pending-close timers. | 529 // Terminate all pending-close timers. |
539 factory()->ForceClose(origin); | 530 factory()->ForceClose(origin); |
540 } | 531 } |
541 | 532 |
542 } // namespace content | 533 } // namespace content |
OLD | NEW |