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

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

Issue 2281743002: arc: Add support of default and OEM apps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean Created 4 years, 3 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/ui/ash/launcher/chrome_launcher_controller_impl.h" 5 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "chrome/browser/extensions/extension_service.h" 44 #include "chrome/browser/extensions/extension_service.h"
45 #include "chrome/browser/extensions/test_extension_system.h" 45 #include "chrome/browser/extensions/test_extension_system.h"
46 #include "chrome/browser/lifetime/scoped_keep_alive.h" 46 #include "chrome/browser/lifetime/scoped_keep_alive.h"
47 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" 47 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
48 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" 48 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
49 #include "chrome/browser/ui/app_list/arc/arc_app_test.h" 49 #include "chrome/browser/ui/app_list/arc/arc_app_test.h"
50 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" 50 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
51 #include "chrome/browser/ui/apps/chrome_app_delegate.h" 51 #include "chrome/browser/ui/apps/chrome_app_delegate.h"
52 #include "chrome/browser/ui/ash/chrome_launcher_prefs.h" 52 #include "chrome/browser/ui/ash/chrome_launcher_prefs.h"
53 #include "chrome/browser/ui/ash/launcher/app_window_launcher_controller.h" 53 #include "chrome/browser/ui/ash/launcher/app_window_launcher_controller.h"
54 #include "chrome/browser/ui/ash/launcher/arc_app_deferred_launcher_controller.h"
54 #include "chrome/browser/ui/ash/launcher/browser_status_monitor.h" 55 #include "chrome/browser/ui/ash/launcher/browser_status_monitor.h"
55 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h" 56 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h"
56 #include "chrome/browser/ui/ash/launcher/extension_app_window_launcher_item_cont roller.h" 57 #include "chrome/browser/ui/ash/launcher/extension_app_window_launcher_item_cont roller.h"
57 #include "chrome/browser/ui/ash/launcher/launcher_application_menu_item_model.h" 58 #include "chrome/browser/ui/ash/launcher/launcher_application_menu_item_model.h"
58 #include "chrome/browser/ui/ash/launcher/launcher_controller_helper.h" 59 #include "chrome/browser/ui/ash/launcher/launcher_controller_helper.h"
59 #include "chrome/browser/ui/ash/launcher/launcher_item_controller.h" 60 #include "chrome/browser/ui/ash/launcher/launcher_item_controller.h"
60 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" 61 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
61 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" 62 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
62 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h" 63 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
63 #include "chrome/browser/ui/browser.h" 64 #include "chrome/browser/ui/browser.h"
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 ash::ShelfItem app_list; 493 ash::ShelfItem app_list;
493 app_list.type = ash::TYPE_APP_LIST; 494 app_list.type = ash::TYPE_APP_LIST;
494 model_->Add(app_list); 495 model_->Add(app_list);
495 } 496 }
496 497
497 void InitLauncherController() { 498 void InitLauncherController() {
498 AddAppListLauncherItem(); 499 AddAppListLauncherItem();
499 launcher_controller_.reset( 500 launcher_controller_.reset(
500 new ChromeLauncherControllerImpl(profile(), model_.get())); 501 new ChromeLauncherControllerImpl(profile(), model_.get()));
501 launcher_controller_->Init(); 502 launcher_controller_->Init();
503 ChromeLauncherController::set_instance(launcher_controller_.get());
502 } 504 }
503 505
504 void InitLauncherControllerWithBrowser() { 506 void InitLauncherControllerWithBrowser() {
505 InitLauncherController(); 507 InitLauncherController();
506 chrome::NewTab(browser()); 508 chrome::NewTab(browser());
507 browser()->window()->Show(); 509 browser()->window()->Show();
508 } 510 }
509 511
510 void RecreateChromeLauncher() { 512 void RecreateChromeLauncher() {
511 // Destroy controller first if it exists. 513 // Destroy controller first if it exists.
512 launcher_controller_.reset(); 514 launcher_controller_.reset();
513 model_.reset(new ash::ShelfModel); 515 model_.reset(new ash::ShelfModel);
514 AddAppListLauncherItem(); 516 AddAppListLauncherItem();
515 launcher_controller_.reset( 517 launcher_controller_.reset(
516 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get())); 518 ChromeLauncherControllerImpl::CreateInstance(profile(), model_.get()));
517 launcher_controller_->Init(); 519 launcher_controller_->Init();
520 ChromeLauncherController::set_instance(launcher_controller_.get());
518 } 521 }
519 522
520 void StartAppSyncService(const syncer::SyncDataList& init_sync_list) { 523 void StartAppSyncService(const syncer::SyncDataList& init_sync_list) {
521 app_service_->MergeDataAndStartSyncing( 524 app_service_->MergeDataAndStartSyncing(
522 syncer::APP_LIST, init_sync_list, 525 syncer::APP_LIST, init_sync_list,
523 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), 526 base::WrapUnique(new syncer::FakeSyncChangeProcessor()),
524 base::WrapUnique(new syncer::SyncErrorFactoryMock())); 527 base::WrapUnique(new syncer::SyncErrorFactoryMock()));
525 EXPECT_EQ(init_sync_list.size(), app_service_->sync_items().size()); 528 EXPECT_EQ(init_sync_list.size(), app_service_->sync_items().size());
526 } 529 }
527 530
(...skipping 3010 matching lines...) Expand 10 before | Expand all | Expand 10 after
3538 3541
3539 views::Widget* window_none_ = nullptr; 3542 views::Widget* window_none_ = nullptr;
3540 views::Widget* window_landscape_ = nullptr; 3543 views::Widget* window_landscape_ = nullptr;
3541 views::Widget* window_portrait_ = nullptr; 3544 views::Widget* window_portrait_ = nullptr;
3542 views::Widget* window_current_ = nullptr; 3545 views::Widget* window_current_ = nullptr;
3543 3546
3544 private: 3547 private:
3545 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerOrientationTest); 3548 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerOrientationTest);
3546 }; 3549 };
3547 3550
3551 class ChromeLauncherControllerArcDefaultAppsTest
3552 : public ChromeLauncherControllerImplTest {
3553 public:
3554 ChromeLauncherControllerArcDefaultAppsTest() {}
3555 ~ChromeLauncherControllerArcDefaultAppsTest() override {}
3556
3557 protected:
3558 void SetUp() override {
3559 ArcAppListPrefs::UseTestDefaultAppsDirectory();
3560 ChromeLauncherControllerImplTest::SetUp();
3561 }
3562
3563 void TestMe() {
xiyuan 2016/08/26 19:32:30 nit: This function seems unnecessary if it is not
khmel 2016/08/26 23:26:18 Oh, forgot to move into TEST_F(ChromeLauncherContr
3564 arc_test_.SetUp(profile());
3565 InitLauncherController();
3566
3567 ArcAppListPrefs* const prefs = arc_test_.arc_app_list_prefs();
3568 EnableArc(false);
3569 EXPECT_FALSE(arc_test_.arc_auth_service()->IsArcEnabled());
3570 ASSERT_TRUE(prefs->GetAppIds().size());
3571
3572 const std::string app_id =
3573 ArcAppTest::GetAppId(arc_test_.fake_default_apps()[0]);
3574 EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(app_id));
3575 EXPECT_TRUE(arc::LaunchApp(profile(), app_id));
3576 EXPECT_TRUE(arc_test_.arc_auth_service()->IsArcEnabled());
3577 EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(app_id));
3578
3579 // Stop Arc again. Shelf item should go away.
3580 EnableArc(false);
3581 EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(app_id));
3582
3583 EXPECT_TRUE(arc::LaunchApp(profile(), app_id));
3584 EXPECT_TRUE(arc_test_.arc_auth_service()->IsArcEnabled());
3585
3586 EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(app_id));
3587 EXPECT_TRUE(launcher_controller_->GetArcDeferredLauncher()->HasApp(app_id));
3588
3589 std::string window_app_id("org.chromium.arc.1");
3590 CreateArcWindow(window_app_id);
3591 arc_test_.app_instance()->SendTaskCreated(1,
3592 arc_test_.fake_default_apps()[0]);
3593
3594 EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(app_id));
3595 EXPECT_FALSE(
3596 launcher_controller_->GetArcDeferredLauncher()->HasApp(app_id));
3597 }
3598
3599 private:
3600 DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerArcDefaultAppsTest);
3601 };
3602
3548 } // namespace 3603 } // namespace
3549 3604
3550 TEST_F(ChromeLauncherControllerOrientationTest, ArcOrientationLock) { 3605 TEST_F(ChromeLauncherControllerOrientationTest, ArcOrientationLock) {
3551 ASSERT_TRUE(display::Display::HasInternalDisplay()); 3606 ASSERT_TRUE(display::Display::HasInternalDisplay());
3552 3607
3553 extension_service_->AddExtension(arc_support_host_.get()); 3608 extension_service_->AddExtension(arc_support_host_.get());
3554 arc_test_.SetUp(profile()); 3609 arc_test_.SetUp(profile());
3555 EnableArc(true); 3610 EnableArc(true);
3556 EnableTabletMode(true); 3611 EnableTabletMode(true);
3557 3612
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
3701 EXPECT_FALSE(controller->rotation_locked()); 3756 EXPECT_FALSE(controller->rotation_locked());
3702 EXPECT_EQ(display::Display::ROTATE_0, 3757 EXPECT_EQ(display::Display::ROTATE_0,
3703 display::Screen::GetScreen()->GetPrimaryDisplay().rotation()); 3758 display::Screen::GetScreen()->GetPrimaryDisplay().rotation());
3704 3759
3705 NotifyOnTaskOrientationLockRequested(task_id_current_, 3760 NotifyOnTaskOrientationLockRequested(task_id_current_,
3706 OrientationLock::CURRENT); 3761 OrientationLock::CURRENT);
3707 EXPECT_TRUE(controller->rotation_locked()); 3762 EXPECT_TRUE(controller->rotation_locked());
3708 EXPECT_EQ(display::Display::ROTATE_0, 3763 EXPECT_EQ(display::Display::ROTATE_0,
3709 display::Screen::GetScreen()->GetPrimaryDisplay().rotation()); 3764 display::Screen::GetScreen()->GetPrimaryDisplay().rotation());
3710 } 3765 }
3766
3767 TEST_F(ChromeLauncherControllerArcDefaultAppsTest, DefaultApps) {
3768 TestMe();
3769 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698