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

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

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

Powered by Google App Engine
This is Rietveld 408576698