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

Unified Diff: dbus/message_unittest.cc

Issue 10409065: Change setters of dbus::Message to return false instead of aborting on errors (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: _ Created 8 years, 7 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
« no previous file with comments | « dbus/message.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/message_unittest.cc
diff --git a/dbus/message_unittest.cc b/dbus/message_unittest.cc
index 9d87c2ad51fc395f5e649544745b799cc51650a8..d78d90f2de579ee3a31f6a9c27f3c22e08097422 100644
--- a/dbus/message_unittest.cc
+++ b/dbus/message_unittest.cc
@@ -565,12 +565,12 @@ TEST(MessageTest, GetAndSetHeaders) {
EXPECT_EQ(0U, message->GetSerial());
EXPECT_EQ(0U, message->GetReplySerial());
- message->SetDestination("org.chromium.destination");
- message->SetPath(dbus::ObjectPath("/org/chromium/path"));
- message->SetInterface("org.chromium.interface");
- message->SetMember("member");
- message->SetErrorName("org.chromium.error");
- message->SetSender(":1.2");
+ EXPECT_TRUE(message->SetDestination("org.chromium.destination"));
+ EXPECT_TRUE(message->SetPath(dbus::ObjectPath("/org/chromium/path")));
+ EXPECT_TRUE(message->SetInterface("org.chromium.interface"));
+ EXPECT_TRUE(message->SetMember("member"));
+ EXPECT_TRUE(message->SetErrorName("org.chromium.error"));
+ EXPECT_TRUE(message->SetSender(":1.2"));
message->SetSerial(123);
message->SetReplySerial(456);
@@ -583,3 +583,33 @@ TEST(MessageTest, GetAndSetHeaders) {
EXPECT_EQ(123U, message->GetSerial());
EXPECT_EQ(456U, message->GetReplySerial());
}
+
+TEST(MessageTest, SetInvalidHeaders) {
+ scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
+ EXPECT_EQ("", message->GetDestination());
+ EXPECT_EQ(dbus::ObjectPath(""), message->GetPath());
+ EXPECT_EQ("", message->GetInterface());
+ EXPECT_EQ("", message->GetMember());
+ EXPECT_EQ("", message->GetErrorName());
+ EXPECT_EQ("", message->GetSender());
+
+ // Empty element between periods.
+ EXPECT_FALSE(message->SetDestination("org..chromium"));
+ // Trailing '/' is only allowed for the root path.
+ EXPECT_FALSE(message->SetPath(dbus::ObjectPath("/org/chromium/")));
+ // Interface name cannot contain '/'.
+ EXPECT_FALSE(message->SetInterface("org/chromium/interface"));
+ // Member name cannot begin with a digit.
+ EXPECT_FALSE(message->SetMember("1member"));
+ // Error name cannot begin with a period.
+ EXPECT_FALSE(message->SetErrorName(".org.chromium.error"));
+ // Disallowed characters.
+ EXPECT_FALSE(message->SetSender("?!#*"));
+
+ EXPECT_EQ("", message->GetDestination());
+ EXPECT_EQ(dbus::ObjectPath(""), message->GetPath());
+ EXPECT_EQ("", message->GetInterface());
+ EXPECT_EQ("", message->GetMember());
+ EXPECT_EQ("", message->GetErrorName());
+ EXPECT_EQ("", message->GetSender());
+}
« no previous file with comments | « dbus/message.cc ('k') | dbus/object_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698