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

Side by Side Diff: base/win/shortcut_unittest.cc

Issue 11050009: Use ScopedCOMInitializer in more places. While this doesn't always simplify code, it does mean we … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 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 "base/win/shortcut.h" 5 #include "base/win/shortcut.h"
6 6
7 #include <windows.h>
8 #include <objbase.h>
9
10 #include <string> 7 #include <string>
11 8
12 #include "base/file_path.h" 9 #include "base/file_path.h"
13 #include "base/file_util.h" 10 #include "base/file_util.h"
14 #include "base/scoped_temp_dir.h" 11 #include "base/scoped_temp_dir.h"
15 #include "base/test/test_file_util.h" 12 #include "base/test/test_file_util.h"
16 #include "base/test/test_shortcut_win.h" 13 #include "base/test/test_shortcut_win.h"
14 #include "base/win/scoped_com_initializer.h"
17 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
18 16
19 namespace { 17 namespace {
20 18
21 static const char kFileContents[] = "This is a target."; 19 static const char kFileContents[] = "This is a target.";
22 static const char kFileContents2[] = "This is another target."; 20 static const char kFileContents2[] = "This is another target.";
23 21
24 class ShortcutTest : public testing::Test { 22 class ShortcutTest : public testing::Test {
25 protected: 23 protected:
26 virtual void SetUp() OVERRIDE { 24 virtual void SetUp() OVERRIDE {
27 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 25 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
28 ASSERT_TRUE(temp_dir_2_.CreateUniqueTempDir()); 26 ASSERT_TRUE(temp_dir_2_.CreateUniqueTempDir());
29 27
30 EXPECT_EQ(S_OK, CoInitialize(NULL));
31
32 link_file_ = temp_dir_.path().Append(L"My Link.lnk"); 28 link_file_ = temp_dir_.path().Append(L"My Link.lnk");
33 29
34 // Shortcut 1's properties 30 // Shortcut 1's properties
35 { 31 {
36 const FilePath target_file(temp_dir_.path().Append(L"Target 1.txt")); 32 const FilePath target_file(temp_dir_.path().Append(L"Target 1.txt"));
37 file_util::WriteFile(target_file, kFileContents, 33 file_util::WriteFile(target_file, kFileContents,
38 arraysize(kFileContents)); 34 arraysize(kFileContents));
39 35
40 link_properties_.set_target(target_file); 36 link_properties_.set_target(target_file);
41 link_properties_.set_working_dir(temp_dir_.path()); 37 link_properties_.set_working_dir(temp_dir_.path());
(...skipping 16 matching lines...) Expand all
58 link_properties_2_.set_target(target_file_2); 54 link_properties_2_.set_target(target_file_2);
59 link_properties_2_.set_working_dir(temp_dir_2_.path()); 55 link_properties_2_.set_working_dir(temp_dir_2_.path());
60 link_properties_2_.set_arguments(L"--super --crazy"); 56 link_properties_2_.set_arguments(L"--super --crazy");
61 link_properties_2_.set_description(L"The best in the west."); 57 link_properties_2_.set_description(L"The best in the west.");
62 link_properties_2_.set_icon(icon_path_2, 0); 58 link_properties_2_.set_icon(icon_path_2, 0);
63 link_properties_2_.set_app_id(L"Chrome.UserLevelCrazySuffix"); 59 link_properties_2_.set_app_id(L"Chrome.UserLevelCrazySuffix");
64 link_properties_2_.set_dual_mode(true); 60 link_properties_2_.set_dual_mode(true);
65 } 61 }
66 } 62 }
67 63
68 virtual void TearDown() OVERRIDE { 64 base::win::ScopedCOMInitializer com_initializer_;
69 CoUninitialize();
70 }
71
72 ScopedTempDir temp_dir_; 65 ScopedTempDir temp_dir_;
73 ScopedTempDir temp_dir_2_; 66 ScopedTempDir temp_dir_2_;
74 67
75 // The link file to be created/updated in the shortcut tests below. 68 // The link file to be created/updated in the shortcut tests below.
76 FilePath link_file_; 69 FilePath link_file_;
77 70
78 // Properties for the created shortcut. 71 // Properties for the created shortcut.
79 base::win::ShortcutProperties link_properties_; 72 base::win::ShortcutProperties link_properties_;
80 73
81 // Properties for the updated shortcut. 74 // Properties for the updated shortcut.
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 expected_properties.set_app_id(string16()); 241 expected_properties.set_app_id(string16());
249 expected_properties.set_dual_mode(false); 242 expected_properties.set_dual_mode(false);
250 base::win::ValidateShortcut(link_file_, expected_properties); 243 base::win::ValidateShortcut(link_file_, expected_properties);
251 } 244 }
252 245
253 TEST_F(ShortcutTest, FailTruncateShortcutThatDoesNotExist) { 246 TEST_F(ShortcutTest, FailTruncateShortcutThatDoesNotExist) {
254 ASSERT_FALSE(base::win::CreateOrUpdateShortcutLink( 247 ASSERT_FALSE(base::win::CreateOrUpdateShortcutLink(
255 link_file_, link_properties_, base::win::SHORTCUT_REPLACE_EXISTING)); 248 link_file_, link_properties_, base::win::SHORTCUT_REPLACE_EXISTING));
256 ASSERT_FALSE(file_util::PathExists(link_file_)); 249 ASSERT_FALSE(file_util::PathExists(link_file_));
257 } 250 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698