Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: base/file_util_unittest.cc

Issue 10837034: Remove packaged app Windows shortcuts when app is uninstalled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated comments Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <shlobj.h> 10 #include <shlobj.h>
(...skipping 1599 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 CLSCTX_INPROC_SERVER, IID_IShellLink, 1610 CLSCTX_INPROC_SERVER, IID_IShellLink,
1611 reinterpret_cast<LPVOID*>(&shell)); 1611 reinterpret_cast<LPVOID*>(&shell));
1612 EXPECT_TRUE(SUCCEEDED(result)); 1612 EXPECT_TRUE(SUCCEEDED(result));
1613 result = shell->QueryInterface(IID_IPersistFile, 1613 result = shell->QueryInterface(IID_IPersistFile,
1614 reinterpret_cast<LPVOID*>(&persist)); 1614 reinterpret_cast<LPVOID*>(&persist));
1615 EXPECT_TRUE(SUCCEEDED(result)); 1615 EXPECT_TRUE(SUCCEEDED(result));
1616 result = shell->SetPath(target_file.value().c_str()); 1616 result = shell->SetPath(target_file.value().c_str());
1617 EXPECT_TRUE(SUCCEEDED(result)); 1617 EXPECT_TRUE(SUCCEEDED(result));
1618 result = shell->SetDescription(L"ResolveShortcutTest"); 1618 result = shell->SetDescription(L"ResolveShortcutTest");
1619 EXPECT_TRUE(SUCCEEDED(result)); 1619 EXPECT_TRUE(SUCCEEDED(result));
1620 result = shell->SetArguments(L"--args");
1621 EXPECT_TRUE(SUCCEEDED(result));
1620 result = persist->Save(link_file.value().c_str(), TRUE); 1622 result = persist->Save(link_file.value().c_str(), TRUE);
1621 EXPECT_TRUE(SUCCEEDED(result)); 1623 EXPECT_TRUE(SUCCEEDED(result));
1622 if (persist) 1624 if (persist)
1623 persist->Release(); 1625 persist->Release();
1624 if (shell) 1626 if (shell)
1625 shell->Release(); 1627 shell->Release();
1626 1628
1627 bool is_solved; 1629 bool is_solved;
1628 is_solved = file_util::ResolveShortcut(&link_file); 1630 std::wstring args;
1631 is_solved = file_util::ResolveShortcut(link_file, &link_file, &args);
1629 EXPECT_TRUE(is_solved); 1632 EXPECT_TRUE(is_solved);
1633 EXPECT_EQ(L"--args", args);
1630 std::wstring contents; 1634 std::wstring contents;
1631 contents = ReadTextFile(link_file); 1635 contents = ReadTextFile(link_file);
1632 EXPECT_EQ(L"This is the target.", contents); 1636 EXPECT_EQ(L"This is the target.", contents);
1633 1637
1634 // Cleaning 1638 // Cleaning
1635 DeleteFile(target_file.value().c_str()); 1639 DeleteFile(target_file.value().c_str());
1636 DeleteFile(link_file.value().c_str()); 1640 DeleteFile(link_file.value().c_str());
1637 CoUninitialize(); 1641 CoUninitialize();
1638 } 1642 }
1639 1643
1640 TEST_F(FileUtilTest, CreateShortcutTest) { 1644 TEST_F(FileUtilTest, CreateShortcutTest) {
1641 const wchar_t* file_contents = L"This is another target."; 1645 const wchar_t* file_contents = L"This is another target.";
1642 FilePath target_file = temp_dir_.path().Append(L"Target1.txt"); 1646 FilePath target_file = temp_dir_.path().Append(L"Target1.txt");
1643 CreateTextFile(target_file, file_contents); 1647 CreateTextFile(target_file, file_contents);
1644 1648
1645 FilePath link_file = temp_dir_.path().Append(L"Link1.lnk"); 1649 FilePath link_file = temp_dir_.path().Append(L"Link1.lnk");
1646 1650
1647 CoInitialize(NULL); 1651 CoInitialize(NULL);
1648 EXPECT_TRUE(file_util::CreateOrUpdateShortcutLink( 1652 EXPECT_TRUE(file_util::CreateOrUpdateShortcutLink(
1649 target_file.value().c_str(), link_file.value().c_str(), NULL, 1653 target_file.value().c_str(), link_file.value().c_str(), NULL,
1650 NULL, NULL, NULL, 0, NULL, 1654 NULL, NULL, NULL, 0, NULL,
1651 file_util::SHORTCUT_CREATE_ALWAYS)); 1655 file_util::SHORTCUT_CREATE_ALWAYS));
1652 FilePath resolved_name = link_file; 1656 FilePath resolved_name;
1653 EXPECT_TRUE(file_util::ResolveShortcut(&resolved_name)); 1657 EXPECT_TRUE(file_util::ResolveShortcut(link_file, &resolved_name, NULL));
1654 std::wstring read_contents = ReadTextFile(resolved_name); 1658 std::wstring read_contents = ReadTextFile(resolved_name);
1655 EXPECT_EQ(file_contents, read_contents); 1659 EXPECT_EQ(file_contents, read_contents);
1656 1660
1657 DeleteFile(target_file.value().c_str()); 1661 DeleteFile(target_file.value().c_str());
1658 DeleteFile(link_file.value().c_str()); 1662 DeleteFile(link_file.value().c_str());
1659 CoUninitialize(); 1663 CoUninitialize();
1660 } 1664 }
1661 1665
1662 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) { 1666 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) {
1663 // Create a directory 1667 // Create a directory
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after
2459 file_util::VerifyPathControlledByUser( 2463 file_util::VerifyPathControlledByUser(
2460 base_dir_, text_file_, uid_, ok_gids_)); 2464 base_dir_, text_file_, uid_, ok_gids_));
2461 EXPECT_TRUE( 2465 EXPECT_TRUE(
2462 file_util::VerifyPathControlledByUser( 2466 file_util::VerifyPathControlledByUser(
2463 sub_dir_, text_file_, uid_, ok_gids_)); 2467 sub_dir_, text_file_, uid_, ok_gids_));
2464 } 2468 }
2465 2469
2466 #endif // defined(OS_POSIX) 2470 #endif // defined(OS_POSIX)
2467 2471
2468 } // namespace 2472 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698