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

Side by Side Diff: chrome/browser/shell_integration_linux_unittest.cc

Issue 13864015: Move app launcher and chrome apps shortcut strings into the installer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@migrate_app_id_fix
Patch Set: fix linux Created 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/shell_integration_linux.h" 5 #include "chrome/browser/shell_integration_linux.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <map> 9 #include <map>
10 10
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 base::MessageLoop message_loop; 163 base::MessageLoop message_loop;
164 content::TestBrowserThread file_thread(BrowserThread::FILE, &message_loop); 164 content::TestBrowserThread file_thread(BrowserThread::FILE, &message_loop);
165 165
166 // No existing shortcuts. 166 // No existing shortcuts.
167 { 167 {
168 MockEnvironment env; 168 MockEnvironment env;
169 ShellIntegration::ShortcutLocations result = 169 ShellIntegration::ShortcutLocations result =
170 ShellIntegrationLinux::GetExistingShortcutLocations( 170 ShellIntegrationLinux::GetExistingShortcutLocations(
171 &env, kProfilePath, kExtensionId); 171 &env, kProfilePath, kExtensionId);
172 EXPECT_FALSE(result.on_desktop); 172 EXPECT_FALSE(result.on_desktop);
173 EXPECT_FALSE(result.in_applications_menu); 173 EXPECT_EQ(result.applications_menu_location,
174 ShellIntegration::APP_MENU_LOCATION_NONE);
175
174 EXPECT_FALSE(result.in_quick_launch_bar); 176 EXPECT_FALSE(result.in_quick_launch_bar);
175 EXPECT_FALSE(result.hidden); 177 EXPECT_FALSE(result.hidden);
176 } 178 }
177 179
178 // Shortcut on desktop. 180 // Shortcut on desktop.
179 { 181 {
180 base::ScopedTempDir temp_dir; 182 base::ScopedTempDir temp_dir;
181 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 183 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
182 base::FilePath desktop_path = temp_dir.path(); 184 base::FilePath desktop_path = temp_dir.path();
183 185
184 MockEnvironment env; 186 MockEnvironment env;
185 ASSERT_TRUE(file_util::CreateDirectory(desktop_path)); 187 ASSERT_TRUE(file_util::CreateDirectory(desktop_path));
186 ASSERT_FALSE(file_util::WriteFile( 188 ASSERT_FALSE(file_util::WriteFile(
187 desktop_path.AppendASCII(kTemplateFilename), 189 desktop_path.AppendASCII(kTemplateFilename),
188 "", 0)); 190 "", 0));
189 ShellIntegration::ShortcutLocations result = 191 ShellIntegration::ShortcutLocations result =
190 ShellIntegrationLinux::GetExistingShortcutLocations( 192 ShellIntegrationLinux::GetExistingShortcutLocations(
191 &env, kProfilePath, kExtensionId, desktop_path); 193 &env, kProfilePath, kExtensionId, desktop_path);
192 EXPECT_TRUE(result.on_desktop); 194 EXPECT_TRUE(result.on_desktop);
193 EXPECT_FALSE(result.in_applications_menu); 195 EXPECT_EQ(result.applications_menu_location,
196 ShellIntegration::APP_MENU_LOCATION_NONE);
197
194 EXPECT_FALSE(result.in_quick_launch_bar); 198 EXPECT_FALSE(result.in_quick_launch_bar);
195 EXPECT_FALSE(result.hidden); 199 EXPECT_FALSE(result.hidden);
196 } 200 }
197 201
198 // Shortcut in applications directory. 202 // Shortcut in applications directory.
199 { 203 {
200 base::ScopedTempDir temp_dir; 204 base::ScopedTempDir temp_dir;
201 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 205 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
202 base::FilePath apps_path = temp_dir.path().AppendASCII("applications"); 206 base::FilePath apps_path = temp_dir.path().AppendASCII("applications");
203 207
204 MockEnvironment env; 208 MockEnvironment env;
205 env.Set("XDG_DATA_HOME", temp_dir.path().value()); 209 env.Set("XDG_DATA_HOME", temp_dir.path().value());
206 ASSERT_TRUE(file_util::CreateDirectory(apps_path)); 210 ASSERT_TRUE(file_util::CreateDirectory(apps_path));
207 ASSERT_FALSE(file_util::WriteFile( 211 ASSERT_FALSE(file_util::WriteFile(
208 apps_path.AppendASCII(kTemplateFilename), 212 apps_path.AppendASCII(kTemplateFilename),
209 "", 0)); 213 "", 0));
210 ShellIntegration::ShortcutLocations result = 214 ShellIntegration::ShortcutLocations result =
211 ShellIntegrationLinux::GetExistingShortcutLocations( 215 ShellIntegrationLinux::GetExistingShortcutLocations(
212 &env, kProfilePath, kExtensionId); 216 &env, kProfilePath, kExtensionId);
213 EXPECT_FALSE(result.on_desktop); 217 EXPECT_FALSE(result.on_desktop);
214 EXPECT_TRUE(result.in_applications_menu); 218 EXPECT_EQ(result.applications_menu_location,
219 ShellIntegration::APP_MENU_LOCATION_SUBDIR_CHROMEAPPS);
220
215 EXPECT_FALSE(result.in_quick_launch_bar); 221 EXPECT_FALSE(result.in_quick_launch_bar);
216 EXPECT_FALSE(result.hidden); 222 EXPECT_FALSE(result.hidden);
217 } 223 }
218 224
219 // Shortcut in applications directory with NoDisplay=true. 225 // Shortcut in applications directory with NoDisplay=true.
220 { 226 {
221 base::ScopedTempDir temp_dir; 227 base::ScopedTempDir temp_dir;
222 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 228 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
223 base::FilePath apps_path = temp_dir.path().AppendASCII("applications"); 229 base::FilePath apps_path = temp_dir.path().AppendASCII("applications");
224 230
225 MockEnvironment env; 231 MockEnvironment env;
226 env.Set("XDG_DATA_HOME", temp_dir.path().value()); 232 env.Set("XDG_DATA_HOME", temp_dir.path().value());
227 ASSERT_TRUE(file_util::CreateDirectory(apps_path)); 233 ASSERT_TRUE(file_util::CreateDirectory(apps_path));
228 ASSERT_TRUE(file_util::WriteFile( 234 ASSERT_TRUE(file_util::WriteFile(
229 apps_path.AppendASCII(kTemplateFilename), 235 apps_path.AppendASCII(kTemplateFilename),
230 kNoDisplayDesktopFile, strlen(kNoDisplayDesktopFile))); 236 kNoDisplayDesktopFile, strlen(kNoDisplayDesktopFile)));
231 ShellIntegration::ShortcutLocations result = 237 ShellIntegration::ShortcutLocations result =
232 ShellIntegrationLinux::GetExistingShortcutLocations( 238 ShellIntegrationLinux::GetExistingShortcutLocations(
233 &env, kProfilePath, kExtensionId); 239 &env, kProfilePath, kExtensionId);
234 // Doesn't count as being in applications menu. 240 // Doesn't count as being in applications menu.
235 EXPECT_FALSE(result.on_desktop); 241 EXPECT_FALSE(result.on_desktop);
236 EXPECT_FALSE(result.in_applications_menu); 242 EXPECT_EQ(result.applications_menu_location,
243 ShellIntegration::APP_MENU_LOCATION_NONE);
237 EXPECT_FALSE(result.in_quick_launch_bar); 244 EXPECT_FALSE(result.in_quick_launch_bar);
238 EXPECT_TRUE(result.hidden); 245 EXPECT_TRUE(result.hidden);
239 } 246 }
240 247
241 // Shortcut on desktop and in applications directory. 248 // Shortcut on desktop and in applications directory.
242 { 249 {
243 base::ScopedTempDir temp_dir1; 250 base::ScopedTempDir temp_dir1;
244 ASSERT_TRUE(temp_dir1.CreateUniqueTempDir()); 251 ASSERT_TRUE(temp_dir1.CreateUniqueTempDir());
245 base::FilePath desktop_path = temp_dir1.path(); 252 base::FilePath desktop_path = temp_dir1.path();
246 253
247 base::ScopedTempDir temp_dir2; 254 base::ScopedTempDir temp_dir2;
248 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); 255 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir());
249 base::FilePath apps_path = temp_dir2.path().AppendASCII("applications"); 256 base::FilePath apps_path = temp_dir2.path().AppendASCII("applications");
250 257
251 MockEnvironment env; 258 MockEnvironment env;
252 ASSERT_TRUE(file_util::CreateDirectory(desktop_path)); 259 ASSERT_TRUE(file_util::CreateDirectory(desktop_path));
253 ASSERT_FALSE(file_util::WriteFile( 260 ASSERT_FALSE(file_util::WriteFile(
254 desktop_path.AppendASCII(kTemplateFilename), 261 desktop_path.AppendASCII(kTemplateFilename),
255 "", 0)); 262 "", 0));
256 env.Set("XDG_DATA_HOME", temp_dir2.path().value()); 263 env.Set("XDG_DATA_HOME", temp_dir2.path().value());
257 ASSERT_TRUE(file_util::CreateDirectory(apps_path)); 264 ASSERT_TRUE(file_util::CreateDirectory(apps_path));
258 ASSERT_FALSE(file_util::WriteFile( 265 ASSERT_FALSE(file_util::WriteFile(
259 apps_path.AppendASCII(kTemplateFilename), 266 apps_path.AppendASCII(kTemplateFilename),
260 "", 0)); 267 "", 0));
261 ShellIntegration::ShortcutLocations result = 268 ShellIntegration::ShortcutLocations result =
262 ShellIntegrationLinux::GetExistingShortcutLocations( 269 ShellIntegrationLinux::GetExistingShortcutLocations(
263 &env, kProfilePath, kExtensionId, desktop_path); 270 &env, kProfilePath, kExtensionId, desktop_path);
264 EXPECT_TRUE(result.on_desktop); 271 EXPECT_TRUE(result.on_desktop);
265 EXPECT_TRUE(result.in_applications_menu); 272 EXPECT_EQ(result.applications_menu_location,
273 ShellIntegration::APP_MENU_LOCATION_SUBDIR_CHROMEAPPS);
266 EXPECT_FALSE(result.in_quick_launch_bar); 274 EXPECT_FALSE(result.in_quick_launch_bar);
267 EXPECT_FALSE(result.hidden); 275 EXPECT_FALSE(result.hidden);
268 } 276 }
269 } 277 }
270 278
271 TEST(ShellIntegrationTest, GetExistingShortcutContents) { 279 TEST(ShellIntegrationTest, GetExistingShortcutContents) {
272 const char kTemplateFilename[] = "shortcut-test.desktop"; 280 const char kTemplateFilename[] = "shortcut-test.desktop";
273 base::FilePath kTemplateFilepath(kTemplateFilename); 281 base::FilePath kTemplateFilepath(kTemplateFilename);
274 const char kTestData1[] = "a magical testing string"; 282 const char kTestData1[] = "a magical testing string";
275 const char kTestData2[] = "a different testing string"; 283 const char kTestData2[] = "a different testing string";
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 607
600 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); i++) { 608 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); i++) {
601 SCOPED_TRACE(i); 609 SCOPED_TRACE(i);
602 EXPECT_EQ( 610 EXPECT_EQ(
603 test_cases[i].expected_output, 611 test_cases[i].expected_output,
604 ShellIntegrationLinux::GetDirectoryFileContents( 612 ShellIntegrationLinux::GetDirectoryFileContents(
605 ASCIIToUTF16(test_cases[i].title), 613 ASCIIToUTF16(test_cases[i].title),
606 test_cases[i].icon_name)); 614 test_cases[i].icon_name));
607 } 615 }
608 } 616 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698