| Index: base/browser_utils_unittest.cc
|
| diff --git a/base/browser_utils_unittest.cc b/base/browser_utils_unittest.cc
|
| deleted file mode 100644
|
| index ef75fdab50f11f03a62f528de619e5841afdddd2..0000000000000000000000000000000000000000
|
| --- a/base/browser_utils_unittest.cc
|
| +++ /dev/null
|
| @@ -1,385 +0,0 @@
|
| -// Copyright 2008-2009 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 "omaha/base/browser_utils.h"
|
| -#include "omaha/base/const_utils.h"
|
| -#include "omaha/base/path.h"
|
| -#include "omaha/base/reg_key.h"
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -const CString kRegistryHiveOverrideClasses =
|
| - CString(kRegistryHiveOverrideRoot) + _T("HKCR");
|
| -
|
| -// GetDefaultBrowserName() uses ::RegOpenCurrentUser, which does not appear to
|
| -// be affected by registry hive overrides. Therefore, in order to test methods
|
| -// that rely on it, the actual value must be replaced. This class saves the
|
| -// value and restores it. If the test is interrupted before TearDown, the
|
| -// default browser may not be correctly registered.
|
| -class BrowserUtilsDefaultBrowserSavedTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() {
|
| - if (!RegKey::HasKey(kRegKeyUserDefaultBrowser)) {
|
| - return;
|
| - }
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::GetValue(kRegKeyUserDefaultBrowser,
|
| - NULL,
|
| - &default_browser_name_));
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - if (default_browser_name_.IsEmpty()) {
|
| - RegKey::DeleteKey(kRegKeyUserDefaultBrowser);
|
| - return;
|
| - }
|
| -
|
| - EXPECT_SUCCEEDED(RegKey::SetValue(kRegKeyUserDefaultBrowser,
|
| - NULL,
|
| - default_browser_name_));
|
| - }
|
| -
|
| - CString default_browser_name_;
|
| -};
|
| -
|
| -class GetLegacyDefaultBrowserInfoTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() {
|
| - RegKey::DeleteKey(kRegistryHiveOverrideClasses, true);
|
| - RegKey classes_key;
|
| - ASSERT_HRESULT_SUCCEEDED(classes_key.Create(kRegistryHiveOverrideClasses));
|
| - ASSERT_HRESULT_SUCCEEDED(::RegOverridePredefKey(HKEY_CLASSES_ROOT,
|
| - classes_key.Key()));
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - ASSERT_HRESULT_SUCCEEDED(::RegOverridePredefKey(HKEY_CLASSES_ROOT, NULL));
|
| - ASSERT_HRESULT_SUCCEEDED(RegKey::DeleteKey(kRegistryHiveOverrideClasses,
|
| - true));
|
| - }
|
| -};
|
| -
|
| -TEST_F(BrowserUtilsDefaultBrowserSavedTest, GetDefaultBrowserType_IE) {
|
| - if (!ShouldRunLargeTest()) {
|
| - return;
|
| - }
|
| - EXPECT_SUCCEEDED(
|
| - RegKey::SetValue(kRegKeyUserDefaultBrowser, NULL, _T("IeXpLoRe.ExE")));
|
| - BrowserType type = BROWSER_UNKNOWN;
|
| - EXPECT_SUCCEEDED(GetDefaultBrowserType(&type));
|
| - EXPECT_EQ(BROWSER_IE, type);
|
| -}
|
| -
|
| -TEST_F(BrowserUtilsDefaultBrowserSavedTest, GetDefaultBrowserType_Firefox) {
|
| - if (!ShouldRunLargeTest()) {
|
| - return;
|
| - }
|
| - EXPECT_SUCCEEDED(
|
| - RegKey::SetValue(kRegKeyUserDefaultBrowser, NULL, _T("FiReFoX.ExE")));
|
| - BrowserType type = BROWSER_UNKNOWN;
|
| - EXPECT_SUCCEEDED(GetDefaultBrowserType(&type));
|
| - EXPECT_EQ(BROWSER_FIREFOX, type);
|
| -}
|
| -
|
| -TEST_F(BrowserUtilsDefaultBrowserSavedTest, GetDefaultBrowserType_Chrome) {
|
| - if (!ShouldRunLargeTest()) {
|
| - return;
|
| - }
|
| - EXPECT_SUCCEEDED(
|
| - RegKey::SetValue(kRegKeyUserDefaultBrowser, NULL, _T("ChRoMe.ExE")));
|
| - BrowserType type = BROWSER_UNKNOWN;
|
| - EXPECT_SUCCEEDED(GetDefaultBrowserType(&type));
|
| - EXPECT_EQ(BROWSER_CHROME, type);
|
| -}
|
| -
|
| -TEST_F(BrowserUtilsDefaultBrowserSavedTest, GetDefaultBrowserType_Unsupported) {
|
| - if (!ShouldRunLargeTest()) {
|
| - return;
|
| - }
|
| - EXPECT_SUCCEEDED(
|
| - RegKey::SetValue(kRegKeyUserDefaultBrowser, NULL, _T("FoO.ExE")));
|
| - BrowserType type = BROWSER_UNKNOWN;
|
| - EXPECT_SUCCEEDED(GetDefaultBrowserType(&type));
|
| - EXPECT_EQ(BROWSER_UNKNOWN, type);
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, BrowserTypeToProcessName_Unknown) {
|
| - CString exe_name;
|
| - EXPECT_EQ(E_FAIL, BrowserTypeToProcessName(BROWSER_UNKNOWN, &exe_name));
|
| - EXPECT_TRUE(exe_name.IsEmpty());
|
| -}
|
| -
|
| -// Writes the default browser to ensure consistent results.
|
| -TEST_F(BrowserUtilsDefaultBrowserSavedTest, BrowserTypeToProcessName_Default) {
|
| - if (!ShouldRunLargeTest()) {
|
| - return;
|
| - }
|
| - EXPECT_SUCCEEDED(
|
| - RegKey::SetValue(kRegKeyUserDefaultBrowser, NULL, _T("IeXpLoRe.ExE")));
|
| -
|
| - CString default_exe_name;
|
| - EXPECT_SUCCEEDED(GetDefaultBrowserName(&default_exe_name));
|
| - EXPECT_STREQ(_T("IeXpLoRe.ExE"), default_exe_name);
|
| -
|
| - CString exe_name;
|
| - EXPECT_SUCCEEDED(BrowserTypeToProcessName(BROWSER_DEFAULT, &exe_name));
|
| - EXPECT_STREQ(_T("IeXpLoRe.ExE"), exe_name);
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, BrowserTypeToProcessName_Browsers) {
|
| - CString exe_name;
|
| - EXPECT_SUCCEEDED(BrowserTypeToProcessName(BROWSER_IE, &exe_name));
|
| - EXPECT_STREQ(_T("IEXPLORE.EXE"), exe_name);
|
| - EXPECT_SUCCEEDED(BrowserTypeToProcessName(BROWSER_FIREFOX, &exe_name));
|
| - EXPECT_STREQ(_T("FIREFOX.EXE"), exe_name);
|
| - EXPECT_SUCCEEDED(BrowserTypeToProcessName(BROWSER_CHROME, &exe_name));
|
| - EXPECT_STREQ(_T("CHROME.EXE"), exe_name);
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, BrowserTypeToProcessName_Invalid) {
|
| - CString exe_name;
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_EQ(E_FAIL, BrowserTypeToProcessName(BROWSER_MAX, &exe_name));
|
| - EXPECT_TRUE(exe_name.IsEmpty());
|
| - EXPECT_EQ(E_FAIL,
|
| - BrowserTypeToProcessName(static_cast<BrowserType>(9), &exe_name));
|
| - EXPECT_TRUE(exe_name.IsEmpty());
|
| - EXPECT_EQ(E_FAIL,
|
| - BrowserTypeToProcessName(static_cast<BrowserType>(-1), &exe_name));
|
| - EXPECT_TRUE(exe_name.IsEmpty());
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, GetBrowserImagePath_DefaultBrowser) {
|
| - CString browser;
|
| - ASSERT_SUCCEEDED(GetDefaultBrowserName(&browser));
|
| -
|
| - BrowserType default_type = BROWSER_UNKNOWN;
|
| - if (browser.CompareNoCase(kIeExeName) == 0) {
|
| - default_type = BROWSER_IE;
|
| - } else if (browser.CompareNoCase(kFirefoxExeName) == 0) {
|
| - default_type = BROWSER_FIREFOX;
|
| - } else if (browser.CompareNoCase(kChromeExeName) == 0) {
|
| - default_type = BROWSER_CHROME;
|
| - }
|
| -
|
| - CString exp_browser_path;
|
| - ASSERT_SUCCEEDED(GetDefaultBrowserPath(&exp_browser_path));
|
| -
|
| - if (default_type == BROWSER_IE) {
|
| - CString path;
|
| - ASSERT_SUCCEEDED(GetBrowserImagePath(BROWSER_IE, &path));
|
| -
|
| - CString long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(path, &long_name));
|
| - CString exp_long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(exp_browser_path, &exp_long_name));
|
| - ASSERT_STREQ(exp_long_name.MakeLower(), long_name.MakeLower());
|
| - } else if (default_type == BROWSER_FIREFOX) {
|
| - CString path;
|
| - ASSERT_SUCCEEDED(GetBrowserImagePath(BROWSER_FIREFOX, &path));
|
| -
|
| - CString long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(path, &long_name));
|
| - CString exp_long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(exp_browser_path, &exp_long_name));
|
| - ASSERT_STREQ(exp_long_name.MakeLower(), long_name.MakeLower());
|
| - } else if (default_type == BROWSER_CHROME) {
|
| - CString path;
|
| - ASSERT_SUCCEEDED(GetBrowserImagePath(BROWSER_CHROME, &path));
|
| -
|
| - CString long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(path, &long_name));
|
| - CString exp_long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(exp_browser_path, &exp_long_name));
|
| - ASSERT_STREQ(exp_long_name.MakeLower(), long_name.MakeLower());
|
| - }
|
| -
|
| - CString path;
|
| - ASSERT_SUCCEEDED(GetBrowserImagePath(BROWSER_DEFAULT, &path));
|
| - CString long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(path, &long_name));
|
| - CString exp_long_name;
|
| - ASSERT_SUCCEEDED(ShortPathToLongPath(exp_browser_path, &exp_long_name));
|
| - ASSERT_STREQ(exp_long_name.MakeLower(), long_name.MakeLower());
|
| -
|
| - ASSERT_FAILED(GetBrowserImagePath(BROWSER_UNKNOWN, &path));
|
| -}
|
| -
|
| -// Try all browsers to get more test coverage.
|
| -TEST(BrowserUtilsTest, GetBrowserImagePath_AllSupportedBrowsers) {
|
| - if (IsTestRunByLocalSystem()) {
|
| - return;
|
| - }
|
| -
|
| - CString program_files_path;
|
| - EXPECT_SUCCEEDED(GetFolderPath(CSIDL_PROGRAM_FILES | CSIDL_FLAG_DONT_VERIFY,
|
| - &program_files_path));
|
| - CString path;
|
| -
|
| - HRESULT hr = GetBrowserImagePath(BROWSER_IE, &path);
|
| - if (SUCCEEDED(hr)) {
|
| - EXPECT_EQ(0, path.CompareNoCase(program_files_path +
|
| - _T("\\Internet Explorer\\iexplore.exe")))
|
| - << _T("Actual path: ") << path.GetString();
|
| - } else {
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), hr);
|
| - }
|
| -
|
| - hr = GetBrowserImagePath(BROWSER_FIREFOX, &path);
|
| - if (SUCCEEDED(hr)) {
|
| - EXPECT_TRUE(
|
| - 0 == path.CompareNoCase(program_files_path +
|
| - _T("\\Mozilla Firefox\\firefox.exe")) ||
|
| - 0 == path.CompareNoCase(
|
| - _T("C:\\PROGRA~1\\MOZILL~1\\FIREFOX.EXE")) ||
|
| - 0 == path.CompareNoCase(program_files_path +
|
| - _T("\\Minefield\\FIREFOX.EXE"))) // Trunk build.
|
| - << _T("Actual path: ") << path.GetString();
|
| - } else {
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), hr);
|
| - }
|
| -
|
| - hr = GetBrowserImagePath(BROWSER_CHROME, &path);
|
| - if (SUCCEEDED(hr)) {
|
| - EXPECT_TRUE(
|
| - 0 == path.CompareNoCase(program_files_path +
|
| - _T("\\Google\\Chrome\\Application\\chrome.exe")) ||
|
| - 0 == path.CompareNoCase(
|
| - GetLocalAppDataPath() +
|
| - _T("Google\\Chrome\\Application\\chrome.exe")))
|
| - << _T("Actual path: ") << path.GetString();
|
| - } else {
|
| - EXPECT_EQ(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), hr);
|
| - }
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, GetLegacyDefaultBrowserInfo) {
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_SUCCEEDED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_FALSE(browser_path.IsEmpty());
|
| - EXPECT_FALSE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST(BrowserUtilsTest, GetIeFontSize) {
|
| - uint32 font_size = 0;
|
| - const uint32 kMaxFontSize = 4;
|
| - EXPECT_TRUE(SUCCEEDED(GetIeFontSize(&font_size)) || IsTestRunByLocalSystem());
|
| - EXPECT_LE(font_size, kMaxFontSize);
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, ValidQuotedIE) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_SUCCEEDED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_STREQ(_T("C:\\Program Files\\Internet Explorer\\iexplore.exe"),
|
| - browser_path);
|
| - EXPECT_STREQ(_T("iexplore.exe"), name);
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, ValidUnquotedPath) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("C:\\Program Files\\Internet Explorer\\iexplore.exe")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_SUCCEEDED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_STREQ(_T("C:\\Program Files\\Internet Explorer\\iexplore.exe"),
|
| - browser_path);
|
| - EXPECT_STREQ(_T("iexplore.exe"), name);
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidNoKey) {
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidNoValue) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::CreateKey(
|
| - kRegKeyLegacyDefaultBrowserCommand));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidPath) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("\"C:\\Program File\\iexplore.exe\" -nohome")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidUnquotedPath) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("C:\\Program Files\\Internet Explorer\\iexplore.exe -nohome")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidUnquotedDirectory) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("C:\\Program Files\\Internet Explorer\\")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -TEST_F(GetLegacyDefaultBrowserInfoTest, InvalidQuotedDirectory) {
|
| - EXPECT_HRESULT_SUCCEEDED(RegKey::SetValue(
|
| - kRegKeyLegacyDefaultBrowserCommand,
|
| - NULL,
|
| - _T("\"C:\\Program Files\\Internet Explorer\\\" -nohome")));
|
| -
|
| - CString name;
|
| - CString browser_path;
|
| - EXPECT_FAILED(GetLegacyDefaultBrowserInfo(&name, &browser_path));
|
| - EXPECT_TRUE(browser_path.IsEmpty());
|
| - EXPECT_TRUE(name.IsEmpty());
|
| -}
|
| -
|
| -} // namespace omaha
|
| -
|
|
|