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 eba29f8ef775487526586b09fed439f3d0905fb4..40eb059bb5c494c2ecdd7b21d8df17c931373500 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 |
@@ -1886,11 +1886,39 @@ TEST_F(ChromeLauncherControllerImplTest, ArcRaceCreateClose) { |
EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2)); |
arc_window->Close(); |
base::RunLoop().RunUntilIdle(); |
- EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2)); |
+ // Closing window does not close shelf item. It is closed on task destroy. |
+ EXPECT_NE(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2)); |
arc_test_.app_instance()->SendTaskDestroyed(2); |
EXPECT_EQ(0, launcher_controller_->GetShelfIDForAppID(arc_app_id2)); |
} |
+TEST_F(ChromeLauncherControllerImplTest, ArcWindowRecreation) { |
+ arc_test_.SetUp(profile()); |
+ InitLauncherController(); |
+ |
+ const std::string arc_app_id = ArcAppTest::GetAppId(arc_test_.fake_apps()[0]); |
+ SendListOfArcApps(); |
+ |
+ std::string window_app_id("org.chromium.arc.1"); |
+ views::Widget* arc_window = CreateArcWindow(window_app_id); |
+ ASSERT_TRUE(arc_window); |
+ arc_test_.app_instance()->SendTaskCreated(1, arc_test_.fake_apps()[0]); |
+ const ash::ShelfID shelf_id = |
+ launcher_controller_->GetShelfIDForAppID(arc_app_id); |
+ EXPECT_NE(0, shelf_id); |
+ |
+ for (int i = 0; i < 3; ++i) { |
+ arc_window->Close(); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(shelf_id, launcher_controller_->GetShelfIDForAppID(arc_app_id)); |
+ |
+ arc_window = CreateArcWindow(window_app_id); |
+ ASSERT_TRUE(arc_window); |
+ base::RunLoop().RunUntilIdle(); |
+ EXPECT_EQ(shelf_id, launcher_controller_->GetShelfIDForAppID(arc_app_id)); |
+ } |
+} |
+ |
// Validate that Arc app is pinned correctly and pin is removed automatically |
// once app is uninstalled. |
TEST_F(ChromeLauncherControllerImplTest, ArcAppPin) { |