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