| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/test/mini_installer_test/chrome_mini_installer.h" | 5 #include "chrome/test/mini_installer_test/chrome_mini_installer.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/platform_thread.h" | |
| 11 #include "base/process.h" | 10 #include "base/process.h" |
| 12 #include "base/process_util.h" | 11 #include "base/process_util.h" |
| 13 #include "base/string_number_conversions.h" | 12 #include "base/string_number_conversions.h" |
| 14 #include "base/string_util.h" | 13 #include "base/string_util.h" |
| 14 #include "base/threading/platform_thread.h" |
| 15 #include "base/win/registry.h" | 15 #include "base/win/registry.h" |
| 16 #include "chrome/installer/util/browser_distribution.h" | 16 #include "chrome/installer/util/browser_distribution.h" |
| 17 #include "chrome/installer/util/google_update_constants.h" | 17 #include "chrome/installer/util/google_update_constants.h" |
| 18 #include "chrome/test/mini_installer_test/mini_installer_test_constants.h" | 18 #include "chrome/test/mini_installer_test/mini_installer_test_constants.h" |
| 19 #include "chrome/test/mini_installer_test/mini_installer_test_util.h" | 19 #include "chrome/test/mini_installer_test/mini_installer_test_util.h" |
| 20 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
| 21 | 21 |
| 22 using base::win::RegKey; | 22 using base::win::RegKey; |
| 23 | 23 |
| 24 ChromeMiniInstaller::ChromeMiniInstaller(const std::wstring& install_type, | 24 ChromeMiniInstaller::ChromeMiniInstaller(const std::wstring& install_type, |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 bool ChromeMiniInstaller::CloseUninstallWindow() { | 300 bool ChromeMiniInstaller::CloseUninstallWindow() { |
| 301 HWND hndl = NULL; | 301 HWND hndl = NULL; |
| 302 int timer = 0; | 302 int timer = 0; |
| 303 std::wstring window_name; | 303 std::wstring window_name; |
| 304 if (is_chrome_frame_) | 304 if (is_chrome_frame_) |
| 305 window_name = mini_installer_constants::kChromeFrameAppName; | 305 window_name = mini_installer_constants::kChromeFrameAppName; |
| 306 else | 306 else |
| 307 window_name = mini_installer_constants::kChromeUninstallDialogName; | 307 window_name = mini_installer_constants::kChromeUninstallDialogName; |
| 308 while (hndl == NULL && timer < 5000) { | 308 while (hndl == NULL && timer < 5000) { |
| 309 hndl = FindWindow(NULL, window_name.c_str()); | 309 hndl = FindWindow(NULL, window_name.c_str()); |
| 310 PlatformThread::Sleep(200); | 310 base::PlatformThread::Sleep(200); |
| 311 timer = timer + 200; | 311 timer = timer + 200; |
| 312 } | 312 } |
| 313 | 313 |
| 314 if (!is_chrome_frame_) { | 314 if (!is_chrome_frame_) { |
| 315 if (hndl == NULL) | 315 if (hndl == NULL) |
| 316 hndl = FindWindow(NULL, mini_installer_constants::kChromeBuildType); | 316 hndl = FindWindow(NULL, mini_installer_constants::kChromeBuildType); |
| 317 | 317 |
| 318 if (hndl == NULL) | 318 if (hndl == NULL) |
| 319 return false; | 319 return false; |
| 320 | 320 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 331 // This loop iterates through all of the top-level Windows | 331 // This loop iterates through all of the top-level Windows |
| 332 // named Chrome_WidgetWin_0 and closes them | 332 // named Chrome_WidgetWin_0 and closes them |
| 333 while ((base::GetProcessCount(installer::kChromeExe, NULL) > 0) && | 333 while ((base::GetProcessCount(installer::kChromeExe, NULL) > 0) && |
| 334 (timer < 40000)) { | 334 (timer < 40000)) { |
| 335 // Chrome may have been launched, but the window may not have appeared | 335 // Chrome may have been launched, but the window may not have appeared |
| 336 // yet. Wait for it to appear for 10 seconds, but exit if it takes longer | 336 // yet. Wait for it to appear for 10 seconds, but exit if it takes longer |
| 337 // than that. | 337 // than that. |
| 338 while (!handle && timer < 10000) { | 338 while (!handle && timer < 10000) { |
| 339 handle = FindWindowEx(NULL, handle, L"Chrome_WidgetWin_0", NULL); | 339 handle = FindWindowEx(NULL, handle, L"Chrome_WidgetWin_0", NULL); |
| 340 if (!handle) { | 340 if (!handle) { |
| 341 PlatformThread::Sleep(100); | 341 base::PlatformThread::Sleep(100); |
| 342 timer = timer + 100; | 342 timer = timer + 100; |
| 343 } | 343 } |
| 344 } | 344 } |
| 345 if (!handle) | 345 if (!handle) |
| 346 return false; | 346 return false; |
| 347 SetForegroundWindow(handle); | 347 SetForegroundWindow(handle); |
| 348 LRESULT _result = SendMessage(handle, WM_CLOSE, 1, 0); | 348 LRESULT _result = SendMessage(handle, WM_CLOSE, 1, 0); |
| 349 if (_result != 0) | 349 if (_result != 0) |
| 350 return false; | 350 return false; |
| 351 PlatformThread::Sleep(1000); | 351 base::PlatformThread::Sleep(1000); |
| 352 timer = timer + 1000; | 352 timer = timer + 1000; |
| 353 } | 353 } |
| 354 if (base::GetProcessCount(installer::kChromeExe, NULL) > 0) { | 354 if (base::GetProcessCount(installer::kChromeExe, NULL) > 0) { |
| 355 printf("Chrome.exe is still running even after closing all windows\n"); | 355 printf("Chrome.exe is still running even after closing all windows\n"); |
| 356 return false; | 356 return false; |
| 357 } | 357 } |
| 358 if (base::GetProcessCount(installer::kNaClExe, NULL) > 0) { | 358 if (base::GetProcessCount(installer::kNaClExe, NULL) > 0) { |
| 359 printf("NaCl.exe is still running even after closing all windows\n"); | 359 printf("NaCl.exe is still running even after closing all windows\n"); |
| 360 return false; | 360 return false; |
| 361 } | 361 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 375 return true; | 375 return true; |
| 376 } | 376 } |
| 377 | 377 |
| 378 // Checks for Chrome registry keys on uninstall. | 378 // Checks for Chrome registry keys on uninstall. |
| 379 bool ChromeMiniInstaller::CheckRegistryKeyOnUninstall( | 379 bool ChromeMiniInstaller::CheckRegistryKeyOnUninstall( |
| 380 const std::wstring& key_path) { | 380 const std::wstring& key_path) { |
| 381 RegKey key; | 381 RegKey key; |
| 382 int timer = 0; | 382 int timer = 0; |
| 383 while ((key.Open(GetRootRegistryKey(), key_path.c_str(), KEY_ALL_ACCESS)) && | 383 while ((key.Open(GetRootRegistryKey(), key_path.c_str(), KEY_ALL_ACCESS)) && |
| 384 (timer < 20000)) { | 384 (timer < 20000)) { |
| 385 PlatformThread::Sleep(200); | 385 base::PlatformThread::Sleep(200); |
| 386 timer = timer + 200; | 386 timer = timer + 200; |
| 387 } | 387 } |
| 388 return CheckRegistryKey(key_path); | 388 return CheckRegistryKey(key_path); |
| 389 } | 389 } |
| 390 | 390 |
| 391 // Deletes Installer folder from Applications directory. | 391 // Deletes Installer folder from Applications directory. |
| 392 void ChromeMiniInstaller::DeleteFolder(const wchar_t* folder_name) { | 392 void ChromeMiniInstaller::DeleteFolder(const wchar_t* folder_name) { |
| 393 FilePath install_path(GetChromeInstallDirectoryLocation()); | 393 FilePath install_path(GetChromeInstallDirectoryLocation()); |
| 394 std::wstring temp_chrome_dir; | 394 std::wstring temp_chrome_dir; |
| 395 if (is_chrome_frame_) { | 395 if (is_chrome_frame_) { |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 // Verifies Chrome/Chrome Frame install. | 594 // Verifies Chrome/Chrome Frame install. |
| 595 void ChromeMiniInstaller::VerifyInstall(bool over_install) { | 595 void ChromeMiniInstaller::VerifyInstall(bool over_install) { |
| 596 if (is_chrome_frame_) { | 596 if (is_chrome_frame_) { |
| 597 VerifyChromeFrameInstall(); | 597 VerifyChromeFrameInstall(); |
| 598 } else { | 598 } else { |
| 599 if ((install_type_ == mini_installer_constants::kUserInstall) && | 599 if ((install_type_ == mini_installer_constants::kUserInstall) && |
| 600 (!over_install)) { | 600 (!over_install)) { |
| 601 MiniInstallerTestUtil::VerifyProcessLaunch( | 601 MiniInstallerTestUtil::VerifyProcessLaunch( |
| 602 installer::kChromeExe, true); | 602 installer::kChromeExe, true); |
| 603 } | 603 } |
| 604 PlatformThread::Sleep(800); | 604 base::PlatformThread::Sleep(800); |
| 605 FindChromeShortcut(); | 605 FindChromeShortcut(); |
| 606 LaunchAndCloseChrome(over_install); | 606 LaunchAndCloseChrome(over_install); |
| 607 } | 607 } |
| 608 } | 608 } |
| 609 | 609 |
| 610 // This method will verify if ChromeFrame installed successfully. It will | 610 // This method will verify if ChromeFrame installed successfully. It will |
| 611 // launch IE with cf:about:version, then check if | 611 // launch IE with cf:about:version, then check if |
| 612 // chrome.exe process got spawned. | 612 // chrome.exe process got spawned. |
| 613 void ChromeMiniInstaller::VerifyChromeFrameInstall() { | 613 void ChromeMiniInstaller::VerifyChromeFrameInstall() { |
| 614 FilePath browser_path; | 614 FilePath browser_path; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 638 ASSERT_TRUE(file_util::PathExists(path)); | 638 ASSERT_TRUE(file_util::PathExists(path)); |
| 639 } | 639 } |
| 640 | 640 |
| 641 // This method will launch any requested browser. | 641 // This method will launch any requested browser. |
| 642 void ChromeMiniInstaller::LaunchBrowser(const std::wstring& launch_path, | 642 void ChromeMiniInstaller::LaunchBrowser(const std::wstring& launch_path, |
| 643 const std::wstring& launch_args, | 643 const std::wstring& launch_args, |
| 644 const std::wstring& process_name, | 644 const std::wstring& process_name, |
| 645 bool expected_status) { | 645 bool expected_status) { |
| 646 base::LaunchApp(L"\"" + launch_path + L"\"" + L" " + launch_args, | 646 base::LaunchApp(L"\"" + launch_path + L"\"" + L" " + launch_args, |
| 647 false, false, NULL); | 647 false, false, NULL); |
| 648 PlatformThread::Sleep(1000); | 648 base::PlatformThread::Sleep(1000); |
| 649 MiniInstallerTestUtil::VerifyProcessLaunch(process_name.c_str(), | 649 MiniInstallerTestUtil::VerifyProcessLaunch(process_name.c_str(), |
| 650 expected_status); | 650 expected_status); |
| 651 } | 651 } |
| 652 | 652 |
| 653 // This method compares the registry keys after overinstall. | 653 // This method compares the registry keys after overinstall. |
| 654 bool ChromeMiniInstaller::VerifyOverInstall( | 654 bool ChromeMiniInstaller::VerifyOverInstall( |
| 655 const std::wstring& value_before_overinstall, | 655 const std::wstring& value_before_overinstall, |
| 656 const std::wstring& value_after_overinstall) { | 656 const std::wstring& value_after_overinstall) { |
| 657 int64 reg_key_value_before_overinstall; | 657 int64 reg_key_value_before_overinstall; |
| 658 base::StringToInt64(value_before_overinstall, | 658 base::StringToInt64(value_before_overinstall, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 676 // This method will verify if the installed build is correct. | 676 // This method will verify if the installed build is correct. |
| 677 bool ChromeMiniInstaller::VerifyStandaloneInstall() { | 677 bool ChromeMiniInstaller::VerifyStandaloneInstall() { |
| 678 std::wstring reg_key_value_returned, standalone_installer_version; | 678 std::wstring reg_key_value_returned, standalone_installer_version; |
| 679 MiniInstallerTestUtil::GetStandaloneVersion(&standalone_installer_version); | 679 MiniInstallerTestUtil::GetStandaloneVersion(&standalone_installer_version); |
| 680 GetChromeVersionFromRegistry(®_key_value_returned); | 680 GetChromeVersionFromRegistry(®_key_value_returned); |
| 681 if (standalone_installer_version.compare(reg_key_value_returned) == 0) | 681 if (standalone_installer_version.compare(reg_key_value_returned) == 0) |
| 682 return true; | 682 return true; |
| 683 else | 683 else |
| 684 return false; | 684 return false; |
| 685 } | 685 } |
| OLD | NEW |