metrics: Update tests to send user in session state change.

This updates the signal to match the changes that I'm making
in http://codereview.chromium.org/4718001/show.

Change-Id: Id414187a62f209f2e8145c75bfd982b357d04e98

BUG=chromium-os:8123
TEST=ran it

Review URL: http://codereview.chromium.org/4749001
diff --git a/metrics/metrics_daemon_test.cc b/metrics/metrics_daemon_test.cc
index 40edf1f..530f357 100644
--- a/metrics/metrics_daemon_test.cc
+++ b/metrics/metrics_daemon_test.cc
@@ -4,6 +4,9 @@
 
 #include <utime.h>
 
+#include <string>
+#include <vector>
+
 #include <base/file_util.h>
 #include <gtest/gtest.h>
 
@@ -18,6 +21,8 @@
 using chromeos_metrics::TaggedCounterMock;
 using chromeos_metrics::TaggedCounterReporter;
 using chromeos_metrics::TaggedCounterReporterMock;
+using std::string;
+using std::vector;
 using ::testing::_;
 using ::testing::Return;
 using ::testing::StrictMock;
@@ -165,7 +170,7 @@
 
   // Adds a metrics library mock expectation that the specified metric
   // will be generated.
-  void ExpectMetric(const std::string& name, int sample,
+  void ExpectMetric(const string& name, int sample,
                     int min, int max, int buckets) {
     EXPECT_CALL(metrics_lib_, SendToUMA(name, sample, min, max, buckets))
         .Times(1)
@@ -187,25 +192,27 @@
     return Time::FromInternalValue(seconds * Time::kMicrosecondsPerSecond);
   }
 
-  // Creates a new DBus signal message with a single string
-  // argument. The message can be deallocated through
-  // DeleteDBusMessage.
+  // Creates a new DBus signal message with zero or more string arguments.
+  // The message can be deallocated through DeleteDBusMessage.
   //
   // |path| is the object emitting the signal.
   // |interface| is the interface the signal is emitted from.
   // |name| is the name of the signal.
-  // |arg_value| is the value of the string argument.
-  DBusMessage* NewDBusSignalString(const std::string& path,
-                                   const std::string& interface,
-                                   const std::string& name,
-                                   const std::string& arg_value) {
+  // |arg_values| contains the values of the string arguments.
+  DBusMessage* NewDBusSignalString(const string& path,
+                                   const string& interface,
+                                   const string& name,
+                                   const vector<string>& arg_values) {
     DBusMessage* msg = dbus_message_new_signal(path.c_str(),
                                                interface.c_str(),
                                                name.c_str());
     DBusMessageIter iter;
     dbus_message_iter_init_append(msg, &iter);
-    const char* arg_value_c = arg_value.c_str();
-    dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &arg_value_c);
+    for (vector<string>::const_iterator it = arg_values.begin();
+         it != arg_values.end(); ++it) {
+      const char* str_value = it->c_str();
+      dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &str_value);
+    }
     return msg;
   }
 
@@ -308,29 +315,33 @@
   EXPECT_CALL(*user_crash_interval_, Flush())
       .Times(1)
       .RetiresOnSaturation();
+  vector<string> signal_args;
   msg = NewDBusSignalString("/",
                             "org.chromium.CrashReporter",
                             "UserCrash",
-                            "");
+                            signal_args);
   res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
   EXPECT_EQ(DBUS_HANDLER_RESULT_HANDLED, res);
   DeleteDBusMessage(msg);
 
+  signal_args.clear();
+  signal_args.push_back("on");
   msg = NewDBusSignalString("/",
                             "org.chromium.PowerManager",
                             "PowerStateChanged",
-                            "on");
+                            signal_args);
   EXPECT_EQ(MetricsDaemon::kUnknownPowerState, daemon_.power_state_);
   res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
   EXPECT_EQ(MetricsDaemon::kPowerStateOn, daemon_.power_state_);
   EXPECT_EQ(DBUS_HANDLER_RESULT_HANDLED, res);
   DeleteDBusMessage(msg);
 
+  signal_args.clear();
   IgnoreActiveUseUpdate();
   msg = NewDBusSignalString("/",
                             "org.chromium.PowerManager",
                             "ScreenIsUnlocked",
-                            "");
+                            signal_args);
   EXPECT_FALSE(daemon_.user_active_);
   res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
   EXPECT_TRUE(daemon_.user_active_);
@@ -338,20 +349,26 @@
   DeleteDBusMessage(msg);
 
   IgnoreActiveUseUpdate();
+  signal_args.clear();
+  signal_args.push_back("started");
+  signal_args.push_back("bob");  // arbitrary username
   msg = NewDBusSignalString("/org/chromium/SessionManager",
                             "org.chromium.SessionManagerInterface",
                             "SessionStateChanged",
-                            "started");
+                            signal_args);
   EXPECT_EQ(MetricsDaemon::kUnknownSessionState, daemon_.session_state_);
   res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
   EXPECT_EQ(MetricsDaemon::kSessionStateStarted, daemon_.session_state_);
   EXPECT_EQ(DBUS_HANDLER_RESULT_HANDLED, res);
   DeleteDBusMessage(msg);
 
+  signal_args.clear();
+  signal_args.push_back("randomstate");
+  signal_args.push_back("bob");  // arbitrary username
   msg = NewDBusSignalString("/",
                             "org.chromium.UnknownService.Manager",
                             "StateChanged",
-                            "randomstate");
+                            signal_args);
   res = MetricsDaemon::MessageFilter(/* connection */ NULL, msg, &daemon_);
   EXPECT_EQ(DBUS_HANDLER_RESULT_NOT_YET_HANDLED, res);
   DeleteDBusMessage(msg);