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

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc

Issue 2325743002: arc: Disable shelf item creation when secondary user is active. (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
index 5c2eb2a80e53c74e93c9efb0347759062259e207..77121cbb739bd7ef229794a7c277c7889056c6aa 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
@@ -1150,8 +1150,11 @@ class MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest
manager->ActiveUserChanged(account_id);
launcher_controller_->browser_status_monitor_for_test()->ActiveUserChanged(
account_id.GetUserEmail());
- launcher_controller_->app_window_controller_for_test()->ActiveUserChanged(
- account_id.GetUserEmail());
+
+ for (const auto& controller :
+ launcher_controller_->app_window_controllers_for_test()) {
+ controller->ActiveUserChanged(account_id.GetUserEmail());
+ }
}
// Creates a browser with a |profile| and load a tab with a |title| and |url|.
@@ -1178,8 +1181,8 @@ class MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest
V1App* v1_app = new V1App(profile, app_name);
// Create a new launcher controller helper and assign it to the launcher so
// that this app gets properly detected.
- // TODO(skuhne): Create a more intelligent launcher contrller helper that is
- // able to detect all running apps properly.
+ // TODO(skuhne): Create a more intelligent launcher controller helper that
+ // is able to detect all running apps properly.
TestLauncherControllerHelper* helper = new TestLauncherControllerHelper;
helper->SetAppID(v1_app->browser()->tab_strip_model()->GetWebContentsAt(0),
app_name);
@@ -1223,6 +1226,18 @@ class MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest
MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest);
};
+class ChromeLauncherControllerImplMultiProfileWithArcTest
+ : public MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest {
+ protected:
+ ChromeLauncherControllerImplMultiProfileWithArcTest() {
+ auto_start_arc_test_ = true;
+ }
+ ~ChromeLauncherControllerImplMultiProfileWithArcTest() override {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ChromeLauncherControllerImplMultiProfileWithArcTest);
+};
+
TEST_F(ChromeLauncherControllerImplTest, DefaultApps) {
InitLauncherController();
// Model should only contain the browser shortcut and app list items.
@@ -1834,6 +1849,67 @@ TEST_F(ChromeLauncherControllerImplWithArcTest, ArcDeferredLaunch) {
(request1->IsForApp(app3) && request2->IsForApp(app2)));
}
+TEST_F(ChromeLauncherControllerImplMultiProfileWithArcTest, ArcMultiUser) {
+ SendListOfArcApps();
+
+ InitLauncherController();
+ SetLauncherControllerHelper(new TestLauncherControllerHelper);
+
+ // App1 exists all the time.
+ // App2 is created when primary user is active and destroyed when secondary
+ // user is active.
+ // App3 created when secondary user is active.
+
+ const std::string user2 = "user2";
+ TestingProfile* profile2 = CreateMultiUserProfile(user2);
+ const AccountId account_id(
+ multi_user_util::GetAccountIdFromProfile(profile()));
+ const AccountId account_id2(
+ multi_user_util::GetAccountIdFromProfile(profile2));
+
+ const std::string arc_app_id1 =
+ ArcAppTest::GetAppId(arc_test_.fake_apps()[0]);
+ const std::string arc_app_id2 =
+ ArcAppTest::GetAppId(arc_test_.fake_apps()[1]);
+ const std::string arc_app_id3 =
+ ArcAppTest::GetAppId(arc_test_.fake_apps()[2]);
+
+ std::string window_app_id1("org.chromium.arc.1");
+ views::Widget* arc_window1 = CreateArcWindow(window_app_id1);
+ arc_test_.app_instance()->SendTaskCreated(1, arc_test_.fake_apps()[0]);
+ EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id1));
+
+ std::string window_app_id2("org.chromium.arc.2");
+ views::Widget* arc_window2 = CreateArcWindow(window_app_id2);
+ arc_test_.app_instance()->SendTaskCreated(2, arc_test_.fake_apps()[1]);
+ EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2));
+
+ launcher_controller_->SetProfileForTest(profile2);
+ SwitchActiveUser(account_id2);
+
+ EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id1));
+ EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2));
+
+ std::string window_app_id3("org.chromium.arc.3");
+ views::Widget* arc_window3 = CreateArcWindow(window_app_id3);
+ arc_test_.app_instance()->SendTaskCreated(3, arc_test_.fake_apps()[2]);
+ EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id3));
+
+ arc_window2->CloseNow();
+ arc_test_.app_instance()->SendTaskDestroyed(2);
+
+ launcher_controller_->SetProfileForTest(profile());
+ SwitchActiveUser(account_id);
+
+ EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id1));
+ EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2));
+ EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id3));
+
+ // Close active window to let test passes.
+ arc_window1->CloseNow();
+ arc_window3->CloseNow();
+}
+
TEST_F(ChromeLauncherControllerImplWithArcTest, ArcRunningApp) {
InitLauncherController();
« no previous file with comments | « chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698