| 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/indexed_db/mock_browsertest_indexed_db_class_factory.h
" | 5 #include "content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/memory/ptr_util.h" |
| 12 #include "content/browser/indexed_db/indexed_db_transaction.h" | 13 #include "content/browser/indexed_db/indexed_db_transaction.h" |
| 13 #include "content/browser/indexed_db/leveldb/leveldb_iterator_impl.h" | 14 #include "content/browser/indexed_db/leveldb/leveldb_iterator_impl.h" |
| 14 #include "content/browser/indexed_db/leveldb/leveldb_transaction.h" | 15 #include "content/browser/indexed_db/leveldb/leveldb_transaction.h" |
| 15 #include "third_party/leveldatabase/env_chromium.h" | 16 #include "third_party/leveldatabase/env_chromium.h" |
| 16 #include "third_party/leveldatabase/src/include/leveldb/status.h" | 17 #include "third_party/leveldatabase/src/include/leveldb/status.h" |
| 17 | 18 |
| 18 namespace { | 19 namespace { |
| 19 | 20 |
| 20 class FunctionTracer { | 21 class FunctionTracer { |
| 21 public: | 22 public: |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 | 246 |
| 246 MockBrowserTestIndexedDBClassFactory::MockBrowserTestIndexedDBClassFactory() | 247 MockBrowserTestIndexedDBClassFactory::MockBrowserTestIndexedDBClassFactory() |
| 247 : failure_class_(FAIL_CLASS_NOTHING), | 248 : failure_class_(FAIL_CLASS_NOTHING), |
| 248 failure_method_(FAIL_METHOD_NOTHING), | 249 failure_method_(FAIL_METHOD_NOTHING), |
| 249 only_trace_calls_(false) { | 250 only_trace_calls_(false) { |
| 250 } | 251 } |
| 251 | 252 |
| 252 MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() { | 253 MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() { |
| 253 } | 254 } |
| 254 | 255 |
| 255 IndexedDBDatabase* | 256 scoped_refptr<IndexedDBDatabase> |
| 256 MockBrowserTestIndexedDBClassFactory::CreateIndexedDBDatabase( | 257 MockBrowserTestIndexedDBClassFactory::CreateIndexedDBDatabase( |
| 257 const base::string16& name, | 258 const base::string16& name, |
| 258 IndexedDBBackingStore* backing_store, | 259 IndexedDBBackingStore* backing_store, |
| 259 IndexedDBFactory* factory, | 260 IndexedDBFactory* factory, |
| 260 const IndexedDBDatabase::Identifier& unique_identifier) { | 261 const IndexedDBDatabase::Identifier& unique_identifier) { |
| 261 return new IndexedDBTestDatabase(name, backing_store, factory, | 262 return new IndexedDBTestDatabase(name, backing_store, factory, |
| 262 unique_identifier); | 263 unique_identifier); |
| 263 } | 264 } |
| 264 | 265 |
| 265 IndexedDBTransaction* | 266 IndexedDBTransaction* |
| 266 MockBrowserTestIndexedDBClassFactory::CreateIndexedDBTransaction( | 267 MockBrowserTestIndexedDBClassFactory::CreateIndexedDBTransaction( |
| 267 int64_t id, | 268 int64_t id, |
| 268 base::WeakPtr<IndexedDBConnection> connection, | 269 base::WeakPtr<IndexedDBConnection> connection, |
| 269 const std::set<int64_t>& scope, | 270 const std::set<int64_t>& scope, |
| 270 blink::WebIDBTransactionMode mode, | 271 blink::WebIDBTransactionMode mode, |
| 271 IndexedDBBackingStore::Transaction* backing_store_transaction) { | 272 IndexedDBBackingStore::Transaction* backing_store_transaction) { |
| 272 return new IndexedDBTestTransaction(id, std::move(connection), scope, mode, | 273 return new IndexedDBTestTransaction(id, std::move(connection), scope, mode, |
| 273 backing_store_transaction); | 274 backing_store_transaction); |
| 274 } | 275 } |
| 275 | 276 |
| 276 LevelDBTransaction* | 277 scoped_refptr<LevelDBTransaction> |
| 277 MockBrowserTestIndexedDBClassFactory::CreateLevelDBTransaction( | 278 MockBrowserTestIndexedDBClassFactory::CreateLevelDBTransaction( |
| 278 LevelDBDatabase* db) { | 279 LevelDBDatabase* db) { |
| 279 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] = | 280 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] = |
| 280 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] + 1; | 281 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] + 1; |
| 281 if (only_trace_calls_) { | 282 if (only_trace_calls_) { |
| 282 return new LevelDBTraceTransaction( | 283 return new LevelDBTraceTransaction( |
| 283 db, instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION]); | 284 db, instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION]); |
| 284 } else { | 285 } else { |
| 285 if (failure_class_ == FAIL_CLASS_LEVELDB_TRANSACTION && | 286 if (failure_class_ == FAIL_CLASS_LEVELDB_TRANSACTION && |
| 286 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] == | 287 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] == |
| 287 fail_on_instance_num_[FAIL_CLASS_LEVELDB_TRANSACTION]) { | 288 fail_on_instance_num_[FAIL_CLASS_LEVELDB_TRANSACTION]) { |
| 288 return new LevelDBTestTransaction( | 289 return new LevelDBTestTransaction( |
| 289 db, | 290 db, |
| 290 failure_method_, | 291 failure_method_, |
| 291 fail_on_call_num_[FAIL_CLASS_LEVELDB_TRANSACTION]); | 292 fail_on_call_num_[FAIL_CLASS_LEVELDB_TRANSACTION]); |
| 292 } else { | 293 } else { |
| 293 return IndexedDBClassFactory::CreateLevelDBTransaction(db); | 294 return IndexedDBClassFactory::CreateLevelDBTransaction(db); |
| 294 } | 295 } |
| 295 } | 296 } |
| 296 } | 297 } |
| 297 | 298 |
| 298 LevelDBIteratorImpl* MockBrowserTestIndexedDBClassFactory::CreateIteratorImpl( | 299 std::unique_ptr<LevelDBIteratorImpl> |
| 300 MockBrowserTestIndexedDBClassFactory::CreateIteratorImpl( |
| 299 std::unique_ptr<leveldb::Iterator> iterator) { | 301 std::unique_ptr<leveldb::Iterator> iterator) { |
| 300 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] = | 302 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] = |
| 301 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] + 1; | 303 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] + 1; |
| 302 if (only_trace_calls_) { | 304 if (only_trace_calls_) { |
| 303 return new LevelDBTraceIteratorImpl( | 305 return base::MakeUnique<LevelDBTraceIteratorImpl>( |
| 304 std::move(iterator), instance_count_[FAIL_CLASS_LEVELDB_ITERATOR]); | 306 std::move(iterator), instance_count_[FAIL_CLASS_LEVELDB_ITERATOR]); |
| 305 } else { | 307 } else { |
| 306 if (failure_class_ == FAIL_CLASS_LEVELDB_ITERATOR && | 308 if (failure_class_ == FAIL_CLASS_LEVELDB_ITERATOR && |
| 307 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] == | 309 instance_count_[FAIL_CLASS_LEVELDB_ITERATOR] == |
| 308 fail_on_instance_num_[FAIL_CLASS_LEVELDB_ITERATOR]) { | 310 fail_on_instance_num_[FAIL_CLASS_LEVELDB_ITERATOR]) { |
| 309 return new LevelDBTestIteratorImpl( | 311 return base::MakeUnique<LevelDBTestIteratorImpl>( |
| 310 std::move(iterator), failure_method_, | 312 std::move(iterator), failure_method_, |
| 311 fail_on_call_num_[FAIL_CLASS_LEVELDB_ITERATOR]); | 313 fail_on_call_num_[FAIL_CLASS_LEVELDB_ITERATOR]); |
| 312 } else { | 314 } else { |
| 313 return new LevelDBIteratorImpl(std::move(iterator)); | 315 return base::WrapUnique(new LevelDBIteratorImpl(std::move(iterator))); |
| 314 } | 316 } |
| 315 } | 317 } |
| 316 } | 318 } |
| 317 | 319 |
| 318 void MockBrowserTestIndexedDBClassFactory::FailOperation( | 320 void MockBrowserTestIndexedDBClassFactory::FailOperation( |
| 319 FailClass failure_class, | 321 FailClass failure_class, |
| 320 FailMethod failure_method, | 322 FailMethod failure_method, |
| 321 int fail_on_instance_num, | 323 int fail_on_instance_num, |
| 322 int fail_on_call_num) { | 324 int fail_on_call_num) { |
| 323 VLOG(0) << "FailOperation: class=" << failure_class | 325 VLOG(0) << "FailOperation: class=" << failure_class |
| (...skipping 11 matching lines...) Expand all Loading... |
| 335 | 337 |
| 336 void MockBrowserTestIndexedDBClassFactory::Reset() { | 338 void MockBrowserTestIndexedDBClassFactory::Reset() { |
| 337 failure_class_ = FAIL_CLASS_NOTHING; | 339 failure_class_ = FAIL_CLASS_NOTHING; |
| 338 failure_method_ = FAIL_METHOD_NOTHING; | 340 failure_method_ = FAIL_METHOD_NOTHING; |
| 339 instance_count_.clear(); | 341 instance_count_.clear(); |
| 340 fail_on_instance_num_.clear(); | 342 fail_on_instance_num_.clear(); |
| 341 fail_on_call_num_.clear(); | 343 fail_on_call_num_.clear(); |
| 342 } | 344 } |
| 343 | 345 |
| 344 } // namespace content | 346 } // namespace content |
| OLD | NEW |