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

Side by Side Diff: chrome/browser/chromeos/login/hwid_checker_unittest.cc

Issue 2218703006: Clean up handling of invalid HWID when running ChromeOS in VMs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 4 years, 4 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "base/sys_info.h"
6 #include "base/test/scoped_command_line.h"
7 #include "base/time/time.h"
5 #include "chrome/browser/chromeos/login/hwid_checker.h" 8 #include "chrome/browser/chromeos/login/hwid_checker.h"
6 9 #include "chromeos/system/fake_statistics_provider.h"
10 #include "content/public/common/content_switches.h"
7 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
8 12
9 13
10 namespace chromeos { 14 namespace chromeos {
11 15
12 TEST(HWIDCheckerTest, EmptyHWID) { 16 TEST(HWIDCheckerTest, EmptyHWID) {
13 EXPECT_FALSE(IsHWIDCorrect("")); 17 EXPECT_FALSE(IsHWIDCorrect(""));
14 } 18 }
15 19
16 TEST(HWIDCheckerTest, HWIDv2) { 20 TEST(HWIDCheckerTest, HWIDv2) {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA 8992")); 120 EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA 8992"));
117 EXPECT_FALSE(IsHWIDCorrect("DELL HORIZ0N MAGENTA 8992")); 121 EXPECT_FALSE(IsHWIDCorrect("DELL HORIZ0N MAGENTA 8992"));
118 122
119 EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA DVT 4770")); 123 EXPECT_TRUE(IsHWIDCorrect("DELL HORIZON MAGENTA DVT 4770"));
120 EXPECT_FALSE(IsHWIDCorrect("DELL MAGENTA HORIZON DVT 4770")); 124 EXPECT_FALSE(IsHWIDCorrect("DELL MAGENTA HORIZON DVT 4770"));
121 125
122 EXPECT_TRUE(IsHWIDCorrect("SAMS ALEX GAMMA DVT 9247")); 126 EXPECT_TRUE(IsHWIDCorrect("SAMS ALEX GAMMA DVT 9247"));
123 EXPECT_FALSE(IsHWIDCorrect("SAMS ALPX GAMMA DVT 9247")); 127 EXPECT_FALSE(IsHWIDCorrect("SAMS ALPX GAMMA DVT 9247"));
124 } 128 }
125 129
126 } // namespace chromeos 130 #if defined(GOOGLE_CHROME_BUILD)
127 131
132 // Sets a valid Chrome OS version info so IsRunningOnChromeOS() returns true.
133 void SetRunningOnChromeOS() {
134 const char kLsbRelease[] =
135 "CHROMEOS_RELEASE_NAME=Chrome OS\n"
136 "CHROMEOS_RELEASE_VERSION=1.2.3.4\n";
137 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time());
138 }
139
140 // Test logic for command line "test-type" switch.
141 TEST(MachineHWIDCheckerTest, TestSwitch) {
142 // GIVEN test switch is active.
143 base::test::ScopedCommandLine scoped_command_line;
144 scoped_command_line.GetProcessCommandLine()->AppendSwitch(
145 ::switches::kTestType);
146
147 // THEN IsMachineHWIDCorrect() is always true.
148 EXPECT_TRUE(IsMachineHWIDCorrect());
149 SetRunningOnChromeOS();
150 EXPECT_TRUE(IsMachineHWIDCorrect());
151
152 system::ScopedFakeStatisticsProvider fake_statistics_provider;
153 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
154 "INVALID_HWID");
155 EXPECT_TRUE(IsMachineHWIDCorrect());
156 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
157 EXPECT_TRUE(IsMachineHWIDCorrect());
158 }
159
160 // Test logic when not running on Chrome OS.
161 TEST(MachineHWIDCheckerTest, NotOnChromeOS) {
162 // GIVEN The OS is not Chrome OS.
163 base::SysInfo::SetChromeOSVersionInfoForTest("", base::Time());
164
165 // THEN IsMachineHWIDCorrect() is always true.
166 EXPECT_TRUE(IsMachineHWIDCorrect());
167
168 system::ScopedFakeStatisticsProvider fake_statistics_provider;
169 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
170 "INVALID_HWID");
171 EXPECT_TRUE(IsMachineHWIDCorrect());
172 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
173 EXPECT_TRUE(IsMachineHWIDCorrect());
174 }
175
176 // Test logic when running on Chrome OS but the HWID is not present.
177 TEST(MachineHWIDCheckerTest, OnCrosNoHWID) {
178 // GIVEN The OS is Chrome OS.
179 SetRunningOnChromeOS();
180
181 // GIVEN The HWID is not present.
182 system::ScopedFakeStatisticsProvider fake_statistics_provider;
183 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
184
185 // THEN IsMachineHWIDCorrect() is always false.
186 EXPECT_FALSE(IsMachineHWIDCorrect());
187 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
188 system::kIsVmValueFalse);
189 EXPECT_FALSE(IsMachineHWIDCorrect());
190 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
191 system::kIsVmValueTrue);
192 EXPECT_FALSE(IsMachineHWIDCorrect());
193 }
194
195 // Test logic when the HWID is valid.
196 TEST(MachineHWIDCheckerTest, ValidHWID) {
197 // GIVEN The HWID is valid.
198 system::ScopedFakeStatisticsProvider fake_statistics_provider;
199 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
200 "DELL HORIZON MAGENTA DVT 4770");
201
202 // THEN IsMachineHWIDCorrect() is always true.
203 SetRunningOnChromeOS();
204 EXPECT_TRUE(IsMachineHWIDCorrect());
205 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
206 system::kIsVmValueFalse);
207 EXPECT_TRUE(IsMachineHWIDCorrect());
208 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
209 system::kIsVmValueTrue);
210 EXPECT_TRUE(IsMachineHWIDCorrect());
211 }
212
213 // Test logic when running inside a VM.
214 TEST(MachineHWIDCheckerTest, InVM) {
215 // GIVEN kIsVmKey is kIsVmValueTrue.
216 system::ScopedFakeStatisticsProvider fake_statistics_provider;
217 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
218 system::kIsVmValueTrue);
219
220 // GIVEN Any HWID is present.
221 // THEN IsMachineHWIDCorrect() is always true.
222 SetRunningOnChromeOS();
223 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
224 "INVALID_HWID");
225 EXPECT_TRUE(IsMachineHWIDCorrect());
226 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey, "");
227 EXPECT_TRUE(IsMachineHWIDCorrect());
228 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
229 "DELL HORIZON MAGENTA DVT 4770");
230 EXPECT_TRUE(IsMachineHWIDCorrect());
231 }
232
233 // Test logic when HWID is invalid and we're not in a VM.
234 TEST(MachineHWIDCheckerTest, InvalidHWIDInVMNotTrue) {
235 // GIVEN The OS is Chrome OS.
236 SetRunningOnChromeOS();
237
238 // GIVEN The HWID is invalid.
239 system::ScopedFakeStatisticsProvider fake_statistics_provider;
240 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
241 "INVALID_HWID");
242
243 // GIVEN kIsVmKey is anything but kIsVmValueTrue.
244 // THEN IsMachineHWIDCorrect() is always false.
245 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
246 system::kIsVmValueFalse);
247 EXPECT_FALSE(IsMachineHWIDCorrect());
248 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
249 "INVALID_VM_KEY");
250 EXPECT_FALSE(IsMachineHWIDCorrect());
251 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "(error)");
252 EXPECT_FALSE(IsMachineHWIDCorrect());
253 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "");
254 EXPECT_FALSE(IsMachineHWIDCorrect());
255 fake_statistics_provider.ClearMachineStatistic(system::kIsVmKey);
256 EXPECT_FALSE(IsMachineHWIDCorrect());
257 }
258
259 #else // defined(GOOGLE_CHROME_BUILD)
260
261 // Test non-Google Chromium builds.
262 TEST(MachineHWIDCheckerTest, NonGoogleBuild) {
263 // GIVEN This is not a Google build.
264 // THEN IsMachineHWIDCorrect() is always true.
265 EXPECT_TRUE(IsMachineHWIDCorrect());
266 }
267
268 #endif // defined(GOOGLE_CHROME_BUILD)
269 } // namespace chromeos
270
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698