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

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: Move IsRunningOnVm() check and update unit tests accordingly 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 // WHEN Chrome OS is running in a VM.
186 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
187 system::kIsVmValueTrue);
188 // THEN IsMachineHWIDCorrect() is true.
189 EXPECT_TRUE(IsMachineHWIDCorrect());
190 // WHEN Chrome OS is not running in a VM.
191 fake_statistics_provider.ClearMachineStatistic(system::kIsVmKey);
192 // THEN IsMachineHWIDCorrect() is always false.
193 EXPECT_FALSE(IsMachineHWIDCorrect());
194 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
195 system::kIsVmValueFalse);
196 EXPECT_FALSE(IsMachineHWIDCorrect());
197 }
198
199 // Test logic when the HWID is valid.
200 TEST(MachineHWIDCheckerTest, ValidHWID) {
201 // GIVEN The HWID is valid.
202 system::ScopedFakeStatisticsProvider fake_statistics_provider;
203 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
204 "DELL HORIZON MAGENTA DVT 4770");
205
206 // THEN IsMachineHWIDCorrect() is always true.
207 SetRunningOnChromeOS();
208 EXPECT_TRUE(IsMachineHWIDCorrect());
209 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
210 system::kIsVmValueFalse);
211 EXPECT_TRUE(IsMachineHWIDCorrect());
212 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
213 system::kIsVmValueTrue);
214 EXPECT_TRUE(IsMachineHWIDCorrect());
215 }
216
217 // Test logic when running inside a VM.
218 TEST(MachineHWIDCheckerTest, InVM) {
219 // GIVEN kIsVmKey is kIsVmValueTrue.
220 system::ScopedFakeStatisticsProvider fake_statistics_provider;
221 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
222 system::kIsVmValueTrue);
223
224 // GIVEN The OS is Chrome OS.
achuithb 2016/08/16 17:59:33 nit: s/The/the
norvez 2016/08/17 11:42:49 Done. Also made the same change throughout.
225 SetRunningOnChromeOS();
226 // THEN IsMachineHWIDCorrect() is always true.
227 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
228 "INVALID_HWID");
229 EXPECT_TRUE(IsMachineHWIDCorrect());
230 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey, "");
231 EXPECT_TRUE(IsMachineHWIDCorrect());
232 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
233 "DELL HORIZON MAGENTA DVT 4770");
234 EXPECT_TRUE(IsMachineHWIDCorrect());
235 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
236 EXPECT_TRUE(IsMachineHWIDCorrect());
237 }
238
239 // Test logic when HWID is invalid and we're not in a VM.
240 TEST(MachineHWIDCheckerTest, InvalidHWIDInVMNotTrue) {
241 // GIVEN The OS is Chrome OS.
242 SetRunningOnChromeOS();
243
244 // GIVEN The HWID is invalid.
245 system::ScopedFakeStatisticsProvider fake_statistics_provider;
246 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
247 "INVALID_HWID");
248
249 // GIVEN kIsVmKey is anything but kIsVmValueTrue.
250 // THEN IsMachineHWIDCorrect() is always false.
251 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
252 system::kIsVmValueFalse);
253 EXPECT_FALSE(IsMachineHWIDCorrect());
254 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
255 "INVALID_VM_KEY");
256 EXPECT_FALSE(IsMachineHWIDCorrect());
257 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "(error)");
258 EXPECT_FALSE(IsMachineHWIDCorrect());
259 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "");
260 EXPECT_FALSE(IsMachineHWIDCorrect());
261 fake_statistics_provider.ClearMachineStatistic(system::kIsVmKey);
262 EXPECT_FALSE(IsMachineHWIDCorrect());
263 }
264
265 #else // defined(GOOGLE_CHROME_BUILD)
266
267 // Test non-Google Chromium builds.
268 TEST(MachineHWIDCheckerTest, NonGoogleBuild) {
269 // GIVEN This is not a Google build.
270 // THEN IsMachineHWIDCorrect() is always true.
271 EXPECT_TRUE(IsMachineHWIDCorrect());
272 }
273
274 #endif // defined(GOOGLE_CHROME_BUILD)
275 } // namespace chromeos
276
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698