OLD | NEW |
| (Empty) |
1 // Copyright 2007-2010 Google Inc. | |
2 // | |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | |
4 // you may not use this file except in compliance with the License. | |
5 // You may obtain a copy of the License at | |
6 // | |
7 // http://www.apache.org/licenses/LICENSE-2.0 | |
8 // | |
9 // Unless required by applicable law or agreed to in writing, software | |
10 // distributed under the License is distributed on an "AS IS" BASIS, | |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
12 // See the License for the specific language governing permissions and | |
13 // limitations under the License. | |
14 // ======================================================================== | |
15 | |
16 #include "omaha/base/error.h" | |
17 #include "omaha/base/file.h" | |
18 #include "omaha/base/reg_key.h" | |
19 #include "omaha/base/string.h" | |
20 #include "omaha/base/time.h" | |
21 #include "omaha/base/vistautil.h" | |
22 #include "omaha/common/config_manager.h" | |
23 #include "omaha/common/const_goopdate.h" | |
24 #include "omaha/common/oem_install_utils.h" | |
25 #include "omaha/testing/unit_test.h" | |
26 | |
27 namespace omaha { | |
28 | |
29 namespace { | |
30 | |
31 const TCHAR* const kVistaSetupStateKey = | |
32 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"); | |
33 const TCHAR* const kXpSystemSetupKey = _T("HKLM\\System\\Setup"); | |
34 | |
35 } // namespace | |
36 | |
37 class OemInstallTest : public testing::Test { | |
38 protected: | |
39 OemInstallTest() : cm_(ConfigManager::Instance()) { | |
40 } | |
41 | |
42 virtual void SetUp() { | |
43 RegKey::DeleteKey(kRegistryHiveOverrideRoot, true); | |
44 OverrideRegistryHives(kRegistryHiveOverrideRoot); | |
45 } | |
46 | |
47 virtual void TearDown() { | |
48 RestoreRegistryHives(); | |
49 EXPECT_SUCCEEDED(RegKey::DeleteKey(kRegistryHiveOverrideRoot, true)); | |
50 } | |
51 | |
52 ConfigManager* cm_; | |
53 }; | |
54 | |
55 class AuditModeTest : public OemInstallTest { | |
56 protected: | |
57 virtual void SetUp() { | |
58 OemInstallTest::SetUp(); | |
59 | |
60 if (vista_util::IsVistaOrLater()) { | |
61 EXPECT_SUCCEEDED(RegKey::SetValue(kVistaSetupStateKey, | |
62 _T("ImageState"), | |
63 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
64 } else { | |
65 EXPECT_SUCCEEDED(RegKey::SetValue(kXpSystemSetupKey, | |
66 _T("AuditInProgress"), | |
67 static_cast<DWORD>(1))); | |
68 } | |
69 | |
70 EXPECT_TRUE(ConfigManager::Instance()->IsWindowsInstalling()); | |
71 } | |
72 }; | |
73 | |
74 TEST_F(OemInstallTest, SetOemInstallState_User) { | |
75 EXPECT_EQ(GOOPDATE_E_OEM_NOT_MACHINE_AND_PRIVILEGED_AND_AUDIT_MODE, | |
76 oem_install_utils::SetOemInstallState(false)); | |
77 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
78 EXPECT_FALSE( | |
79 RegKey::HasValue(MACHINE_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
80 } | |
81 | |
82 TEST_F(AuditModeTest, SetOemInstallState_User) { | |
83 EXPECT_EQ(GOOPDATE_E_OEM_NOT_MACHINE_AND_PRIVILEGED_AND_AUDIT_MODE, | |
84 oem_install_utils::SetOemInstallState(false)); | |
85 EXPECT_FALSE(RegKey::HasValue(USER_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
86 EXPECT_FALSE( | |
87 RegKey::HasValue(MACHINE_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
88 } | |
89 | |
90 TEST_F(OemInstallTest, SetOemInstallState_Machine) { | |
91 if (!vista_util::IsUserAdmin()) { | |
92 std::wcout << _T("\tTest did not cover expected path because not an admin.") | |
93 << std::endl; | |
94 } | |
95 EXPECT_EQ(GOOPDATE_E_OEM_NOT_MACHINE_AND_PRIVILEGED_AND_AUDIT_MODE, | |
96 oem_install_utils::SetOemInstallState(true)); | |
97 EXPECT_FALSE( | |
98 RegKey::HasValue(MACHINE_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
99 } | |
100 | |
101 TEST_F(AuditModeTest, SetOemInstallState_Machine) { | |
102 if (!vista_util::IsUserAdmin()) { | |
103 std::wcout << _T("\tTest did not run because the user is not an admin.") | |
104 << std::endl; | |
105 return; | |
106 } | |
107 EXPECT_SUCCEEDED(oem_install_utils::SetOemInstallState(true)); | |
108 const uint32 now = Time64ToInt32(GetCurrent100NSTime()); | |
109 | |
110 EXPECT_TRUE(RegKey::HasValue(MACHINE_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
111 const uint32 install_time = GetDwordValue(MACHINE_REG_UPDATE, | |
112 kRegValueOemInstallTimeSec); | |
113 EXPECT_GE(now, install_time); | |
114 EXPECT_GE(static_cast<uint32>(200), now - install_time); | |
115 | |
116 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
117 EXPECT_SUCCEEDED(oem_install_utils::ResetOemInstallState(true)); | |
118 EXPECT_FALSE(RegKey::HasValue(MACHINE_REG_UPDATE, | |
119 kRegValueOemInstallTimeSec)); | |
120 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
121 } | |
122 | |
123 TEST_F(AuditModeTest, SetOemInstallState_Machine_NeedsElevation) { | |
124 if (vista_util::IsUserAdmin()) { | |
125 std::wcout << _T("\tTest did not run because the user IS an admin.") | |
126 << std::endl; | |
127 return; | |
128 } | |
129 | |
130 EXPECT_EQ(GOOPDATE_E_OEM_NOT_MACHINE_AND_PRIVILEGED_AND_AUDIT_MODE, | |
131 oem_install_utils::SetOemInstallState(true)); | |
132 EXPECT_FALSE( | |
133 RegKey::HasValue(MACHINE_REG_UPDATE, kRegValueOemInstallTimeSec)); | |
134 } | |
135 | |
136 // | |
137 // IsOemInstalling tests. | |
138 // | |
139 | |
140 TEST_F(OemInstallTest, IsOemInstalling_Machine_Normal) { | |
141 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
142 } | |
143 | |
144 TEST_F(OemInstallTest, IsOemInstalling_User_Normal) { | |
145 EXPECT_FALSE(oem_install_utils::IsOemInstalling(false)); | |
146 } | |
147 | |
148 TEST_F(OemInstallTest, | |
149 IsOemInstalling_Machine_OemInstallTimeNow_NotAuditMode) { | |
150 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
151 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
152 _T("OemInstallTime"), | |
153 now_seconds)); | |
154 | |
155 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
156 } | |
157 | |
158 TEST_F(OemInstallTest, IsOemInstalling_Machine_OemInstallTimeNow_AuditMode) { | |
159 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
160 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
161 _T("OemInstallTime"), | |
162 now_seconds)); | |
163 | |
164 if (vista_util::IsVistaOrLater()) { | |
165 EXPECT_SUCCEEDED(RegKey::SetValue( | |
166 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
167 _T("ImageState"), | |
168 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
169 } else { | |
170 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
171 _T("AuditInProgress"), | |
172 static_cast<DWORD>(1))); | |
173 } | |
174 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
175 | |
176 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
177 } | |
178 | |
179 TEST_F(OemInstallTest, | |
180 IsOemInstalling_Machine_OemInstallTime71HoursAgo_NotAuditMode) { | |
181 const DWORD kDesiredDifferenceSeconds = 71 * 60 * 60; // 71 hours. | |
182 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
183 EXPECT_GT(now_seconds, kDesiredDifferenceSeconds); | |
184 const DWORD install_time_seconds = now_seconds - kDesiredDifferenceSeconds; | |
185 EXPECT_LT(install_time_seconds, now_seconds); | |
186 | |
187 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
188 _T("OemInstallTime"), | |
189 install_time_seconds)); | |
190 | |
191 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
192 } | |
193 | |
194 TEST_F(OemInstallTest, | |
195 IsOemInstalling_Machine_OemInstallTime71HoursAgo_AuditMode) { | |
196 const DWORD kDesiredDifferenceSeconds = 71 * 60 * 60; // 71 hours. | |
197 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
198 EXPECT_GT(now_seconds, kDesiredDifferenceSeconds); | |
199 const DWORD install_time_seconds = now_seconds - kDesiredDifferenceSeconds; | |
200 EXPECT_LT(install_time_seconds, now_seconds); | |
201 | |
202 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
203 _T("OemInstallTime"), | |
204 install_time_seconds)); | |
205 | |
206 if (vista_util::IsVistaOrLater()) { | |
207 EXPECT_SUCCEEDED(RegKey::SetValue( | |
208 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
209 _T("ImageState"), | |
210 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
211 } else { | |
212 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
213 _T("AuditInProgress"), | |
214 static_cast<DWORD>(1))); | |
215 } | |
216 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
217 | |
218 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
219 } | |
220 | |
221 TEST_F(OemInstallTest, | |
222 IsOemInstalling_Machine_OemInstallTime73HoursAgo_NotAuditMode) { | |
223 const DWORD kDesiredDifferenceSeconds = 73 * 60 * 60; // 73 hours. | |
224 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
225 EXPECT_GT(now_seconds, kDesiredDifferenceSeconds); | |
226 const DWORD install_time_seconds = now_seconds - kDesiredDifferenceSeconds; | |
227 EXPECT_LT(install_time_seconds, now_seconds); | |
228 | |
229 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
230 _T("OemInstallTime"), | |
231 install_time_seconds)); | |
232 | |
233 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
234 } | |
235 | |
236 TEST_F(OemInstallTest, | |
237 IsOemInstalling_Machine_OemInstallTime73HoursAgo_AuditMode) { | |
238 const DWORD kDesiredDifferenceSeconds = 73 * 60 * 60; // 73 hours. | |
239 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
240 EXPECT_GT(now_seconds, kDesiredDifferenceSeconds); | |
241 const DWORD install_time_seconds = now_seconds - kDesiredDifferenceSeconds; | |
242 EXPECT_LT(install_time_seconds, now_seconds); | |
243 | |
244 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
245 _T("OemInstallTime"), | |
246 install_time_seconds)); | |
247 | |
248 if (vista_util::IsVistaOrLater()) { | |
249 EXPECT_SUCCEEDED(RegKey::SetValue( | |
250 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
251 _T("ImageState"), | |
252 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
253 } else { | |
254 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
255 _T("AuditInProgress"), | |
256 static_cast<DWORD>(1))); | |
257 } | |
258 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
259 | |
260 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
261 } | |
262 | |
263 TEST_F(OemInstallTest, | |
264 IsOemInstalling_Machine_OemInstallTime71HoursInFuture_NotAuditMode) { | |
265 const DWORD kDesiredDifferenceSeconds = 71 * 60 * 60; // 71 hours. | |
266 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
267 const DWORD install_time_seconds = now_seconds + kDesiredDifferenceSeconds; | |
268 EXPECT_GT(install_time_seconds, now_seconds); | |
269 | |
270 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
271 _T("OemInstallTime"), | |
272 install_time_seconds)); | |
273 | |
274 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
275 } | |
276 | |
277 TEST_F(OemInstallTest, | |
278 IsOemInstalling_Machine_OemInstallTime71HoursInFuture_AuditMode) { | |
279 const DWORD kDesiredDifferenceSeconds = 71 * 60 * 60; // 71 hours. | |
280 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
281 const DWORD install_time_seconds = now_seconds + kDesiredDifferenceSeconds; | |
282 EXPECT_GT(install_time_seconds, now_seconds); | |
283 | |
284 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
285 _T("OemInstallTime"), | |
286 install_time_seconds)); | |
287 | |
288 if (vista_util::IsVistaOrLater()) { | |
289 EXPECT_SUCCEEDED(RegKey::SetValue( | |
290 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
291 _T("ImageState"), | |
292 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
293 } else { | |
294 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
295 _T("AuditInProgress"), | |
296 static_cast<DWORD>(1))); | |
297 } | |
298 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
299 | |
300 EXPECT_TRUE(oem_install_utils::IsOemInstalling(true)); | |
301 } | |
302 | |
303 TEST_F(OemInstallTest, | |
304 IsOemInstalling_Machine_OemInstallTime73HoursInFuture_NotAuditMode) { | |
305 const DWORD kDesiredDifferenceSeconds = 73 * 60 * 60; // 73 hours. | |
306 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
307 const DWORD install_time_seconds = now_seconds + kDesiredDifferenceSeconds; | |
308 EXPECT_GT(install_time_seconds, now_seconds); | |
309 | |
310 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
311 _T("OemInstallTime"), | |
312 install_time_seconds)); | |
313 | |
314 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
315 } | |
316 | |
317 TEST_F(OemInstallTest, | |
318 IsOemInstalling_Machine_OemInstallTime73HoursInFuture_AuditMode) { | |
319 const DWORD kDesiredDifferenceSeconds = 73 * 60 * 60; // 73 hours. | |
320 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
321 const DWORD install_time_seconds = now_seconds + kDesiredDifferenceSeconds; | |
322 EXPECT_GT(install_time_seconds, now_seconds); | |
323 | |
324 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
325 _T("OemInstallTime"), | |
326 install_time_seconds)); | |
327 | |
328 if (vista_util::IsVistaOrLater()) { | |
329 EXPECT_SUCCEEDED(RegKey::SetValue( | |
330 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
331 _T("ImageState"), | |
332 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
333 } else { | |
334 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
335 _T("AuditInProgress"), | |
336 static_cast<DWORD>(1))); | |
337 } | |
338 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
339 | |
340 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
341 } | |
342 | |
343 TEST_F(OemInstallTest, | |
344 IsOemInstalling_Machine_OemInstallTimeZero_NotAuditMode) { | |
345 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
346 _T("OemInstallTime"), | |
347 static_cast<DWORD>(0))); | |
348 | |
349 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
350 } | |
351 | |
352 TEST_F(OemInstallTest, | |
353 IsOemInstalling_Machine_OemInstallTimeZero_AuditMode) { | |
354 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
355 _T("OemInstallTime"), | |
356 static_cast<DWORD>(0))); | |
357 | |
358 if (vista_util::IsVistaOrLater()) { | |
359 EXPECT_SUCCEEDED(RegKey::SetValue( | |
360 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
361 _T("ImageState"), | |
362 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
363 } else { | |
364 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
365 _T("AuditInProgress"), | |
366 static_cast<DWORD>(1))); | |
367 } | |
368 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
369 | |
370 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
371 } | |
372 | |
373 TEST_F(OemInstallTest, | |
374 IsOemInstalling_Machine_OemInstallTimeWrongType_NotAuditMode) { | |
375 const uint32 now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
376 const CString now_string = itostr(now_seconds); | |
377 EXPECT_FALSE(now_string.IsEmpty()); | |
378 | |
379 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
380 _T("OemInstallTime"), | |
381 now_string)); | |
382 | |
383 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
384 } | |
385 | |
386 TEST_F(OemInstallTest, | |
387 IsOemInstalling_Machine_OemInstallTimeWrongType_AuditMode) { | |
388 const uint32 now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
389 const CString now_string = itostr(now_seconds); | |
390 EXPECT_FALSE(now_string.IsEmpty()); | |
391 | |
392 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
393 _T("OemInstallTime"), | |
394 now_string)); | |
395 | |
396 if (vista_util::IsVistaOrLater()) { | |
397 EXPECT_SUCCEEDED(RegKey::SetValue( | |
398 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
399 _T("ImageState"), | |
400 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
401 } else { | |
402 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
403 _T("AuditInProgress"), | |
404 static_cast<DWORD>(1))); | |
405 } | |
406 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
407 | |
408 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
409 } | |
410 | |
411 TEST_F(OemInstallTest, IsOemInstalling_Machine_NoOemInstallTime_AuditMode) { | |
412 if (vista_util::IsVistaOrLater()) { | |
413 EXPECT_SUCCEEDED(RegKey::SetValue( | |
414 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
415 _T("ImageState"), | |
416 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
417 } else { | |
418 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
419 _T("AuditInProgress"), | |
420 static_cast<DWORD>(1))); | |
421 } | |
422 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
423 | |
424 EXPECT_FALSE(oem_install_utils::IsOemInstalling(true)); | |
425 } | |
426 | |
427 TEST_F(OemInstallTest, | |
428 IsOemInstalling_User_OemInstallTimeNow_NotAuditMode) { | |
429 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
430 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
431 _T("OemInstallTime"), | |
432 now_seconds)); | |
433 | |
434 EXPECT_FALSE(oem_install_utils::IsOemInstalling(false)); | |
435 } | |
436 | |
437 TEST_F(OemInstallTest, IsOemInstalling_User_OemInstallTimeNow_AuditMode) { | |
438 const DWORD now_seconds = Time64ToInt32(GetCurrent100NSTime()); | |
439 EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, | |
440 _T("OemInstallTime"), | |
441 now_seconds)); | |
442 | |
443 if (vista_util::IsVistaOrLater()) { | |
444 EXPECT_SUCCEEDED(RegKey::SetValue( | |
445 _T("HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State"), | |
446 _T("ImageState"), | |
447 _T("IMAGE_STATE_UNDEPLOYABLE"))); | |
448 } else { | |
449 EXPECT_SUCCEEDED(RegKey::SetValue(_T("HKLM\\System\\Setup"), | |
450 _T("AuditInProgress"), | |
451 static_cast<DWORD>(1))); | |
452 } | |
453 EXPECT_TRUE(cm_->IsWindowsInstalling()); | |
454 | |
455 EXPECT_FALSE(oem_install_utils::IsOemInstalling(false)); | |
456 } | |
457 | |
458 } // namespace omaha | |
OLD | NEW |