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

Side by Side Diff: chrome/browser/ui/panels/panel_browser_view_browsertest.cc

Issue 7646003: Support auto-hide taskbar for panels on Windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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) 2011 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" 5 #include "base/command_line.h"
6 #include "base/i18n/time_formatting.h" 6 #include "base/i18n/time_formatting.h"
7 #include "chrome/browser/extensions/extension_service.h" 7 #include "chrome/browser/extensions/extension_service.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_window.h" 10 #include "chrome/browser/ui/browser_window.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 EXPECT_EQ(PanelBrowserFrameView::PAINT_AS_INACTIVE, 193 EXPECT_EQ(PanelBrowserFrameView::PAINT_AS_INACTIVE,
194 frame_view2->paint_state_); 194 frame_view2->paint_state_);
195 195
196 browser_view1->panel()->Close(); 196 browser_view1->panel()->Close();
197 browser_view2->panel()->Close(); 197 browser_view2->panel()->Close();
198 } 198 }
199 199
200 // We put all the testing logic in this class instead of the test so that 200 // We put all the testing logic in this class instead of the test so that
201 // we do not need to declare each new test as a friend of PanelBrowserView 201 // we do not need to declare each new test as a friend of PanelBrowserView
202 // for the purpose of accessing its private members. 202 // for the purpose of accessing its private members.
203 void TestMinimizeAndRestore() { 203 void TestMinimizeAndRestore(int auto_hide_bottom_bar_height) {
204 PanelManager* panel_manager = PanelManager::GetInstance();
205
206 // Specify the work area for testing purpose.
207 const int kTestWorkAreaWidth = 800;
208 const int kTestWorkAreaHeight = 600;
209 panel_manager->SetWorkArea(
210 gfx::Rect(0, 0, kTestWorkAreaWidth, kTestWorkAreaHeight),
211 auto_hide_bottom_bar_height);
212 panel_manager->should_check_auto_hide_bottom_bar_on_titlebar_change_ =
213 false;
214 int expected_bottom_on_unminimized =
215 kTestWorkAreaHeight - auto_hide_bottom_bar_height;
216 int expected_bottom_on_minimized = kTestWorkAreaHeight;
217
218 // Create and test one panel first.
204 PanelBrowserView* browser_view1 = CreatePanelBrowserView("PanelTest1", 219 PanelBrowserView* browser_view1 = CreatePanelBrowserView("PanelTest1",
205 SHOW_AS_ACTIVE); 220 SHOW_AS_ACTIVE);
206 Panel* panel1 = browser_view1->panel_.get(); 221 Panel* panel1 = browser_view1->panel_.get();
207 PanelBrowserFrameView* frame_view1 = browser_view1->GetFrameView(); 222 PanelBrowserFrameView* frame_view1 = browser_view1->GetFrameView();
208 223
209 // Test minimizing/restoring an individual panel. 224 // Test minimizing/restoring an individual panel.
210 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 225 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
211 int initial_height = panel1->GetBounds().height(); 226 int initial_height = panel1->GetBounds().height();
212 int titlebar_height = 227 int titlebar_height =
213 browser_view1->GetFrameView()->NonClientTopBorderHeight(); 228 browser_view1->GetFrameView()->NonClientTopBorderHeight();
214 229
215 panel1->SetExpansionState(Panel::MINIMIZED); 230 panel1->SetExpansionState(Panel::MINIMIZED);
216 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 231 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
217 EXPECT_LT(panel1->GetBounds().height(), titlebar_height); 232 EXPECT_LT(panel1->GetBounds().height(), titlebar_height);
218 EXPECT_GT(panel1->GetBounds().height(), 0); 233 EXPECT_GT(panel1->GetBounds().height(), 0);
234 EXPECT_EQ(expected_bottom_on_minimized, panel1->GetBounds().bottom());
219 EXPECT_TRUE(IsMouseWatcherStarted()); 235 EXPECT_TRUE(IsMouseWatcherStarted());
220 EXPECT_FALSE(panel1->IsActive()); 236 EXPECT_FALSE(panel1->IsActive());
221 WaitTillBoundsAnimationFinished(browser_view1); 237 WaitTillBoundsAnimationFinished(browser_view1);
222 // TODO(jianli): Enable the following checks after the patch to support 238 // TODO(jianli): Enable the following checks after the patch to support
223 // minimizing window to 3-pixel line is landed. 239 // minimizing window to 3-pixel line is landed.
224 //EXPECT_FALSE(frame_view1->close_button_->IsVisible()); 240 //EXPECT_FALSE(frame_view1->close_button_->IsVisible());
225 //EXPECT_FALSE(frame_view1->title_icon_->IsVisible()); 241 //EXPECT_FALSE(frame_view1->title_icon_->IsVisible());
226 //EXPECT_FALSE(frame_view1->title_label_->IsVisible()); 242 //EXPECT_FALSE(frame_view1->title_label_->IsVisible());
227 243
228 panel1->SetExpansionState(Panel::TITLE_ONLY); 244 panel1->SetExpansionState(Panel::TITLE_ONLY);
229 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state()); 245 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state());
230 EXPECT_EQ(titlebar_height, panel1->GetBounds().height()); 246 EXPECT_EQ(titlebar_height, panel1->GetBounds().height());
247 EXPECT_EQ(expected_bottom_on_unminimized, panel1->GetBounds().bottom());
231 WaitTillBoundsAnimationFinished(browser_view1); 248 WaitTillBoundsAnimationFinished(browser_view1);
232 EXPECT_TRUE(frame_view1->close_button_->IsVisible()); 249 EXPECT_TRUE(frame_view1->close_button_->IsVisible());
233 EXPECT_TRUE(frame_view1->title_icon_->IsVisible()); 250 EXPECT_TRUE(frame_view1->title_icon_->IsVisible());
234 EXPECT_TRUE(frame_view1->title_label_->IsVisible()); 251 EXPECT_TRUE(frame_view1->title_label_->IsVisible());
235 252
236 panel1->SetExpansionState(Panel::EXPANDED); 253 panel1->SetExpansionState(Panel::EXPANDED);
237 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 254 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
238 EXPECT_EQ(initial_height, panel1->GetBounds().height()); 255 EXPECT_EQ(initial_height, panel1->GetBounds().height());
256 EXPECT_EQ(expected_bottom_on_unminimized, panel1->GetBounds().bottom());
239 WaitTillBoundsAnimationFinished(browser_view1); 257 WaitTillBoundsAnimationFinished(browser_view1);
240 EXPECT_TRUE(frame_view1->close_button_->IsVisible()); 258 EXPECT_TRUE(frame_view1->close_button_->IsVisible());
241 EXPECT_TRUE(frame_view1->title_icon_->IsVisible()); 259 EXPECT_TRUE(frame_view1->title_icon_->IsVisible());
242 EXPECT_TRUE(frame_view1->title_label_->IsVisible()); 260 EXPECT_TRUE(frame_view1->title_label_->IsVisible());
243 261
244 panel1->SetExpansionState(Panel::TITLE_ONLY); 262 panel1->SetExpansionState(Panel::TITLE_ONLY);
245 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state()); 263 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state());
246 EXPECT_EQ(titlebar_height, panel1->GetBounds().height()); 264 EXPECT_EQ(titlebar_height, panel1->GetBounds().height());
265 EXPECT_EQ(expected_bottom_on_unminimized, panel1->GetBounds().bottom());
247 266
248 panel1->SetExpansionState(Panel::MINIMIZED); 267 panel1->SetExpansionState(Panel::MINIMIZED);
249 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 268 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
250 EXPECT_LT(panel1->GetBounds().height(), titlebar_height); 269 EXPECT_LT(panel1->GetBounds().height(), titlebar_height);
251 EXPECT_GT(panel1->GetBounds().height(), 0); 270 EXPECT_GT(panel1->GetBounds().height(), 0);
271 EXPECT_EQ(expected_bottom_on_minimized, panel1->GetBounds().bottom());
252 272
253 // Create 2 more panels for more testing. 273 // Create 2 more panels for more testing.
254 PanelBrowserView* browser_view2 = CreatePanelBrowserView("PanelTest2", 274 PanelBrowserView* browser_view2 = CreatePanelBrowserView("PanelTest2",
255 SHOW_AS_ACTIVE); 275 SHOW_AS_ACTIVE);
256 Panel* panel2 = browser_view2->panel_.get(); 276 Panel* panel2 = browser_view2->panel_.get();
257 277
258 PanelBrowserView* browser_view3 = CreatePanelBrowserView("PanelTest3", 278 PanelBrowserView* browser_view3 = CreatePanelBrowserView("PanelTest3",
259 SHOW_AS_ACTIVE); 279 SHOW_AS_ACTIVE);
260 Panel* panel3 = browser_view3->panel_.get(); 280 Panel* panel3 = browser_view3->panel_.get();
261 281
262 // Test bringing up or down the title-bar of all minimized panels. 282 // Test bringing up or down the title-bar of all minimized panels.
263 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 283 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
264 panel3->SetExpansionState(Panel::MINIMIZED); 284 panel3->SetExpansionState(Panel::MINIMIZED);
265 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state()); 285 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state());
266 286
267 PanelManager* panel_manager = PanelManager::GetInstance(); 287 panel_manager->BringUpTitleBar();
268
269 panel_manager->BringUpOrDownTitleBarForAllMinimizedPanels(true);
270 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state()); 288 EXPECT_EQ(Panel::TITLE_ONLY, panel1->expansion_state());
271 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 289 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
272 EXPECT_EQ(Panel::TITLE_ONLY, panel3->expansion_state()); 290 EXPECT_EQ(Panel::TITLE_ONLY, panel3->expansion_state());
273 291
274 panel_manager->BringUpOrDownTitleBarForAllMinimizedPanels(false); 292 panel_manager->BringDownTitleBar();
275 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 293 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
276 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 294 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
277 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state()); 295 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state());
278 296
279 // Test if it is OK to bring up title-bar given the mouse position. 297 // Test if it is OK to bring up title-bar given the mouse position.
280 EXPECT_TRUE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels( 298 EXPECT_TRUE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels(
281 panel1->GetBounds().x(), panel1->GetBounds().y())); 299 panel1->GetBounds().x(), panel1->GetBounds().y()));
282 EXPECT_FALSE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels( 300 EXPECT_FALSE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels(
283 panel2->GetBounds().x(), panel2->GetBounds().y())); 301 panel2->GetBounds().x(), panel2->GetBounds().y()));
284 EXPECT_TRUE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels( 302 EXPECT_TRUE(panel_manager->ShouldBringUpTitleBarForAllMinimizedPanels(
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 MessageLoop::current()->RunAllPending(); 353 MessageLoop::current()->RunAllPending();
336 EXPECT_EQ(attention_color, frame_view->title_label_->GetColor()); 354 EXPECT_EQ(attention_color, frame_view->title_label_->GetColor());
337 355
338 // Test that we cannot bring up other minimized panel if the mouse is over 356 // Test that we cannot bring up other minimized panel if the mouse is over
339 // the panel that draws attension. 357 // the panel that draws attension.
340 EXPECT_FALSE(PanelManager::GetInstance()-> 358 EXPECT_FALSE(PanelManager::GetInstance()->
341 ShouldBringUpTitleBarForAllMinimizedPanels( 359 ShouldBringUpTitleBarForAllMinimizedPanels(
342 panel->GetBounds().x(), panel->GetBounds().y())); 360 panel->GetBounds().x(), panel->GetBounds().y()));
343 361
344 // Test that we cannot bring down the panel that is drawing the attention. 362 // Test that we cannot bring down the panel that is drawing the attention.
345 PanelManager::GetInstance()->BringUpOrDownTitleBarForAllMinimizedPanels( 363 PanelManager::GetInstance()->BringDownTitleBar();
346 false);
347 EXPECT_EQ(Panel::TITLE_ONLY, panel->expansion_state()); 364 EXPECT_EQ(Panel::TITLE_ONLY, panel->expansion_state());
348 365
349 // Test that the attention is cleared. 366 // Test that the attention is cleared.
350 browser_view->StopDrawingAttention(); 367 browser_view->StopDrawingAttention();
351 EXPECT_FALSE(browser_view->IsDrawingAttention()); 368 EXPECT_FALSE(browser_view->IsDrawingAttention());
352 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); 369 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state());
353 MessageLoop::current()->RunAllPending(); 370 MessageLoop::current()->RunAllPending();
354 EXPECT_NE(attention_color, frame_view->title_label_->GetColor()); 371 EXPECT_NE(attention_color, frame_view->title_label_->GetColor());
355 372
356 panel->Close(); 373 panel->Close();
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 497
481 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, CreateSettingsMenu) { 498 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, CreateSettingsMenu) {
482 TestCreateSettingsMenuForExtension( 499 TestCreateSettingsMenuForExtension(
483 FILE_PATH_LITERAL("extension1"), Extension::EXTERNAL_POLICY_DOWNLOAD, 500 FILE_PATH_LITERAL("extension1"), Extension::EXTERNAL_POLICY_DOWNLOAD,
484 "", ""); 501 "", "");
485 TestCreateSettingsMenuForExtension( 502 TestCreateSettingsMenuForExtension(
486 FILE_PATH_LITERAL("extension2"), Extension::INVALID, 503 FILE_PATH_LITERAL("extension2"), Extension::INVALID,
487 "http://home", "options.html"); 504 "http://home", "options.html");
488 } 505 }
489 506
490 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, MinimizeAndRestore) { 507 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest,
491 TestMinimizeAndRestore(); 508 MinimizeAndRestoreOnNormalTaskBar) {
509 // Test that the taskbar is always visible.
510 TestMinimizeAndRestore(0);
Dmitry Titov 2011/08/17 22:56:38 It's incorrect to call a helper function and then
jianli 2011/08/22 20:44:42 The helper function does not use ASSERT_* so it is
511 }
512
513 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest,
514 MinimizeAndRestoreOnAutoHideTaskBar) {
515 // Test that the taskbar is in auto-hide mode.
516 TestMinimizeAndRestore(40);
492 } 517 }
493 518
494 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, DrawAttention) { 519 IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, DrawAttention) {
495 TestDrawAttention(); 520 TestDrawAttention();
496 } 521 }
497 #endif 522 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698