OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/channel_info.h" | 5 #include "chrome/installer/util/channel_info.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "chrome/installer/util/util_constants.h" | 9 #include "chrome/installer/util/util_constants.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 | 11 |
12 using installer::ChannelInfo; | 12 using installer::ChannelInfo; |
13 | 13 |
14 namespace { | |
15 | |
16 const base::string16 kChannelStable(installer::kChromeChannelStable); | |
17 const base::string16 kChannelBeta(installer::kChromeChannelBeta); | |
18 const base::string16 kChannelDev(installer::kChromeChannelDev); | |
19 | |
20 } // namespace | |
21 | |
22 TEST(ChannelInfoTest, Channels) { | |
23 ChannelInfo ci; | |
24 base::string16 channel; | |
25 | |
26 ci.set_value(L""); | |
27 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
28 EXPECT_EQ(kChannelStable, channel); | |
29 ci.set_value(L"-full"); | |
30 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
31 EXPECT_EQ(kChannelStable, channel); | |
32 | |
33 ci.set_value(L"1.1-beta"); | |
34 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
35 EXPECT_EQ(kChannelBeta, channel); | |
36 ci.set_value(L"1.1-beta-foo"); | |
37 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
38 EXPECT_EQ(kChannelBeta, channel); | |
39 ci.set_value(L"1.1-bar"); | |
40 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
41 EXPECT_EQ(kChannelBeta, channel); | |
42 ci.set_value(L"1n1-foobar"); | |
43 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
44 EXPECT_EQ(kChannelBeta, channel); | |
45 ci.set_value(L"foo-1.1-beta"); | |
46 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
47 ci.set_value(L"2.0-beta"); | |
48 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
49 | |
50 ci.set_value(L"2.0-dev"); | |
51 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
52 EXPECT_EQ(kChannelDev, channel); | |
53 ci.set_value(L"2.0-DEV"); | |
54 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
55 EXPECT_EQ(kChannelDev, channel); | |
56 ci.set_value(L"2.0-dev-eloper"); | |
57 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
58 EXPECT_EQ(kChannelDev, channel); | |
59 ci.set_value(L"2.0-doom"); | |
60 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
61 EXPECT_EQ(kChannelDev, channel); | |
62 ci.set_value(L"250-doom"); | |
63 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
64 EXPECT_EQ(kChannelDev, channel); | |
65 ci.set_value(L"bar-2.0-dev"); | |
66 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
67 ci.set_value(L"1.0-dev"); | |
68 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
69 | |
70 ci.set_value(L"x64-dev"); | |
71 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
72 EXPECT_EQ(kChannelDev, channel); | |
73 ci.set_value(L"foo-x64-dev"); | |
74 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
75 EXPECT_EQ(kChannelDev, channel); | |
76 ci.set_value(L"x64-Dev"); | |
77 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
78 | |
79 ci.set_value(L"x64-beta"); | |
80 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
81 EXPECT_EQ(kChannelBeta, channel); | |
82 ci.set_value(L"bar-x64-beta"); | |
83 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
84 EXPECT_EQ(kChannelBeta, channel); | |
85 ci.set_value(L"x64-Beta"); | |
86 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
87 | |
88 ci.set_value(L"x64-stable"); | |
89 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
90 EXPECT_EQ(kChannelStable, channel); | |
91 ci.set_value(L"baz-x64-stable"); | |
92 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
93 EXPECT_EQ(kChannelStable, channel); | |
94 ci.set_value(L"x64-Stable"); | |
95 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
96 | |
97 ci.set_value(L"fuzzy"); | |
98 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
99 ci.set_value(L"foo"); | |
100 EXPECT_FALSE(ci.GetChannelName(&channel)); | |
101 } | |
102 | |
103 TEST(ChannelInfoTest, FullInstall) { | 14 TEST(ChannelInfoTest, FullInstall) { |
104 ChannelInfo ci; | 15 ChannelInfo ci; |
105 | 16 |
106 ci.set_value(L""); | 17 ci.set_value(L""); |
107 EXPECT_TRUE(ci.SetFullSuffix(true)); | 18 EXPECT_TRUE(ci.SetFullSuffix(true)); |
108 EXPECT_TRUE(ci.HasFullSuffix()); | 19 EXPECT_TRUE(ci.HasFullSuffix()); |
109 EXPECT_EQ(L"-full", ci.value()); | 20 EXPECT_EQ(L"-full", ci.value()); |
110 EXPECT_FALSE(ci.SetFullSuffix(true)); | 21 EXPECT_FALSE(ci.SetFullSuffix(true)); |
111 EXPECT_TRUE(ci.HasFullSuffix()); | 22 EXPECT_TRUE(ci.HasFullSuffix()); |
112 EXPECT_EQ(L"-full", ci.value()); | 23 EXPECT_EQ(L"-full", ci.value()); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 ci.set_value(L"2.0-beta-stage:spammy-multi"); | 139 ci.set_value(L"2.0-beta-stage:spammy-multi"); |
229 EXPECT_TRUE(ci.ClearStage()); | 140 EXPECT_TRUE(ci.ClearStage()); |
230 EXPECT_EQ(L"2.0-beta-multi", ci.value()); | 141 EXPECT_EQ(L"2.0-beta-multi", ci.value()); |
231 | 142 |
232 ci.set_value(L"2.0-beta-stage:-multi"); | 143 ci.set_value(L"2.0-beta-stage:-multi"); |
233 EXPECT_TRUE(ci.ClearStage()); | 144 EXPECT_TRUE(ci.ClearStage()); |
234 EXPECT_EQ(L"2.0-beta-multi", ci.value()); | 145 EXPECT_EQ(L"2.0-beta-multi", ci.value()); |
235 } | 146 } |
236 | 147 |
237 TEST(ChannelInfoTest, GetStatsDefault) { | 148 TEST(ChannelInfoTest, GetStatsDefault) { |
238 struct { | 149 const base::string16 base_values[] = { |
239 const base::string16 base_value; | 150 L"", L"x64-stable", L"1.1-beta", L"x64-beta", L"2.0-dev", L"x64-dev", |
240 const base::string16& expected_channel; | |
241 } test_cases[] = { | |
242 {L"", kChannelStable}, | |
243 {L"x64-stable", kChannelStable}, | |
244 {L"1.1-beta", kChannelBeta}, | |
245 {L"x64-beta", kChannelBeta}, | |
246 {L"2.0-dev", kChannelDev}, | |
247 {L"x64-dev", kChannelDev}, | |
248 }; | 151 }; |
249 const base::string16 suffixes[] = {L"", L"-multi", L"-multi-chrome"}; | 152 const base::string16 suffixes[] = {L"", L"-multi", L"-multi-chrome"}; |
250 | 153 |
251 for (const auto& test_case : test_cases) { | 154 for (const auto& base_value : base_values) { |
252 const base::string16& base_value = test_case.base_value; | |
253 const base::string16& expected_channel = test_case.expected_channel; | |
254 | |
255 for (const auto& suffix : suffixes) { | 155 for (const auto& suffix : suffixes) { |
256 ChannelInfo ci; | 156 ChannelInfo ci; |
257 base::string16 channel; | 157 base::string16 channel; |
258 | 158 |
259 ci.set_value(base_value + suffix); | 159 ci.set_value(base_value + suffix); |
260 EXPECT_EQ(L"", ci.GetStatsDefault()); | 160 EXPECT_EQ(L"", ci.GetStatsDefault()); |
261 ci.set_value(base_value + L"-statsdef" + suffix); | 161 ci.set_value(base_value + L"-statsdef" + suffix); |
262 EXPECT_EQ(L"", ci.GetStatsDefault()); | 162 EXPECT_EQ(L"", ci.GetStatsDefault()); |
263 ci.set_value(base_value + L"-statsdef_" + suffix); | 163 ci.set_value(base_value + L"-statsdef_" + suffix); |
264 EXPECT_EQ(L"", ci.GetStatsDefault()); | 164 EXPECT_EQ(L"", ci.GetStatsDefault()); |
265 ci.set_value(base_value + L"-statsdef_0" + suffix); | 165 ci.set_value(base_value + L"-statsdef_0" + suffix); |
266 EXPECT_EQ(L"0", ci.GetStatsDefault()); | 166 EXPECT_EQ(L"0", ci.GetStatsDefault()); |
267 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
268 EXPECT_EQ(expected_channel, channel); | |
269 ci.set_value(base_value + L"-statsdef_1" + suffix); | 167 ci.set_value(base_value + L"-statsdef_1" + suffix); |
270 EXPECT_EQ(L"1", ci.GetStatsDefault()); | 168 EXPECT_EQ(L"1", ci.GetStatsDefault()); |
271 EXPECT_TRUE(ci.GetChannelName(&channel)); | |
272 EXPECT_EQ(expected_channel, channel); | |
273 } | 169 } |
274 } | 170 } |
275 } | 171 } |
276 | 172 |
277 TEST(ChannelInfoTest, RemoveAllModifiersAndSuffixes) { | 173 TEST(ChannelInfoTest, RemoveAllModifiersAndSuffixes) { |
278 ChannelInfo ci; | 174 ChannelInfo ci; |
279 | 175 |
280 ci.set_value(L""); | 176 ci.set_value(L""); |
281 EXPECT_FALSE(ci.RemoveAllModifiersAndSuffixes()); | 177 EXPECT_FALSE(ci.RemoveAllModifiersAndSuffixes()); |
282 EXPECT_EQ(L"", ci.value()); | 178 EXPECT_EQ(L"", ci.value()); |
283 | 179 |
284 ci.set_value(L"2.0-dev-multi-chrome-chromeframe-migrating"); | 180 ci.set_value(L"2.0-dev-multi-chrome-chromeframe-migrating"); |
285 EXPECT_TRUE(ci.RemoveAllModifiersAndSuffixes()); | 181 EXPECT_TRUE(ci.RemoveAllModifiersAndSuffixes()); |
286 EXPECT_EQ(L"2.0-dev", ci.value()); | 182 EXPECT_EQ(L"2.0-dev", ci.value()); |
287 } | 183 } |
OLD | NEW |