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

Side by Side Diff: chrome/installer/util/google_update_settings_unittest.cc

Issue 1513043002: clang/win: Let remaining chromium_code targets build with -Wextra. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years 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 (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/google_update_settings.h" 5 #include "chrome/installer/util/google_update_settings.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <shlwapi.h> // For SHDeleteKey. 8 #include <shlwapi.h> // For SHDeleteKey.
9 9
10 #include "base/base_paths.h" 10 #include "base/base_paths.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 ASSERT_EQ(ERROR_SUCCESS, 93 ASSERT_EQ(ERROR_SUCCESS,
94 update_key.WriteValue(installer::kUninstallArgumentsField, 94 update_key.WriteValue(installer::kUninstallArgumentsField,
95 L"--multi-install")); 95 L"--multi-install"));
96 } 96 }
97 97
98 // Tests setting the ap= value to various combinations of values with 98 // Tests setting the ap= value to various combinations of values with
99 // suffixes, while asserting on the correct channel value. 99 // suffixes, while asserting on the correct channel value.
100 // Note that ap= value has to match "^2.0-d.*" or ".*x64-dev.*" and "^1.1-.*" 100 // Note that ap= value has to match "^2.0-d.*" or ".*x64-dev.*" and "^1.1-.*"
101 // or ".*x64-beta.*" for dev and beta channels respectively. 101 // or ".*x64-beta.*" for dev and beta channels respectively.
102 void TestCurrentChromeChannelWithVariousApValues(SystemUserInstall install) { 102 void TestCurrentChromeChannelWithVariousApValues(SystemUserInstall install) {
103 static struct Expectations { 103 static struct Expectation {
104 const wchar_t* ap_value; 104 const wchar_t* ap_value;
105 const wchar_t* channel; 105 const wchar_t* channel;
106 bool supports_prefixes; 106 bool supports_prefixes;
107 } expectations[] = { 107 } expectations[] = {
108 { L"2.0-dev", installer::kChromeChannelDev, false}, 108 { L"2.0-dev", installer::kChromeChannelDev, false},
109 { L"1.1-beta", installer::kChromeChannelBeta, false}, 109 { L"1.1-beta", installer::kChromeChannelBeta, false},
110 { L"x64-dev", installer::kChromeChannelDev, true}, 110 { L"x64-dev", installer::kChromeChannelDev, true},
111 { L"x64-beta", installer::kChromeChannelBeta, true}, 111 { L"x64-beta", installer::kChromeChannelBeta, true},
112 { L"x64-stable", installer::kChromeChannelStable, true}, 112 { L"x64-stable", installer::kChromeChannelStable, true},
113 }; 113 };
114 bool is_system = install == SYSTEM_INSTALL; 114 bool is_system = install == SYSTEM_INSTALL;
115 const wchar_t* prefixes[] = { 115 const wchar_t* prefixes[] = {
116 L"", 116 L"",
117 L"prefix", 117 L"prefix",
118 L"prefix-with-dash", 118 L"prefix-with-dash",
119 }; 119 };
120 const wchar_t* suffixes[] = { 120 const wchar_t* suffixes[] = {
121 L"", 121 L"",
122 L"suffix", 122 L"suffix",
123 L"suffix-with-dash", 123 L"suffix-with-dash",
124 }; 124 };
125 125
126 for (size_t i = 0; i < arraysize(prefixes); ++i) { 126 for (const wchar_t* prefix : prefixes) {
127 for (size_t j = 0; j < arraysize(expectations); ++j) { 127 for (const Expectation& expectation : expectations) {
128 for (size_t k = 0; k < arraysize(suffixes); ++k) { 128 for (const wchar_t* suffix : suffixes) {
129 base::string16 ap = prefixes[i]; 129 base::string16 ap = prefix;
130 ap += expectations[j].ap_value; 130 ap += expectation.ap_value;
131 ap += suffixes[k]; 131 ap += suffix;
132 const wchar_t* channel = expectations[j].channel; 132 const wchar_t* channel = expectation.channel;
133 133
134 SetApField(install, ap.c_str()); 134 SetApField(install, ap.c_str());
135 base::string16 ret_channel; 135 base::string16 ret_channel;
136 136
137 EXPECT_TRUE(GoogleUpdateSettings::GetChromeChannelAndModifiers( 137 EXPECT_TRUE(GoogleUpdateSettings::GetChromeChannelAndModifiers(
138 is_system, &ret_channel)); 138 is_system, &ret_channel));
139 139
140 // If prefixes are not supported for a channel, we expect the channel 140 // If prefixes are not supported for a channel, we expect the channel
141 // to be "unknown" if a non-empty prefix is present in ap_value. 141 // to be "unknown" if a non-empty prefix is present in ap_value.
142 if (!expectations[j].supports_prefixes && wcslen(prefixes[i]) > 0) { 142 if (!expectation.supports_prefixes && wcslen(prefix) > 0) {
143 EXPECT_STREQ(installer::kChromeChannelUnknown, ret_channel.c_str()) 143 EXPECT_STREQ(installer::kChromeChannelUnknown, ret_channel.c_str())
144 << "Expecting channel \"" << installer::kChromeChannelUnknown 144 << "Expecting channel \"" << installer::kChromeChannelUnknown
145 << "\" for ap=\"" << ap << "\""; 145 << "\" for ap=\"" << ap << "\"";
146 } else { 146 } else {
147 EXPECT_STREQ(channel, ret_channel.c_str()) 147 EXPECT_STREQ(channel, ret_channel.c_str())
148 << "Expecting channel \"" << channel 148 << "Expecting channel \"" << channel
149 << "\" for ap=\"" << ap << "\""; 149 << "\" for ap=\"" << ap << "\"";
150 } 150 }
151 } 151 }
152 } 152 }
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 }; 437 };
438 static_assert(arraysize(multifail_full) == arraysize(plain), 438 static_assert(arraysize(multifail_full) == arraysize(plain),
439 "bad multifail_full array size"); 439 "bad multifail_full array size");
440 const wchar_t* const* input_arrays[] = { 440 const wchar_t* const* input_arrays[] = {
441 plain, 441 plain,
442 full, 442 full,
443 multifail, 443 multifail,
444 multifail_full 444 multifail_full
445 }; 445 };
446 ChannelInfo v; 446 ChannelInfo v;
447 for (int type_idx = 0; type_idx < arraysize(archive_types); ++type_idx) { 447 for (const installer::ArchiveType archive_type : archive_types) {
448 const installer::ArchiveType archive_type = archive_types[type_idx]; 448 for (const int result : results) {
449 for (int result_idx = 0; result_idx < arraysize(results); ++result_idx) {
450 const int result = results[result_idx];
451 // The archive type will/must always be known on install success. 449 // The archive type will/must always be known on install success.
452 if (archive_type == installer::UNKNOWN_ARCHIVE_TYPE && 450 if (archive_type == installer::UNKNOWN_ARCHIVE_TYPE &&
453 result == installer::FIRST_INSTALL_SUCCESS) { 451 result == installer::FIRST_INSTALL_SUCCESS) {
454 continue; 452 continue;
455 } 453 }
456 const wchar_t* const* outputs = NULL; 454 const wchar_t* const* outputs = NULL;
457 if (result == installer::FIRST_INSTALL_SUCCESS || 455 if (result == installer::FIRST_INSTALL_SUCCESS ||
458 archive_type == installer::FULL_ARCHIVE_TYPE) { 456 archive_type == installer::FULL_ARCHIVE_TYPE) {
459 outputs = plain; 457 outputs = plain;
460 } else if (archive_type == installer::INCREMENTAL_ARCHIVE_TYPE) { 458 } else if (archive_type == installer::INCREMENTAL_ARCHIVE_TYPE) {
461 outputs = full; 459 outputs = full;
462 } // else if (archive_type == UNKNOWN) see below 460 } // else if (archive_type == UNKNOWN) see below
463 461
464 for (int inputs_idx = 0; inputs_idx < arraysize(input_arrays); 462 for (const wchar_t* const* inputs : input_arrays) {
465 ++inputs_idx) {
466 const wchar_t* const* inputs = input_arrays[inputs_idx];
467 if (archive_type == installer::UNKNOWN_ARCHIVE_TYPE) { 463 if (archive_type == installer::UNKNOWN_ARCHIVE_TYPE) {
468 // "-full" is untouched if the archive type is unknown. 464 // "-full" is untouched if the archive type is unknown.
469 // "-multifail" is unconditionally removed. 465 // "-multifail" is unconditionally removed.
470 if (inputs == full || inputs == multifail_full) 466 if (inputs == full || inputs == multifail_full)
471 outputs = full; 467 outputs = full;
472 else 468 else
473 outputs = plain; 469 outputs = plain;
474 } 470 }
475 for (int input_idx = 0; input_idx < arraysize(plain); ++input_idx) { 471 for (size_t input_idx = 0; input_idx < arraysize(plain); ++input_idx) {
476 const wchar_t* input = inputs[input_idx]; 472 const wchar_t* input = inputs[input_idx];
477 const wchar_t* output = outputs[input_idx]; 473 const wchar_t* output = outputs[input_idx];
478 474
479 v.set_value(input); 475 v.set_value(input);
480 if (output == v.value()) { 476 if (output == v.value()) {
481 EXPECT_FALSE(GoogleUpdateSettings::UpdateGoogleUpdateApKey( 477 EXPECT_FALSE(GoogleUpdateSettings::UpdateGoogleUpdateApKey(
482 archive_type, result, &v)) 478 archive_type, result, &v))
483 << "archive_type: " << archive_type 479 << "archive_type: " << archive_type
484 << ", result: " << result 480 << ", result: " << result
485 << ", input ap value: " << input; 481 << ", input ap value: " << input;
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 RegKey(HKEY_LOCAL_MACHINE, num_signed_in_path.c_str(), 709 RegKey(HKEY_LOCAL_MACHINE, num_signed_in_path.c_str(),
714 KEY_QUERY_VALUE).ReadValueDW(uniquename.c_str(), 710 KEY_QUERY_VALUE).ReadValueDW(uniquename.c_str(),
715 &num_signed_in)); 711 &num_signed_in));
716 EXPECT_EQ( 712 EXPECT_EQ(
717 ERROR_SUCCESS, 713 ERROR_SUCCESS,
718 RegKey(HKEY_LOCAL_MACHINE, num_signed_in_path.c_str(), 714 RegKey(HKEY_LOCAL_MACHINE, num_signed_in_path.c_str(),
719 KEY_QUERY_VALUE).ReadValue(google_update::kRegAggregateMethod, 715 KEY_QUERY_VALUE).ReadValue(google_update::kRegAggregateMethod,
720 &aggregate)); 716 &aggregate));
721 717
722 // Verify the correct values were written. 718 // Verify the correct values were written.
723 EXPECT_EQ(3, num_profiles); 719 EXPECT_EQ(3u, num_profiles);
724 EXPECT_EQ(2, num_signed_in); 720 EXPECT_EQ(2u, num_signed_in);
725 EXPECT_EQ(L"sum()", aggregate); 721 EXPECT_EQ(L"sum()", aggregate);
726 } 722 }
727 723
728 TEST_F(GoogleUpdateSettingsTest, UpdateProfileCountsUserInstall) { 724 TEST_F(GoogleUpdateSettingsTest, UpdateProfileCountsUserInstall) {
729 // Unit tests never operate as an installed application, so will never 725 // Unit tests never operate as an installed application, so will never
730 // be a system install. 726 // be a system install.
731 727
732 // No profile count values present yet. 728 // No profile count values present yet.
733 const base::string16& state_key = BrowserDistribution::GetDistribution()-> 729 const base::string16& state_key = BrowserDistribution::GetDistribution()->
734 GetAppRegistrationData().GetStateKey(); 730 GetAppRegistrationData().GetStateKey();
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, 1364 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL,
1369 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING), 1365 StatsState::FALSE_SETTING, StatsState::FALSE_SETTING),
1370 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, 1366 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL,
1371 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING), 1367 StatsState::FALSE_SETTING, StatsState::TRUE_SETTING),
1372 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, 1368 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL,
1373 StatsState::TRUE_SETTING, StatsState::NO_SETTING), 1369 StatsState::TRUE_SETTING, StatsState::NO_SETTING),
1374 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, 1370 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL,
1375 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING), 1371 StatsState::TRUE_SETTING, StatsState::FALSE_SETTING),
1376 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL, 1372 StatsState(StatsState::kSystemLevel, StatsState::MULTI_INSTALL,
1377 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING))); 1373 StatsState::TRUE_SETTING, StatsState::TRUE_SETTING)));
OLDNEW
« no previous file with comments | « chrome/installer/util/delete_reg_value_work_item_unittest.cc ('k') | chrome/installer/util/install_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698