Chromium Code Reviews| 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 "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 Loading... | |
| 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 | |
| OLD | NEW |