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

Side by Side Diff: chrome/installer/gcapi/gcapi_omaha_experiment_test.cc

Issue 23579003: GCAPI should append to the existing experiment_labels instead of clobbering them. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review++ Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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/gcapi/gcapi_omaha_experiment.h"
6
7 #include "chrome/installer/gcapi/gcapi.h"
8 #include "chrome/installer/gcapi/gcapi_test_registry_overrider.h"
9 #include "chrome/installer/util/google_update_constants.h"
10 #include "chrome/installer/util/google_update_settings.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace {
14
15 const wchar_t kBrand[] = L"ABCD";
16 const uint16 kUserLevel = GCAPI_INVOKED_STANDARD_SHELL;
17
18 const wchar_t kSomeExperiments[] = L"myexp=1|Aug 2;yourexp=2|Sep 5";
19 const wchar_t kSomeOtherExperiments[] = L"anotherexp=joe|Jun 7 2008";
20 const wchar_t kSomeMoreExperiments[] = L"moreexp=foo|Jul 31 1999";
21
22 class GCAPIOmahaExperimentTest : public ::testing::Test {
23 protected:
24 GCAPIOmahaExperimentTest()
25 : brand_(kBrand),
26 reactivation_label_(gcapi_internals::GetGCAPIExperimentLabel(
27 kBrand, gcapi_internals::kReactivationLabel)),
28 relaunch_label_(gcapi_internals::GetGCAPIExperimentLabel(
29 kBrand, gcapi_internals::kRelaunchLabel)) {
30 }
31
32 void VerifyExperimentLabels(const string16& expected_labels) {
33 string16 actual_labels;
34 EXPECT_TRUE(GoogleUpdateSettings::ReadExperimentLabels(false,
35 &actual_labels));
36 EXPECT_EQ(expected_labels, actual_labels);
37 }
38
39 string16 brand_;
40 string16 reactivation_label_;
41 string16 relaunch_label_;
42
43 const GCAPITestRegistryOverrider gcapi_test_registry_overrider_;
44 };
45
46 TEST_F(GCAPIOmahaExperimentTest, SetReactivationLabelFromEmptyExperiments) {
47 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
48 VerifyExperimentLabels(reactivation_label_);
49 }
50
51 // Test the relaunch label once; all other tests go more in depth, but since
52 // both labels use the same logic underneath there is no need to test both in
53 // depth.
54 TEST_F(GCAPIOmahaExperimentTest, SetRelaunchLabelFromEmptyExperiments) {
55 ASSERT_TRUE(SetRelaunchExperimentLabels(kBrand, kUserLevel));
56 VerifyExperimentLabels(relaunch_label_);
57 }
58
59 TEST_F(GCAPIOmahaExperimentTest, SetReactivationLabelWithExistingExperiments) {
60 GoogleUpdateSettings::SetExperimentLabels(false, kSomeExperiments);
61
62 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
63
64 string16 expected_labels(kSomeExperiments);
65 expected_labels.append(google_update::kExperimentLabelSep);
66 expected_labels.append(reactivation_label_);
67 VerifyExperimentLabels(expected_labels);
68 }
69
70 TEST_F(GCAPIOmahaExperimentTest,
71 SetReactivationLabelWithExistingIdenticalExperiment) {
72 string16 previous_labels(kSomeExperiments);
73 previous_labels.append(google_update::kExperimentLabelSep);
74 previous_labels.append(reactivation_label_);
75 previous_labels.append(google_update::kExperimentLabelSep);
76 previous_labels.append(kSomeOtherExperiments);
77 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels);
78
79 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
80
81 string16 expected_labels(kSomeExperiments);
82 expected_labels.append(google_update::kExperimentLabelSep);
83 expected_labels.append(kSomeOtherExperiments);
84 expected_labels.append(google_update::kExperimentLabelSep);
85 expected_labels.append(reactivation_label_);
86 VerifyExperimentLabels(expected_labels);
87 }
88
89 TEST_F(GCAPIOmahaExperimentTest,
90 SetReactivationLabelWithExistingIdenticalAtBeginning) {
91 string16 previous_labels(reactivation_label_);
92 previous_labels.append(google_update::kExperimentLabelSep);
93 previous_labels.append(kSomeExperiments);
94 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels);
95
96 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
97
98 string16 expected_labels(kSomeExperiments);
99 expected_labels.append(google_update::kExperimentLabelSep);
100 expected_labels.append(reactivation_label_);
101 VerifyExperimentLabels(expected_labels);
102 }
103
104 TEST_F(GCAPIOmahaExperimentTest,
105 SetReactivationLabelWithFakeMatchInAnExperiment) {
106 string16 previous_labels(kSomeExperiments);
107 previous_labels.append(google_update::kExperimentLabelSep);
108 previous_labels.append(L"blah_");
109 // Shouldn't match deletion criteria.
110 previous_labels.append(reactivation_label_);
111 previous_labels.append(google_update::kExperimentLabelSep);
112 previous_labels.append(kSomeOtherExperiments);
113 previous_labels.append(google_update::kExperimentLabelSep);
114 // Should match the deletion criteria.
115 previous_labels.append(reactivation_label_);
116 previous_labels.append(google_update::kExperimentLabelSep);
117 previous_labels.append(kSomeMoreExperiments);
118 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels);
119
120 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
121
122 string16 expected_labels(kSomeExperiments);
123 expected_labels.append(google_update::kExperimentLabelSep);
124 expected_labels.append(L"blah_");
125 expected_labels.append(reactivation_label_);
126 expected_labels.append(google_update::kExperimentLabelSep);
127 expected_labels.append(kSomeOtherExperiments);
128 expected_labels.append(google_update::kExperimentLabelSep);
129 expected_labels.append(kSomeMoreExperiments);
130 expected_labels.append(google_update::kExperimentLabelSep);
131 expected_labels.append(reactivation_label_);
132 VerifyExperimentLabels(expected_labels);
133 }
134
135 TEST_F(GCAPIOmahaExperimentTest,
136 SetReactivationLabelWithFakeMatchInAnExperimentAndNoRealMatch) {
137 string16 previous_labels(kSomeExperiments);
138 previous_labels.append(google_update::kExperimentLabelSep);
139 previous_labels.append(L"blah_");
140 // Shouldn't match deletion criteria.
141 previous_labels.append(reactivation_label_);
142 previous_labels.append(google_update::kExperimentLabelSep);
143 previous_labels.append(kSomeOtherExperiments);
144 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels);
145
146 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
147
148 string16 expected_labels(kSomeExperiments);
149 expected_labels.append(google_update::kExperimentLabelSep);
150 expected_labels.append(L"blah_");
151 expected_labels.append(reactivation_label_);
152 expected_labels.append(google_update::kExperimentLabelSep);
153 expected_labels.append(kSomeOtherExperiments);
154 expected_labels.append(google_update::kExperimentLabelSep);
155 expected_labels.append(reactivation_label_);
156 VerifyExperimentLabels(expected_labels);
157 }
158
159 TEST_F(GCAPIOmahaExperimentTest,
160 SetReactivationLabelWithExistingEntryWithLabelAsPrefix) {
161 string16 previous_labels(kSomeExperiments);
162 previous_labels.append(google_update::kExperimentLabelSep);
163 // Append prefix matching the label, but not followed by '='.
164 previous_labels.append(gcapi_internals::kReactivationLabel);
165 // Shouldn't match deletion criteria.
166 previous_labels.append(kSomeOtherExperiments);
167 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels);
168
169 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel));
170
171 string16 expected_labels(kSomeExperiments);
172 expected_labels.append(google_update::kExperimentLabelSep);
173 expected_labels.append(gcapi_internals::kReactivationLabel);
174 expected_labels.append(kSomeOtherExperiments);
175 expected_labels.append(google_update::kExperimentLabelSep);
176 expected_labels.append(reactivation_label_);
177 VerifyExperimentLabels(expected_labels);
178 }
179
180 } // namespace
OLDNEW
« no previous file with comments | « chrome/installer/gcapi/gcapi_omaha_experiment.cc ('k') | chrome/installer/gcapi/gcapi_reactivation_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698