| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/files/file_util.h" | 5 #include "base/files/file_util.h" |
| 6 #include "base/files/scoped_temp_dir.h" | 6 #include "base/files/scoped_temp_dir.h" |
| 7 #include "base/test/test_simple_task_runner.h" | 7 #include "base/test/test_simple_task_runner.h" |
| 8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
| 9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
| 10 #include "content/browser/indexed_db/indexed_db_connection.h" | 10 #include "content/browser/indexed_db/indexed_db_connection.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 } | 123 } |
| 124 | 124 |
| 125 class ForceCloseDBCallbacks : public IndexedDBCallbacks { | 125 class ForceCloseDBCallbacks : public IndexedDBCallbacks { |
| 126 public: | 126 public: |
| 127 ForceCloseDBCallbacks(scoped_refptr<IndexedDBContextImpl> idb_context, | 127 ForceCloseDBCallbacks(scoped_refptr<IndexedDBContextImpl> idb_context, |
| 128 const GURL& origin_url) | 128 const GURL& origin_url) |
| 129 : IndexedDBCallbacks(NULL, 0, 0), | 129 : IndexedDBCallbacks(NULL, 0, 0), |
| 130 idb_context_(idb_context), | 130 idb_context_(idb_context), |
| 131 origin_url_(origin_url) {} | 131 origin_url_(origin_url) {} |
| 132 | 132 |
| 133 virtual void OnSuccess() override {} | 133 void OnSuccess() override {} |
| 134 virtual void OnSuccess(const std::vector<base::string16>&) override {} | 134 void OnSuccess(const std::vector<base::string16>&) override {} |
| 135 virtual void OnSuccess(scoped_ptr<IndexedDBConnection> connection, | 135 void OnSuccess(scoped_ptr<IndexedDBConnection> connection, |
| 136 const IndexedDBDatabaseMetadata& metadata) override { | 136 const IndexedDBDatabaseMetadata& metadata) override { |
| 137 connection_ = connection.Pass(); | 137 connection_ = connection.Pass(); |
| 138 idb_context_->ConnectionOpened(origin_url_, connection_.get()); | 138 idb_context_->ConnectionOpened(origin_url_, connection_.get()); |
| 139 } | 139 } |
| 140 | 140 |
| 141 IndexedDBConnection* connection() { return connection_.get(); } | 141 IndexedDBConnection* connection() { return connection_.get(); } |
| 142 | 142 |
| 143 protected: | 143 protected: |
| 144 virtual ~ForceCloseDBCallbacks() {} | 144 ~ForceCloseDBCallbacks() override {} |
| 145 | 145 |
| 146 private: | 146 private: |
| 147 scoped_refptr<IndexedDBContextImpl> idb_context_; | 147 scoped_refptr<IndexedDBContextImpl> idb_context_; |
| 148 GURL origin_url_; | 148 GURL origin_url_; |
| 149 scoped_ptr<IndexedDBConnection> connection_; | 149 scoped_ptr<IndexedDBConnection> connection_; |
| 150 DISALLOW_COPY_AND_ASSIGN(ForceCloseDBCallbacks); | 150 DISALLOW_COPY_AND_ASSIGN(ForceCloseDBCallbacks); |
| 151 }; | 151 }; |
| 152 | 152 |
| 153 TEST_F(IndexedDBTest, ForceCloseOpenDatabasesOnDelete) { | 153 TEST_F(IndexedDBTest, ForceCloseOpenDatabasesOnDelete) { |
| 154 base::ScopedTempDir temp_dir; | 154 base::ScopedTempDir temp_dir; |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 | 285 |
| 286 // Simulate the write failure. | 286 // Simulate the write failure. |
| 287 leveldb::Status status = leveldb::Status::IOError("Simulated failure"); | 287 leveldb::Status status = leveldb::Status::IOError("Simulated failure"); |
| 288 callbacks->connection()->database()->TransactionCommitFailed(status); | 288 callbacks->connection()->database()->TransactionCommitFailed(status); |
| 289 | 289 |
| 290 EXPECT_TRUE(db_callbacks->forced_close_called()); | 290 EXPECT_TRUE(db_callbacks->forced_close_called()); |
| 291 EXPECT_FALSE(factory->IsBackingStoreOpen(kTestOrigin)); | 291 EXPECT_FALSE(factory->IsBackingStoreOpen(kTestOrigin)); |
| 292 } | 292 } |
| 293 | 293 |
| 294 } // namespace content | 294 } // namespace content |
| OLD | NEW |