OLD | NEW |
---|---|
(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.h" | |
6 #include "chrome/installer/gcapi/gcapi_omaha_experiment.h" | |
Alexei Svitkine (slow)
2013/11/05 23:05:23
Put this as the first include, followed by a blank
gab
2013/11/06 16:39:10
Done.
| |
7 #include "chrome/installer/gcapi/gcapi_test_registry_overrider.h" | |
8 #include "chrome/installer/util/google_update_constants.h" | |
9 #include "chrome/installer/util/google_update_settings.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 namespace { | |
13 | |
14 const wchar_t kBrand[] = L"ABCD"; | |
15 const uint16 kUserLevel = GCAPI_INVOKED_STANDARD_SHELL; | |
16 | |
17 const wchar_t kSomeExperiments[] = L"myexp=1|Aug 2;yourexp=2|Sep 5"; | |
18 const wchar_t kSomeOtherExperiments[] = L"anotherexp=joe|Jun 7 2008"; | |
19 const wchar_t kSomeMoreExperiments[] = L"moreexp=foo|Jul 31 1999"; | |
20 | |
21 class GCAPIOmahaExperimentTest : public ::testing::Test { | |
22 protected: | |
23 GCAPIOmahaExperimentTest() | |
24 : brand_(kBrand), | |
25 reactivation_label_(gcapi_internals::GetGCAPIExperimentLabel( | |
26 kBrand, gcapi_internals::kReactivationLabel)), | |
27 relaunch_label_(gcapi_internals::GetGCAPIExperimentLabel( | |
28 kBrand, gcapi_internals::kRelaunchLabel)) { | |
29 } | |
30 | |
31 void VerifyExperimentLabels(const string16& expected_labels) { | |
32 string16 actual_labels; | |
33 EXPECT_TRUE(GoogleUpdateSettings::ReadExperimentLabels(false, | |
34 &actual_labels)); | |
35 EXPECT_EQ(expected_labels, actual_labels); | |
36 } | |
37 | |
38 string16 brand_; | |
39 string16 reactivation_label_; | |
40 string16 relaunch_label_; | |
41 | |
42 const GCAPITestRegistryOverrider gcapi_test_registry_overrider_; | |
43 }; | |
44 | |
45 TEST_F(GCAPIOmahaExperimentTest, SetReactivationLabelFromEmptyExperiments) { | |
46 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
47 VerifyExperimentLabels(reactivation_label_); | |
48 } | |
49 | |
50 // Test the relaunch label once; all other tests go more in depth, but since | |
51 // both labels use the same logic underneath there is no need to test both in | |
52 // depth. | |
53 TEST_F(GCAPIOmahaExperimentTest, SetRelaunchLabelFromEmptyExperiments) { | |
54 ASSERT_TRUE(SetRelaunchExperimentLabels(kBrand, kUserLevel)); | |
55 VerifyExperimentLabels(relaunch_label_); | |
56 } | |
57 | |
58 TEST_F(GCAPIOmahaExperimentTest, SetReactivationLabelWithExistingExperiments) { | |
59 GoogleUpdateSettings::SetExperimentLabels(false, kSomeExperiments); | |
60 | |
61 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
62 | |
63 string16 expected_labels(kSomeExperiments); | |
64 expected_labels.append(google_update::kExperimentLabelSep); | |
65 expected_labels.append(reactivation_label_); | |
66 VerifyExperimentLabels(expected_labels); | |
67 } | |
68 | |
69 TEST_F(GCAPIOmahaExperimentTest, | |
70 SetReactivationLabelWithExistingIdenticalExperiment) { | |
71 string16 previous_labels(kSomeExperiments); | |
72 previous_labels.append(google_update::kExperimentLabelSep); | |
73 previous_labels.append(reactivation_label_); | |
74 previous_labels.append(google_update::kExperimentLabelSep); | |
75 previous_labels.append(kSomeOtherExperiments); | |
76 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels); | |
77 | |
78 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
79 | |
80 string16 expected_labels(kSomeExperiments); | |
81 expected_labels.append(google_update::kExperimentLabelSep); | |
82 expected_labels.append(kSomeOtherExperiments); | |
83 expected_labels.append(google_update::kExperimentLabelSep); | |
84 expected_labels.append(reactivation_label_); | |
85 VerifyExperimentLabels(expected_labels); | |
86 } | |
87 | |
88 TEST_F(GCAPIOmahaExperimentTest, | |
89 SetReactivationLabelWithExistingIdenticalAtBeginning) { | |
90 string16 previous_labels(reactivation_label_); | |
91 previous_labels.append(google_update::kExperimentLabelSep); | |
92 previous_labels.append(kSomeExperiments); | |
93 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels); | |
94 | |
95 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
96 | |
97 string16 expected_labels(kSomeExperiments); | |
98 expected_labels.append(google_update::kExperimentLabelSep); | |
99 expected_labels.append(reactivation_label_); | |
100 VerifyExperimentLabels(expected_labels); | |
101 } | |
102 | |
103 TEST_F(GCAPIOmahaExperimentTest, | |
104 SetReactivationLabelWithFakeMatchInAnExperiment) { | |
105 string16 previous_labels(kSomeExperiments); | |
106 previous_labels.append(google_update::kExperimentLabelSep); | |
107 previous_labels.append(L"blah_"); | |
108 // Shouldn't match deletion criteria. | |
109 previous_labels.append(reactivation_label_); | |
110 previous_labels.append(google_update::kExperimentLabelSep); | |
111 previous_labels.append(kSomeOtherExperiments); | |
112 previous_labels.append(google_update::kExperimentLabelSep); | |
113 // Should match the deletion criteria. | |
114 previous_labels.append(reactivation_label_); | |
115 previous_labels.append(google_update::kExperimentLabelSep); | |
116 previous_labels.append(kSomeMoreExperiments); | |
117 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels); | |
118 | |
119 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
120 | |
121 string16 expected_labels(kSomeExperiments); | |
122 expected_labels.append(google_update::kExperimentLabelSep); | |
123 expected_labels.append(L"blah_"); | |
124 expected_labels.append(reactivation_label_); | |
125 expected_labels.append(google_update::kExperimentLabelSep); | |
126 expected_labels.append(kSomeOtherExperiments); | |
127 expected_labels.append(google_update::kExperimentLabelSep); | |
128 expected_labels.append(kSomeMoreExperiments); | |
129 expected_labels.append(google_update::kExperimentLabelSep); | |
130 expected_labels.append(reactivation_label_); | |
131 VerifyExperimentLabels(expected_labels); | |
132 } | |
133 | |
134 TEST_F(GCAPIOmahaExperimentTest, | |
135 SetReactivationLabelWithFakeMatchInAnExperimentAndNoRealMatch) { | |
136 string16 previous_labels(kSomeExperiments); | |
137 previous_labels.append(google_update::kExperimentLabelSep); | |
138 previous_labels.append(L"blah_"); | |
139 // Shouldn't match deletion criteria. | |
140 previous_labels.append(reactivation_label_); | |
141 previous_labels.append(google_update::kExperimentLabelSep); | |
142 previous_labels.append(kSomeOtherExperiments); | |
143 GoogleUpdateSettings::SetExperimentLabels(false, previous_labels); | |
144 | |
145 ASSERT_TRUE(SetReactivationExperimentLabels(kBrand, kUserLevel)); | |
146 | |
147 string16 expected_labels(kSomeExperiments); | |
148 expected_labels.append(google_update::kExperimentLabelSep); | |
149 expected_labels.append(L"blah_"); | |
150 expected_labels.append(reactivation_label_); | |
151 expected_labels.append(google_update::kExperimentLabelSep); | |
152 expected_labels.append(kSomeOtherExperiments); | |
153 expected_labels.append(google_update::kExperimentLabelSep); | |
154 expected_labels.append(reactivation_label_); | |
155 VerifyExperimentLabels(expected_labels); | |
156 } | |
157 | |
158 } // namespace | |
OLD | NEW |