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

Unified Diff: metrics_daemon_test.cc

Issue 4749001: metrics: Update tests to send user in session state change. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/metrics.git@master
Patch Set: Created 10 years, 1 month 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: metrics_daemon_test.cc
diff --git a/metrics_daemon_test.cc b/metrics_daemon_test.cc
index 40edf1fe35175564e7647340f69c8a3ba70f774d..530f357b61cd735fc40e72c94badc38dcef7f536 100644
--- a/metrics_daemon_test.cc
+++ b/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::FrequencyCounterMock;
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 @@ class MetricsDaemonTest : public testing::Test {
// 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 @@ class MetricsDaemonTest : public testing::Test {
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 @@ TEST_F(MetricsDaemonTest, MessageFilter) {
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 @@ TEST_F(MetricsDaemonTest, MessageFilter) {
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);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698