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

Side by Side Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc

Issue 22793011: ash:Shelf - Enable Alternate Shelf and Side Shelf by default. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 "chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.h" 5 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 void InitLauncherControllerWithBrowser() { 223 void InitLauncherControllerWithBrowser() {
224 chrome::NewTab(browser()); 224 chrome::NewTab(browser());
225 BrowserList::SetLastActive(browser()); 225 BrowserList::SetLastActive(browser());
226 InitLauncherController(); 226 InitLauncherController();
227 } 227 }
228 228
229 void SetAppIconLoader(extensions::AppIconLoader* loader) { 229 void SetAppIconLoader(extensions::AppIconLoader* loader) {
230 launcher_controller_->SetAppIconLoaderForTest(loader); 230 launcher_controller_->SetAppIconLoaderForTest(loader);
231 } 231 }
232 232
233 // Set the index at which the chrome icon should be.
234 void SetShelfChromeIconIndex(int index) {
235 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex,
236 index + 1);
237 }
238
239
233 void InsertPrefValue(base::ListValue* pref_value, 240 void InsertPrefValue(base::ListValue* pref_value,
234 int index, 241 int index,
235 const std::string& extension_id) { 242 const std::string& extension_id) {
236 base::DictionaryValue* entry = new DictionaryValue(); 243 base::DictionaryValue* entry = new DictionaryValue();
237 entry->SetString(ash::kPinnedAppsPrefAppIDPath, extension_id); 244 entry->SetString(ash::kPinnedAppsPrefAppIDPath, extension_id);
238 pref_value->Insert(index, entry); 245 pref_value->Insert(index, entry);
239 } 246 }
240 247
241 // Gets the currently configured app launchers from the controller. 248 // Gets the currently configured app launchers from the controller.
242 void GetAppLaunchers(ChromeLauncherControllerPerApp* controller, 249 void GetAppLaunchers(ChromeLauncherControllerPerApp* controller,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 scoped_ptr<ChromeLauncherControllerPerApp> launcher_controller_; 307 scoped_ptr<ChromeLauncherControllerPerApp> launcher_controller_;
301 scoped_ptr<TestLauncherModelObserver> model_observer_; 308 scoped_ptr<TestLauncherModelObserver> model_observer_;
302 scoped_ptr<ash::LauncherModel> model_; 309 scoped_ptr<ash::LauncherModel> model_;
303 310
304 ExtensionService* extension_service_; 311 ExtensionService* extension_service_;
305 312
306 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerPerAppTest); 313 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerPerAppTest);
307 }; 314 };
308 315
309 // The testing framework to test the alternate shelf layout. 316 // The testing framework to test the alternate shelf layout.
310 class AlternateLayoutChromeLauncherControllerPerAppTest 317 class LegacyShelfLayoutChromeLauncherControllerPerAppTest
311 : public ChromeLauncherControllerPerAppTest { 318 : public ChromeLauncherControllerPerAppTest {
312 protected: 319 protected:
313 AlternateLayoutChromeLauncherControllerPerAppTest() { 320 LegacyShelfLayoutChromeLauncherControllerPerAppTest() {
314 } 321 }
315 322
316 virtual ~AlternateLayoutChromeLauncherControllerPerAppTest() { 323 virtual ~LegacyShelfLayoutChromeLauncherControllerPerAppTest() {
317 } 324 }
318 325
319 // Overwrite the Setup function to add the Alternate Shelf layout option. 326 // Overwrite the Setup function to add the Alternate Shelf layout option.
320 virtual void SetUp() OVERRIDE { 327 virtual void SetUp() OVERRIDE {
321 CommandLine::ForCurrentProcess()->AppendSwitch( 328 CommandLine::ForCurrentProcess()->AppendSwitch(
322 ash::switches::kAshUseAlternateShelfLayout); 329 ash::switches::kAshDisableAlternateShelfLayout);
323 ChromeLauncherControllerPerAppTest::SetUp(); 330 ChromeLauncherControllerPerAppTest::SetUp();
324 } 331 }
325 332
326 // Set the index at which the chrome icon should be.
327 void SetShelfChromeIconIndex(int index) {
328 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex,
329 index + 1);
330 }
331
332 private: 333 private:
333 334
334 DISALLOW_COPY_AND_ASSIGN(AlternateLayoutChromeLauncherControllerPerAppTest); 335 DISALLOW_COPY_AND_ASSIGN(LegacyShelfLayoutChromeLauncherControllerPerAppTest);
335 }; 336 };
336 337
337 338
338 TEST_F(ChromeLauncherControllerPerAppTest, DefaultApps) { 339 TEST_F(LegacyShelfLayoutChromeLauncherControllerPerAppTest, DefaultApps) {
339 InitLauncherController(); 340 InitLauncherController();
340 // Model should only contain the browser shortcut and app list items. 341 // Model should only contain the browser shortcut and app list items.
341 EXPECT_EQ(2, model_->item_count()); 342 EXPECT_EQ(2, model_->item_count());
342 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 343 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
343 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 344 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
344 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 345 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
345 346
346 // Installing |extension3_| should add it to the launcher - behind the 347 // Installing |extension3_| should add it to the launcher - behind the
347 // chrome icon. 348 // chrome icon.
348 extension_service_->AddExtension(extension3_.get()); 349 extension_service_->AddExtension(extension3_.get());
349 EXPECT_EQ("Chrome, App3, AppList, ", GetPinnedAppStatus()); 350 EXPECT_EQ("Chrome, App3, AppList, ", GetPinnedAppStatus());
350 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 351 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
351 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 352 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
352 } 353 }
353 354
354 // Check that the restauration of launcher items is happening in the same order 355 // Check that the restauration of launcher items is happening in the same order
355 // as the user has pinned them (on another system) when they are synced reverse 356 // as the user has pinned them (on another system) when they are synced reverse
356 // order. 357 // order.
357 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsReverseOrder) { 358 TEST_F(LegacyShelfLayoutChromeLauncherControllerPerAppTest,
359 RestoreDefaultAppsReverseOrder) {
358 InitLauncherController(); 360 InitLauncherController();
359 361
360 base::ListValue policy_value; 362 base::ListValue policy_value;
361 InsertPrefValue(&policy_value, 0, extension1_->id()); 363 InsertPrefValue(&policy_value, 0, extension1_->id());
362 InsertPrefValue(&policy_value, 1, extension2_->id()); 364 InsertPrefValue(&policy_value, 1, extension2_->id());
363 InsertPrefValue(&policy_value, 2, extension3_->id()); 365 InsertPrefValue(&policy_value, 2, extension3_->id());
364 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 366 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
365 policy_value.DeepCopy()); 367 policy_value.DeepCopy());
366 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex)); 368 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex));
367 // Model should only contain the browser shortcut and app list items. 369 // Model should only contain the browser shortcut and app list items.
(...skipping 18 matching lines...) Expand all
386 388
387 // Installing |extension1_| should add it to the launcher - behind the 389 // Installing |extension1_| should add it to the launcher - behind the
388 // chrome icon, but in first location. 390 // chrome icon, but in first location.
389 extension_service_->AddExtension(extension1_.get()); 391 extension_service_->AddExtension(extension1_.get());
390 EXPECT_EQ("Chrome, App1, App2, App3, AppList, ", GetPinnedAppStatus()); 392 EXPECT_EQ("Chrome, App1, App2, App3, AppList, ", GetPinnedAppStatus());
391 } 393 }
392 394
393 // Check that the restauration of launcher items is happening in the same order 395 // Check that the restauration of launcher items is happening in the same order
394 // as the user has pinned them (on another system) when they are synced random 396 // as the user has pinned them (on another system) when they are synced random
395 // order. 397 // order.
396 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsRandomOrder) { 398 TEST_F(LegacyShelfLayoutChromeLauncherControllerPerAppTest,
399 RestoreDefaultAppsRandomOrder) {
397 InitLauncherController(); 400 InitLauncherController();
398 401
399 base::ListValue policy_value; 402 base::ListValue policy_value;
400 InsertPrefValue(&policy_value, 0, extension1_->id()); 403 InsertPrefValue(&policy_value, 0, extension1_->id());
401 InsertPrefValue(&policy_value, 1, extension2_->id()); 404 InsertPrefValue(&policy_value, 1, extension2_->id());
402 InsertPrefValue(&policy_value, 2, extension3_->id()); 405 InsertPrefValue(&policy_value, 2, extension3_->id());
403 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 406 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
404 policy_value.DeepCopy()); 407 policy_value.DeepCopy());
405 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex)); 408 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex));
406 // Model should only contain the browser shortcut and app list items. 409 // Model should only contain the browser shortcut and app list items.
(...skipping 17 matching lines...) Expand all
424 427
425 // Installing |extension3_| should add it to the launcher - behind the 428 // Installing |extension3_| should add it to the launcher - behind the
426 // chrome icon, but in first location. 429 // chrome icon, but in first location.
427 extension_service_->AddExtension(extension3_.get()); 430 extension_service_->AddExtension(extension3_.get());
428 EXPECT_EQ("Chrome, App1, App2, App3, AppList, ", GetPinnedAppStatus()); 431 EXPECT_EQ("Chrome, App1, App2, App3, AppList, ", GetPinnedAppStatus());
429 } 432 }
430 433
431 // Check that the restauration of launcher items is happening in the same order 434 // Check that the restauration of launcher items is happening in the same order
432 // as the user has pinned / moved them (on another system) when they are synced 435 // as the user has pinned / moved them (on another system) when they are synced
433 // random order - including the chrome icon. 436 // random order - including the chrome icon.
434 TEST_F(ChromeLauncherControllerPerAppTest, 437 TEST_F(LegacyShelfLayoutChromeLauncherControllerPerAppTest,
435 RestoreDefaultAppsRandomOrderChromeMoved) { 438 RestoreDefaultAppsRandomOrderChromeMoved) {
436 InitLauncherController(); 439 InitLauncherController();
437 440
438 base::ListValue policy_value; 441 base::ListValue policy_value;
439 InsertPrefValue(&policy_value, 0, extension1_->id()); 442 InsertPrefValue(&policy_value, 0, extension1_->id());
440 InsertPrefValue(&policy_value, 1, extension2_->id()); 443 InsertPrefValue(&policy_value, 1, extension2_->id());
441 InsertPrefValue(&policy_value, 2, extension3_->id()); 444 InsertPrefValue(&policy_value, 2, extension3_->id());
442 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 445 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
443 policy_value.DeepCopy()); 446 policy_value.DeepCopy());
444 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex, 447 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex,
(...skipping 18 matching lines...) Expand all
463 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 466 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
464 EXPECT_EQ("App1, Chrome, App2, AppList, ", GetPinnedAppStatus()); 467 EXPECT_EQ("App1, Chrome, App2, AppList, ", GetPinnedAppStatus());
465 468
466 // Installing |extension3_| should add it to the launcher - behind the 469 // Installing |extension3_| should add it to the launcher - behind the
467 // chrome icon, but in first location. 470 // chrome icon, but in first location.
468 extension_service_->AddExtension(extension3_.get()); 471 extension_service_->AddExtension(extension3_.get());
469 EXPECT_EQ("App1, Chrome, App2, App3, AppList, ", GetPinnedAppStatus()); 472 EXPECT_EQ("App1, Chrome, App2, App3, AppList, ", GetPinnedAppStatus());
470 } 473 }
471 474
472 // Check that syncing to a different state does the correct thing. 475 // Check that syncing to a different state does the correct thing.
473 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsResyncOrder) { 476 TEST_F(LegacyShelfLayoutChromeLauncherControllerPerAppTest,
477 RestoreDefaultAppsResyncOrder) {
474 InitLauncherController(); 478 InitLauncherController();
475 base::ListValue policy_value; 479 base::ListValue policy_value;
476 InsertPrefValue(&policy_value, 0, extension1_->id()); 480 InsertPrefValue(&policy_value, 0, extension1_->id());
477 InsertPrefValue(&policy_value, 1, extension2_->id()); 481 InsertPrefValue(&policy_value, 1, extension2_->id());
478 InsertPrefValue(&policy_value, 2, extension3_->id()); 482 InsertPrefValue(&policy_value, 2, extension3_->id());
479 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 483 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
480 policy_value.DeepCopy()); 484 policy_value.DeepCopy());
481 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex)); 485 EXPECT_EQ(0, profile()->GetPrefs()->GetInteger(prefs::kShelfChromeIconIndex));
482 extension_service_->AddExtension(extension2_.get()); 486 extension_service_->AddExtension(extension2_.get());
483 extension_service_->AddExtension(extension1_.get()); 487 extension_service_->AddExtension(extension1_.get());
(...skipping 14 matching lines...) Expand all
498 InsertPrefValue(&policy_value2, 0, extension2_->id()); 502 InsertPrefValue(&policy_value2, 0, extension2_->id());
499 InsertPrefValue(&policy_value2, 1, extension3_->id()); 503 InsertPrefValue(&policy_value2, 1, extension3_->id());
500 InsertPrefValue(&policy_value2, 2, extension1_->id()); 504 InsertPrefValue(&policy_value2, 2, extension1_->id());
501 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex, 505 profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex,
502 1); 506 1);
503 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 507 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
504 policy_value2.DeepCopy()); 508 policy_value2.DeepCopy());
505 EXPECT_EQ("App2, Chrome, App3, App1, AppList, ", GetPinnedAppStatus()); 509 EXPECT_EQ("App2, Chrome, App3, App1, AppList, ", GetPinnedAppStatus());
506 } 510 }
507 511
508 TEST_F(AlternateLayoutChromeLauncherControllerPerAppTest, DefaultApps) { 512 TEST_F(ChromeLauncherControllerPerAppTest, DefaultApps) {
509 InitLauncherController(); 513 InitLauncherController();
510 // Model should only contain the browser shortcut and app list items. 514 // Model should only contain the browser shortcut and app list items.
511 EXPECT_EQ(2, model_->item_count()); 515 EXPECT_EQ(2, model_->item_count());
512 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 516 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
513 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 517 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
514 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 518 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
515 519
516 // Installing |extension3_| should add it to the launcher - behind the 520 // Installing |extension3_| should add it to the launcher - behind the
517 // chrome icon. 521 // chrome icon.
518 extension_service_->AddExtension(extension3_.get()); 522 extension_service_->AddExtension(extension3_.get());
519 EXPECT_EQ("AppList, Chrome, App3, ", GetPinnedAppStatus()); 523 EXPECT_EQ("AppList, Chrome, App3, ", GetPinnedAppStatus());
520 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 524 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
521 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 525 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
522 } 526 }
523 527
524 // Check that the restauration of launcher items is happening in the same order 528 // Check that the restauration of launcher items is happening in the same order
525 // as the user has pinned them (on another system) when they are synced reverse 529 // as the user has pinned them (on another system) when they are synced reverse
526 // order. 530 // order.
527 TEST_F(AlternateLayoutChromeLauncherControllerPerAppTest, 531 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsReverseOrder) {
528 RestoreDefaultAppsReverseOrder) {
529 InitLauncherController(); 532 InitLauncherController();
530 533
531 base::ListValue policy_value; 534 base::ListValue policy_value;
532 InsertPrefValue(&policy_value, 0, extension1_->id()); 535 InsertPrefValue(&policy_value, 0, extension1_->id());
533 InsertPrefValue(&policy_value, 1, extension2_->id()); 536 InsertPrefValue(&policy_value, 1, extension2_->id());
534 InsertPrefValue(&policy_value, 2, extension3_->id()); 537 InsertPrefValue(&policy_value, 2, extension3_->id());
535 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 538 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
536 policy_value.DeepCopy()); 539 policy_value.DeepCopy());
537 SetShelfChromeIconIndex(0); 540 SetShelfChromeIconIndex(0);
538 // Model should only contain the browser shortcut and app list items. 541 // Model should only contain the browser shortcut and app list items.
(...skipping 18 matching lines...) Expand all
557 560
558 // Installing |extension1_| should add it to the launcher - behind the 561 // Installing |extension1_| should add it to the launcher - behind the
559 // chrome icon, but in first location. 562 // chrome icon, but in first location.
560 extension_service_->AddExtension(extension1_.get()); 563 extension_service_->AddExtension(extension1_.get());
561 EXPECT_EQ("AppList, Chrome, App1, App2, App3, ", GetPinnedAppStatus()); 564 EXPECT_EQ("AppList, Chrome, App1, App2, App3, ", GetPinnedAppStatus());
562 } 565 }
563 566
564 // Check that the restauration of launcher items is happening in the same order 567 // Check that the restauration of launcher items is happening in the same order
565 // as the user has pinned them (on another system) when they are synced random 568 // as the user has pinned them (on another system) when they are synced random
566 // order. 569 // order.
567 TEST_F(AlternateLayoutChromeLauncherControllerPerAppTest, 570 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsRandomOrder) {
568 RestoreDefaultAppsRandomOrder) {
569 InitLauncherController(); 571 InitLauncherController();
570 572
571 base::ListValue policy_value; 573 base::ListValue policy_value;
572 InsertPrefValue(&policy_value, 0, extension1_->id()); 574 InsertPrefValue(&policy_value, 0, extension1_->id());
573 InsertPrefValue(&policy_value, 1, extension2_->id()); 575 InsertPrefValue(&policy_value, 1, extension2_->id());
574 InsertPrefValue(&policy_value, 2, extension3_->id()); 576 InsertPrefValue(&policy_value, 2, extension3_->id());
575 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 577 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
576 policy_value.DeepCopy()); 578 policy_value.DeepCopy());
577 SetShelfChromeIconIndex(0); 579 SetShelfChromeIconIndex(0);
578 // Model should only contain the browser shortcut and app list items. 580 // Model should only contain the browser shortcut and app list items.
(...skipping 17 matching lines...) Expand all
596 598
597 // Installing |extension3_| should add it to the launcher - behind the 599 // Installing |extension3_| should add it to the launcher - behind the
598 // chrome icon, but in first location. 600 // chrome icon, but in first location.
599 extension_service_->AddExtension(extension3_.get()); 601 extension_service_->AddExtension(extension3_.get());
600 EXPECT_EQ("AppList, Chrome, App1, App2, App3, ", GetPinnedAppStatus()); 602 EXPECT_EQ("AppList, Chrome, App1, App2, App3, ", GetPinnedAppStatus());
601 } 603 }
602 604
603 // Check that the restauration of launcher items is happening in the same order 605 // Check that the restauration of launcher items is happening in the same order
604 // as the user has pinned / moved them (on another system) when they are synced 606 // as the user has pinned / moved them (on another system) when they are synced
605 // random order - including the chrome icon - using the alternate shelf layout. 607 // random order - including the chrome icon - using the alternate shelf layout.
606 TEST_F(AlternateLayoutChromeLauncherControllerPerAppTest, 608 TEST_F(ChromeLauncherControllerPerAppTest,
607 RestoreDefaultAppsRandomOrderChromeMoved) { 609 RestoreDefaultAppsRandomOrderChromeMoved) {
608 InitLauncherController(); 610 InitLauncherController();
609 611
610 base::ListValue policy_value; 612 base::ListValue policy_value;
611 InsertPrefValue(&policy_value, 0, extension1_->id()); 613 InsertPrefValue(&policy_value, 0, extension1_->id());
612 InsertPrefValue(&policy_value, 1, extension2_->id()); 614 InsertPrefValue(&policy_value, 1, extension2_->id());
613 InsertPrefValue(&policy_value, 2, extension3_->id()); 615 InsertPrefValue(&policy_value, 2, extension3_->id());
614 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 616 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
615 policy_value.DeepCopy()); 617 policy_value.DeepCopy());
616 SetShelfChromeIconIndex(1); 618 SetShelfChromeIconIndex(1);
(...skipping 18 matching lines...) Expand all
635 EXPECT_EQ("AppList, App1, Chrome, App2, ", GetPinnedAppStatus()); 637 EXPECT_EQ("AppList, App1, Chrome, App2, ", GetPinnedAppStatus());
636 638
637 // Installing |extension3_| should add it to the launcher - behind the 639 // Installing |extension3_| should add it to the launcher - behind the
638 // chrome icon, but in first location. 640 // chrome icon, but in first location.
639 extension_service_->AddExtension(extension3_.get()); 641 extension_service_->AddExtension(extension3_.get());
640 EXPECT_EQ("AppList, App1, Chrome, App2, App3, ", GetPinnedAppStatus()); 642 EXPECT_EQ("AppList, App1, Chrome, App2, App3, ", GetPinnedAppStatus());
641 } 643 }
642 644
643 // Check that syncing to a different state does the correct thing with the 645 // Check that syncing to a different state does the correct thing with the
644 // alternate shelf layout. 646 // alternate shelf layout.
645 TEST_F(AlternateLayoutChromeLauncherControllerPerAppTest, 647 TEST_F(ChromeLauncherControllerPerAppTest, RestoreDefaultAppsResyncOrder) {
646 RestoreDefaultAppsResyncOrder) {
647 InitLauncherController(); 648 InitLauncherController();
648 base::ListValue policy_value; 649 base::ListValue policy_value;
649 InsertPrefValue(&policy_value, 0, extension1_->id()); 650 InsertPrefValue(&policy_value, 0, extension1_->id());
650 InsertPrefValue(&policy_value, 1, extension2_->id()); 651 InsertPrefValue(&policy_value, 1, extension2_->id());
651 InsertPrefValue(&policy_value, 2, extension3_->id()); 652 InsertPrefValue(&policy_value, 2, extension3_->id());
652 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps, 653 profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
653 policy_value.DeepCopy()); 654 policy_value.DeepCopy());
654 // The alternate shelf layout has always one static item at the beginning. 655 // The alternate shelf layout has always one static item at the beginning.
655 SetShelfChromeIconIndex(0); 656 SetShelfChromeIconIndex(0);
656 extension_service_->AddExtension(extension2_.get()); 657 extension_service_->AddExtension(extension2_.get());
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 712 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
712 EXPECT_FALSE( 713 EXPECT_FALSE(
713 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 714 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
714 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 715 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
715 EXPECT_FALSE( 716 EXPECT_FALSE(
716 launcher_controller_->IsWindowedAppInLauncher(extension2_->id())); 717 launcher_controller_->IsWindowedAppInLauncher(extension2_->id()));
717 718
718 launcher_controller_->LockV1AppWithID(extension1_->id()); 719 launcher_controller_->LockV1AppWithID(extension1_->id());
719 720
720 EXPECT_EQ(3, model_->item_count()); 721 EXPECT_EQ(3, model_->item_count());
721 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[1].type); 722 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[2].type);
722 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 723 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
723 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 724 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
724 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 725 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
725 EXPECT_FALSE( 726 EXPECT_FALSE(
726 launcher_controller_->IsWindowedAppInLauncher(extension2_->id())); 727 launcher_controller_->IsWindowedAppInLauncher(extension2_->id()));
727 728
728 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 729 launcher_controller_->UnlockV1AppWithID(extension1_->id());
729 730
730 EXPECT_EQ(2, model_->item_count()); 731 EXPECT_EQ(2, model_->item_count());
731 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 732 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
732 EXPECT_FALSE( 733 EXPECT_FALSE(
733 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 734 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
734 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 735 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
735 EXPECT_FALSE( 736 EXPECT_FALSE(
736 launcher_controller_->IsWindowedAppInLauncher(extension2_->id())); 737 launcher_controller_->IsWindowedAppInLauncher(extension2_->id()));
737 } 738 }
738 739
739 // Check that multiple locks of an application will be properly handled. 740 // Check that multiple locks of an application will be properly handled.
740 TEST_F(ChromeLauncherControllerPerAppTest, CheckMukltiLockApps) { 741 TEST_F(ChromeLauncherControllerPerAppTest, CheckMultiLockApps) {
741 InitLauncherController(); 742 InitLauncherController();
742 // Model should only contain the browser shortcut and app list items. 743 // Model should only contain the browser shortcut and app list items.
743 EXPECT_EQ(2, model_->item_count()); 744 EXPECT_EQ(2, model_->item_count());
744 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 745 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
745 EXPECT_FALSE( 746 EXPECT_FALSE(
746 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 747 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
747 748
748 for (int i = 0; i < 2; i++) { 749 for (int i = 0; i < 2; i++) {
749 launcher_controller_->LockV1AppWithID(extension1_->id()); 750 launcher_controller_->LockV1AppWithID(extension1_->id());
750 751
751 EXPECT_EQ(3, model_->item_count()); 752 EXPECT_EQ(3, model_->item_count());
752 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[1].type); 753 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[2].type);
753 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 754 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
754 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher( 755 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(
755 extension1_->id())); 756 extension1_->id()));
756 } 757 }
757 758
758 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 759 launcher_controller_->UnlockV1AppWithID(extension1_->id());
759 760
760 EXPECT_EQ(3, model_->item_count()); 761 EXPECT_EQ(3, model_->item_count());
761 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[1].type); 762 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[2].type);
762 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 763 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
763 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 764 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
764 765
765 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 766 launcher_controller_->UnlockV1AppWithID(extension1_->id());
766 767
767 EXPECT_EQ(2, model_->item_count()); 768 EXPECT_EQ(2, model_->item_count());
768 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 769 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
769 EXPECT_FALSE( 770 EXPECT_FALSE(
770 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 771 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
771 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 772 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
772 EXPECT_FALSE( 773 EXPECT_FALSE(
773 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 774 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
774 } 775 }
775 776
776 // Check that already pinned items are not effected by locks. 777 // Check that already pinned items are not effected by locks.
777 TEST_F(ChromeLauncherControllerPerAppTest, CheckAlreadyPinnedLockApps) { 778 TEST_F(ChromeLauncherControllerPerAppTest, CheckAlreadyPinnedLockApps) {
778 InitLauncherController(); 779 InitLauncherController();
779 // Model should only contain the browser shortcut and app list items. 780 // Model should only contain the browser shortcut and app list items.
780 EXPECT_EQ(2, model_->item_count()); 781 EXPECT_EQ(2, model_->item_count());
781 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 782 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
782 EXPECT_FALSE( 783 EXPECT_FALSE(
783 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 784 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
784 785
785 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 786 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
786 launcher_controller_->PinAppWithID(extension1_->id()); 787 launcher_controller_->PinAppWithID(extension1_->id());
787 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 788 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
788 789
789 EXPECT_EQ(3, model_->item_count()); 790 EXPECT_EQ(3, model_->item_count());
790 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 791 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
791 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 792 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
792 EXPECT_FALSE( 793 EXPECT_FALSE(
793 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 794 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
794 795
795 launcher_controller_->LockV1AppWithID(extension1_->id()); 796 launcher_controller_->LockV1AppWithID(extension1_->id());
796 797
797 EXPECT_EQ(3, model_->item_count()); 798 EXPECT_EQ(3, model_->item_count());
798 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 799 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
799 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 800 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
800 EXPECT_FALSE( 801 EXPECT_FALSE(
801 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 802 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
802 803
803 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 804 launcher_controller_->UnlockV1AppWithID(extension1_->id());
804 805
805 EXPECT_EQ(3, model_->item_count()); 806 EXPECT_EQ(3, model_->item_count());
806 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 807 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
807 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 808 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
808 EXPECT_FALSE( 809 EXPECT_FALSE(
809 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 810 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
810 811
811 launcher_controller_->UnpinAppsWithID(extension1_->id()); 812 launcher_controller_->UnpinAppsWithID(extension1_->id());
812 813
813 EXPECT_EQ(2, model_->item_count()); 814 EXPECT_EQ(2, model_->item_count());
814 } 815 }
815 816
816 // Check that already pinned items which get locked stay after unpinning. 817 // Check that already pinned items which get locked stay after unpinning.
817 TEST_F(ChromeLauncherControllerPerAppTest, CheckPinnedAppsStayAfterUnlock) { 818 TEST_F(ChromeLauncherControllerPerAppTest, CheckPinnedAppsStayAfterUnlock) {
818 InitLauncherController(); 819 InitLauncherController();
819 // Model should only contain the browser shortcut and app list items. 820 // Model should only contain the browser shortcut and app list items.
820 EXPECT_EQ(2, model_->item_count()); 821 EXPECT_EQ(2, model_->item_count());
821 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 822 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
822 EXPECT_FALSE( 823 EXPECT_FALSE(
823 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 824 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
824 825
825 launcher_controller_->PinAppWithID(extension1_->id()); 826 launcher_controller_->PinAppWithID(extension1_->id());
826 827
827 EXPECT_EQ(3, model_->item_count()); 828 EXPECT_EQ(3, model_->item_count());
828 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 829 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
829 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 830 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
830 EXPECT_FALSE( 831 EXPECT_FALSE(
831 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 832 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
832 833
833 launcher_controller_->LockV1AppWithID(extension1_->id()); 834 launcher_controller_->LockV1AppWithID(extension1_->id());
834 835
835 EXPECT_EQ(3, model_->item_count()); 836 EXPECT_EQ(3, model_->item_count());
836 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 837 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
837 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 838 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
838 EXPECT_FALSE( 839 EXPECT_FALSE(
839 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 840 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
840 841
841 launcher_controller_->UnpinAppsWithID(extension1_->id()); 842 launcher_controller_->UnpinAppsWithID(extension1_->id());
842 843
843 EXPECT_EQ(3, model_->item_count()); 844 EXPECT_EQ(3, model_->item_count());
844 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[1].type); 845 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[2].type);
845 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 846 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
846 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 847 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
847 848
848 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 849 launcher_controller_->UnlockV1AppWithID(extension1_->id());
849 850
850 EXPECT_EQ(2, model_->item_count()); 851 EXPECT_EQ(2, model_->item_count());
851 } 852 }
852 853
853 // Check that lock -> pin -> unlock -> unpin does properly transition. 854 // Check that lock -> pin -> unlock -> unpin does properly transition.
854 TEST_F(ChromeLauncherControllerPerAppTest, CheckLockPinUnlockUnpin) { 855 TEST_F(ChromeLauncherControllerPerAppTest, CheckLockPinUnlockUnpin) {
855 InitLauncherController(); 856 InitLauncherController();
856 // Model should only contain the browser shortcut and app list items. 857 // Model should only contain the browser shortcut and app list items.
857 EXPECT_EQ(2, model_->item_count()); 858 EXPECT_EQ(2, model_->item_count());
858 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 859 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
859 EXPECT_FALSE( 860 EXPECT_FALSE(
860 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 861 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
861 862
862 launcher_controller_->LockV1AppWithID(extension1_->id()); 863 launcher_controller_->LockV1AppWithID(extension1_->id());
863 864
864 EXPECT_EQ(3, model_->item_count()); 865 EXPECT_EQ(3, model_->item_count());
865 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[1].type); 866 EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_->items()[2].type);
866 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 867 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
867 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 868 EXPECT_TRUE(launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
868 869
869 launcher_controller_->PinAppWithID(extension1_->id()); 870 launcher_controller_->PinAppWithID(extension1_->id());
870 871
871 EXPECT_EQ(3, model_->item_count()); 872 EXPECT_EQ(3, model_->item_count());
872 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 873 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
873 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 874 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
874 EXPECT_FALSE( 875 EXPECT_FALSE(
875 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 876 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
876 877
877 launcher_controller_->UnlockV1AppWithID(extension1_->id()); 878 launcher_controller_->UnlockV1AppWithID(extension1_->id());
878 879
879 EXPECT_EQ(3, model_->item_count()); 880 EXPECT_EQ(3, model_->item_count());
880 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 881 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
881 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 882 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
882 EXPECT_FALSE( 883 EXPECT_FALSE(
883 launcher_controller_->IsWindowedAppInLauncher(extension1_->id())); 884 launcher_controller_->IsWindowedAppInLauncher(extension1_->id()));
884 885
885 launcher_controller_->UnpinAppsWithID(extension1_->id()); 886 launcher_controller_->UnpinAppsWithID(extension1_->id());
886 887
887 EXPECT_EQ(2, model_->item_count()); 888 EXPECT_EQ(2, model_->item_count());
888 } 889 }
889 890
890 TEST_F(ChromeLauncherControllerPerAppTest, Policy) { 891 TEST_F(ChromeLauncherControllerPerAppTest, Policy) {
891 extension_service_->AddExtension(extension1_.get()); 892 extension_service_->AddExtension(extension1_.get());
892 extension_service_->AddExtension(extension3_.get()); 893 extension_service_->AddExtension(extension3_.get());
893 894
894 base::ListValue policy_value; 895 base::ListValue policy_value;
895 InsertPrefValue(&policy_value, 0, extension1_->id()); 896 InsertPrefValue(&policy_value, 0, extension1_->id());
896 InsertPrefValue(&policy_value, 1, extension2_->id()); 897 InsertPrefValue(&policy_value, 1, extension2_->id());
897 profile()->GetTestingPrefService()->SetManagedPref(prefs::kPinnedLauncherApps, 898 profile()->GetTestingPrefService()->SetManagedPref(prefs::kPinnedLauncherApps,
898 policy_value.DeepCopy()); 899 policy_value.DeepCopy());
899 900
900 // Only |extension1_| should get pinned. |extension2_| is specified but not 901 // Only |extension1_| should get pinned. |extension2_| is specified but not
901 // installed, and |extension3_| is part of the default set, but that shouldn't 902 // installed, and |extension3_| is part of the default set, but that shouldn't
902 // take effect when the policy override is in place. 903 // take effect when the policy override is in place.
903 InitLauncherController(); 904 InitLauncherController();
904 EXPECT_EQ(3, model_->item_count()); 905 EXPECT_EQ(3, model_->item_count());
905 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 906 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
906 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 907 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
907 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); 908 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id()));
908 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 909 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
909 910
910 // Installing |extension2_| should add it to the launcher. 911 // Installing |extension2_| should add it to the launcher.
911 extension_service_->AddExtension(extension2_.get()); 912 extension_service_->AddExtension(extension2_.get());
912 EXPECT_EQ(4, model_->item_count()); 913 EXPECT_EQ(4, model_->item_count());
913 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type);
914 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type); 914 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
915 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[3].type);
915 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); 916 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id()));
916 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); 917 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
917 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 918 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
918 919
919 // Removing |extension1_| from the policy should be reflected in the launcher. 920 // Removing |extension1_| from the policy should be reflected in the launcher.
920 policy_value.Remove(0, NULL); 921 policy_value.Remove(0, NULL);
921 profile()->GetTestingPrefService()->SetManagedPref(prefs::kPinnedLauncherApps, 922 profile()->GetTestingPrefService()->SetManagedPref(prefs::kPinnedLauncherApps,
922 policy_value.DeepCopy()); 923 policy_value.DeepCopy());
923 EXPECT_EQ(3, model_->item_count()); 924 EXPECT_EQ(3, model_->item_count());
924 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[1].type); 925 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[2].type);
925 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); 926 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id()));
926 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); 927 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id()));
927 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id())); 928 EXPECT_FALSE(launcher_controller_->IsAppPinned(extension3_->id()));
928 } 929 }
929 930
930 TEST_F(ChromeLauncherControllerPerAppTest, UnpinWithUninstall) { 931 TEST_F(ChromeLauncherControllerPerAppTest, UnpinWithUninstall) {
931 extension_service_->AddExtension(extension3_.get()); 932 extension_service_->AddExtension(extension3_.get());
932 extension_service_->AddExtension(extension4_.get()); 933 extension_service_->AddExtension(extension4_.get());
933 934
934 InitLauncherController(); 935 InitLauncherController();
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 ash::LauncherID gmail_id = model_->next_id(); 1379 ash::LauncherID gmail_id = model_->next_id();
1379 extension_service_->AddExtension(extension3_.get()); 1380 extension_service_->AddExtension(extension3_.get());
1380 EXPECT_EQ(3, model_->item_count()); 1381 EXPECT_EQ(3, model_->item_count());
1381 int gmail_index = model_->ItemIndexByID(gmail_id); 1382 int gmail_index = model_->ItemIndexByID(gmail_id);
1382 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[gmail_index].type); 1383 EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_->items()[gmail_index].type);
1383 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension3_->id())); 1384 EXPECT_TRUE(launcher_controller_->IsAppPinned(extension3_->id()));
1384 1385
1385 // The content should not be able to be handled by the app. 1386 // The content should not be able to be handled by the app.
1386 EXPECT_FALSE(launcher_controller_->ContentCanBeHandledByGmailApp(content)); 1387 EXPECT_FALSE(launcher_controller_->ContentCanBeHandledByGmailApp(content));
1387 } 1388 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698