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

Side by Side Diff: chrome/installer/util/experiment_unittest.cc

Issue 2889323004: Win 10 Inactive toast experiment metrics and storage modifications. (Closed)
Patch Set: Incorporate review comments Created 3 years, 6 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/installer/util/experiment.h"
6
7 #include <cmath>
8
9 #include "base/time/time.h"
10 #include "chrome/installer/util/experiment_metrics.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace installer {
14
15 class ExperimentTest : public ::testing::Test {
16 protected:
17 void TestExperimentMetrics(ExperimentMetrics* metrics) {
grt (UTC plus 2) 2017/05/31 12:24:10 nit: this name makes me think that this function i
nikunjb 2017/06/02 05:11:24 This is no longer needed for this test.
18 metrics->SetState(ExperimentMetrics::kGroupAssigned);
19 metrics->group = 5;
20 metrics->toast_location = ExperimentMetrics::kOverTaskbarPin;
21 metrics->toast_count = 1;
22 metrics->first_toast_offset = 30;
23 metrics->toast_hour = 3;
24 metrics->last_used_bucket = 126; // Corresponds to 1621 days inactive.
25 metrics->display_time_bucket = 25; // Corresponds to 32875 sec
26 metrics->session_length_bucket = 50; // Corresponds to 3962 min
27 }
28 };
29
30 TEST_F(ExperimentTest, TestInitializeFromMetrics) {
31 ExperimentMetrics metrics;
32 TestExperimentMetrics(&metrics);
33 Experiment experiment;
34 experiment.InitializeFromMetrics(metrics);
35
36 ASSERT_EQ(metrics.state, experiment.state());
grt (UTC plus 2) 2017/05/31 12:24:10 please use EXPECT_* rather than ASSERT_* for cases
nikunjb 2017/06/02 05:11:24 Done.
37 ASSERT_EQ(metrics.group, experiment.group());
38 ASSERT_EQ(metrics.toast_location, experiment.toast_location());
39 ASSERT_EQ(1621, experiment.inactive_days());
40 ASSERT_EQ(metrics.toast_count, experiment.toast_count());
41 base::Time expected_display_time =
42 (base::Time::UnixEpoch() +
43 base::TimeDelta::FromSeconds(
44 ExperimentMetrics::kExperimentStartSeconds) +
45 base::TimeDelta::FromDays(metrics.first_toast_offset));
46 ASSERT_EQ(expected_display_time, experiment.first_display_time());
47 ASSERT_EQ(expected_display_time, experiment.latest_display_time());
48 ASSERT_EQ(base::TimeDelta::FromMinutes(3962),
49 experiment.user_session_uptime());
50 ASSERT_EQ(base::TimeDelta::FromSeconds(32875), experiment.action_delay());
51 }
52
53 TEST_F(ExperimentTest, TestSetters) {
grt (UTC plus 2) 2017/05/31 12:24:10 would you break this up into individual test funct
nikunjb 2017/06/02 05:11:24 Done. Added separate test. Left this test as it i
54 Experiment experiment;
55 // Set experiment states so that the generated experiment metrics
56 // is similar to TestExperimentMetrics.
57 experiment.AssignGroup(5);
58 experiment.SetState(ExperimentMetrics::kGroupAssigned);
59 experiment.SetToastLocation(ExperimentMetrics::kOverTaskbarPin);
60 experiment.SetInactiveDays(1621);
61 experiment.SetToastCount(1);
62 base::Time test_display_time =
63 (base::Time::UnixEpoch() +
64 base::TimeDelta::FromSeconds(
65 ExperimentMetrics::kExperimentStartSeconds) +
66 base::TimeDelta::FromDays(30) + base::TimeDelta::FromHours(3));
67 experiment.SetDisplayTime(test_display_time);
grt (UTC plus 2) 2017/05/31 12:24:10 please add a test to confirm that SetDisplayTime(2
nikunjb 2017/06/02 05:11:24 Added in TestSetDisplayTime. (Although note that t
68 experiment.SetUserSessionUptime(base::TimeDelta::FromMinutes(3962));
69 experiment.SetActionDelay(base::TimeDelta::FromSeconds(32875));
70
71 ASSERT_EQ(ExperimentMetrics::kGroupAssigned, experiment.state());
72 ASSERT_EQ(5, experiment.group());
73 ASSERT_EQ(ExperimentMetrics::kOverTaskbarPin, experiment.toast_location());
74 ASSERT_EQ(1621, experiment.inactive_days());
75 ASSERT_EQ(1, experiment.toast_count());
76 ASSERT_EQ(test_display_time, experiment.first_display_time());
77 ASSERT_EQ(test_display_time, experiment.latest_display_time());
78 ASSERT_EQ(base::TimeDelta::FromMinutes(3962),
79 experiment.user_session_uptime());
80 ASSERT_EQ(base::TimeDelta::FromSeconds(32875), experiment.action_delay());
81
82 ASSERT_EQ(ExperimentMetrics::kGroupAssigned, experiment.metrics().state);
83 ASSERT_EQ(5, experiment.metrics().group);
84 ASSERT_EQ(ExperimentMetrics::kOverTaskbarPin,
85 experiment.metrics().toast_location);
86 ASSERT_EQ(1, experiment.metrics().toast_count);
87 ASSERT_EQ(30, experiment.metrics().first_toast_offset);
88 ASSERT_EQ(3, experiment.metrics().toast_hour);
grt (UTC plus 2) 2017/05/31 12:24:10 this one will be hard to test since it's tz-depend
nikunjb 2017/06/02 05:11:24 Removed toast hour check from here and added a sep
89 ASSERT_EQ(126, experiment.metrics().last_used_bucket);
90 ASSERT_EQ(25, experiment.metrics().display_time_bucket);
91 ASSERT_EQ(50, experiment.metrics().session_length_bucket);
92 }
93
94 } // namespace installer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698