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

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

Issue 12288012: Showing launcher items for windowed v1 apps - pinned or not. Also - don't show windowed v1 apps in … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing build breakage with clang Created 7 years, 10 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
Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc
index 3a11c5c15904d5ba623895900fca6a8ee509b652..d790fc6418c3ed654d11e930d3f90ea9c9867cfe 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_unittest.cc
@@ -141,6 +141,180 @@ TEST_F(ChromeLauncherControllerPerAppTest, DefaultApps) {
EXPECT_TRUE(launcher_controller.IsAppPinned(extension3_->id()));
}
+// Check that simple locking of an application will 'create' a launcher item.
+TEST_F(ChromeLauncherControllerPerAppTest, CheckLockApps) {
+ ChromeLauncherControllerPerApp launcher_controller(profile(), &model_);
+ launcher_controller.Init();
+
+ // Model should only contain the browser shortcut and app list items.
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension2_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension2_->id()));
+
+ launcher_controller.LockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_.items()[kExpectedAppIndex].type);
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_TRUE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension2_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension2_->id()));
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension2_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension2_->id()));
+}
+
+// Check that multiple locks of an application will be properly handled.
+TEST_F(ChromeLauncherControllerPerAppTest, CheckMukltiLockApps) {
+ ChromeLauncherControllerPerApp launcher_controller(profile(), &model_);
+ launcher_controller.Init();
+
+ // Model should only contain the browser shortcut and app list items.
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ for (int i = 0; i < 2; i++) {
+ launcher_controller.LockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_.items()[kExpectedAppIndex].type);
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_TRUE(launcher_controller.IsWindowedAppInLauncher(
+ extension1_->id()));
+ }
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_.items()[kExpectedAppIndex].type);
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_TRUE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension2_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+}
+
+// Check that already pinned items are not effected by locks.
+TEST_F(ChromeLauncherControllerPerAppTest, CheckAlreadyPinnedLockApps) {
+ ChromeLauncherControllerPerApp launcher_controller(profile(), &model_);
+ launcher_controller.Init();
+
+ // Model should only contain the browser shortcut and app list items.
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.PinAppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.LockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnpinAppsWithID(extension1_->id());
+
+ EXPECT_EQ(2, model_.item_count());
+}
+
+// Check that already pinned items which get locked stay after unpinning.
+TEST_F(ChromeLauncherControllerPerAppTest, CheckPinnedAppsStayAfterUnlock) {
+ ChromeLauncherControllerPerApp launcher_controller(profile(), &model_);
+ launcher_controller.Init();
+
+ // Model should only contain the browser shortcut and app list items.
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.PinAppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.LockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnpinAppsWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_.items()[kExpectedAppIndex].type);
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_TRUE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(2, model_.item_count());
+}
+
+// Check that lock -> pin -> unlock -> unpin does properly transition.
+TEST_F(ChromeLauncherControllerPerAppTest, CheckLockPinUnlockUnpin) {
+ ChromeLauncherControllerPerApp launcher_controller(profile(), &model_);
+ launcher_controller.Init();
+
+ // Model should only contain the browser shortcut and app list items.
+ EXPECT_EQ(2, model_.item_count());
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.LockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_WINDOWED_APP, model_.items()[kExpectedAppIndex].type);
+ EXPECT_FALSE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_TRUE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.PinAppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnlockV1AppWithID(extension1_->id());
+
+ EXPECT_EQ(3, model_.item_count());
+ EXPECT_EQ(ash::TYPE_APP_SHORTCUT, model_.items()[kExpectedAppIndex].type);
+ EXPECT_TRUE(launcher_controller.IsAppPinned(extension1_->id()));
+ EXPECT_FALSE(launcher_controller.IsWindowedAppInLauncher(extension1_->id()));
+
+ launcher_controller.UnpinAppsWithID(extension1_->id());
+
+ EXPECT_EQ(2, model_.item_count());
+}
+
TEST_F(ChromeLauncherControllerPerAppTest, Policy) {
extension_service_->AddExtension(extension1_.get());
extension_service_->AddExtension(extension3_.get());

Powered by Google App Engine
This is Rietveld 408576698