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