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

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: kSystemVendorKey no longer exists 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 void SetRunningOnChromeOS() {
133 const char kLsbRelease[] =
134 "CHROMEOS_RELEASE_NAME=Chrome OS\n"
135 "CHROMEOS_RELEASE_VERSION=1.2.3.4\n";
136 base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time());
137 }
138
139 TEST(MachineHWIDCheckerTest, TestSwitch) {
achuithb 2016/08/11 18:40:16 I think adding a comment describing each test woul
norvez 2016/08/12 10:18:29 Done.
140 // GIVEN test switch is active.
141 base::test::ScopedCommandLine scoped_command_line;
142 scoped_command_line.GetProcessCommandLine()->AppendSwitch(
143 ::switches::kTestType);
achuithb 2016/08/11 18:40:15 Isn't this always true for unittests? Apparently n
144 // THEN IsMachineHWIDCorrect() is always true.
145 EXPECT_TRUE(IsMachineHWIDCorrect());
146 SetRunningOnChromeOS();
147 EXPECT_TRUE(IsMachineHWIDCorrect());
148 system::ScopedFakeStatisticsProvider fake_statistics_provider;
149 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
150 "INVALID_HWID");
151 EXPECT_TRUE(IsMachineHWIDCorrect());
152 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
153 EXPECT_TRUE(IsMachineHWIDCorrect());
154 }
155
156 TEST(MachineHWIDCheckerTest, NotOnChromeOS) {
157 // GIVEN The OS is not Chrome OS.
158 base::SysInfo::SetChromeOSVersionInfoForTest("", base::Time());
159 // THEN IsMachineHWIDCorrect() is always true.
160 EXPECT_TRUE(IsMachineHWIDCorrect());
161 system::ScopedFakeStatisticsProvider fake_statistics_provider;
162 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
163 "INVALID_HWID");
164 EXPECT_TRUE(IsMachineHWIDCorrect());
165 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
166 EXPECT_TRUE(IsMachineHWIDCorrect());
167 }
168
169
170 TEST(MachineHWIDCheckerTest, OnCrosNoHWID) {
171 // GIVEN The OS is Chrome OS.
172 SetRunningOnChromeOS();
173 // GIVEN The HWID is not present.
174 system::ScopedFakeStatisticsProvider fake_statistics_provider;
175 fake_statistics_provider.ClearMachineStatistic(system::kHardwareClassKey);
176 // THEN IsMachineHWIDCorrect() is always false.
177 EXPECT_FALSE(IsMachineHWIDCorrect());
178 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
179 system::kIsVmValueFalse);
180 EXPECT_FALSE(IsMachineHWIDCorrect());
181 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
182 system::kIsVmValueTrue);
183 EXPECT_FALSE(IsMachineHWIDCorrect());
184 }
185
186 TEST(MachineHWIDCheckerTest, ValidHWID) {
187 // GIVEN The HWID is valid
achuithb 2016/08/11 18:40:16 nit: period
norvez 2016/08/12 10:18:29 Done.
188 system::ScopedFakeStatisticsProvider fake_statistics_provider;
189 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
190 "DELL HORIZON MAGENTA DVT 4770");
191 // THEN IsMachineHWIDCorrect() is always true.
192 SetRunningOnChromeOS();
193 EXPECT_TRUE(IsMachineHWIDCorrect());
194 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
195 system::kIsVmValueFalse);
196 EXPECT_TRUE(IsMachineHWIDCorrect());
197 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
198 system::kIsVmValueTrue);
199 EXPECT_TRUE(IsMachineHWIDCorrect());
200 }
201
202 TEST(MachineHWIDCheckerTest, InVM) {
203 // GIVEN kIsVmKey is kIsVmValueTrue.
204 system::ScopedFakeStatisticsProvider fake_statistics_provider;
205 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
206 system::kIsVmValueTrue);
207
208 // GIVEN Any HWID is present.
209 // THEN IsMachineHWIDCorrect() is always true.
210 SetRunningOnChromeOS();
211 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
212 "INVALID_HWID");
213 EXPECT_TRUE(IsMachineHWIDCorrect());
214 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey, "");
215 EXPECT_TRUE(IsMachineHWIDCorrect());
216 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
217 "DELL HORIZON MAGENTA DVT 4770");
218 EXPECT_TRUE(IsMachineHWIDCorrect());
219 }
220
221 TEST(MachineHWIDCheckerTest, InvalidHWIDInVMNotTrue) {
222 // GIVEN The OS is Chrome OS.
223 SetRunningOnChromeOS();
224 // GIVEN The HWID is invalid.
225 system::ScopedFakeStatisticsProvider fake_statistics_provider;
226 fake_statistics_provider.SetMachineStatistic(system::kHardwareClassKey,
227 "INVALID_HWID");
228 // GIVEN kIsVmKey is anything but kIsVmValueTrue.
229 // THEN IsMachineHWIDCorrect() is always false.
230 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
231 system::kIsVmValueFalse);
232 EXPECT_FALSE(IsMachineHWIDCorrect());
233 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey,
234 "INVALID_VM_KEY");
235 EXPECT_FALSE(IsMachineHWIDCorrect());
236 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "(error)");
237 EXPECT_FALSE(IsMachineHWIDCorrect());
238 fake_statistics_provider.SetMachineStatistic(system::kIsVmKey, "");
239 EXPECT_FALSE(IsMachineHWIDCorrect());
240 fake_statistics_provider.ClearMachineStatistic(system::kIsVmKey);
241 EXPECT_FALSE(IsMachineHWIDCorrect());
242 }
243
244 #else // defined(GOOGLE_CHROME_BUILD)
245
246 TEST(MachineHWIDCheckerTest, NonGoogleBuild) {
247 // GIVEN This is not a Google build.
248 // THEN IsMachineHWIDCorrect() is always true.
249 EXPECT_TRUE(IsMachineHWIDCorrect());
250 }
251
252 #endif // defined(GOOGLE_CHROME_BUILD)
253 } // namespace chromeos
254
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698