1 // Copyright 2017 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. 4 5 #ifndef CONTENT_BROWSER_INDEXED_DB_MOCK_MOJO_INDEXED_DB_CALLBACKS_H_ 6 #define CONTENT_BROWSER_INDEXED_DB_MOCK_MOJO_INDEXED_DB_CALLBACKS_H_ 7 8 #include <stddef.h> 9 #include <string> 10 11 #include "base/macros.h" 12 #include "mojo/public/cpp/bindings/associated_receiver.h" 13 #include "mojo/public/cpp/bindings/pending_associated_remote.h" 14 #include "testing/gmock/include/gmock/gmock.h" 15 #include "third_party/blink/public/common/indexeddb/indexeddb_key.h" 16 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom.h" 17 18 namespace blink { 19 struct IndexedDBDatabaseMetadata; 20 } 21 22 namespace content { 23 24 class MockMojoIndexedDBCallbacks : public blink::mojom::IDBCallbacks { 25 public: 26 explicit MockMojoIndexedDBCallbacks(); 27 ~MockMojoIndexedDBCallbacks() override; 28 29 mojo::PendingAssociatedRemote<blink::mojom::IDBCallbacks> 30 CreateInterfacePtrAndBind(); 31 32 MOCK_METHOD2(Error, 33 void(blink::mojom::IDBException code, 34 const base::string16& message)); 35 36 MOCK_METHOD1(SuccessNamesAndVersionsList, 37 void(std::vector<blink::mojom::IDBNameAndVersionPtr> list)); 38 39 MOCK_METHOD1(SuccessStringList, 40 void(const std::vector<base::string16>& value)); 41 42 MOCK_METHOD1(Blocked, void(int64_t existing_version)); 43 44 MOCK_METHOD5(MockedUpgradeNeeded, 45 void(mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase>* 46 pending_database, 47 int64_t old_version, 48 blink::mojom::IDBDataLoss data_loss, 49 const std::string& data_loss_message, 50 const blink::IndexedDBDatabaseMetadata& metadata)); 51 52 // Move-only types not supported by mock methods. UpgradeNeeded(mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase> pending_database,int64_t old_version,blink::mojom::IDBDataLoss data_loss,const std::string & data_loss_message,const blink::IndexedDBDatabaseMetadata & metadata)53 void UpgradeNeeded( 54 mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase> pending_database, 55 int64_t old_version, 56 blink::mojom::IDBDataLoss data_loss, 57 const std::string& data_loss_message, 58 const blink::IndexedDBDatabaseMetadata& metadata) override { 59 MockedUpgradeNeeded(&pending_database, old_version, data_loss, 60 data_loss_message, metadata); 61 } 62 63 MOCK_METHOD2(MockedSuccessDatabase, 64 void(mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase>* 65 pending_database, 66 const blink::IndexedDBDatabaseMetadata& metadata)); SuccessDatabase(mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase> pending_database,const blink::IndexedDBDatabaseMetadata & metadata)67 void SuccessDatabase( 68 mojo::PendingAssociatedRemote<blink::mojom::IDBDatabase> pending_database, 69 const blink::IndexedDBDatabaseMetadata& metadata) override { 70 MockedSuccessDatabase(&pending_database, metadata); 71 } 72 73 MOCK_METHOD1(SuccessInteger, void(int64_t value)); 74 MOCK_METHOD0(Success, void()); 75 76 private: 77 mojo::AssociatedReceiver<blink::mojom::IDBCallbacks> receiver_{this}; 78 79 DISALLOW_COPY_AND_ASSIGN(MockMojoIndexedDBCallbacks); 80 }; 81 82 } // namespace content 83 84 #endif // CONTENT_BROWSER_INDEXED_DB_MOCK_MOJO_INDEXED_DB_CALLBACKS_H_ 85