OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/installer/util/experiment_storage.h" | 5 #include "chrome/installer/util/experiment_storage.h" |
6 | 6 |
7 #include "base/strings/string_piece.h" | 7 #include "base/strings/string_piece.h" |
8 #include "base/test/test_reg_util_win.h" | 8 #include "base/test/test_reg_util_win.h" |
9 #include "chrome/install_static/install_details.h" | 9 #include "chrome/install_static/install_details.h" |
10 #include "chrome/install_static/test/scoped_install_details.h" | 10 #include "chrome/install_static/test/scoped_install_details.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 ExperimentMetrics metrics; | 55 ExperimentMetrics metrics; |
56 metrics.state = ExperimentMetrics::kGroupAssigned; | 56 metrics.state = ExperimentMetrics::kGroupAssigned; |
57 metrics.toast_location = ExperimentMetrics::kOverTaskbarPin; | 57 metrics.toast_location = ExperimentMetrics::kOverTaskbarPin; |
58 metrics.toast_count = 1; | 58 metrics.toast_count = 1; |
59 metrics.first_toast_offset_days = 30; | 59 metrics.first_toast_offset_days = 30; |
60 metrics.toast_hour = 3; | 60 metrics.toast_hour = 3; |
61 metrics.last_used_bucket = 2; | 61 metrics.last_used_bucket = 2; |
62 metrics.action_delay_bucket = 11; | 62 metrics.action_delay_bucket = 11; |
63 metrics.session_length_bucket = 36; | 63 metrics.session_length_bucket = 36; |
64 base::string16 encoded_metrics(ExperimentStorage::EncodeMetrics(metrics)); | 64 base::string16 encoded_metrics(ExperimentStorage::EncodeMetrics(metrics)); |
65 EXPECT_EQ(L"5BIMD4IA", encoded_metrics); | 65 EXPECT_EQ(L"5BIMD2IA", encoded_metrics); |
66 ExperimentMetrics decoded_metrics; | 66 ExperimentMetrics decoded_metrics; |
67 ASSERT_TRUE( | 67 ASSERT_TRUE( |
68 ExperimentStorage::DecodeMetrics(encoded_metrics, &decoded_metrics)); | 68 ExperimentStorage::DecodeMetrics(encoded_metrics, &decoded_metrics)); |
69 EXPECT_EQ(metrics, decoded_metrics); | 69 EXPECT_EQ(metrics, decoded_metrics); |
70 } | 70 } |
71 | 71 |
72 TEST_P(ExperimentStorageTest, TestEncodeDecodeForMax) { | 72 TEST_P(ExperimentStorageTest, TestEncodeDecodeForMax) { |
73 Experiment experiment; | 73 Experiment experiment; |
74 experiment.AssignGroup(ExperimentMetrics::kNumGroups - 1); | 74 experiment.AssignGroup(ExperimentMetrics::kNumGroups - 1); |
75 experiment.SetToastLocation(ExperimentMetrics::kOverNotificationArea); | 75 experiment.SetToastLocation(ExperimentMetrics::kOverNotificationArea); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 base::string16 encoded_metrics(ExperimentStorage::EncodeMetrics(metrics)); | 117 base::string16 encoded_metrics(ExperimentStorage::EncodeMetrics(metrics)); |
118 EXPECT_EQ(L"AAAAAAAA", encoded_metrics); | 118 EXPECT_EQ(L"AAAAAAAA", encoded_metrics); |
119 ExperimentMetrics decoded_metrics; | 119 ExperimentMetrics decoded_metrics; |
120 ASSERT_TRUE( | 120 ASSERT_TRUE( |
121 ExperimentStorage::DecodeMetrics(encoded_metrics, &decoded_metrics)); | 121 ExperimentStorage::DecodeMetrics(encoded_metrics, &decoded_metrics)); |
122 EXPECT_EQ(metrics, decoded_metrics); | 122 EXPECT_EQ(metrics, decoded_metrics); |
123 } | 123 } |
124 | 124 |
125 TEST_P(ExperimentStorageTest, TestReadWriteParticipation) { | 125 TEST_P(ExperimentStorageTest, TestReadWriteParticipation) { |
126 ExperimentStorage storage; | 126 ExperimentStorage storage; |
127 ExperimentStorage::Participation expected = | 127 ExperimentStorage::Study expected = ExperimentStorage::kStudyOne; |
128 ExperimentStorage::Participation::kIsParticipating; | |
129 ASSERT_TRUE(storage.AcquireLock()->WriteParticipation(expected)); | 128 ASSERT_TRUE(storage.AcquireLock()->WriteParticipation(expected)); |
130 ExperimentStorage::Participation p; | 129 ExperimentStorage::Study p; |
131 ASSERT_TRUE(storage.AcquireLock()->ReadParticipation(&p)); | 130 ASSERT_TRUE(storage.AcquireLock()->ReadParticipation(&p)); |
132 EXPECT_EQ(expected, p); | 131 EXPECT_EQ(expected, p); |
133 } | 132 } |
134 | 133 |
135 TEST_P(ExperimentStorageTest, TestLoadStoreExperiment) { | 134 TEST_P(ExperimentStorageTest, TestLoadStoreExperiment) { |
136 Experiment experiment; | 135 Experiment experiment; |
137 experiment.AssignGroup(5); | 136 experiment.AssignGroup(5); |
138 ExperimentStorage storage; | 137 ExperimentStorage storage; |
139 ASSERT_TRUE(storage.AcquireLock()->StoreExperiment(experiment)); | 138 ASSERT_TRUE(storage.AcquireLock()->StoreExperiment(experiment)); |
140 Experiment stored_experiment; | 139 Experiment stored_experiment; |
(...skipping 18 matching lines...) Expand all Loading... |
159 metrics.toast_location = ExperimentMetrics::kOverTaskbarPin; | 158 metrics.toast_location = ExperimentMetrics::kOverTaskbarPin; |
160 metrics.toast_count = 1; | 159 metrics.toast_count = 1; |
161 metrics.first_toast_offset_days = 30; | 160 metrics.first_toast_offset_days = 30; |
162 metrics.toast_hour = 3; | 161 metrics.toast_hour = 3; |
163 metrics.last_used_bucket = 2; | 162 metrics.last_used_bucket = 2; |
164 metrics.action_delay_bucket = 11; | 163 metrics.action_delay_bucket = 11; |
165 metrics.session_length_bucket = 36; | 164 metrics.session_length_bucket = 36; |
166 ASSERT_TRUE(storage.AcquireLock()->StoreMetrics(metrics)); | 165 ASSERT_TRUE(storage.AcquireLock()->StoreMetrics(metrics)); |
167 ExperimentMetrics stored_metrics; | 166 ExperimentMetrics stored_metrics; |
168 ASSERT_TRUE(storage.AcquireLock()->LoadMetrics(&stored_metrics)); | 167 ASSERT_TRUE(storage.AcquireLock()->LoadMetrics(&stored_metrics)); |
169 EXPECT_EQ(L"5BIMD4IA", ExperimentStorage::EncodeMetrics(stored_metrics)); | 168 EXPECT_EQ(L"5BIMD2IA", ExperimentStorage::EncodeMetrics(stored_metrics)); |
170 // Verify that expeirment labels are stored in registry. | 169 // Verify that expeirment labels are stored in registry. |
171 EXPECT_EQ(metrics, stored_metrics); | 170 EXPECT_EQ(metrics, stored_metrics); |
172 } | 171 } |
173 | 172 |
174 INSTANTIATE_TEST_CASE_P(UserLevel, | 173 INSTANTIATE_TEST_CASE_P(UserLevel, |
175 ExperimentStorageTest, | 174 ExperimentStorageTest, |
176 ::testing::Values(false)); | 175 ::testing::Values(false)); |
177 | 176 |
178 INSTANTIATE_TEST_CASE_P(SystemLevel, | 177 INSTANTIATE_TEST_CASE_P(SystemLevel, |
179 ExperimentStorageTest, | 178 ExperimentStorageTest, |
180 ::testing::Values(true)); | 179 ::testing::Values(true)); |
181 | 180 |
182 } // namespace installer | 181 } // namespace installer |
OLD | NEW |