Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2194)

Unified Diff: dbus/bus_unittest.cc

Issue 8161005: Fix a bug in dbus::Bus::AddFilterFunction(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« dbus/bus.cc ('K') | « dbus/bus.cc ('k') | dbus/object_proxy.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dbus/bus_unittest.cc
diff --git a/dbus/bus_unittest.cc b/dbus/bus_unittest.cc
index 6209bc3fc8656ff022c91568bbcb50b6a176674d..999727a94ca42e51bb8c2efaffe1a4a81834f383 100644
--- a/dbus/bus_unittest.cc
+++ b/dbus/bus_unittest.cc
@@ -13,6 +13,17 @@
#include "testing/gtest/include/gtest/gtest.h"
+namespace {
+
+// Used to test AddFilterFunction().
+DBusHandlerResult DummyHandler(DBusConnection* connection,
+ DBusMessage* raw_message,
+ void* user_data) {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+} // namespace
+
TEST(BusTest, GetObjectProxy) {
dbus::Bus::Options options;
scoped_refptr<dbus::Bus> bus = new dbus::Bus(options);
@@ -89,3 +100,24 @@ TEST(BusTest, ShutdownAndBlockWithDBusThread) {
EXPECT_TRUE(bus->shutdown_completed());
dbus_thread.Stop();
}
+
+TEST(BusTest, AddFilterFunction) {
+ dbus::Bus::Options options;
+ scoped_refptr<dbus::Bus> bus = new dbus::Bus(options);
+ // Should connect before calling AddFilterFunction().
+ bus->Connect();
+
+ int data1 = 100;
+ int data2 = 200;
+ ASSERT_TRUE(bus->AddFilterFunction(&DummyHandler, &data1));
+ // Cannot add the same function with the same data.
+ ASSERT_FALSE(bus->AddFilterFunction(&DummyHandler, &data1));
+ // Can add the same function with different data.
+ ASSERT_TRUE(bus->AddFilterFunction(&DummyHandler, &data2));
+
+ ASSERT_TRUE(bus->RemoveFilterFunction(&DummyHandler, &data1));
+ ASSERT_FALSE(bus->RemoveFilterFunction(&DummyHandler, &data1));
+ ASSERT_TRUE(bus->RemoveFilterFunction(&DummyHandler, &data2));
+
+ bus->ShutdownAndBlock();
+}
« dbus/bus.cc ('K') | « dbus/bus.cc ('k') | dbus/object_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698