OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "dbus/message.h" | 5 #include "dbus/message.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "dbus/test_proto.pb.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
11 | 12 |
12 // Test that a byte can be properly written and read. We only have this | 13 // Test that a byte can be properly written and read. We only have this |
13 // test for byte, as repeating this for other basic types is too redundant. | 14 // test for byte, as repeating this for other basic types is too redundant. |
14 TEST(MessageTest, AppendAndPopByte) { | 15 TEST(MessageTest, AppendAndPopByte) { |
15 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); | 16 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
16 dbus::MessageWriter writer(message.get()); | 17 dbus::MessageWriter writer(message.get()); |
17 writer.AppendByte(123); // The input is 123. | 18 writer.AppendByte(123); // The input is 123. |
18 | 19 |
19 dbus::MessageReader reader(message.get()); | 20 dbus::MessageReader reader(message.get()); |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 dbus::MessageReader reader(message.get()); | 220 dbus::MessageReader reader(message.get()); |
220 std::vector<std::string> output_object_paths; | 221 std::vector<std::string> output_object_paths; |
221 ASSERT_TRUE(reader.PopArrayOfObjectPaths(&output_object_paths)); | 222 ASSERT_TRUE(reader.PopArrayOfObjectPaths(&output_object_paths)); |
222 ASSERT_FALSE(reader.HasMoreData()); | 223 ASSERT_FALSE(reader.HasMoreData()); |
223 ASSERT_EQ(3U, output_object_paths.size()); | 224 ASSERT_EQ(3U, output_object_paths.size()); |
224 EXPECT_EQ("/object/path/1", output_object_paths[0]); | 225 EXPECT_EQ("/object/path/1", output_object_paths[0]); |
225 EXPECT_EQ("/object/path/2", output_object_paths[1]); | 226 EXPECT_EQ("/object/path/2", output_object_paths[1]); |
226 EXPECT_EQ("/object/path/3", output_object_paths[2]); | 227 EXPECT_EQ("/object/path/3", output_object_paths[2]); |
227 } | 228 } |
228 | 229 |
| 230 TEST(MessageTest, ProtoBuf) { |
| 231 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
| 232 dbus::MessageWriter writer(message.get()); |
| 233 TestProto send_message; |
| 234 send_message.set_text("testing"); |
| 235 send_message.set_number(123); |
| 236 writer.AppendProtoAsArrayOfBytes(send_message); |
| 237 |
| 238 dbus::MessageReader reader(message.get()); |
| 239 TestProto receive_message; |
| 240 ASSERT_TRUE(reader.PopArrayOfBytesAsProto(&receive_message)); |
| 241 EXPECT_EQ(receive_message.text(), send_message.text()); |
| 242 EXPECT_EQ(receive_message.number(), send_message.number()); |
| 243 } |
| 244 |
| 245 |
229 // Test that an array can be properly written and read. We only have this | 246 // Test that an array can be properly written and read. We only have this |
230 // test for array, as repeating this for other container types is too | 247 // test for array, as repeating this for other container types is too |
231 // redundant. | 248 // redundant. |
232 TEST(MessageTest, OpenArrayAndPopArray) { | 249 TEST(MessageTest, OpenArrayAndPopArray) { |
233 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); | 250 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
234 dbus::MessageWriter writer(message.get()); | 251 dbus::MessageWriter writer(message.get()); |
235 dbus::MessageWriter array_writer(message.get()); | 252 dbus::MessageWriter array_writer(message.get()); |
236 writer.OpenArray("s", &array_writer); // Open an array of strings. | 253 writer.OpenArray("s", &array_writer); // Open an array of strings. |
237 array_writer.AppendString("foo"); | 254 array_writer.AppendString("foo"); |
238 array_writer.AppendString("bar"); | 255 array_writer.AppendString("bar"); |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 | 532 |
516 EXPECT_EQ("org.chromium.destination", message->GetDestination()); | 533 EXPECT_EQ("org.chromium.destination", message->GetDestination()); |
517 EXPECT_EQ("/org/chromium/path", message->GetPath()); | 534 EXPECT_EQ("/org/chromium/path", message->GetPath()); |
518 EXPECT_EQ("org.chromium.interface", message->GetInterface()); | 535 EXPECT_EQ("org.chromium.interface", message->GetInterface()); |
519 EXPECT_EQ("member", message->GetMember()); | 536 EXPECT_EQ("member", message->GetMember()); |
520 EXPECT_EQ("org.chromium.error", message->GetErrorName()); | 537 EXPECT_EQ("org.chromium.error", message->GetErrorName()); |
521 EXPECT_EQ(":1.2", message->GetSender()); | 538 EXPECT_EQ(":1.2", message->GetSender()); |
522 EXPECT_EQ(123U, message->GetSerial()); | 539 EXPECT_EQ(123U, message->GetSerial()); |
523 EXPECT_EQ(456U, message->GetReplySerial()); | 540 EXPECT_EQ(456U, message->GetReplySerial()); |
524 } | 541 } |
OLD | NEW |