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 3 // found in the LICENSE file. 4 5 #ifndef DBUS_MOCK_BUS_H_ 6 #define DBUS_MOCK_BUS_H_ 7 8 #include <stdint.h> 9 10 #include "dbus/bus.h" 11 #include "dbus/object_path.h" 12 #include "testing/gmock/include/gmock/gmock.h" 13 14 namespace dbus { 15 16 // Mock for Bus class. Along with MockObjectProxy and MockExportedObject, 17 // the mock classes can be used to write unit tests without issuing real 18 // D-Bus calls. 19 class MockBus : public Bus { 20 public: 21 MockBus(const Bus::Options& options); 22 23 MOCK_METHOD2(GetObjectProxy, ObjectProxy*(const std::string& service_name, 24 const ObjectPath& object_path)); 25 MOCK_METHOD3(GetObjectProxyWithOptions, 26 ObjectProxy*(const std::string& service_name, 27 const ObjectPath& object_path, 28 int options)); 29 MOCK_METHOD1(GetExportedObject, ExportedObject*( 30 const ObjectPath& object_path)); 31 MOCK_METHOD2(GetObjectManager, ObjectManager*(const std::string&, 32 const ObjectPath&)); 33 MOCK_METHOD0(ShutdownAndBlock, void()); 34 MOCK_METHOD0(ShutdownOnDBusThreadAndBlock, void()); 35 MOCK_METHOD0(Connect, bool()); 36 MOCK_METHOD3(RequestOwnership, void( 37 const std::string& service_name, 38 ServiceOwnershipOptions options, 39 OnOwnershipCallback on_ownership_callback)); 40 MOCK_METHOD2(RequestOwnershipAndBlock, bool(const std::string& service_name, 41 ServiceOwnershipOptions options)); 42 MOCK_METHOD1(ReleaseOwnership, bool(const std::string& service_name)); 43 MOCK_METHOD0(SetUpAsyncOperations, bool()); 44 MOCK_METHOD3(SendWithReplyAndBlock, DBusMessage*(DBusMessage* request, 45 int timeout_ms, 46 DBusError* error)); 47 MOCK_METHOD3(SendWithReply, void(DBusMessage* request, 48 DBusPendingCall** pending_call, 49 int timeout_ms)); 50 MOCK_METHOD2(Send, void(DBusMessage* request, uint32_t* serial)); 51 MOCK_METHOD2(AddFilterFunction, 52 void(DBusHandleMessageFunction filter_function, 53 void* user_data)); 54 MOCK_METHOD2(RemoveFilterFunction, 55 void(DBusHandleMessageFunction filter_function, 56 void* user_data)); 57 MOCK_METHOD2(AddMatch, void(const std::string& match_rule, 58 DBusError* error)); 59 MOCK_METHOD2(RemoveMatch, bool(const std::string& match_rule, 60 DBusError* error)); 61 MOCK_METHOD4(TryRegisterObjectPath, bool(const ObjectPath& object_path, 62 const DBusObjectPathVTable* vtable, 63 void* user_data, 64 DBusError* error)); 65 MOCK_METHOD1(UnregisterObjectPath, void(const ObjectPath& object_path)); 66 MOCK_METHOD0(GetDBusTaskRunner, base::TaskRunner*()); 67 MOCK_METHOD0(GetOriginTaskRunner, base::TaskRunner*()); 68 MOCK_METHOD0(HasDBusThread, bool()); 69 MOCK_METHOD0(AssertOnOriginThread, void()); 70 MOCK_METHOD0(AssertOnDBusThread, void()); 71 72 protected: 73 ~MockBus() override; 74 }; 75 76 } // namespace dbus 77 78 #endif // DBUS_MOCK_BUS_H_ 79