Battery Status API: add UMA logging for Linux.
[chromium-blink-merge.git] / content / browser / indexed_db / mock_browsertest_indexed_db_class_factory.h
blobc2a3bb4625a7f4e1c67432e521adbf472f96f3b9
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
3 // found in the LICENSE file.
5 #ifndef CONTENT_BROWSER_INDEXED_DB_MOCK_BROWSERTEST_INDEXED_DB_CLASS_FACTORY_H_
6 #define CONTENT_BROWSER_INDEXED_DB_MOCK_BROWSERTEST_INDEXED_DB_CLASS_FACTORY_H_
8 #include <map>
10 #include "content/browser/indexed_db/indexed_db_class_factory.h"
12 namespace content {
14 class LevelDBTransaction;
15 class LevelDBDatabase;
17 enum FailClass {
18 FAIL_CLASS_NOTHING,
19 FAIL_CLASS_LEVELDB_ITERATOR,
20 FAIL_CLASS_LEVELDB_TRANSACTION,
23 enum FailMethod {
24 FAIL_METHOD_NOTHING,
25 FAIL_METHOD_COMMIT,
26 FAIL_METHOD_GET,
27 FAIL_METHOD_SEEK,
30 class MockBrowserTestIndexedDBClassFactory : public IndexedDBClassFactory {
31 public:
32 MockBrowserTestIndexedDBClassFactory();
33 virtual ~MockBrowserTestIndexedDBClassFactory();
34 virtual LevelDBTransaction* CreateLevelDBTransaction(
35 LevelDBDatabase* db) OVERRIDE;
36 virtual LevelDBIteratorImpl* CreateIteratorImpl(
37 scoped_ptr<leveldb::Iterator> iterator) OVERRIDE;
39 void FailOperation(FailClass failure_class,
40 FailMethod failure_method,
41 int fail_on_instance_num,
42 int fail_on_call_num);
43 void Reset();
45 private:
46 FailClass failure_class_;
47 FailMethod failure_method_;
48 std::map<FailClass, int> instance_count_;
49 std::map<FailClass, int> fail_on_instance_num_;
50 std::map<FailClass, int> fail_on_call_num_;
51 bool only_trace_calls_;
54 } // namespace content
56 #endif // CONTENT_BROWSER_INDEXED_DB_MOCK_BROWSERTEST_INDEXED_DB_CLASS_FACTORY_H_