OLD | NEW |
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 <objbase.h> | 5 #include <objbase.h> |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 expected_properties_.set_description(chrome_properties.description); | 87 expected_properties_.set_description(chrome_properties.description); |
88 expected_properties_.set_dual_mode(false); | 88 expected_properties_.set_dual_mode(false); |
89 expected_start_menu_properties_ = expected_properties_; | 89 expected_start_menu_properties_ = expected_properties_; |
90 expected_start_menu_properties_.set_dual_mode(true); | 90 expected_start_menu_properties_.set_dual_mode(true); |
91 | 91 |
92 prefs_.reset(GetFakeMasterPrefs(false, false, false)); | 92 prefs_.reset(GetFakeMasterPrefs(false, false, false)); |
93 | 93 |
94 ASSERT_TRUE(fake_user_desktop_.CreateUniqueTempDir()); | 94 ASSERT_TRUE(fake_user_desktop_.CreateUniqueTempDir()); |
95 ASSERT_TRUE(fake_common_desktop_.CreateUniqueTempDir()); | 95 ASSERT_TRUE(fake_common_desktop_.CreateUniqueTempDir()); |
96 ASSERT_TRUE(fake_user_quick_launch_.CreateUniqueTempDir()); | 96 ASSERT_TRUE(fake_user_quick_launch_.CreateUniqueTempDir()); |
97 ASSERT_TRUE(fake_default_user_quick_launch_.CreateUniqueTempDir()); | |
98 ASSERT_TRUE(fake_start_menu_.CreateUniqueTempDir()); | 97 ASSERT_TRUE(fake_start_menu_.CreateUniqueTempDir()); |
99 ASSERT_TRUE(fake_common_start_menu_.CreateUniqueTempDir()); | 98 ASSERT_TRUE(fake_common_start_menu_.CreateUniqueTempDir()); |
100 user_desktop_override_.reset( | 99 user_desktop_override_.reset( |
101 new base::ScopedPathOverride(base::DIR_USER_DESKTOP, | 100 new base::ScopedPathOverride(base::DIR_USER_DESKTOP, |
102 fake_user_desktop_.path())); | 101 fake_user_desktop_.path())); |
103 common_desktop_override_.reset( | 102 common_desktop_override_.reset( |
104 new base::ScopedPathOverride(base::DIR_COMMON_DESKTOP, | 103 new base::ScopedPathOverride(base::DIR_COMMON_DESKTOP, |
105 fake_common_desktop_.path())); | 104 fake_common_desktop_.path())); |
106 user_quick_launch_override_.reset( | 105 user_quick_launch_override_.reset( |
107 new base::ScopedPathOverride(base::DIR_USER_QUICK_LAUNCH, | 106 new base::ScopedPathOverride(base::DIR_USER_QUICK_LAUNCH, |
108 fake_user_quick_launch_.path())); | 107 fake_user_quick_launch_.path())); |
109 default_user_quick_launch_override_.reset( | |
110 new base::ScopedPathOverride(base::DIR_DEFAULT_USER_QUICK_LAUNCH, | |
111 fake_default_user_quick_launch_.path())); | |
112 start_menu_override_.reset( | 108 start_menu_override_.reset( |
113 new base::ScopedPathOverride(base::DIR_START_MENU, | 109 new base::ScopedPathOverride(base::DIR_START_MENU, |
114 fake_start_menu_.path())); | 110 fake_start_menu_.path())); |
115 common_start_menu_override_.reset( | 111 common_start_menu_override_.reset( |
116 new base::ScopedPathOverride(base::DIR_COMMON_START_MENU, | 112 new base::ScopedPathOverride(base::DIR_COMMON_START_MENU, |
117 fake_common_start_menu_.path())); | 113 fake_common_start_menu_.path())); |
118 | 114 |
119 base::string16 shortcut_name( | 115 base::string16 shortcut_name( |
120 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) + | 116 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME) + |
121 installer::kLnkExt); | 117 installer::kLnkExt); |
122 base::string16 alternate_shortcut_name( | 118 base::string16 alternate_shortcut_name( |
123 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME_ALTERNATE) + | 119 dist_->GetShortcutName(BrowserDistribution::SHORTCUT_CHROME_ALTERNATE) + |
124 installer::kLnkExt); | 120 installer::kLnkExt); |
125 | 121 |
126 user_desktop_shortcut_ = | 122 user_desktop_shortcut_ = |
127 fake_user_desktop_.path().Append(shortcut_name); | 123 fake_user_desktop_.path().Append(shortcut_name); |
128 user_quick_launch_shortcut_ = | 124 user_quick_launch_shortcut_ = |
129 fake_user_quick_launch_.path().Append(shortcut_name); | 125 fake_user_quick_launch_.path().Append(shortcut_name); |
130 user_start_menu_shortcut_ = | 126 user_start_menu_shortcut_ = |
131 fake_start_menu_.path().Append( | 127 fake_start_menu_.path().Append( |
132 dist_->GetStartMenuShortcutSubfolder( | 128 dist_->GetStartMenuShortcutSubfolder( |
133 BrowserDistribution::SUBFOLDER_CHROME)) | 129 BrowserDistribution::SUBFOLDER_CHROME)) |
134 .Append(shortcut_name); | 130 .Append(shortcut_name); |
135 system_desktop_shortcut_ = | 131 system_desktop_shortcut_ = |
136 fake_common_desktop_.path().Append(shortcut_name); | 132 fake_common_desktop_.path().Append(shortcut_name); |
137 system_quick_launch_shortcut_ = | |
138 fake_default_user_quick_launch_.path().Append(shortcut_name); | |
139 system_start_menu_shortcut_ = | 133 system_start_menu_shortcut_ = |
140 fake_common_start_menu_.path().Append( | 134 fake_common_start_menu_.path().Append( |
141 dist_->GetStartMenuShortcutSubfolder( | 135 dist_->GetStartMenuShortcutSubfolder( |
142 BrowserDistribution::SUBFOLDER_CHROME)) | 136 BrowserDistribution::SUBFOLDER_CHROME)) |
143 .Append(shortcut_name); | 137 .Append(shortcut_name); |
144 user_alternate_desktop_shortcut_ = | 138 user_alternate_desktop_shortcut_ = |
145 fake_user_desktop_.path().Append(alternate_shortcut_name); | 139 fake_user_desktop_.path().Append(alternate_shortcut_name); |
146 } | 140 } |
147 | 141 |
148 virtual void TearDown() OVERRIDE { | 142 virtual void TearDown() OVERRIDE { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 | 182 |
189 BrowserDistribution* dist_; | 183 BrowserDistribution* dist_; |
190 base::FilePath chrome_exe_; | 184 base::FilePath chrome_exe_; |
191 scoped_ptr<installer::Product> product_; | 185 scoped_ptr<installer::Product> product_; |
192 scoped_ptr<installer::MasterPreferences> prefs_; | 186 scoped_ptr<installer::MasterPreferences> prefs_; |
193 | 187 |
194 base::ScopedTempDir temp_dir_; | 188 base::ScopedTempDir temp_dir_; |
195 base::ScopedTempDir fake_user_desktop_; | 189 base::ScopedTempDir fake_user_desktop_; |
196 base::ScopedTempDir fake_common_desktop_; | 190 base::ScopedTempDir fake_common_desktop_; |
197 base::ScopedTempDir fake_user_quick_launch_; | 191 base::ScopedTempDir fake_user_quick_launch_; |
198 base::ScopedTempDir fake_default_user_quick_launch_; | |
199 base::ScopedTempDir fake_start_menu_; | 192 base::ScopedTempDir fake_start_menu_; |
200 base::ScopedTempDir fake_common_start_menu_; | 193 base::ScopedTempDir fake_common_start_menu_; |
201 scoped_ptr<base::ScopedPathOverride> user_desktop_override_; | 194 scoped_ptr<base::ScopedPathOverride> user_desktop_override_; |
202 scoped_ptr<base::ScopedPathOverride> common_desktop_override_; | 195 scoped_ptr<base::ScopedPathOverride> common_desktop_override_; |
203 scoped_ptr<base::ScopedPathOverride> user_quick_launch_override_; | 196 scoped_ptr<base::ScopedPathOverride> user_quick_launch_override_; |
204 scoped_ptr<base::ScopedPathOverride> default_user_quick_launch_override_; | |
205 scoped_ptr<base::ScopedPathOverride> start_menu_override_; | 197 scoped_ptr<base::ScopedPathOverride> start_menu_override_; |
206 scoped_ptr<base::ScopedPathOverride> common_start_menu_override_; | 198 scoped_ptr<base::ScopedPathOverride> common_start_menu_override_; |
207 | 199 |
208 base::FilePath user_desktop_shortcut_; | 200 base::FilePath user_desktop_shortcut_; |
209 base::FilePath user_quick_launch_shortcut_; | 201 base::FilePath user_quick_launch_shortcut_; |
210 base::FilePath user_start_menu_shortcut_; | 202 base::FilePath user_start_menu_shortcut_; |
211 base::FilePath system_desktop_shortcut_; | 203 base::FilePath system_desktop_shortcut_; |
212 base::FilePath system_quick_launch_shortcut_; | |
213 base::FilePath system_start_menu_shortcut_; | 204 base::FilePath system_start_menu_shortcut_; |
214 base::FilePath user_alternate_desktop_shortcut_; | 205 base::FilePath user_alternate_desktop_shortcut_; |
215 }; | 206 }; |
216 | 207 |
217 } // namespace | 208 } // namespace |
218 | 209 |
219 // Test that VisualElementsManifest.xml is not created when VisualElements are | 210 // Test that VisualElementsManifest.xml is not created when VisualElements are |
220 // not present. | 211 // not present. |
221 TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestNotCreated) { | 212 TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestNotCreated) { |
222 ASSERT_TRUE( | 213 ASSERT_TRUE( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 installer::CreateOrUpdateShortcuts( | 248 installer::CreateOrUpdateShortcuts( |
258 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, | 249 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, |
259 installer::INSTALL_SHORTCUT_CREATE_ALL); | 250 installer::INSTALL_SHORTCUT_CREATE_ALL); |
260 base::win::ValidateShortcut(user_desktop_shortcut_, expected_properties_); | 251 base::win::ValidateShortcut(user_desktop_shortcut_, expected_properties_); |
261 base::win::ValidateShortcut(user_quick_launch_shortcut_, | 252 base::win::ValidateShortcut(user_quick_launch_shortcut_, |
262 expected_properties_); | 253 expected_properties_); |
263 base::win::ValidateShortcut(user_start_menu_shortcut_, | 254 base::win::ValidateShortcut(user_start_menu_shortcut_, |
264 expected_start_menu_properties_); | 255 expected_start_menu_properties_); |
265 } | 256 } |
266 | 257 |
267 // Disabled failing test; http://crbug.com/329239. | 258 TEST_F(InstallShortcutTest, CreateAllShortcutsSystemLevel) { |
268 TEST_F(InstallShortcutTest, DISABLED_CreateAllShortcutsSystemLevel) { | |
269 installer::CreateOrUpdateShortcuts( | 259 installer::CreateOrUpdateShortcuts( |
270 chrome_exe_, *product_, *prefs_, installer::ALL_USERS, | 260 chrome_exe_, *product_, *prefs_, installer::ALL_USERS, |
271 installer::INSTALL_SHORTCUT_CREATE_ALL); | 261 installer::INSTALL_SHORTCUT_CREATE_ALL); |
272 base::win::ValidateShortcut(system_desktop_shortcut_, expected_properties_); | 262 base::win::ValidateShortcut(system_desktop_shortcut_, expected_properties_); |
273 base::win::ValidateShortcut(system_quick_launch_shortcut_, | |
274 expected_properties_); | |
275 base::win::ValidateShortcut(system_start_menu_shortcut_, | 263 base::win::ValidateShortcut(system_start_menu_shortcut_, |
276 expected_start_menu_properties_); | 264 expected_start_menu_properties_); |
| 265 // The quick launch shortcut is always created per-user for the admin running |
| 266 // the install (other users will get it via Active Setup). |
| 267 base::win::ValidateShortcut(user_quick_launch_shortcut_, |
| 268 expected_properties_); |
277 } | 269 } |
278 | 270 |
279 TEST_F(InstallShortcutTest, CreateAllShortcutsAlternateDesktopName) { | 271 TEST_F(InstallShortcutTest, CreateAllShortcutsAlternateDesktopName) { |
280 scoped_ptr<installer::MasterPreferences> prefs_alt_desktop( | 272 scoped_ptr<installer::MasterPreferences> prefs_alt_desktop( |
281 GetFakeMasterPrefs(false, false, true)); | 273 GetFakeMasterPrefs(false, false, true)); |
282 installer::CreateOrUpdateShortcuts( | 274 installer::CreateOrUpdateShortcuts( |
283 chrome_exe_, *product_, *prefs_alt_desktop, installer::CURRENT_USER, | 275 chrome_exe_, *product_, *prefs_alt_desktop, installer::CURRENT_USER, |
284 installer::INSTALL_SHORTCUT_CREATE_ALL); | 276 installer::INSTALL_SHORTCUT_CREATE_ALL); |
285 base::win::ValidateShortcut(user_alternate_desktop_shortcut_, | 277 base::win::ValidateShortcut(user_alternate_desktop_shortcut_, |
286 expected_properties_); | 278 expected_properties_); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 | 361 |
370 TEST_F(InstallShortcutTest, CreateIfNoSystemLevelAllSystemShortcutsExist) { | 362 TEST_F(InstallShortcutTest, CreateIfNoSystemLevelAllSystemShortcutsExist) { |
371 base::win::ShortcutProperties dummy_properties; | 363 base::win::ShortcutProperties dummy_properties; |
372 base::FilePath dummy_target; | 364 base::FilePath dummy_target; |
373 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), &dummy_target)); | 365 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), &dummy_target)); |
374 dummy_properties.set_target(dummy_target); | 366 dummy_properties.set_target(dummy_target); |
375 | 367 |
376 ASSERT_TRUE(base::win::CreateOrUpdateShortcutLink( | 368 ASSERT_TRUE(base::win::CreateOrUpdateShortcutLink( |
377 system_desktop_shortcut_, dummy_properties, | 369 system_desktop_shortcut_, dummy_properties, |
378 base::win::SHORTCUT_CREATE_ALWAYS)); | 370 base::win::SHORTCUT_CREATE_ALWAYS)); |
379 ASSERT_TRUE(base::win::CreateOrUpdateShortcutLink( | |
380 system_quick_launch_shortcut_, dummy_properties, | |
381 base::win::SHORTCUT_CREATE_ALWAYS)); | |
382 ASSERT_TRUE(base::CreateDirectory( | 371 ASSERT_TRUE(base::CreateDirectory( |
383 system_start_menu_shortcut_.DirName())); | 372 system_start_menu_shortcut_.DirName())); |
384 ASSERT_TRUE(base::win::CreateOrUpdateShortcutLink( | 373 ASSERT_TRUE(base::win::CreateOrUpdateShortcutLink( |
385 system_start_menu_shortcut_, dummy_properties, | 374 system_start_menu_shortcut_, dummy_properties, |
386 base::win::SHORTCUT_CREATE_ALWAYS)); | 375 base::win::SHORTCUT_CREATE_ALWAYS)); |
387 | 376 |
388 installer::CreateOrUpdateShortcuts( | 377 installer::CreateOrUpdateShortcuts( |
389 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, | 378 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, |
390 installer::INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); | 379 installer::INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); |
391 ASSERT_FALSE(base::PathExists(user_desktop_shortcut_)); | 380 ASSERT_FALSE(base::PathExists(user_desktop_shortcut_)); |
392 ASSERT_FALSE(base::PathExists(user_quick_launch_shortcut_)); | |
393 ASSERT_FALSE(base::PathExists(user_start_menu_shortcut_)); | 381 ASSERT_FALSE(base::PathExists(user_start_menu_shortcut_)); |
| 382 // There is no system-level quick launch shortcut, so creating the user-level |
| 383 // one should always succeed. |
| 384 ASSERT_TRUE(base::PathExists(user_quick_launch_shortcut_)); |
394 } | 385 } |
395 | 386 |
396 TEST_F(InstallShortcutTest, CreateIfNoSystemLevelNoSystemShortcutsExist) { | 387 TEST_F(InstallShortcutTest, CreateIfNoSystemLevelNoSystemShortcutsExist) { |
397 installer::CreateOrUpdateShortcuts( | 388 installer::CreateOrUpdateShortcuts( |
398 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, | 389 chrome_exe_, *product_, *prefs_, installer::CURRENT_USER, |
399 installer::INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); | 390 installer::INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); |
400 base::win::ValidateShortcut(user_desktop_shortcut_, expected_properties_); | 391 base::win::ValidateShortcut(user_desktop_shortcut_, expected_properties_); |
401 base::win::ValidateShortcut(user_quick_launch_shortcut_, | 392 base::win::ValidateShortcut(user_quick_launch_shortcut_, |
402 expected_properties_); | 393 expected_properties_); |
403 base::win::ValidateShortcut(user_start_menu_shortcut_, | 394 base::win::ValidateShortcut(user_start_menu_shortcut_, |
(...skipping 27 matching lines...) Expand all Loading... |
431 installer::EscapeXmlAttributeValueInSingleQuotes(&val); | 422 installer::EscapeXmlAttributeValueInSingleQuotes(&val); |
432 ASSERT_STREQ(kExpectedEscapedVal, val.c_str()); | 423 ASSERT_STREQ(kExpectedEscapedVal, val.c_str()); |
433 } | 424 } |
434 | 425 |
435 TEST(EscapeXmlAttributeValueTest, DontEscapeNormalValue) { | 426 TEST(EscapeXmlAttributeValueTest, DontEscapeNormalValue) { |
436 base::string16 val(L"Google Chrome"); | 427 base::string16 val(L"Google Chrome"); |
437 static const wchar_t kExpectedEscapedVal[] = L"Google Chrome"; | 428 static const wchar_t kExpectedEscapedVal[] = L"Google Chrome"; |
438 installer::EscapeXmlAttributeValueInSingleQuotes(&val); | 429 installer::EscapeXmlAttributeValueInSingleQuotes(&val); |
439 ASSERT_STREQ(kExpectedEscapedVal, val.c_str()); | 430 ASSERT_STREQ(kExpectedEscapedVal, val.c_str()); |
440 } | 431 } |
OLD | NEW |