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

Side by Side Diff: chrome/install_static/install_util_unittest.cc

Issue 2601443002: Remove multi-install from install_static. (Closed)
Patch Set: huangs comments Created 3 years, 11 months 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/install_static/install_util.h" 5 #include "chrome/install_static/install_util.h"
6 6
7 #include <tuple> 7 #include <tuple>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 } 260 }
261 261
262 TEST(InstallStaticTest, BrowserProcessTest) { 262 TEST(InstallStaticTest, BrowserProcessTest) {
263 EXPECT_EQ(ProcessType::UNINITIALIZED, g_process_type); 263 EXPECT_EQ(ProcessType::UNINITIALIZED, g_process_type);
264 InitializeProcessType(); 264 InitializeProcessType();
265 EXPECT_FALSE(IsNonBrowserProcess()); 265 EXPECT_FALSE(IsNonBrowserProcess());
266 } 266 }
267 267
268 class InstallStaticUtilTest 268 class InstallStaticUtilTest
269 : public ::testing::TestWithParam< 269 : public ::testing::TestWithParam<
270 std::tuple<InstallConstantIndex, const char*, const char*>> { 270 std::tuple<InstallConstantIndex, const char*>> {
271 protected: 271 protected:
272 InstallStaticUtilTest() { 272 InstallStaticUtilTest() {
273 InstallConstantIndex mode_index; 273 InstallConstantIndex mode_index;
274 const char* level; 274 const char* level;
275 const char* mode;
276 275
277 std::tie(mode_index, level, mode) = GetParam(); 276 std::tie(mode_index, level) = GetParam();
278 277
279 mode_ = &kInstallModes[mode_index]; 278 mode_ = &kInstallModes[mode_index];
280 system_level_ = std::string(level) != "user"; 279 system_level_ = std::string(level) != "user";
281 EXPECT_TRUE(!system_level_ || mode_->supports_system_level); 280 EXPECT_TRUE(!system_level_ || mode_->supports_system_level);
282 multi_install_ = std::string(mode) != "single";
283 EXPECT_TRUE(!multi_install_ || mode_->supports_multi_install);
284 root_key_ = system_level_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; 281 root_key_ = system_level_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
285 nt_root_key_ = system_level_ ? nt::HKLM : nt::HKCU; 282 nt_root_key_ = system_level_ ? nt::HKLM : nt::HKCU;
286 283
287 std::unique_ptr<PrimaryInstallDetails> details = 284 std::unique_ptr<PrimaryInstallDetails> details =
288 base::MakeUnique<PrimaryInstallDetails>(); 285 base::MakeUnique<PrimaryInstallDetails>();
289 details->set_mode(mode_); 286 details->set_mode(mode_);
290 details->set_channel(mode_->default_channel_name); 287 details->set_channel(mode_->default_channel_name);
291 details->set_system_level(system_level_); 288 details->set_system_level(system_level_);
292 details->set_multi_install(multi_install_);
293 InstallDetails::SetForProcess(std::move(details)); 289 InstallDetails::SetForProcess(std::move(details));
294 290
295 base::string16 path; 291 base::string16 path;
296 override_manager_.OverrideRegistry(root_key_, &path); 292 override_manager_.OverrideRegistry(root_key_, &path);
297 nt::SetTestingOverride(nt_root_key_, path); 293 nt::SetTestingOverride(nt_root_key_, path);
298 } 294 }
299 295
300 ~InstallStaticUtilTest() { 296 ~InstallStaticUtilTest() {
301 InstallDetails::SetForProcess(nullptr); 297 InstallDetails::SetForProcess(nullptr);
302 nt::SetTestingOverride(nt_root_key_, base::string16()); 298 nt::SetTestingOverride(nt_root_key_, base::string16());
303 } 299 }
304 300
305 bool system_level() const { return system_level_; } 301 bool system_level() const { return system_level_; }
306 302
307 bool multi_install() const { return multi_install_; }
308
309 const wchar_t* default_channel() const { return mode_->default_channel_name; } 303 const wchar_t* default_channel() const { return mode_->default_channel_name; }
310 304
311 void SetUsageStat(DWORD value, bool medium) { 305 void SetUsageStat(DWORD value, bool medium) {
312 ASSERT_TRUE(!medium || system_level_); 306 ASSERT_TRUE(!medium || system_level_);
313 ASSERT_EQ(ERROR_SUCCESS, 307 ASSERT_EQ(ERROR_SUCCESS,
314 base::win::RegKey(root_key_, GetUsageStatsKeyPath(medium).c_str(), 308 base::win::RegKey(root_key_, GetUsageStatsKeyPath(medium).c_str(),
315 KEY_SET_VALUE | KEY_WOW64_32KEY) 309 KEY_SET_VALUE | KEY_WOW64_32KEY)
316 .WriteValue(L"usagestats", value)); 310 .WriteValue(L"usagestats", value));
317 } 311 }
318 312
(...skipping 15 matching lines...) Expand all
334 // value. |medium| = true returns the path for ClientStateMedium. 328 // value. |medium| = true returns the path for ClientStateMedium.
335 std::wstring GetUsageStatsKeyPath(bool medium) { 329 std::wstring GetUsageStatsKeyPath(bool medium) {
336 EXPECT_TRUE(!medium || system_level_); 330 EXPECT_TRUE(!medium || system_level_);
337 331
338 std::wstring result(L"Software\\"); 332 std::wstring result(L"Software\\");
339 if (kUseGoogleUpdateIntegration) { 333 if (kUseGoogleUpdateIntegration) {
340 result.append(L"Google\\Update\\ClientState"); 334 result.append(L"Google\\Update\\ClientState");
341 if (medium) 335 if (medium)
342 result.append(L"Medium"); 336 result.append(L"Medium");
343 result.push_back(L'\\'); 337 result.push_back(L'\\');
344 if (multi_install_) 338 result.append(mode_->app_guid);
345 result.append(kBinariesAppGuid);
346 else
347 result.append(mode_->app_guid);
348 } else if (multi_install_) {
349 result.append(kBinariesPathName);
350 } else { 339 } else {
351 result.append(kProductPathName); 340 result.append(kProductPathName);
352 } 341 }
353 return result; 342 return result;
354 } 343 }
355 344
356 registry_util::RegistryOverrideManager override_manager_; 345 registry_util::RegistryOverrideManager override_manager_;
357 HKEY root_key_ = nullptr; 346 HKEY root_key_ = nullptr;
358 nt::ROOT_KEY nt_root_key_ = nt::AUTO; 347 nt::ROOT_KEY nt_root_key_ = nt::AUTO;
359 const InstallConstants* mode_ = nullptr; 348 const InstallConstants* mode_ = nullptr;
360 bool system_level_ = false; 349 bool system_level_ = false;
361 bool multi_install_ = false;
362 350
363 DISALLOW_COPY_AND_ASSIGN(InstallStaticUtilTest); 351 DISALLOW_COPY_AND_ASSIGN(InstallStaticUtilTest);
364 }; 352 };
365 353
366 TEST_P(InstallStaticUtilTest, UsageStatsAbsent) { 354 TEST_P(InstallStaticUtilTest, UsageStatsAbsent) {
367 EXPECT_FALSE(GetCollectStatsConsent()); 355 EXPECT_FALSE(GetCollectStatsConsent());
368 } 356 }
369 357
370 TEST_P(InstallStaticUtilTest, UsageStatsZero) { 358 TEST_P(InstallStaticUtilTest, UsageStatsZero) {
371 SetUsageStat(0, false); 359 SetUsageStat(0, false);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 SetMetricsReportingPolicy(1); 404 SetMetricsReportingPolicy(1);
417 SetUsageStat(0, false); 405 SetUsageStat(0, false);
418 EXPECT_TRUE(GetCollectStatsConsent()); 406 EXPECT_TRUE(GetCollectStatsConsent());
419 407
420 SetMetricsReportingPolicy(0); 408 SetMetricsReportingPolicy(0);
421 SetUsageStat(1, false); 409 SetUsageStat(1, false);
422 EXPECT_FALSE(GetCollectStatsConsent()); 410 EXPECT_FALSE(GetCollectStatsConsent());
423 } 411 }
424 412
425 TEST_P(InstallStaticUtilTest, GetChromeChannelName) { 413 TEST_P(InstallStaticUtilTest, GetChromeChannelName) {
426 EXPECT_EQ(default_channel(), GetChromeChannelName(false)); 414 EXPECT_EQ(default_channel(), GetChromeChannelName());
427 std::wstring expected = default_channel();
428 if (multi_install()) {
429 if (expected.empty())
430 expected = L"m";
431 else
432 expected += L"-m";
433 }
434 EXPECT_EQ(expected, GetChromeChannelName(true));
435 } 415 }
436 416
437 #if defined(GOOGLE_CHROME_BUILD) 417 #if defined(GOOGLE_CHROME_BUILD)
438 // Stable supports multi-install at user and system levels. 418 // Stable user and system levels.
huangs 2017/01/03 05:35:14 s/Stable/Stable supports/ to match line 429 below
grt (UTC plus 2) 2017/01/03 15:47:57 Done.
439 INSTANTIATE_TEST_CASE_P(Stable, 419 INSTANTIATE_TEST_CASE_P(Stable,
440 InstallStaticUtilTest, 420 InstallStaticUtilTest,
441 testing::Combine(testing::Values(STABLE_INDEX), 421 testing::Combine(testing::Values(STABLE_INDEX),
442 testing::Values("user", "system"), 422 testing::Values("user", "system")));
443 testing::Values("single", "multi"))); 423 // Canary is only at user level.
444 // Canary is single-only at user level.
445 INSTANTIATE_TEST_CASE_P(Canary, 424 INSTANTIATE_TEST_CASE_P(Canary,
446 InstallStaticUtilTest, 425 InstallStaticUtilTest,
447 testing::Combine(testing::Values(CANARY_INDEX), 426 testing::Combine(testing::Values(CANARY_INDEX),
448 testing::Values("user"), 427 testing::Values("user")));
449 testing::Values("single")));
450 #else // GOOGLE_CHROME_BUILD 428 #else // GOOGLE_CHROME_BUILD
451 // Chromium supports multi-install at user and system levels. 429 // Chromium supports user and system levels.
452 INSTANTIATE_TEST_CASE_P(Chromium, 430 INSTANTIATE_TEST_CASE_P(Chromium,
453 InstallStaticUtilTest, 431 InstallStaticUtilTest,
454 testing::Combine(testing::Values(CHROMIUM_INDEX), 432 testing::Combine(testing::Values(CHROMIUM_INDEX),
455 testing::Values("user", "system"), 433 testing::Values("user", "system")));
456 testing::Values("single", "multi")));
457 #endif // !GOOGLE_CHROME_BUILD 434 #endif // !GOOGLE_CHROME_BUILD
458 435
459 } // namespace install_static 436 } // namespace install_static
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698