Chromium Code Reviews| Index: chrome/installer/util/shell_util_unittest.cc |
| =================================================================== |
| --- chrome/installer/util/shell_util_unittest.cc (revision 150342) |
| +++ chrome/installer/util/shell_util_unittest.cc (working copy) |
| @@ -2,8 +2,6 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include <windows.h> |
| -#include <shellapi.h> |
| #include <shlobj.h> |
| #include <fstream> |
| @@ -15,7 +13,6 @@ |
| #include "base/scoped_temp_dir.h" |
| #include "base/string16.h" |
| #include "base/string_util.h" |
| -#include "base/win/scoped_comptr.h" |
| #include "base/win/windows_version.h" |
| #include "chrome/installer/util/browser_distribution.h" |
| #include "chrome/installer/util/master_preferences.h" |
| @@ -24,72 +21,7 @@ |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace { |
| -bool VerifyChromeShortcut(const std::wstring& exe_path, |
| - const std::wstring& shortcut, |
| - const std::wstring& description, |
| - int icon_index) { |
| - base::win::ScopedComPtr<IShellLink> i_shell_link; |
| - base::win::ScopedComPtr<IPersistFile> i_persist_file; |
| - // Get pointer to the IShellLink interface |
| - bool failed = FAILED(i_shell_link.CreateInstance(CLSID_ShellLink, NULL, |
| - CLSCTX_INPROC_SERVER)); |
| - EXPECT_FALSE(failed) << "Failed to get IShellLink"; |
| - if (failed) |
| - return false; |
| - |
| - // Query IShellLink for the IPersistFile interface |
| - failed = FAILED(i_persist_file.QueryFrom(i_shell_link)); |
| - EXPECT_FALSE(failed) << "Failed to get IPersistFile"; |
| - if (failed) |
| - return false; |
| - |
| - failed = FAILED(i_persist_file->Load(shortcut.c_str(), 0)); |
| - EXPECT_FALSE(failed) << "Failed to load shortcut " << shortcut.c_str(); |
| - if (failed) |
| - return false; |
| - |
| - wchar_t long_path[MAX_PATH] = {0}; |
| - wchar_t short_path[MAX_PATH] = {0}; |
| - failed = ((::GetLongPathName(exe_path.c_str(), long_path, MAX_PATH) == 0) || |
| - (::GetShortPathName(exe_path.c_str(), short_path, MAX_PATH) == 0)); |
| - EXPECT_FALSE(failed) << "Failed to get long and short path names for " |
| - << exe_path; |
| - if (failed) |
| - return false; |
| - |
| - wchar_t file_path[MAX_PATH] = {0}; |
| - failed = ((FAILED(i_shell_link->GetPath(file_path, MAX_PATH, NULL, |
| - SLGP_UNCPRIORITY))) || |
| - ((FilePath(file_path) != FilePath(long_path)) && |
| - (FilePath(file_path) != FilePath(short_path)))); |
| - EXPECT_FALSE(failed) << "File path " << file_path << " did not match with " |
| - << exe_path; |
| - if (failed) |
| - return false; |
| - |
| - wchar_t desc[MAX_PATH] = {0}; |
| - failed = ((FAILED(i_shell_link->GetDescription(desc, MAX_PATH))) || |
| - (std::wstring(desc) != std::wstring(description))); |
| - EXPECT_FALSE(failed) << "Description " << desc << " did not match with " |
| - << description; |
| - if (failed) |
| - return false; |
| - |
| - wchar_t icon_path[MAX_PATH] = {0}; |
| - int index = 0; |
| - failed = ((FAILED(i_shell_link->GetIconLocation(icon_path, MAX_PATH, |
| - &index))) || |
| - ((FilePath(file_path) != FilePath(long_path)) && |
| - (FilePath(file_path) != FilePath(short_path))) || |
| - (index != icon_index)); |
| - EXPECT_FALSE(failed); |
| - if (failed) |
| - return false; |
| - |
| - return true; |
| -} |
| - |
| class ShellUtilTestWithDirAndDist : public testing::Test { |
| protected: |
| virtual void SetUp() { |
| @@ -102,8 +34,9 @@ |
| ScopedTempDir temp_dir_; |
| }; |
| -}; |
| +} |
| + |
| // Test that we can open archives successfully. |
| TEST_F(ShellUtilTestWithDirAndDist, UpdateChromeShortcutTest) { |
| // Create an executable in test path by copying ourself to it. |
| @@ -115,7 +48,7 @@ |
| EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path)); |
| FilePath shortcut_path = temp_dir_.path().AppendASCII("shortcut.lnk"); |
| - const std::wstring description(L"dummy description"); |
| + const string16 description(L"dummy description"); |
| EXPECT_TRUE(ShellUtil::UpdateChromeShortcut( |
| dist_, |
| exe_path.value(), |
| @@ -125,9 +58,9 @@ |
| exe_path.value(), |
| dist_->GetIconIndex(), |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - shortcut_path.value(), |
| - description, 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + shortcut_path.value(), description, 0)); |
| // Now specify an icon index in master prefs and make sure it works. |
| FilePath prefs_path = temp_dir_.path().AppendASCII( |
| @@ -152,13 +85,13 @@ |
| exe_path.value(), |
| dist_->GetIconIndex(), |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - shortcut_path.value(), |
| - description, 1)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + shortcut_path.value(), description, 1)); |
|
gab
2012/08/09 19:25:57
Align shortcut_path.value() with other VerifyChrom
Halli
2012/08/09 20:49:59
Done.
|
| // Now change only description to update shortcut and make sure icon index |
| // doesn't change. |
| - const std::wstring description2(L"dummy description 2"); |
| + const string16 description2(L"dummy description 2"); |
| EXPECT_TRUE(ShellUtil::UpdateChromeShortcut(dist_, |
| exe_path.value(), |
| shortcut_path.value(), |
| @@ -167,9 +100,9 @@ |
| exe_path.value(), |
| dist_->GetIconIndex(), |
| ShellUtil::SHORTCUT_NO_OPTIONS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - shortcut_path.value(), |
| - description2, 1)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + shortcut_path.value(), description2, 1)); |
| } |
| TEST_F(ShellUtilTestWithDirAndDist, CreateChromeDesktopShortcutTest) { |
| @@ -187,25 +120,25 @@ |
| FilePath exe_path = temp_dir_.path().AppendASCII("setup.exe"); |
| EXPECT_TRUE(file_util::CopyFile(exe_full_path, exe_path)); |
| - const std::wstring description(L"dummy description"); |
| + const string16 description(L"dummy description"); |
| FilePath user_desktop_path; |
| EXPECT_TRUE(ShellUtil::GetDesktopPath(false, &user_desktop_path)); |
| FilePath system_desktop_path; |
| EXPECT_TRUE(ShellUtil::GetDesktopPath(true, &system_desktop_path)); |
| - std::wstring shortcut_name; |
| + string16 shortcut_name; |
| EXPECT_TRUE(ShellUtil::GetChromeShortcutName(dist_, false, L"", |
| &shortcut_name)); |
| - std::wstring default_profile_shortcut_name; |
| - const std::wstring default_profile_user_name = L"Minsk"; |
| + string16 default_profile_shortcut_name; |
| + const string16 default_profile_user_name = L"Minsk"; |
| EXPECT_TRUE(ShellUtil::GetChromeShortcutName(dist_, false, |
| default_profile_user_name, |
| &default_profile_shortcut_name)); |
| - std::wstring second_profile_shortcut_name; |
| - const std::wstring second_profile_user_name = L"Pinsk"; |
| + string16 second_profile_shortcut_name; |
| + const string16 second_profile_user_name = L"Pinsk"; |
| EXPECT_TRUE(ShellUtil::GetChromeShortcutName(dist_, false, |
| second_profile_user_name, |
| &second_profile_shortcut_name)); |
| @@ -228,10 +161,9 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::CURRENT_USER, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - user_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + user_shortcut_path.value(), description, 0)); |
| EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( |
| dist_, |
| ShellUtil::CURRENT_USER, |
| @@ -248,10 +180,9 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::SYSTEM_LEVEL, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - system_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + system_shortcut_path.value(), description, 0)); |
| EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( |
| dist_, |
| ShellUtil::SYSTEM_LEVEL, |
| @@ -279,10 +210,9 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::CURRENT_USER, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - system_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + system_shortcut_path.value(), description, 0)); |
| EXPECT_FALSE(file_util::PathExists(user_shortcut_path)); |
| EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( |
| dist_, |
| @@ -311,14 +241,12 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::SYSTEM_LEVEL, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - user_shortcut_path.value(), |
| - description, |
| - 0)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - system_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + user_shortcut_path.value(), description, 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + system_shortcut_path.value(), description, 0)); |
| EXPECT_TRUE(ShellUtil::RemoveChromeDesktopShortcut( |
| dist_, |
| ShellUtil::CURRENT_USER, |
| @@ -340,10 +268,9 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::CURRENT_USER, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - default_profile_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + default_profile_shortcut_path.value(), description, 0)); |
| EXPECT_TRUE(ShellUtil::CreateChromeDesktopShortcut( |
| dist_, |
| exe_path.value(), |
| @@ -354,10 +281,9 @@ |
| dist_->GetIconIndex(), |
| ShellUtil::CURRENT_USER, |
| ShellUtil::SHORTCUT_CREATE_ALWAYS)); |
| - EXPECT_TRUE(VerifyChromeShortcut(exe_path.value(), |
| - second_profile_shortcut_path.value(), |
| - description, |
| - 0)); |
| + EXPECT_EQ(ShellUtil::VERIFY_SHORTCUT_SUCCESS, |
| + ShellUtil::VerifyChromeShortcut(exe_path.value(), |
| + second_profile_shortcut_path.value(), description, 0)); |
| std::vector<string16> profile_names; |
| profile_names.push_back(default_profile_shortcut_name); |
| profile_names.push_back(second_profile_shortcut_name); |