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

Unified Diff: trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc

Issue 24227010: Revert 224514 "Fixed problems with pin/unpin preferences changin..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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 | « trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
===================================================================
--- trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc (revision 224528)
+++ trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc (working copy)
@@ -177,43 +177,6 @@
DISALLOW_COPY_AND_ASSIGN(TestAppTabHelperImpl);
};
-// Test implementation of a V2 app launcher item controller.
-class TestV2AppLauncherItemController : public LauncherItemController {
- public:
- TestV2AppLauncherItemController(const std::string& app_id,
- ChromeLauncherController* controller)
- : LauncherItemController(LauncherItemController::TYPE_APP,
- app_id,
- controller) {
- }
-
- virtual ~TestV2AppLauncherItemController() {}
-
- // Override for LauncherItemController:
- virtual string16 GetTitle() OVERRIDE { return string16(); }
- virtual bool IsCurrentlyShownInWindow(aura::Window* window) const OVERRIDE {
- return true;
- }
- virtual bool IsOpen() const OVERRIDE { return true; }
- virtual bool IsVisible() const OVERRIDE { return true; }
- virtual void Launch(int event_flags) OVERRIDE {}
- virtual void Activate() OVERRIDE {}
- virtual void Close() OVERRIDE {}
- virtual void Clicked(const ui::Event& event) OVERRIDE {}
- virtual void OnRemoved() OVERRIDE {}
- virtual ChromeLauncherAppMenuItems GetApplicationList(
- int event_flags) OVERRIDE {
- ChromeLauncherAppMenuItems items;
- items.push_back(new ChromeLauncherAppMenuItem(string16(), NULL, false));
- items.push_back(new ChromeLauncherAppMenuItem(string16(), NULL, false));
- return items.Pass();
- }
-
- private:
-
- DISALLOW_COPY_AND_ASSIGN(TestV2AppLauncherItemController);
-};
-
} // namespace
class ChromeLauncherControllerTest : public BrowserWithTestWindowTest {
@@ -281,80 +244,8 @@
Extension::NO_FLAGS,
extension_misc::kGoogleSearchAppId,
&error);
- extension5_ = Extension::Create(base::FilePath(), Manifest::UNPACKED,
- manifest,
- Extension::NO_FLAGS,
- "cccccccccccccccccccccccccccccccc",
- &error);
- extension6_ = Extension::Create(base::FilePath(), Manifest::UNPACKED,
- manifest,
- Extension::NO_FLAGS,
- "dddddddddddddddddddddddddddddddd",
- &error);
- extension7_ = Extension::Create(base::FilePath(), Manifest::UNPACKED,
- manifest,
- Extension::NO_FLAGS,
- "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
- &error);
- extension8_ = Extension::Create(base::FilePath(), Manifest::UNPACKED,
- manifest,
- Extension::NO_FLAGS,
- "ffffffffffffffffffffffffffffffff",
- &error);
}
- // Creates a running V2 app (not pinned) of type |app_id|.
- virtual void CreateRunningV2App(const std::string& app_id) {
- ash::LauncherID id =
- launcher_controller_->CreateAppShortcutLauncherItemWithType(
- app_id,
- model_->item_count(),
- ash::TYPE_PLATFORM_APP);
- DCHECK(id);
- // Change the created launcher controller into a V2 app controller.
- launcher_controller_->SetItemController(id,
- new TestV2AppLauncherItemController(app_id,
- launcher_controller_.get()));
- }
-
- // Sets the stage for a multi user test.
- virtual void SetUpMultiUserScenario(base::ListValue* user_a,
- base::ListValue* user_b) {
- InitLauncherController();
- EXPECT_EQ("AppList, Chrome, ", GetPinnedAppStatus());
-
- // Set an empty pinned pref to begin with.
- base::ListValue no_user;
- SetShelfChromeIconIndex(0);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- no_user.DeepCopy());
- EXPECT_EQ("AppList, Chrome, ", GetPinnedAppStatus());
-
- // Assume all applications have been added already.
- extension_service_->AddExtension(extension1_.get());
- extension_service_->AddExtension(extension2_.get());
- extension_service_->AddExtension(extension3_.get());
- extension_service_->AddExtension(extension4_.get());
- extension_service_->AddExtension(extension5_.get());
- extension_service_->AddExtension(extension6_.get());
- extension_service_->AddExtension(extension7_.get());
- extension_service_->AddExtension(extension8_.get());
- // There should be nothing in the list by now.
- EXPECT_EQ("AppList, Chrome, ", GetPinnedAppStatus());
-
- // Set user a preferences.
- InsertPrefValue(user_a, 0, extension1_->id());
- InsertPrefValue(user_a, 1, extension2_->id());
- InsertPrefValue(user_a, 2, extension3_->id());
- InsertPrefValue(user_a, 3, extension4_->id());
- InsertPrefValue(user_a, 4, extension5_->id());
- InsertPrefValue(user_a, 5, extension6_->id());
-
- // Set user b preferences.
- InsertPrefValue(user_b, 0, extension7_->id());
- InsertPrefValue(user_b, 1, extension8_->id());
- }
-
virtual void TearDown() OVERRIDE {
model_->RemoveObserver(model_observer_.get());
model_observer_.reset();
@@ -414,58 +305,10 @@
}
}
- // Get the setup of the currently shown launcher items in one string.
- // Each pinned element will start with a big letter, each running but not
- // pinned V1 app will start with a small letter and each running but not
- // pinned V2 app will start with a '*' + small letter.
std::string GetPinnedAppStatus() {
std::string result;
for (int i = 0; i < model_->item_count(); i++) {
switch (model_->items()[i].type) {
- case ash::TYPE_PLATFORM_APP:
- result+= "*";
- // FALLTHROUGH
- case ash::TYPE_WINDOWED_APP: {
- const std::string& app =
- launcher_controller_->GetAppIDForLauncherID(
- model_->items()[i].id);
- if (app == extension1_->id()) {
- result += "app1, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension1_->id()));
- } else if (app == extension2_->id()) {
- result += "app2, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension2_->id()));
- } else if (app == extension3_->id()) {
- result += "app3, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension3_->id()));
- } else if (app == extension4_->id()) {
- result += "app4, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension4_->id()));
- } else if (app == extension5_->id()) {
- result += "app5, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension5_->id()));
- } else if (app == extension6_->id()) {
- result += "app6, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension6_->id()));
- } else if (app == extension7_->id()) {
- result += "app7, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension7_->id()));
- } else if (app == extension8_->id()) {
- result += "app8, ";
- EXPECT_FALSE(
- launcher_controller_->IsAppPinned(extension8_->id()));
- } else {
- result += "unknown, ";
- }
- break;
- }
case ash::TYPE_APP_SHORTCUT: {
const std::string& app =
launcher_controller_->GetAppIDForLauncherID(
@@ -482,18 +325,6 @@
} else if (app == extension4_->id()) {
result += "App4, ";
EXPECT_TRUE(launcher_controller_->IsAppPinned(extension4_->id()));
- } else if (app == extension5_->id()) {
- result += "App5, ";
- EXPECT_TRUE(launcher_controller_->IsAppPinned(extension5_->id()));
- } else if (app == extension6_->id()) {
- result += "App6, ";
- EXPECT_TRUE(launcher_controller_->IsAppPinned(extension6_->id()));
- } else if (app == extension7_->id()) {
- result += "App7, ";
- EXPECT_TRUE(launcher_controller_->IsAppPinned(extension7_->id()));
- } else if (app == extension8_->id()) {
- result += "App8, ";
- EXPECT_TRUE(launcher_controller_->IsAppPinned(extension8_->id()));
} else {
result += "unknown, ";
}
@@ -516,7 +347,7 @@
// Set the index at which the chrome icon should be.
void SetShelfChromeIconIndex(int index) {
profile()->GetTestingPrefService()->SetInteger(prefs::kShelfChromeIconIndex,
- index);
+ index + 1);
}
// Needed for extension service & friends to work.
@@ -524,10 +355,6 @@
scoped_refptr<Extension> extension2_;
scoped_refptr<Extension> extension3_;
scoped_refptr<Extension> extension4_;
- scoped_refptr<Extension> extension5_;
- scoped_refptr<Extension> extension6_;
- scoped_refptr<Extension> extension7_;
- scoped_refptr<Extension> extension8_;
scoped_ptr<ChromeLauncherController> launcher_controller_;
scoped_ptr<TestLauncherModelObserver> model_observer_;
scoped_ptr<ash::LauncherModel> model_;
@@ -960,7 +787,7 @@
}
// Check that multiple locks of an application will be properly handled.
-TEST_F(ChromeLauncherControllerTest, CheckMultiLockApps) {
+TEST_F(ChromeLauncherControllerTest, CheckMukltiLockApps) {
InitLauncherController();
// Model should only contain the browser shortcut and app list items.
EXPECT_EQ(2, model_->item_count());
@@ -1110,187 +937,6 @@
EXPECT_EQ(2, model_->item_count());
}
-// Check that a locked (windowed V1 application) will be properly converted
-// between locked and pinned when the order gets changed through a profile /
-// policy change.
-TEST_F(ChromeLauncherControllerTest, RestoreDefaultAndLockedAppsResyncOrder) {
- InitLauncherController();
- base::ListValue policy_value0;
- InsertPrefValue(&policy_value0, 0, extension1_->id());
- InsertPrefValue(&policy_value0, 1, extension3_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value0.DeepCopy());
- // The shelf layout has always one static item at the beginning (App List).
- SetShelfChromeIconIndex(0);
- extension_service_->AddExtension(extension1_.get());
- EXPECT_EQ("AppList, Chrome, App1, ", GetPinnedAppStatus());
- extension_service_->AddExtension(extension2_.get());
- // No new app icon will be generated.
- EXPECT_EQ("AppList, Chrome, App1, ", GetPinnedAppStatus());
- // Add the app as locked app which will add it (un-pinned).
- launcher_controller_->LockV1AppWithID(extension2_->id());
- EXPECT_EQ("AppList, Chrome, App1, app2, ", GetPinnedAppStatus());
- extension_service_->AddExtension(extension3_.get());
- EXPECT_EQ("AppList, Chrome, App1, App3, app2, ", GetPinnedAppStatus());
-
- // Now request to pin all items which should convert the locked item into a
- // pinned item.
- base::ListValue policy_value1;
- InsertPrefValue(&policy_value1, 0, extension3_->id());
- InsertPrefValue(&policy_value1, 1, extension2_->id());
- InsertPrefValue(&policy_value1, 2, extension1_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value1.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, App2, App1, ", GetPinnedAppStatus());
-
- // Going back to a status where there is no requirement for app 2 to be pinned
- // should convert it back to locked but not pinned and state. The position
- // is determined by the |LauncherModel|'s weight system. Since at the moment
- // the weight of a running app has the same as a shortcut, it will remain
- // where it is. Surely note ideal, but since the sync process can shift around
- // locations - as well as many other edge cases - this gets nearly impossible
- // to get right.
- // TODO(skuhne): Filed crbug.com/293761 to track of this.
- base::ListValue policy_value2;
- InsertPrefValue(&policy_value2, 0, extension3_->id());
- InsertPrefValue(&policy_value2, 1, extension1_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value2.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, app2, App1, ", GetPinnedAppStatus());
-
- // Removing an item should simply close it and everything should shift.
- base::ListValue policy_value3;
- InsertPrefValue(&policy_value3, 0, extension3_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value3.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, app2, ", GetPinnedAppStatus());
-}
-
-// Check that a running and not pinned V2 application will be properly converted
-// between locked and pinned when the order gets changed through a profile /
-// policy change.
-TEST_F(ChromeLauncherControllerTest,
- RestoreDefaultAndRunningV2AppsResyncOrder) {
- InitLauncherController();
- base::ListValue policy_value0;
- InsertPrefValue(&policy_value0, 0, extension1_->id());
- InsertPrefValue(&policy_value0, 1, extension3_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value0.DeepCopy());
- // The shelf layout has always one static item at the beginning (app List).
- SetShelfChromeIconIndex(0);
- extension_service_->AddExtension(extension1_.get());
- EXPECT_EQ("AppList, Chrome, App1, ", GetPinnedAppStatus());
- extension_service_->AddExtension(extension2_.get());
- // No new app icon will be generated.
- EXPECT_EQ("AppList, Chrome, App1, ", GetPinnedAppStatus());
- // Add the app as an unpinned but running V2 app.
- CreateRunningV2App(extension2_->id());
- EXPECT_EQ("AppList, Chrome, App1, *app2, ", GetPinnedAppStatus());
- extension_service_->AddExtension(extension3_.get());
- EXPECT_EQ("AppList, Chrome, App1, App3, *app2, ", GetPinnedAppStatus());
-
- // Now request to pin all items which should convert the locked item into a
- // pinned item.
- base::ListValue policy_value1;
- InsertPrefValue(&policy_value1, 0, extension3_->id());
- InsertPrefValue(&policy_value1, 1, extension2_->id());
- InsertPrefValue(&policy_value1, 2, extension1_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value1.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, App2, App1, ", GetPinnedAppStatus());
-
- // Going back to a status where there is no requirement for app 2 to be pinned
- // should convert it back to running V2 app. Since the position is determined
- // by the |LauncherModel|'s weight system, it will be after last pinned item.
- base::ListValue policy_value2;
- InsertPrefValue(&policy_value2, 0, extension3_->id());
- InsertPrefValue(&policy_value2, 1, extension1_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value2.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, App1, *app2, ", GetPinnedAppStatus());
-
- // Removing an item should simply close it and everything should shift.
- base::ListValue policy_value3;
- InsertPrefValue(&policy_value3, 0, extension3_->id());
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- policy_value3.DeepCopy());
- EXPECT_EQ("AppList, Chrome, App3, *app2, ", GetPinnedAppStatus());
-}
-
-// Each user has a different set of applications pinned. Check that when
-// switching between the two users, the state gets properly set.
-TEST_F(ChromeLauncherControllerTest, UserSwitchIconRestore) {
- base::ListValue user_a;
- base::ListValue user_b;
- SetUpMultiUserScenario(&user_a, &user_b);
- // Show user 1.
- SetShelfChromeIconIndex(6);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_a.DeepCopy());
- EXPECT_EQ("AppList, App1, App2, App3, App4, App5, App6, Chrome, ",
- GetPinnedAppStatus());
-
- // Show user 2.
- SetShelfChromeIconIndex(4);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_b.DeepCopy());
-
- EXPECT_EQ("AppList, App7, App8, Chrome, ", GetPinnedAppStatus());
-
- // Switch back to 1.
- SetShelfChromeIconIndex(8);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_a.DeepCopy());
- EXPECT_EQ("AppList, App1, App2, App3, App4, App5, App6, Chrome, ",
- GetPinnedAppStatus());
-
- // Switch back to 2.
- SetShelfChromeIconIndex(4);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_b.DeepCopy());
- EXPECT_EQ("AppList, App7, App8, Chrome, ", GetPinnedAppStatus());
-}
-
-// Each user has a different set of applications pinned, and one user has an
-// application running. Check that when switching between the two users, the
-// state gets properly set.
-TEST_F(ChromeLauncherControllerTest, UserSwitchIconRestoreWithRunningV2App) {
- base::ListValue user_a;
- base::ListValue user_b;
- SetUpMultiUserScenario(&user_a, &user_b);
-
- // Run App1 and assume that it is a V2 app.
- CreateRunningV2App(extension1_->id());
-
- // Show user 1.
- SetShelfChromeIconIndex(6);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_a.DeepCopy());
- EXPECT_EQ("AppList, App1, App2, App3, App4, App5, App6, Chrome, ",
- GetPinnedAppStatus());
-
- // Show user 2.
- SetShelfChromeIconIndex(4);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_b.DeepCopy());
-
- EXPECT_EQ("AppList, App7, App8, Chrome, *app1, ", GetPinnedAppStatus());
-
- // Switch back to 1.
- SetShelfChromeIconIndex(8);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_a.DeepCopy());
- EXPECT_EQ("AppList, App1, App2, App3, App4, App5, App6, Chrome, ",
- GetPinnedAppStatus());
-
- // Switch back to 2.
- SetShelfChromeIconIndex(4);
- profile()->GetTestingPrefService()->SetUserPref(prefs::kPinnedLauncherApps,
- user_b.DeepCopy());
- EXPECT_EQ("AppList, App7, App8, Chrome, *app1, ", GetPinnedAppStatus());
-}
-
TEST_F(ChromeLauncherControllerTest, Policy) {
extension_service_->AddExtension(extension1_.get());
extension_service_->AddExtension(extension3_.get());
@@ -1871,7 +1517,6 @@
launcher_controller_.reset();
model_.reset(new ash::LauncherModel);
- AddAppListLauncherItem();
launcher_controller_.reset(
ChromeLauncherController::CreateInstance(profile(), model_.get()));
app_tab_helper = new TestAppTabHelperImpl;
@@ -1879,6 +1524,7 @@
SetAppTabHelper(app_tab_helper);
app_icon_loader = new TestAppIconLoaderImpl;
SetAppIconLoader(app_icon_loader);
+ AddAppListLauncherItem();
launcher_controller_->Init();
EXPECT_EQ(1, app_icon_loader->fetch_count());
« no previous file with comments | « trunk/src/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698