Index: common/goopdate_utils_unittest.cc |
diff --git a/common/goopdate_utils_unittest.cc b/common/goopdate_utils_unittest.cc |
deleted file mode 100644 |
index 0b2434c3b347a36524dc767f27d46445bfcc20e5..0000000000000000000000000000000000000000 |
--- a/common/goopdate_utils_unittest.cc |
+++ /dev/null |
@@ -1,1630 +0,0 @@ |
-// Copyright 2007-2010 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
- |
-#include <windows.h> |
-#include <atlpath.h> |
-#include <atlsecurity.h> |
-#include <atlstr.h> |
-#include <map> |
-#include <vector> |
-#include "omaha/base/app_util.h" |
-#include "omaha/base/browser_utils.h" |
-#include "omaha/base/constants.h" |
-#include "omaha/base/const_utils.h" |
-#include "omaha/base/error.h" |
-#include "omaha/base/file.h" |
-#include "omaha/base/omaha_version.h" |
-#include "omaha/base/path.h" |
-#include "omaha/base/reg_key.h" |
-#include "omaha/base/scope_guard.h" |
-#include "omaha/base/scoped_ptr_cotask.h" |
-#include "omaha/base/string.h" |
-#include "omaha/base/time.h" |
-#include "omaha/base/user_info.h" |
-#include "omaha/base/utils.h" |
-#include "omaha/base/vistautil.h" |
-#include "omaha/base/vista_utils.h" |
-#include "omaha/common/config_manager.h" |
-#include "omaha/common/const_goopdate.h" |
-#include "omaha/common/const_group_policy.h" |
-#include "omaha/common/goopdate_utils.h" |
-#include "omaha/common/oem_install_utils.h" |
-#include "omaha/testing/resource.h" |
-#include "omaha/testing/unit_test.h" |
- |
-namespace omaha { |
- |
-namespace { |
- |
-#define DUMMY_CLSID _T("{6FC94136-0D4C-450e-99C2-BCDA72A9C8F0}") |
-const TCHAR* hkcr_key_name = _T("HKCR\\CLSID\\") DUMMY_CLSID; |
-const TCHAR* hklm_key_name = _T("HKLM\\Software\\Classes\\CLSID\\") DUMMY_CLSID; |
-const TCHAR* hkcu_key_name = _T("HKCU\\Software\\Classes\\CLSID\\") DUMMY_CLSID; |
- |
-const TCHAR* kAppId = _T("{3DAE8C13-C394-481E-8163-4E7A7699084F}"); |
- |
-} // namespace |
- |
-namespace goopdate_utils { |
- |
-static void Cleanup() { |
- ASSERT_SUCCEEDED(RemoveRedirectHKCR()); |
- |
- RegKey::DeleteKey(hkcr_key_name, true); |
- RegKey::DeleteKey(hklm_key_name, true); |
- RegKey::DeleteKey(hkcu_key_name, true); |
-} |
- |
-static void TestGetBrowserToRestart(BrowserType stamped, |
- bool found1, |
- bool killed1, |
- BrowserType def_browser, |
- bool found2, |
- bool killed2, |
- BrowserType expected) { |
- TerminateBrowserResult res(found1, killed1); |
- TerminateBrowserResult def(found2, killed2); |
- |
- BrowserType type = BROWSER_UNKNOWN; |
- if (expected == BROWSER_UNKNOWN) { |
- EXPECT_FALSE(GetBrowserToRestart(stamped, |
- def_browser, |
- res, |
- def, |
- &type)) |
- << _T("stamped: ") << stamped << _T(" ") << found1 << _T(" ") << killed1 |
- << _T(" default: ") << def_browser << _T(" ") << found2 << _T(" ") |
- << killed2; |
- } else { |
- EXPECT_TRUE(GetBrowserToRestart(stamped, |
- def_browser, |
- res, |
- def, |
- &type)) |
- << _T("stamped: ") << stamped << _T(" ") << found1 << _T(" ") << killed1 |
- << _T(" default: ") << def_browser << _T(" ") << found2 << _T(" ") |
- << killed2; |
- } |
- EXPECT_EQ(expected, type) |
- << _T("stamped: ") << stamped << _T(" ") << found1 << _T(" ") << killed1 |
- << _T(" default: ") << def_browser << _T(" ") << found2 << _T(" ") |
- << killed2; |
-} |
- |
-// TerminateAllBrowsers is not tested with valid browser values because the |
-// tests would terminate developers' browsers. |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedUnknown) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_UNKNOWN, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_UNKNOWN, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_DefaultUnknown) { |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedAndDefaultUnknown) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedDefault) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_DEFAULT, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_DEFAULT, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_DefaultDefault) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_DEFAULT, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedAndDefaultDefault) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_DEFAULT, false, false, |
- BROWSER_DEFAULT, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_DEFAULT, true, false, |
- BROWSER_DEFAULT, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedMax) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_MAX, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_MAX, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_DefaultMax) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_MAX, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_StampedAndDefaultMax) { |
- ExpectAsserts expect_asserts; |
- TestGetBrowserToRestart(BROWSER_MAX, false, false, |
- BROWSER_MAX, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_MAX, true, false, |
- BROWSER_MAX, false, false, |
- BROWSER_UNKNOWN); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeIE_DefaultIE) { |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeIE_DefaultFirefox) { |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeIE_DefaultChrome) { |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeIE_DefaultUnknown) { |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, false, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_IE, true, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_IE); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeFirefox_DefaultIE) { |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_IE, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_IE, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_IE, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_IE, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_IE, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_IE, true, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_IE, true, true, |
- BROWSER_FIREFOX); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeFirefox_DefaultFirefox) { |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeFirefox_DefaultChrome) { |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_FIREFOX); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeFirefox_DefaultUnknown) { |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_FIREFOX); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeChrome_DefaultIE) { |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_IE, false, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_IE, false, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_IE, true, false, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_IE, true, true, |
- BROWSER_IE); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_IE, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_IE, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_IE, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_IE, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_IE, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_IE, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_IE, true, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_IE, true, true, |
- BROWSER_CHROME); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeChrome_DefaultFirefox) { |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_FIREFOX); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_FIREFOX, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_FIREFOX, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_FIREFOX, true, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_FIREFOX, true, true, |
- BROWSER_CHROME); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeChrome_DefaultChrome) { |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_CHROME, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_CHROME, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_CHROME, true, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_CHROME, true, true, |
- BROWSER_CHROME); |
-} |
- |
-TEST(GoopdateUtilsTest, GetBrowserToRestart_TypeChrome_DefaultUnknown) { |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, false, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, false, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_UNKNOWN); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN, false, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN, false, true, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN, true, false, |
- BROWSER_CHROME); |
- TestGetBrowserToRestart(BROWSER_CHROME, true, true, |
- BROWSER_UNKNOWN, true, true, |
- BROWSER_CHROME); |
-} |
- |
-TEST(GoopdateUtilsTest, ConvertStringToBrowserType) { |
- BrowserType type = BROWSER_UNKNOWN; |
- ASSERT_SUCCEEDED(ConvertStringToBrowserType(_T("0"), &type)); |
- ASSERT_EQ(BROWSER_UNKNOWN, type); |
- |
- ASSERT_SUCCEEDED(ConvertStringToBrowserType(_T("1"), &type)); |
- ASSERT_EQ(BROWSER_DEFAULT, type); |
- |
- ASSERT_SUCCEEDED(ConvertStringToBrowserType(_T("2"), &type)); |
- ASSERT_EQ(BROWSER_IE, type); |
- |
- ASSERT_SUCCEEDED(ConvertStringToBrowserType(_T("3"), &type)); |
- ASSERT_EQ(BROWSER_FIREFOX, type); |
- |
- ASSERT_SUCCEEDED(ConvertStringToBrowserType(_T("4"), &type)); |
- ASSERT_EQ(BROWSER_CHROME, type); |
- |
- ASSERT_FAILED(ConvertStringToBrowserType(_T("5"), &type)); |
- ASSERT_FAILED(ConvertStringToBrowserType(_T("asdf"), &type)); |
- ASSERT_FAILED(ConvertStringToBrowserType(_T("234"), &type)); |
- ASSERT_FAILED(ConvertStringToBrowserType(_T("-1"), &type)); |
-} |
- |
-TEST(GoopdateUtilsTest, RedirectHKCRTest) { |
- RegKey key; |
- Cleanup(); |
- |
- if (vista_util::IsUserAdmin()) { |
- // Only run this part of the test for Admins, because non-admins cannot |
- // write to HKLM. |
- |
- // Without redirection, a HKCR write should write HKLM\Software\Classes, |
- // assuming that the key does not already exist in HKCU. |
- ASSERT_SUCCEEDED(key.Create(hkcr_key_name)); |
- ASSERT_TRUE(RegKey::HasKey(hklm_key_name)); |
- ASSERT_FALSE(RegKey::HasKey(hkcu_key_name)); |
- |
- Cleanup(); |
- |
- ASSERT_SUCCEEDED(RedirectHKCR(true)); |
- |
- // With HKLM redirection, a HKCR write should write HKLM\Software\Classes. |
- ASSERT_SUCCEEDED(key.Create(hkcr_key_name)); |
- ASSERT_TRUE(RegKey::HasKey(hklm_key_name)); |
- ASSERT_FALSE(RegKey::HasKey(hkcu_key_name)); |
- |
- Cleanup(); |
- } else { |
- std::wcout << _T("\tPart of this test did not run because the user ") |
- _T("is not an admin.") << std::endl; |
- } |
- |
- ASSERT_SUCCEEDED(RedirectHKCR(false)); |
- |
- // With HKCU redirection, a HKCR write should write HKCU\Software\Classes. |
- ASSERT_SUCCEEDED(key.Create(hkcr_key_name)); |
- ASSERT_FALSE(RegKey::HasKey(hklm_key_name)); |
- ASSERT_TRUE(RegKey::HasKey(hkcu_key_name)); |
- |
- ASSERT_SUCCEEDED(RemoveRedirectHKCR()); |
- |
- if (vista_util::IsUserAdmin()) { |
- // Without redirection, the following HKCR writes should write |
- // HKCU\Software\Classes. |
- // This is because the key already exists in HKCU from the writes above. |
- ASSERT_SUCCEEDED(key.Create(hkcr_key_name)); |
- ASSERT_EQ(user_info::IsRunningAsSystem(), RegKey::HasKey(hklm_key_name)); |
- ASSERT_TRUE(RegKey::HasKey(hkcu_key_name)); |
- } else { |
- std::wcout << _T("\tPart of this test did not run because the user ") |
- _T("is not an admin.") << std::endl; |
- } |
- |
- Cleanup(); |
-} |
- |
-TEST(GoopdateUtilsTest, GetOSInfo) { |
- CString os_version; |
- CString service_pack; |
- EXPECT_SUCCEEDED(GetOSInfo(&os_version, &service_pack)); |
- EXPECT_TRUE(!os_version.IsEmpty()); |
-} |
- |
-class GoopdateUtilsRegistryProtectedTest : public testing::Test { |
- protected: |
- GoopdateUtilsRegistryProtectedTest() |
- : hive_override_key_name_(kRegistryHiveOverrideRoot) { |
- } |
- |
- CString hive_override_key_name_; |
- |
- virtual void SetUp() { |
- RegKey::DeleteKey(hive_override_key_name_, true); |
- OverrideRegistryHives(hive_override_key_name_); |
- } |
- |
- virtual void TearDown() { |
- RestoreRegistryHives(); |
- ASSERT_SUCCEEDED(RegKey::DeleteKey(hive_override_key_name_, true)); |
- } |
-}; |
- |
-class GoopdateUtilsRegistryProtectedBooleanTest |
- : public ::testing::TestWithParam<bool> { |
- protected: |
- GoopdateUtilsRegistryProtectedBooleanTest() |
- : hive_override_key_name_(kRegistryHiveOverrideRoot) { |
- } |
- |
- CString hive_override_key_name_; |
- |
- virtual void SetUp() { |
- RegKey::DeleteKey(hive_override_key_name_, true); |
- OverrideRegistryHives(hive_override_key_name_); |
- } |
- |
- virtual void TearDown() { |
- RestoreRegistryHives(); |
- ASSERT_SUCCEEDED(RegKey::DeleteKey(hive_override_key_name_, true)); |
- } |
-}; |
- |
-// Some methods used by goopdate_utils rely on registry entries that are |
-// overridden in the registry, so we need to write it. |
-class GoopdateUtilsRegistryProtectedWithMachineFolderPathsTest |
- : public GoopdateUtilsRegistryProtectedTest { |
- protected: |
- virtual void SetUp() { |
- // The tests start GoogleUpdate processes running as user and these |
- // processes need the following registry value. |
- ASSERT_SUCCEEDED(RegKey::SetValue(USER_REG_UPDATE, |
- kRegValueInstalledVersion, |
- GetVersionString())); |
- |
- GoopdateUtilsRegistryProtectedTest::SetUp(); |
- |
- // Creates a registry value for the Windows shell functions to work when |
- // the registry hives are redirected. |
- const TCHAR kWindowsCurrentVersionKeyPath[] = |
- _T("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion"); |
- const TCHAR kProgramFilesDirValueName[] = _T("ProgramFilesDir"); |
- const TCHAR kProgramFilesPath[] = _T("C:\\Program Files"); |
- ASSERT_SUCCEEDED(RegKey::SetValue(kWindowsCurrentVersionKeyPath, |
- kProgramFilesDirValueName, |
- kProgramFilesPath)); |
- } |
-}; |
- |
-// Some methods used by goopdate_utils rely on registry entries that are |
-// overridden in the registry, so we need to write it. |
-class GoopdateUtilsRegistryProtectedWithUserFolderPathsTest |
- : public GoopdateUtilsRegistryProtectedTest { |
- protected: |
- virtual void SetUp() { |
- const TCHAR kUserShellKeyPath[] = |
- _T("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\") |
- _T("User Shell Folders"); |
- const TCHAR kLocalAppDataValueDirName[] = _T("Local AppData"); |
- const TCHAR kLocalAppDataPath[] = |
- _T("%USERPROFILE%\\Local Settings\\Application Data"); |
- |
- GoopdateUtilsRegistryProtectedTest::SetUp(); |
- ASSERT_SUCCEEDED(RegKey::SetValueExpandSZ(kUserShellKeyPath, |
- kLocalAppDataValueDirName, |
- kLocalAppDataPath)); |
- } |
-}; |
- |
-class VersionProtectedTest : public RegistryProtectedTest { |
- protected: |
- VersionProtectedTest() |
- : RegistryProtectedTest(), |
- module_version_(GetVersion()) { |
- } |
- |
- virtual void SetUp() { |
- RegistryProtectedTest::SetUp(); |
- InitializeVersion(kFakeVersion); |
- } |
- |
- virtual void TearDown() { |
- InitializeVersion(module_version_); |
- RegistryProtectedTest::TearDown(); |
- } |
- |
- const ULONGLONG module_version_; |
- static const ULONGLONG kFakeVersion = 0x0005000600070008; |
-}; |
- |
-// pv should be ignored. |
-TEST_F(GoopdateUtilsRegistryProtectedWithMachineFolderPathsTest, |
- BuildGoogleUpdateExePath_MachineVersionFound) { |
- ASSERT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_CLIENTS_GOOPDATE, |
- _T("pv"), |
- _T("1.2.3.4"))); |
- |
- CString path = BuildGoogleUpdateExePath(true); |
- CString program_files_path; |
- EXPECT_SUCCEEDED(GetFolderPath(CSIDL_PROGRAM_FILES, &program_files_path)); |
- EXPECT_STREQ(program_files_path + _T("\\") + SHORT_COMPANY_NAME + |
- _T("\\") + PRODUCT_NAME + _T("\\GoogleUpdate.exe"), |
- path); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedWithMachineFolderPathsTest, |
- BuildGoogleUpdateExePath_MachineVersionNotFound) { |
- // Test when the key doesn't exist. |
- CString path = BuildGoogleUpdateExePath(true); |
- CString program_files_path; |
- EXPECT_SUCCEEDED(GetFolderPath(CSIDL_PROGRAM_FILES, &program_files_path)); |
- EXPECT_STREQ(program_files_path + _T("\\") + SHORT_COMPANY_NAME + |
- _T("\\") + PRODUCT_NAME + _T("\\GoogleUpdate.exe"), |
- path); |
- |
- // Test when the key exists but the value doesn't. |
- ASSERT_SUCCEEDED(RegKey::CreateKey(MACHINE_REG_CLIENTS_GOOPDATE)); |
- path = BuildGoogleUpdateExePath(true); |
- EXPECT_STREQ(program_files_path + _T("\\") + SHORT_COMPANY_NAME + |
- _T("\\") + PRODUCT_NAME + _T("\\GoogleUpdate.exe"), |
- path); |
-} |
- |
-// pv should be ignored. |
-TEST_F(GoopdateUtilsRegistryProtectedWithUserFolderPathsTest, |
- BuildGoogleUpdateExePath_UserVersionFound) { |
- ASSERT_SUCCEEDED(RegKey::SetValue(USER_REG_CLIENTS_GOOPDATE, |
- _T("pv"), |
- _T("1.2.3.4"))); |
- |
- CString path = BuildGoogleUpdateExePath(false); |
- |
- CString user_appdata; |
- EXPECT_SUCCEEDED(GetFolderPath(CSIDL_LOCAL_APPDATA, &user_appdata)); |
- CString expected_path; |
- expected_path.Format(_T("%s\\") SHORT_COMPANY_NAME _T("\\") |
- PRODUCT_NAME _T("\\GoogleUpdate.exe"), |
- user_appdata); |
- EXPECT_STREQ(expected_path, path); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedWithUserFolderPathsTest, |
- BuildGoogleUpdateExePath_UserVersionNotFound) { |
- CString user_appdata; |
- EXPECT_SUCCEEDED(GetFolderPath(CSIDL_LOCAL_APPDATA, &user_appdata)); |
- CString expected_path; |
- expected_path.Format(_T("%s\\") SHORT_COMPANY_NAME _T("\\") |
- PRODUCT_NAME _T("\\GoogleUpdate.exe"), |
- user_appdata); |
- |
- // Test when the key doesn't exist. |
- CString path = BuildGoogleUpdateExePath(false); |
- EXPECT_STREQ(expected_path, path); |
- |
- // Test when the key exists but the value doesn't. |
- ASSERT_SUCCEEDED(RegKey::CreateKey(USER_REG_CLIENTS_GOOPDATE)); |
- path = BuildGoogleUpdateExePath(false); |
- EXPECT_STREQ(expected_path, path); |
-} |
- |
-// The version is no longer used by StartGoogleUpdateWithArgs, so the return |
-// value depends on whether program_files\Google\Update\GoogleUpdate.exe exists. |
-// The arguments must be valid to avoid displaying invalid command line error. |
-TEST_F(GoopdateUtilsRegistryProtectedWithMachineFolderPathsTest, |
- StartGoogleUpdateWithArgs_MachineVersionVersionDoesNotExist) { |
- ASSERT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_CLIENTS_GOOPDATE, |
- _T("pv"), |
- _T("1.2.3.4"))); |
- const TCHAR* kArgs = _T("/cr"); |
- HRESULT hr = StartGoogleUpdateWithArgs(true, kArgs, NULL); |
- EXPECT_TRUE(S_OK == hr || HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) == hr); |
-} |
- |
-// The version is no longer used by StartGoogleUpdateWithArgs, so the return |
-// value depends on whether <user_folder>\Google\Update\GoogleUpdate.exe exists. |
-// The arguments must be valid to avoid displaying invalid command line error. |
-TEST_F(GoopdateUtilsRegistryProtectedWithUserFolderPathsTest, |
- StartGoogleUpdateWithArgs_UserVersionVersionDoesNotExist) { |
- ASSERT_SUCCEEDED(RegKey::SetValue(USER_REG_CLIENTS_GOOPDATE, |
- _T("pv"), |
- _T("1.2.3.4"))); |
- const TCHAR* kArgs = _T("/cr"); |
- HRESULT hr = StartGoogleUpdateWithArgs(false, kArgs, NULL); |
- EXPECT_TRUE(S_OK == hr || HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) == hr); |
-} |
- |
-TEST(GoopdateUtilsTest, BuildInstallDirectory_Machine) { |
- const CPath dir = BuildInstallDirectory(true, _T("1.2.3.0")); |
- CString program_files_path; |
- EXPECT_SUCCEEDED(GetFolderPath(CSIDL_PROGRAM_FILES, &program_files_path)); |
- EXPECT_STREQ(program_files_path + _T("\\") + SHORT_COMPANY_NAME + |
- _T("\\") + PRODUCT_NAME + _T("\\1.2.3.0"), dir); |
-} |
- |
-TEST(GoopdateUtilsTest, BuildInstallDirectory_User) { |
- CPath expected_path(GetGoogleUpdateUserPath()); |
- expected_path.Append(_T("4.5.6.7")); |
- EXPECT_STREQ(expected_path, |
- BuildInstallDirectory(false, _T("4.5.6.7"))); |
-} |
- |
-TEST(GoopdateUtilsTest, ConvertBrowserTypeToString) { |
- for (int i = 0; i < BROWSER_MAX; ++i) { |
- CString str_type = ConvertBrowserTypeToString( |
- static_cast<BrowserType>(i)); |
- BrowserType type = BROWSER_UNKNOWN; |
- ASSERT_HRESULT_SUCCEEDED( |
- ConvertStringToBrowserType(str_type, &type)); |
- ASSERT_EQ(static_cast<int>(type), i); |
- } |
-} |
- |
-TEST(GoopdateUtilsTest, UniqueEventInEnvironment_User) { |
- const TCHAR* kEnvVarName = _T("SOME_ENV_VAR_FOR_TEST"); |
- scoped_event created_event; |
- scoped_event opened_event; |
- |
- ASSERT_HRESULT_SUCCEEDED(CreateUniqueEventInEnvironment( |
- kEnvVarName, |
- false, |
- address(created_event))); |
- ASSERT_TRUE(created_event); |
- EXPECT_EQ(WAIT_TIMEOUT, ::WaitForSingleObject(get(created_event), 0)); |
- |
- TCHAR event_name[MAX_PATH] = {0}; |
- EXPECT_TRUE( |
- ::GetEnvironmentVariable(kEnvVarName, event_name, arraysize(event_name))); |
- |
- ASSERT_HRESULT_SUCCEEDED(OpenUniqueEventFromEnvironment( |
- kEnvVarName, |
- false, |
- address(opened_event))); |
- ASSERT_TRUE(opened_event); |
- |
- EXPECT_TRUE(::SetEvent(get(opened_event))); |
- EXPECT_EQ(WAIT_OBJECT_0, ::WaitForSingleObject(get(created_event), 0)); |
- |
- EXPECT_TRUE(::SetEnvironmentVariable(kEnvVarName, NULL)); |
-} |
- |
-TEST(GoopdateUtilsTest, UniqueEventInEnvironment_Machine) { |
- const TCHAR* kEnvVarName = _T("OTHER_ENV_VAR_FOR_TEST"); |
- scoped_event created_event; |
- scoped_event opened_event; |
- TCHAR event_name[MAX_PATH] = {0}; |
- |
- if (!vista_util::IsUserAdmin()) { |
- EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_INVALID_OWNER), |
- CreateUniqueEventInEnvironment(kEnvVarName, |
- true, |
- address(created_event))); |
- EXPECT_FALSE(created_event); |
- |
- EXPECT_FALSE(::GetEnvironmentVariable(kEnvVarName, |
- event_name, |
- arraysize(event_name))); |
- return; |
- } |
- |
- ASSERT_HRESULT_SUCCEEDED(CreateUniqueEventInEnvironment( |
- kEnvVarName, |
- true, |
- address(created_event))); |
- ASSERT_TRUE(created_event); |
- EXPECT_EQ(WAIT_TIMEOUT, ::WaitForSingleObject(get(created_event), 0)); |
- |
- EXPECT_TRUE( |
- ::GetEnvironmentVariable(kEnvVarName, event_name, arraysize(event_name))); |
- |
- ASSERT_HRESULT_SUCCEEDED(OpenUniqueEventFromEnvironment( |
- kEnvVarName, |
- true, |
- address(opened_event))); |
- ASSERT_TRUE(opened_event); |
- |
- EXPECT_TRUE(::SetEvent(get(opened_event))); |
- EXPECT_EQ(WAIT_OBJECT_0, ::WaitForSingleObject(get(created_event), 0)); |
- |
- EXPECT_TRUE(::SetEnvironmentVariable(kEnvVarName, NULL)); |
-} |
- |
-TEST(GoopdateUtilsTest, UniqueEventInEnvironment_UserMachineMismatch) { |
- const TCHAR* kEnvVarName = _T("ENV_VAR_FOR_MIXED_TEST"); |
- scoped_event created_event; |
- scoped_event opened_event; |
- |
- ASSERT_HRESULT_SUCCEEDED(CreateUniqueEventInEnvironment( |
- kEnvVarName, |
- false, |
- address(created_event))); |
- ASSERT_TRUE(created_event); |
- EXPECT_EQ(WAIT_TIMEOUT, ::WaitForSingleObject(get(created_event), 0)); |
- |
- TCHAR event_name[MAX_PATH] = {0}; |
- EXPECT_TRUE( |
- ::GetEnvironmentVariable(kEnvVarName, event_name, arraysize(event_name))); |
- |
- EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), |
- OpenUniqueEventFromEnvironment(kEnvVarName, |
- true, |
- address(opened_event))); |
- |
- EXPECT_TRUE(::SetEnvironmentVariable(kEnvVarName, NULL)); |
-} |
- |
-TEST(GoopdateUtilsTest, OpenUniqueEventFromEnvironment_EnvVarDoesNotExist) { |
- const TCHAR* kEnvVarName = _T("ANOTHER_ENV_VAR_FOR_TEST"); |
- scoped_event opened_event; |
- EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_ENVVAR_NOT_FOUND), |
- OpenUniqueEventFromEnvironment(kEnvVarName, |
- false, |
- address(opened_event))); |
-} |
- |
-TEST(GoopdateUtilsTest, OpenUniqueEventFromEnvironment_EventDoesNotExist) { |
- const TCHAR* kEnvVarName = _T("YET_ANOTHER_ENV_VAR_FOR_TEST"); |
- |
- EXPECT_TRUE(::SetEnvironmentVariable(kEnvVarName, _T("foo"))); |
- |
- scoped_event opened_event; |
- EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), |
- OpenUniqueEventFromEnvironment(kEnvVarName, |
- false, |
- address(opened_event))); |
- |
- EXPECT_TRUE(::SetEnvironmentVariable(kEnvVarName, NULL)); |
-} |
- |
- |
-CString GetTempFile() { |
- TCHAR temp_path[MAX_PATH] = {0}; |
- TCHAR temp_file[MAX_PATH] = {0}; |
- |
- EXPECT_LT(::GetTempPath(arraysize(temp_path), temp_path), |
- arraysize(temp_path)); |
- EXPECT_NE(0, ::GetTempFileName(temp_path, _T("ut_"), 0, temp_file)); |
- return CString(temp_file); |
-} |
- |
-typedef std::map<CString, CString> StringMap; |
-typedef StringMap::const_iterator StringMapIter; |
- |
-TEST(GoopdateUtilsTest, ReadNameValuePairsFromFileTest_MissingFile) { |
- CString temp_file = GetTempFile(); |
- ::DeleteFile(temp_file); |
- |
- ASSERT_FALSE(File::Exists(temp_file)); |
- |
- StringMap pairs_read; |
- ASSERT_FAILED(ReadNameValuePairsFromFile(temp_file, |
- _T("my_group"), |
- &pairs_read)); |
- ASSERT_EQ(0, pairs_read.size()); |
-} |
- |
-TEST(GoopdateUtilsTest, ReadNameValuePairsFromFileTest_ReadEmpty) { |
- CString temp_file = GetTempFile(); |
- ON_SCOPE_EXIT(::DeleteFile, temp_file.GetString()); |
- File file_write; |
- EXPECT_SUCCEEDED(file_write.Open(temp_file, true, false)); |
- file_write.Close(); |
- |
- StringMap pairs_read; |
- ASSERT_SUCCEEDED(ReadNameValuePairsFromFile(temp_file, |
- _T("my_group"), |
- &pairs_read)); |
- ASSERT_EQ(0, pairs_read.size()); |
-} |
- |
-void ValidateStringMapEquality(const StringMap& expected, |
- const StringMap& actual) { |
- ASSERT_EQ(expected.size(), actual.size()); |
- |
- StringMapIter it_expected = expected.begin(); |
- for (; it_expected != expected.end(); ++it_expected) { |
- StringMapIter it_actual = actual.find(it_expected->first); |
- ASSERT_TRUE(it_actual != actual.end()); |
- ASSERT_STREQ(it_expected->second, it_actual->second); |
- } |
-} |
- |
-TEST(GoopdateUtilsTest, ReadNameValuePairsFromFileTest_ReadOnePair) { |
- CString group = _T("my_group"); |
- |
- StringMap pairs_write; |
- pairs_write[_T("some_name")] = _T("some_value"); |
- |
- CString temp_file = GetTempFile(); |
- ON_SCOPE_EXIT(::DeleteFile, temp_file.GetString()); |
- ASSERT_SUCCEEDED(WriteNameValuePairsToFile(temp_file, group, pairs_write)); |
- ASSERT_TRUE(File::Exists(temp_file)); |
- |
- StringMap pairs_read; |
- ASSERT_SUCCEEDED(ReadNameValuePairsFromFile(temp_file, group, &pairs_read)); |
- |
- ValidateStringMapEquality(pairs_write, pairs_read); |
-} |
- |
-TEST(GoopdateUtilsTest, ReadNameValuePairsFromFileTest_ReadManyPairs) { |
- CString group = _T("my_group"); |
- |
- StringMap pairs_write; |
- const int kCountPairs = 10; |
- for (int i = 1; i <= kCountPairs; ++i) { |
- CString name; |
- name.Format(_T("name%d"), i); |
- CString value; |
- value.Format(_T("value%d"), i); |
- pairs_write[name] = value; |
- } |
- |
- CString temp_file = GetTempFile(); |
- ON_SCOPE_EXIT(::DeleteFile, temp_file.GetString()); |
- ASSERT_SUCCEEDED(WriteNameValuePairsToFile(temp_file, group, pairs_write)); |
- ASSERT_TRUE(File::Exists(temp_file)); |
- |
- StringMap pairs_read; |
- ASSERT_SUCCEEDED(ReadNameValuePairsFromFile(temp_file, group, &pairs_read)); |
- |
- ValidateStringMapEquality(pairs_write, pairs_read); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_LegacyVersions) { |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.0.0.0"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.103.9"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.65535.65535"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_Omaha2AndLater) { |
- EXPECT_TRUE(IsGoogleUpdate2OrLater(_T("1.2.0.0"))); |
- EXPECT_TRUE(IsGoogleUpdate2OrLater(_T("1.2.0111.2222"))); |
- EXPECT_TRUE(IsGoogleUpdate2OrLater(_T("1.3.456.7890"))); |
- EXPECT_TRUE(IsGoogleUpdate2OrLater(_T("2.0.0.0"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_VersionZero) { |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("0.0.0.0"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_VersionUpperLimits) { |
- EXPECT_TRUE(IsGoogleUpdate2OrLater(_T("65535.65535.65535.65535"))); |
- |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("65536.65536.65536.65536"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.2.65536.65536"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.65536.65536"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_TooFewElements) { |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.1"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_ExtraPeriod) { |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.2.3."))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_TooManyElements) { |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.1.2.3.4"))); |
-} |
- |
-TEST(GoopdateUtilsTest, IsGoogleUpdate2OrLater_Char) { |
- ExpectAsserts expect_asserts; |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.B.3.4"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.2.3.B"))); |
- EXPECT_FALSE(IsGoogleUpdate2OrLater(_T("1.2.3.9B"))); |
-} |
- |
-TEST(GoopdateUtilsTest, WriteInstallerDataToTempFile) { |
- CStringA utf8_bom; |
- utf8_bom.Format("%c%c%c", 0xEF, 0xBB, 0xBF); |
- |
- std::vector<CString> list_installer_data; |
- list_installer_data.push_back(_T("")); |
- list_installer_data.push_back(_T("hello\n")); |
- list_installer_data.push_back(_T("good bye")); |
- list_installer_data.push_back(_T(" there you\n go ")); |
- list_installer_data.push_back(_T("\"http://foo.bar.org/?q=stuff&h=other\"")); |
- list_installer_data.push_back(_T("foo\r\nbar\n")); |
- list_installer_data.push_back(_T("foo\n\rbar")); // LFCR is not recognized. |
- list_installer_data.push_back(_T("this is a string over 1024 characters. ------------------------------01------------------------------02------------------------------03------------------------------04------------------------------05------------------------------06------------------------------07------------------------------08------------------------------09------------------------------10------------------------------11------------------------------12------------------------------13------------------------------14------------------------------15------------------------------16------------------------------17------------------------------18------------------------------19------------------------------20------------------------------21------------------------------22------------------------------23------------------------------24------------------------------25------------------------------26------------------------------27------------------------------28------------------------------29------------------------------30------------------------------31------------------------------32------------------------------33------------------------------34------------------------------35------------------------------36------------------------------37------------------------------38------------------------------39------------------------------40 end.")); //NOLINT |
- |
- std::vector<CStringA> expected_installer_data; |
- expected_installer_data.push_back(""); |
- expected_installer_data.push_back("hello\n"); |
- expected_installer_data.push_back("good bye"); |
- expected_installer_data.push_back(" there you\n go "); |
- expected_installer_data.push_back("\"http://foo.bar.org/?q=stuff&h=other\""); |
- expected_installer_data.push_back("foo\r\nbar\n"); |
- expected_installer_data.push_back("foo\n\rbar"); |
- expected_installer_data.push_back("this is a string over 1024 characters. ------------------------------01------------------------------02------------------------------03------------------------------04------------------------------05------------------------------06------------------------------07------------------------------08------------------------------09------------------------------10------------------------------11------------------------------12------------------------------13------------------------------14------------------------------15------------------------------16------------------------------17------------------------------18------------------------------19------------------------------20------------------------------21------------------------------22------------------------------23------------------------------24------------------------------25------------------------------26------------------------------27------------------------------28------------------------------29------------------------------30------------------------------31------------------------------32------------------------------33------------------------------34------------------------------35------------------------------36------------------------------37------------------------------38------------------------------39------------------------------40 end."); //NOLINT |
- |
- ASSERT_EQ(expected_installer_data.size(), list_installer_data.size()); |
- |
- for (size_t i = 0; i < list_installer_data.size(); ++i) { |
- CString installer_data = list_installer_data[i]; |
- SCOPED_TRACE(installer_data); |
- |
- CString file_path; |
- HRESULT hr = WriteInstallerDataToTempFile(installer_data, &file_path); |
- ON_SCOPE_EXIT(::DeleteFile, file_path.GetString()); |
- EXPECT_SUCCEEDED(hr); |
- |
- // TODO(omaha): consider eliminating the special case. |
- // WriteInstallerDataToTempFile() will return S_FALSE with "" data. |
- if (S_OK == hr) { |
- File file; |
- const int kBufferLen = 4096; |
- std::vector<byte> data_line(kBufferLen); |
- EXPECT_SUCCEEDED(file.Open(file_path, false, false)); |
- uint32 bytes_read(0); |
- EXPECT_SUCCEEDED(file.Read(data_line.size(), |
- &data_line.front(), |
- &bytes_read)); |
- data_line.resize(bytes_read); |
- data_line.push_back(0); |
- EXPECT_STREQ(utf8_bom + expected_installer_data[i], |
- reinterpret_cast<const char*>(&data_line.front())); |
- EXPECT_SUCCEEDED(file.Close()); |
- } else { |
- EXPECT_TRUE(installer_data.IsEmpty()); |
- } |
- } |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, UpdateLastChecked) { |
- EXPECT_SUCCEEDED(UpdateLastChecked(false)); |
- EXPECT_FALSE(ShouldCheckForUpdates(false)); |
- |
- ConfigManager::Instance()->SetLastCheckedTime(false, 0); |
- EXPECT_TRUE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- ShouldCheckForUpdates_NoLastCheckedPresent) { |
- EXPECT_TRUE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- ShouldCheckForUpdates_LastCheckedPresent) { |
- const uint32 now = Time64ToInt32(GetCurrent100NSTime()); |
- |
- ConfigManager::Instance()->SetLastCheckedTime(false, now - 10); |
- EXPECT_FALSE(ShouldCheckForUpdates(false)); |
- |
- ConfigManager::Instance()->SetLastCheckedTime(false, |
- now - kLastCheckPeriodSec - 1); |
- EXPECT_TRUE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- ShouldCheckForUpdates_LastCheckedInFuture) { |
- const uint32 now = Time64ToInt32(GetCurrent100NSTime()); |
- |
- // The absolute difference is within the check period. |
- ConfigManager::Instance()->SetLastCheckedTime(false, now + 600); |
- EXPECT_FALSE(ShouldCheckForUpdates(false)); |
- |
- // The absolute difference is greater than the check period. |
- ConfigManager::Instance()->SetLastCheckedTime(false, |
- now + kLastCheckPeriodSec + 1); |
- EXPECT_TRUE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- ShouldCheckForUpdates_PeriodZero) { |
- EXPECT_SUCCEEDED( |
- RegKey::SetValue(kRegKeyGoopdateGroupPolicy, |
- kRegValueAutoUpdateCheckPeriodOverrideMinutes, |
- static_cast<DWORD>(0))); |
- |
- EXPECT_FALSE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- ShouldCheckForUpdates_PeriodOverride) { |
- const DWORD kOverrideMinutes = 10; |
- const DWORD kOverrideSeconds = kOverrideMinutes * 60; |
- const uint32 now = Time64ToInt32(GetCurrent100NSTime()); |
- |
- EXPECT_SUCCEEDED( |
- RegKey::SetValue(kRegKeyGoopdateGroupPolicy, |
- kRegValueAutoUpdateCheckPeriodOverrideMinutes, |
- kOverrideMinutes)); |
- |
- ConfigManager::Instance()->SetLastCheckedTime(false, now - 10); |
- EXPECT_FALSE(ShouldCheckForUpdates(false)); |
- |
- ConfigManager::Instance()->SetLastCheckedTime(false, |
- now - kOverrideSeconds - 1); |
- EXPECT_TRUE(ShouldCheckForUpdates(false)); |
-} |
- |
-TEST_P(GoopdateUtilsRegistryProtectedBooleanTest, CreateUserId) { |
- const bool is_machine = GetParam(); |
- CString user_id1, user_id2; |
- |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV, |
- kRegValueForceUsageStats, |
- _T("1"))); |
- |
- EXPECT_SUCCEEDED(goopdate_utils::CreateUserId(is_machine)); |
- user_id1 = goopdate_utils::GetUserIdLazyInit(is_machine); |
- |
- // If user id exists, CreateUserId() should not create a new one. |
- EXPECT_SUCCEEDED(goopdate_utils::CreateUserId(is_machine)); |
- user_id2 = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_STREQ(user_id1, user_id2); |
- |
- goopdate_utils::DeleteUserId(is_machine); |
- |
- // Recreate user id should result in a different id. |
- user_id2 = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_STRNE(user_id1, user_id2); |
- |
- // Id generation should fail if machine is in OEM install state. |
- const DWORD now = Time64ToInt32(GetCurrent100NSTime()); |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, |
- _T("OemInstallTime"), |
- now)); |
- if (is_machine) { |
- ASSERT_TRUE(oem_install_utils::IsOemInstalling(is_machine)); |
- EXPECT_FAILED(goopdate_utils::CreateUserId(is_machine)); |
- } else { |
- ASSERT_FALSE(oem_install_utils::IsOemInstalling(is_machine)); |
- EXPECT_SUCCEEDED(goopdate_utils::CreateUserId(is_machine)); |
- } |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, |
- GenerateUserId_EachUserShouldHaveHisOwnHive) { |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV, |
- kRegValueForceUsageStats, |
- _T("1"))); |
- |
- CString machine_user_id = goopdate_utils::GetUserIdLazyInit(true); |
- CString user_id = goopdate_utils::GetUserIdLazyInit(false); |
- EXPECT_STRNE(machine_user_id, user_id); |
-} |
- |
-TEST_P(GoopdateUtilsRegistryProtectedBooleanTest, GetOptInUserId_UpdateDev) { |
- const bool is_machine = GetParam(); |
- |
- CString user_id = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_TRUE(user_id.IsEmpty()); |
- |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV, |
- kRegValueForceUsageStats, |
- _T("1"))); |
- |
- user_id = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_FALSE(user_id.IsEmpty()); |
- |
- EXPECT_STREQ(user_id, goopdate_utils::GetUserIdLazyInit(is_machine)); |
- |
- GUID guid = GUID_NULL; |
- EXPECT_SUCCEEDED(StringToGuidSafe(user_id, &guid)); |
-} |
- |
-TEST_P(GoopdateUtilsRegistryProtectedBooleanTest, GetOptInUserId_AppOptIn) { |
- const bool is_machine = GetParam(); |
- CString user_id = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_TRUE(user_id.IsEmpty()); |
- |
- CString key_path = |
- ConfigManager::Instance()->registry_client_state(is_machine); |
- key_path = AppendRegKeyPath(key_path, kAppId); |
- EXPECT_SUCCEEDED(RegKey::SetValue(key_path, |
- kRegValueForceUsageStats, |
- static_cast<DWORD>(1))); |
- |
- user_id = goopdate_utils::GetUserIdLazyInit(is_machine); |
- EXPECT_FALSE(user_id.IsEmpty()); |
- |
- GUID guid = GUID_NULL; |
- EXPECT_SUCCEEDED(StringToGuidSafe(user_id, &guid)); |
-} |
- |
-TEST_F(GoopdateUtilsRegistryProtectedTest, GetOptInUserId_UserNotOptIn) { |
- const bool is_machine = false; |
- |
- EXPECT_TRUE(goopdate_utils::GetUserIdLazyInit(is_machine).IsEmpty()); |
- |
- EXPECT_SUCCEEDED(goopdate_utils::CreateUserId(is_machine)); |
- EXPECT_TRUE( |
- RegKey::HasValue(ConfigManager::Instance()->registry_update(is_machine), |
- kRegValueUserId)); |
- EXPECT_TRUE(goopdate_utils::GetUserIdLazyInit(is_machine).IsEmpty()); |
- |
- // ID should be removed. |
- EXPECT_FALSE( |
- RegKey::HasValue(ConfigManager::Instance()->registry_update(is_machine), |
- kRegValueUserId)); |
-} |
- |
-TEST_P(GoopdateUtilsRegistryProtectedBooleanTest, |
- GetOptInUserId_OemInstalling) { |
- const bool is_machine = GetParam(); |
- EXPECT_SUCCEEDED(goopdate_utils::CreateUserId(is_machine)); |
- |
- const DWORD now = Time64ToInt32(GetCurrent100NSTime()); |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE, |
- _T("OemInstallTime"), |
- now)); |
- EXPECT_EQ(is_machine, oem_install_utils::IsOemInstalling(is_machine)); |
- |
- EXPECT_SUCCEEDED(RegKey::SetValue(MACHINE_REG_UPDATE_DEV, |
- kRegValueForceUsageStats, |
- _T("1"))); |
- |
- if (is_machine) { |
- EXPECT_TRUE(goopdate_utils::GetUserIdLazyInit(is_machine).IsEmpty()); |
- |
- EXPECT_SUCCEEDED(RegKey::DeleteValue(MACHINE_REG_UPDATE, |
- _T("OemInstallTime"))); |
- EXPECT_FALSE(goopdate_utils::GetUserIdLazyInit(is_machine).IsEmpty()); |
- } else { |
- EXPECT_FALSE(goopdate_utils::GetUserIdLazyInit(is_machine).IsEmpty()); |
- } |
-} |
- |
-INSTANTIATE_TEST_CASE_P(MachineOrUser, |
- GoopdateUtilsRegistryProtectedBooleanTest, |
- ::testing::Bool()); |
- |
-} // namespace goopdate_utils |
- |
-} // namespace omaha |