| Index: dbus/message_unittest.cc
|
| diff --git a/dbus/message_unittest.cc b/dbus/message_unittest.cc
|
| index 54a14e9dd6131bed94ff0189075628a32a2708e7..22cc30920e0541c53ff3ffb008ae46bc8575b5cf 100644
|
| --- a/dbus/message_unittest.cc
|
| +++ b/dbus/message_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/logging.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| // Test that a byte can be properly written and read. We only have this
|
| @@ -344,8 +345,8 @@ TEST(MessageTest, MethodCall) {
|
| dbus::MethodCall method_call("com.example.Interface", "SomeMethod");
|
| EXPECT_TRUE(method_call.raw_message() != NULL);
|
| EXPECT_EQ(dbus::Message::MESSAGE_METHOD_CALL, method_call.GetMessageType());
|
| - method_call.SetServiceName("com.example.Service");
|
| - method_call.SetObjectPath("/com/example/Object");
|
| + method_call.SetDestination("com.example.Service");
|
| + method_call.SetPath("/com/example/Object");
|
|
|
| dbus::MessageWriter writer(&method_call);
|
| writer.AppendString("payload");
|
| @@ -360,6 +361,17 @@ TEST(MessageTest, MethodCall) {
|
| method_call.ToString());
|
| }
|
|
|
| +TEST(MessageTest, MethodCall_FromRawMessage) {
|
| + DBusMessage* raw_message = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL);
|
| + dbus_message_set_interface(raw_message, "com.example.Interface");
|
| + dbus_message_set_member(raw_message, "SomeMethod");
|
| +
|
| + scoped_ptr<dbus::MethodCall> method_call(
|
| + dbus::MethodCall::FromRawMessage(raw_message));
|
| + EXPECT_EQ("com.example.Interface", method_call->GetInterface());
|
| + EXPECT_EQ("SomeMethod", method_call->GetMember());
|
| +}
|
| +
|
| TEST(MessageTest, Response) {
|
| dbus::Response response;
|
| EXPECT_TRUE(response.raw_message() == NULL);
|
| @@ -368,7 +380,81 @@ TEST(MessageTest, Response) {
|
| EXPECT_EQ(dbus::Message::MESSAGE_METHOD_RETURN, response.GetMessageType());
|
| }
|
|
|
| +TEST(MergeTest, Response_FromMethodCall) {
|
| + const uint32 kSerial = 123;
|
| + dbus::MethodCall method_call("com.example.Interface", "SomeMethod");
|
| + method_call.SetSerial(kSerial);
|
| +
|
| + scoped_ptr<dbus::Response> response(
|
| + dbus::Response::FromMethodCall(&method_call));
|
| + EXPECT_EQ(dbus::Message::MESSAGE_METHOD_RETURN, response->GetMessageType());
|
| + // The serial should be copied to the reply serial.
|
| + EXPECT_EQ(kSerial, response->GetReplySerial());
|
| +}
|
| +
|
| +TEST(MergeTest, ErrorResponse) {
|
| + dbus::ErrorResponse error_response;
|
| + EXPECT_TRUE(error_response.raw_message() == NULL);
|
| + error_response.reset_raw_message(
|
| + dbus_message_new(DBUS_MESSAGE_TYPE_ERROR));
|
| + EXPECT_EQ(dbus::Message::MESSAGE_ERROR, error_response.GetMessageType());
|
| +}
|
| +
|
| +TEST(MergeTest, ErrorResponse_FromMethodCall) {
|
| + const uint32 kSerial = 123;
|
| +const char kErrorMessage[] = "error message";
|
| +
|
| + dbus::MethodCall method_call("com.example.Interface", "SomeMethod");
|
| + method_call.SetSerial(kSerial);
|
| +
|
| + scoped_ptr<dbus::ErrorResponse> error_response(
|
| + dbus::ErrorResponse::FromMethodCall(&method_call,
|
| + DBUS_ERROR_FAILED,
|
| + kErrorMessage));
|
| + EXPECT_EQ(dbus::Message::MESSAGE_ERROR, error_response->GetMessageType());
|
| + // The serial should be copied to the reply serial.
|
| + EXPECT_EQ(kSerial, error_response->GetReplySerial());
|
| +
|
| + // Error message should be added to the payload.
|
| + dbus::MessageReader reader(error_response.get());
|
| + std::string error_message;
|
| + ASSERT_TRUE(reader.PopString(&error_message));
|
| + EXPECT_EQ(kErrorMessage, error_message);
|
| +}
|
| +
|
| TEST(MessageTest, ToString_EmptyMessage) {
|
| dbus::Message message;
|
| EXPECT_EQ("", message.ToString());
|
| }
|
| +
|
| +TEST(MessageTest, GetAndSetHeaders) {
|
| + dbus::Message message;
|
| + message.reset_raw_message(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL));
|
| +
|
| + EXPECT_EQ("", message.GetDestination());
|
| + EXPECT_EQ("", message.GetPath());
|
| + EXPECT_EQ("", message.GetInterface());
|
| + EXPECT_EQ("", message.GetMember());
|
| + EXPECT_EQ("", message.GetErrorName());
|
| + EXPECT_EQ("", message.GetSender());
|
| + EXPECT_EQ(0U, message.GetSerial());
|
| + EXPECT_EQ(0U, message.GetReplySerial());
|
| +
|
| + message.SetDestination("org.chromium.destination");
|
| + message.SetPath("/org/chromium/path");
|
| + message.SetInterface("org.chromium.interface");
|
| + message.SetMember("member");
|
| + message.SetErrorName("org.chromium.error");
|
| + message.SetSender(":1.2");
|
| + message.SetSerial(123);
|
| + message.SetReplySerial(456);
|
| +
|
| + EXPECT_EQ("org.chromium.destination", message.GetDestination());
|
| + EXPECT_EQ("/org/chromium/path", message.GetPath());
|
| + EXPECT_EQ("org.chromium.interface", message.GetInterface());
|
| + EXPECT_EQ("member", message.GetMember());
|
| + EXPECT_EQ("org.chromium.error", message.GetErrorName());
|
| + EXPECT_EQ(":1.2", message.GetSender());
|
| + EXPECT_EQ(123U, message.GetSerial());
|
| + EXPECT_EQ(456U, message.GetReplySerial());
|
| +}
|
|
|