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

Side by Side Diff: chrome/browser/extensions/extension_management_apitest.cc

Issue 10391158: Moves methods for finding browsers to browser_finder. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Include fixs Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/extensions/extension_apitest.h" 5 #include "chrome/browser/extensions/extension_apitest.h"
6 #include "chrome/browser/extensions/extension_service.h" 6 #include "chrome/browser/extensions/extension_service.h"
7 #include "chrome/browser/extensions/extension_test_message_listener.h" 7 #include "chrome/browser/extensions/extension_test_message_listener.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/browser.h" 9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_finder.h"
10 #include "chrome/browser/ui/browser_list.h" 11 #include "chrome/browser/ui/browser_list.h"
11 #include "chrome/common/chrome_notification_types.h" 12 #include "chrome/common/chrome_notification_types.h"
12 #include "chrome/common/chrome_switches.h" 13 #include "chrome/common/chrome_switches.h"
13 #include "chrome/test/base/ui_test_utils.h" 14 #include "chrome/test/base/ui_test_utils.h"
14 15
15 namespace { 16 namespace {
16 17
17 // Find a browser other than |browser|. 18 // Find a browser other than |browser|.
18 Browser* FindOtherBrowser(Browser* browser) { 19 Browser* FindOtherBrowser(Browser* browser) {
19 Browser* found = NULL; 20 Browser* found = NULL;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 ASSERT_TRUE(LoadExtension( 86 ASSERT_TRUE(LoadExtension(
86 test_data_dir_.AppendASCII("management/launch_on_install"))); 87 test_data_dir_.AppendASCII("management/launch_on_install")));
87 ASSERT_TRUE(launcher_loaded.WaitUntilSatisfied()); 88 ASSERT_TRUE(launcher_loaded.WaitUntilSatisfied());
88 89
89 // Load an app with app.launch.container = "panel". 90 // Load an app with app.launch.container = "panel".
90 std::string app_id; 91 std::string app_id;
91 LoadAndWaitForLaunch("management/launch_app_panel", &app_id); 92 LoadAndWaitForLaunch("management/launch_app_panel", &app_id);
92 ASSERT_FALSE(HasFatalFailure()); // Stop the test if any ASSERT failed. 93 ASSERT_FALSE(HasFatalFailure()); // Stop the test if any ASSERT failed.
93 94
94 // Find the app's browser. Check that it is a panel. 95 // Find the app's browser. Check that it is a panel.
95 ASSERT_EQ(2u, BrowserList::GetBrowserCount(browser()->profile())); 96 ASSERT_EQ(2u, browser::GetBrowserCount(browser()->profile()));
96 Browser* app_browser = FindOtherBrowser(browser()); 97 Browser* app_browser = FindOtherBrowser(browser());
97 ASSERT_TRUE(app_browser->is_type_panel()); 98 ASSERT_TRUE(app_browser->is_type_panel());
98 ASSERT_TRUE(app_browser->is_app()); 99 ASSERT_TRUE(app_browser->is_app());
99 100
100 // Close the app panel. 101 // Close the app panel.
101 ui_test_utils::WindowedNotificationObserver signal( 102 ui_test_utils::WindowedNotificationObserver signal(
102 chrome::NOTIFICATION_BROWSER_CLOSED, 103 chrome::NOTIFICATION_BROWSER_CLOSED,
103 content::Source<Browser>(app_browser)); 104 content::Source<Browser>(app_browser));
104 105
105 app_browser->CloseWindow(); 106 app_browser->CloseWindow();
106 signal.Wait(); 107 signal.Wait();
107 108
108 // Unload the extension. 109 // Unload the extension.
109 UninstallExtension(app_id); 110 UninstallExtension(app_id);
110 ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); 111 ASSERT_EQ(1u, browser::GetBrowserCount(browser()->profile()));
111 ASSERT_FALSE(service->GetExtensionById(app_id, true)); 112 ASSERT_FALSE(service->GetExtensionById(app_id, true));
112 113
113 // Set a pref indicating that the user wants to launch in a regular tab. 114 // Set a pref indicating that the user wants to launch in a regular tab.
114 // This should be ignored, because panel apps always load in a panel. 115 // This should be ignored, because panel apps always load in a panel.
115 service->extension_prefs()->SetLaunchType( 116 service->extension_prefs()->SetLaunchType(
116 app_id, ExtensionPrefs::LAUNCH_REGULAR); 117 app_id, ExtensionPrefs::LAUNCH_REGULAR);
117 118
118 // Load the extension again. 119 // Load the extension again.
119 std::string app_id_new; 120 std::string app_id_new;
120 LoadAndWaitForLaunch("management/launch_app_panel", &app_id_new); 121 LoadAndWaitForLaunch("management/launch_app_panel", &app_id_new);
121 ASSERT_FALSE(HasFatalFailure()); 122 ASSERT_FALSE(HasFatalFailure());
122 123
123 // If the ID changed, then the pref will not apply to the app. 124 // If the ID changed, then the pref will not apply to the app.
124 ASSERT_EQ(app_id, app_id_new); 125 ASSERT_EQ(app_id, app_id_new);
125 126
126 // Find the app's browser. Apps that should load in a panel ignore 127 // Find the app's browser. Apps that should load in a panel ignore
127 // prefs, so we should still see the launch in a panel. 128 // prefs, so we should still see the launch in a panel.
128 ASSERT_EQ(2u, BrowserList::GetBrowserCount(browser()->profile())); 129 ASSERT_EQ(2u, browser::GetBrowserCount(browser()->profile()));
129 app_browser = FindOtherBrowser(browser()); 130 app_browser = FindOtherBrowser(browser());
130 ASSERT_TRUE(app_browser->is_type_panel()); 131 ASSERT_TRUE(app_browser->is_type_panel());
131 ASSERT_TRUE(app_browser->is_app()); 132 ASSERT_TRUE(app_browser->is_app());
132 } 133 }
133 134
134 IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, LaunchTabApp) { 135 IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, LaunchTabApp) {
135 ExtensionService* service = browser()->profile()->GetExtensionService(); 136 ExtensionService* service = browser()->profile()->GetExtensionService();
136 137
137 // Load an extension that calls launchApp() on any app that gets 138 // Load an extension that calls launchApp() on any app that gets
138 // installed. 139 // installed.
139 ExtensionTestMessageListener launcher_loaded("launcher loaded", false); 140 ExtensionTestMessageListener launcher_loaded("launcher loaded", false);
140 ASSERT_TRUE(LoadExtension( 141 ASSERT_TRUE(LoadExtension(
141 test_data_dir_.AppendASCII("management/launch_on_install"))); 142 test_data_dir_.AppendASCII("management/launch_on_install")));
142 ASSERT_TRUE(launcher_loaded.WaitUntilSatisfied()); 143 ASSERT_TRUE(launcher_loaded.WaitUntilSatisfied());
143 144
144 // Code below assumes that the test starts with a single browser window 145 // Code below assumes that the test starts with a single browser window
145 // hosting one tab. 146 // hosting one tab.
146 ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); 147 ASSERT_EQ(1u, browser::GetBrowserCount(browser()->profile()));
147 ASSERT_EQ(1, browser()->tab_count()); 148 ASSERT_EQ(1, browser()->tab_count());
148 149
149 // Load an app with app.launch.container = "tab". 150 // Load an app with app.launch.container = "tab".
150 std::string app_id; 151 std::string app_id;
151 LoadAndWaitForLaunch("management/launch_app_tab", &app_id); 152 LoadAndWaitForLaunch("management/launch_app_tab", &app_id);
152 ASSERT_FALSE(HasFatalFailure()); 153 ASSERT_FALSE(HasFatalFailure());
153 154
154 // Check that the app opened in a new tab of the existing browser. 155 // Check that the app opened in a new tab of the existing browser.
155 ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); 156 ASSERT_EQ(1u, browser::GetBrowserCount(browser()->profile()));
156 ASSERT_EQ(2, browser()->tab_count()); 157 ASSERT_EQ(2, browser()->tab_count());
157 158
158 // Unload the extension. 159 // Unload the extension.
159 UninstallExtension(app_id); 160 UninstallExtension(app_id);
160 ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); 161 ASSERT_EQ(1u, browser::GetBrowserCount(browser()->profile()));
161 ASSERT_FALSE(service->GetExtensionById(app_id, true)); 162 ASSERT_FALSE(service->GetExtensionById(app_id, true));
162 163
163 // Set a pref indicating that the user wants to launch in a window. 164 // Set a pref indicating that the user wants to launch in a window.
164 service->extension_prefs()->SetLaunchType( 165 service->extension_prefs()->SetLaunchType(
165 app_id, ExtensionPrefs::LAUNCH_WINDOW); 166 app_id, ExtensionPrefs::LAUNCH_WINDOW);
166 167
167 std::string app_id_new; 168 std::string app_id_new;
168 LoadAndWaitForLaunch("management/launch_app_tab", &app_id_new); 169 LoadAndWaitForLaunch("management/launch_app_tab", &app_id_new);
169 ASSERT_FALSE(HasFatalFailure()); 170 ASSERT_FALSE(HasFatalFailure());
170 171
171 // If the ID changed, then the pref will not apply to the app. 172 // If the ID changed, then the pref will not apply to the app.
172 ASSERT_EQ(app_id, app_id_new); 173 ASSERT_EQ(app_id, app_id_new);
173 174
174 #if defined(OS_MACOSX) 175 #if defined(OS_MACOSX)
175 // App windows are not yet implemented on mac os. We should fall back 176 // App windows are not yet implemented on mac os. We should fall back
176 // to a normal tab. 177 // to a normal tab.
177 ASSERT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile())); 178 ASSERT_EQ(1u, browser::GetBrowserCount(browser()->profile()));
178 ASSERT_EQ(2, browser()->tab_count()); 179 ASSERT_EQ(2, browser()->tab_count());
179 #else 180 #else
180 // Find the app's browser. Opening in a new window will create 181 // Find the app's browser. Opening in a new window will create
181 // a new browser. 182 // a new browser.
182 ASSERT_EQ(2u, BrowserList::GetBrowserCount(browser()->profile())); 183 ASSERT_EQ(2u, browser::GetBrowserCount(browser()->profile()));
183 Browser* app_browser = FindOtherBrowser(browser()); 184 Browser* app_browser = FindOtherBrowser(browser());
184 ASSERT_TRUE(app_browser->is_app()); 185 ASSERT_TRUE(app_browser->is_app());
185 ASSERT_FALSE(app_browser->is_type_panel()); 186 ASSERT_FALSE(app_browser->is_type_panel());
186 #endif 187 #endif
187 } 188 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698