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

Side by Side Diff: chrome/browser/ui/app_list/app_list_controller_browsertest.cc

Issue 12090062: Enable profile switching for standalone App Launcher via the Settings App. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: disable tests on aura 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 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 "base/command_line.h"
6 #include "base/files/scoped_temp_dir.h"
7 #include "base/message_loop.h"
8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/prefs/pref_service_simple.h"
10 #include "chrome/browser/profiles/profile_manager.h"
5 #include "chrome/browser/ui/app_list/app_list_util.h" 11 #include "chrome/browser/ui/app_list/app_list_util.h"
12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/pref_names.h"
6 #include "chrome/test/base/in_process_browser_test.h" 15 #include "chrome/test/base/in_process_browser_test.h"
16 #include "chrome/test/base/ui_test_utils.h"
17
7 18
8 // Browser Test for AppListController that runs on all platforms supporting 19 // Browser Test for AppListController that runs on all platforms supporting
9 // app_list. 20 // app_list.
10 class AppListControllerBrowserTest : public InProcessBrowserTest { 21 class AppListControllerBrowserTest : public InProcessBrowserTest {
11 public: 22 public:
12 AppListControllerBrowserTest() {} 23 AppListControllerBrowserTest()
24 : profile2_(NULL) {}
25
26 void OnProfileCreated(Profile* profile, Profile::CreateStatus status) {
27 if (status == Profile::CREATE_STATUS_INITIALIZED) {
28 profile2_ = profile;
29 MessageLoop::current()->Quit();
30 }
31 }
32
33 protected:
34 base::ScopedTempDir temp_profile_dir_;
35 Profile* profile2_;
13 36
14 private: 37 private:
15 DISALLOW_COPY_AND_ASSIGN(AppListControllerBrowserTest); 38 DISALLOW_COPY_AND_ASSIGN(AppListControllerBrowserTest);
16 }; 39 };
17 40
18 // Disabled on Windows. Investigating in http://crbug.com/169114 . 41 #if defined(OS_WIN) && !defined(USE_AURA)
19 #if defined(OS_WIN) 42 // Show the app list, then dismiss it.
20 #define MAYBE_ShowAndShutdown DISABLED_ShowAndShutdown 43 IN_PROC_BROWSER_TEST_F(AppListControllerBrowserTest, ShowAndDismiss) {
21 #else 44 ASSERT_FALSE(chrome::IsAppListVisible());
22 #define MAYBE_ShowAndShutdown ShowAndShutdown 45 chrome::ShowAppList(browser()->profile());
23 #endif 46 ASSERT_TRUE(chrome::IsAppListVisible());
47 chrome::DismissAppList();
48 ASSERT_FALSE(chrome::IsAppListVisible());
49 }
24 50
25 // Test showing the app list, followed by browser close. 51 IN_PROC_BROWSER_TEST_F(AppListControllerBrowserTest, SwitchAppListProfiles) {
26 IN_PROC_BROWSER_TEST_F(AppListControllerBrowserTest, MAYBE_ShowAndShutdown) { 52 ProfileManager* profile_manager = g_browser_process->profile_manager();
27 chrome::ShowAppList(); 53 ASSERT_TRUE(temp_profile_dir_.CreateUniqueTempDir());
54 profile_manager->CreateProfileAsync(
55 temp_profile_dir_.path(),
56 base::Bind(&AppListControllerBrowserTest::OnProfileCreated,
57 this),
58 string16(), string16(), false);
59 content::RunMessageLoop(); // Will stop in OnProfileCreated().
60
61 ASSERT_FALSE(chrome::IsAppListVisible());
62 chrome::ShowAppList(browser()->profile());
63 ASSERT_TRUE(chrome::IsAppListVisible());
64 ASSERT_EQ(browser()->profile(), chrome::GetCurrentAppListProfile());
65 chrome::ShowAppList(profile2_);
66 ASSERT_TRUE(chrome::IsAppListVisible());
67 ASSERT_EQ(profile2_, chrome::GetCurrentAppListProfile());
68 chrome::DismissAppList();
69 ASSERT_FALSE(chrome::IsAppListVisible());
28 } 70 }
71
72 class ShowAppListBrowserTest : public InProcessBrowserTest {
73 public:
74 ShowAppListBrowserTest() {}
75
76 void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
77 command_line->AppendSwitch(switches::kShowAppList);
78 }
79
80 private:
81 DISALLOW_COPY_AND_ASSIGN(ShowAppListBrowserTest);
82 };
83
84 IN_PROC_BROWSER_TEST_F(ShowAppListBrowserTest, ShowAppListFlag) {
85 // The app list should already be shown because we passed
86 // switches::kShowAppList.
87 ASSERT_TRUE(chrome::IsAppListVisible());
88
89 // Create a browser to prevent shutdown when we dismiss the app list. We
90 // need to do this because switches::kShowAppList suppresses the creation of
91 // any browsers.
92 CreateBrowser(chrome::GetCurrentAppListProfile());
93 chrome::DismissAppList();
94 }
95 #endif // defined(OS_WIN) && !defined(USE_AURA)
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/options_settings_app.js ('k') | chrome/browser/ui/app_list/app_list_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698