OLD | NEW |
---|---|
(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 | |
OLD | NEW |