| 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 <stdint.h> |
| 6 |
| 5 #include <set> | 7 #include <set> |
| 6 | 8 |
| 9 #include "base/macros.h" |
| 7 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
| 8 #include "content/browser/indexed_db/indexed_db_active_blob_registry.h" | 11 #include "content/browser/indexed_db/indexed_db_active_blob_registry.h" |
| 9 #include "content/browser/indexed_db/indexed_db_backing_store.h" | 12 #include "content/browser/indexed_db/indexed_db_backing_store.h" |
| 10 #include "content/browser/indexed_db/indexed_db_fake_backing_store.h" | 13 #include "content/browser/indexed_db/indexed_db_fake_backing_store.h" |
| 11 #include "content/browser/indexed_db/mock_indexed_db_factory.h" | 14 #include "content/browser/indexed_db/mock_indexed_db_factory.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 16 |
| 14 namespace content { | 17 namespace content { |
| 15 | 18 |
| 16 namespace { | 19 namespace { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 ~RegistryTestMockFactory() override {} | 51 ~RegistryTestMockFactory() override {} |
| 49 | 52 |
| 50 std::set<GURL> origins_; | 53 std::set<GURL> origins_; |
| 51 bool duplicate_calls_; | 54 bool duplicate_calls_; |
| 52 | 55 |
| 53 DISALLOW_COPY_AND_ASSIGN(RegistryTestMockFactory); | 56 DISALLOW_COPY_AND_ASSIGN(RegistryTestMockFactory); |
| 54 }; | 57 }; |
| 55 | 58 |
| 56 class MockIDBBackingStore : public IndexedDBFakeBackingStore { | 59 class MockIDBBackingStore : public IndexedDBFakeBackingStore { |
| 57 public: | 60 public: |
| 58 typedef std::pair<int64, int64> KeyPair; | 61 typedef std::pair<int64_t, int64_t> KeyPair; |
| 59 typedef std::set<KeyPair> KeyPairSet; | 62 typedef std::set<KeyPair> KeyPairSet; |
| 60 | 63 |
| 61 MockIDBBackingStore(IndexedDBFactory* factory, | 64 MockIDBBackingStore(IndexedDBFactory* factory, |
| 62 base::SequencedTaskRunner* task_runner) | 65 base::SequencedTaskRunner* task_runner) |
| 63 : IndexedDBFakeBackingStore(factory, task_runner), | 66 : IndexedDBFakeBackingStore(factory, task_runner), |
| 64 duplicate_calls_(false) {} | 67 duplicate_calls_(false) {} |
| 65 | 68 |
| 66 void ReportBlobUnused(int64 database_id, int64 blob_key) override { | 69 void ReportBlobUnused(int64_t database_id, int64_t blob_key) override { |
| 67 unused_blobs_.insert(std::make_pair(database_id, blob_key)); | 70 unused_blobs_.insert(std::make_pair(database_id, blob_key)); |
| 68 } | 71 } |
| 69 | 72 |
| 70 bool CheckUnusedBlobsEmpty() const { | 73 bool CheckUnusedBlobsEmpty() const { |
| 71 return !duplicate_calls_ && !unused_blobs_.size(); | 74 return !duplicate_calls_ && !unused_blobs_.size(); |
| 72 } | 75 } |
| 73 bool CheckSingleUnusedBlob(int64 database_id, int64 blob_key) const { | 76 bool CheckSingleUnusedBlob(int64_t database_id, int64_t blob_key) const { |
| 74 return !duplicate_calls_ && unused_blobs_.size() == 1 && | 77 return !duplicate_calls_ && unused_blobs_.size() == 1 && |
| 75 unused_blobs_.count(std::make_pair(database_id, blob_key)); | 78 unused_blobs_.count(std::make_pair(database_id, blob_key)); |
| 76 } | 79 } |
| 77 | 80 |
| 78 const KeyPairSet& unused_blobs() const { return unused_blobs_; } | 81 const KeyPairSet& unused_blobs() const { return unused_blobs_; } |
| 79 | 82 |
| 80 protected: | 83 protected: |
| 81 ~MockIDBBackingStore() override {} | 84 ~MockIDBBackingStore() override {} |
| 82 | 85 |
| 83 private: | 86 private: |
| 84 KeyPairSet unused_blobs_; | 87 KeyPairSet unused_blobs_; |
| 85 bool duplicate_calls_; | 88 bool duplicate_calls_; |
| 86 | 89 |
| 87 DISALLOW_COPY_AND_ASSIGN(MockIDBBackingStore); | 90 DISALLOW_COPY_AND_ASSIGN(MockIDBBackingStore); |
| 88 }; | 91 }; |
| 89 | 92 |
| 90 // Base class for our test fixtures. | 93 // Base class for our test fixtures. |
| 91 class IndexedDBActiveBlobRegistryTest : public testing::Test { | 94 class IndexedDBActiveBlobRegistryTest : public testing::Test { |
| 92 public: | 95 public: |
| 93 typedef storage::ShareableFileReference::FinalReleaseCallback | 96 typedef storage::ShareableFileReference::FinalReleaseCallback |
| 94 ReleaseCallback; | 97 ReleaseCallback; |
| 95 | 98 |
| 96 static const int64 kDatabaseId0 = 7; | 99 static const int64_t kDatabaseId0 = 7; |
| 97 static const int64 kDatabaseId1 = 12; | 100 static const int64_t kDatabaseId1 = 12; |
| 98 static const int64 kBlobKey0 = 77; | 101 static const int64_t kBlobKey0 = 77; |
| 99 static const int64 kBlobKey1 = 14; | 102 static const int64_t kBlobKey1 = 14; |
| 100 | 103 |
| 101 IndexedDBActiveBlobRegistryTest() | 104 IndexedDBActiveBlobRegistryTest() |
| 102 : task_runner_(new base::TestSimpleTaskRunner), | 105 : task_runner_(new base::TestSimpleTaskRunner), |
| 103 factory_(new RegistryTestMockFactory), | 106 factory_(new RegistryTestMockFactory), |
| 104 backing_store_( | 107 backing_store_( |
| 105 new MockIDBBackingStore(factory_.get(), task_runner_.get())), | 108 new MockIDBBackingStore(factory_.get(), task_runner_.get())), |
| 106 registry_(new IndexedDBActiveBlobRegistry(backing_store_.get())) {} | 109 registry_(new IndexedDBActiveBlobRegistry(backing_store_.get())) {} |
| 107 | 110 |
| 108 void RunUntilIdle() { task_runner_->RunUntilIdle(); } | 111 void RunUntilIdle() { task_runner_->RunUntilIdle(); } |
| 109 RegistryTestMockFactory* factory() const { return factory_.get(); } | 112 RegistryTestMockFactory* factory() const { return factory_.get(); } |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 RunUntilIdle(); | 271 RunUntilIdle(); |
| 269 | 272 |
| 270 // Nothing changes. | 273 // Nothing changes. |
| 271 EXPECT_TRUE(factory()->CheckSingleOriginInUse(backing_store()->origin_url())); | 274 EXPECT_TRUE(factory()->CheckSingleOriginInUse(backing_store()->origin_url())); |
| 272 EXPECT_TRUE(backing_store()->CheckUnusedBlobsEmpty()); | 275 EXPECT_TRUE(backing_store()->CheckUnusedBlobsEmpty()); |
| 273 } | 276 } |
| 274 | 277 |
| 275 } // namespace | 278 } // namespace |
| 276 | 279 |
| 277 } // namespace content | 280 } // namespace content |
| OLD | NEW |