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

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

Issue 7981012: Add Mouse hover behavior to Mac Panels when minimized (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cr feedback Created 9 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 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 "chrome/browser/prefs/pref_service.h" 5 #include "chrome/browser/prefs/pref_service.h"
6 #include "chrome/browser/profiles/profile.h" 6 #include "chrome/browser/profiles/profile.h"
7 #include "chrome/browser/ui/browser_list.h" 7 #include "chrome/browser/ui/browser_list.h"
8 #include "chrome/browser/ui/browser_window.h" 8 #include "chrome/browser/ui/browser_window.h"
9 #include "chrome/browser/ui/find_bar/find_bar.h" 9 #include "chrome/browser/ui/find_bar/find_bar.h"
10 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 10 #include "chrome/browser/ui/find_bar/find_bar_controller.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 expected_panel_menu_items[4].enabled = true; 297 expected_panel_menu_items[4].enabled = true;
298 } 298 }
299 ValidateSettingsMenuItems(settings_menu_model.get(), 299 ValidateSettingsMenuItems(settings_menu_model.get(),
300 arraysize(expected_panel_menu_items), 300 arraysize(expected_panel_menu_items),
301 expected_panel_menu_items); 301 expected_panel_menu_items);
302 302
303 panel->Close(); 303 panel->Close();
304 } 304 }
305 305
306 void TestMinimizeRestore() { 306 void TestMinimizeRestore() {
307 // This constant is used to generate a point 'sufficiently higher then
308 // top edge of the panel'. On some platforms (Mac) we extend hover area
309 // a bit above the minimized panel as well, so it takes significant
310 // distance to 'move mouse out' of the hover-sensitive area.
311 const int kFarEnoughFromHoverArea = 153;
312
307 std::vector<Panel*> panels = PanelManager::GetInstance()->panels(); 313 std::vector<Panel*> panels = PanelManager::GetInstance()->panels();
308 std::vector<gfx::Rect> test_begin_bounds = GetAllPanelsBounds(); 314 std::vector<gfx::Rect> test_begin_bounds = GetAllPanelsBounds();
309 std::vector<gfx::Rect> expected_bounds = test_begin_bounds; 315 std::vector<gfx::Rect> expected_bounds = test_begin_bounds;
310 std::vector<Panel::ExpansionState> expected_expansion_states( 316 std::vector<Panel::ExpansionState> expected_expansion_states(
311 panels.size(), Panel::EXPANDED); 317 panels.size(), Panel::EXPANDED);
312 std::vector<NativePanelTesting*> native_panels_testing(panels.size()); 318 std::vector<NativePanelTesting*> native_panels_testing(panels.size());
313 for (size_t i = 0; i < panels.size(); ++i) { 319 for (size_t i = 0; i < panels.size(); ++i) {
314 native_panels_testing[i] = 320 native_panels_testing[i] =
315 NativePanelTesting::Create(panels[i]->native_panel()); 321 NativePanelTesting::Create(panels[i]->native_panel());
316 } 322 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 for (size_t index = 0; index < panels.size(); ++index) { 364 for (size_t index = 0; index < panels.size(); ++index) {
359 // Hover mouse on minimized panel. 365 // Hover mouse on minimized panel.
360 // Verify titlebar is exposed on all panels. 366 // Verify titlebar is exposed on all panels.
361 gfx::Point hover_point(panels[index]->GetRestoredBounds().origin()); 367 gfx::Point hover_point(panels[index]->GetRestoredBounds().origin());
362 native_panels_testing[index]->SetMousePositionForMinimizeRestore( 368 native_panels_testing[index]->SetMousePositionForMinimizeRestore(
363 hover_point); 369 hover_point);
364 CheckPanelBounds(panels, titlebar_exposed_bounds); 370 CheckPanelBounds(panels, titlebar_exposed_bounds);
365 CheckExpansionStates(titlebar_exposed_states); 371 CheckExpansionStates(titlebar_exposed_states);
366 372
367 // Hover mouse above the panel. Verify all panels are minimized. 373 // Hover mouse above the panel. Verify all panels are minimized.
368 hover_point.set_y(panels[index]->GetRestoredBounds().y() - 10); 374 hover_point.set_y(
375 panels[index]->GetRestoredBounds().y() - kFarEnoughFromHoverArea);
369 native_panels_testing[index]->SetMousePositionForMinimizeRestore( 376 native_panels_testing[index]->SetMousePositionForMinimizeRestore(
370 hover_point); 377 hover_point);
371 CheckPanelBounds(panels, minimized_bounds); 378 CheckPanelBounds(panels, minimized_bounds);
372 CheckExpansionStates(minimized_states); 379 CheckExpansionStates(minimized_states);
373 380
374 // Hover mouse below minimized panel. 381 // Hover mouse below minimized panel.
375 // Verify titlebar is exposed on all panels. 382 // Verify titlebar is exposed on all panels.
376 hover_point.set_y(panels[index]->GetRestoredBounds().y() + 383 hover_point.set_y(panels[index]->GetRestoredBounds().y() +
377 panels[index]->GetRestoredBounds().height() + 5); 384 panels[index]->GetRestoredBounds().height() + 5);
378 native_panels_testing[index]->SetMousePositionForMinimizeRestore( 385 native_panels_testing[index]->SetMousePositionForMinimizeRestore(
379 hover_point); 386 hover_point);
380 CheckPanelBounds(panels, titlebar_exposed_bounds); 387 CheckPanelBounds(panels, titlebar_exposed_bounds);
381 CheckExpansionStates(titlebar_exposed_states); 388 CheckExpansionStates(titlebar_exposed_states);
382 389
383 // Hover below titlebar exposed panel. Verify nothing changed. 390 // Hover below titlebar exposed panel. Verify nothing changed.
384 hover_point.set_y(panels[index]->GetRestoredBounds().y() + 391 hover_point.set_y(panels[index]->GetRestoredBounds().y() +
385 panels[index]->GetRestoredBounds().height() + 6); 392 panels[index]->GetRestoredBounds().height() + 6);
386 native_panels_testing[index]->SetMousePositionForMinimizeRestore( 393 native_panels_testing[index]->SetMousePositionForMinimizeRestore(
387 hover_point); 394 hover_point);
388 CheckPanelBounds(panels, titlebar_exposed_bounds); 395 CheckPanelBounds(panels, titlebar_exposed_bounds);
389 CheckExpansionStates(titlebar_exposed_states); 396 CheckExpansionStates(titlebar_exposed_states);
390 397
391 // Hover mouse above panel. Verify all panels are minimized. 398 // Hover mouse above panel. Verify all panels are minimized.
392 hover_point.set_y(panels[index]->GetRestoredBounds().y() - 10); 399 hover_point.set_y(
400 panels[index]->GetRestoredBounds().y() - kFarEnoughFromHoverArea);
393 native_panels_testing[index]->SetMousePositionForMinimizeRestore( 401 native_panels_testing[index]->SetMousePositionForMinimizeRestore(
394 hover_point); 402 hover_point);
395 CheckPanelBounds(panels, minimized_bounds); 403 CheckPanelBounds(panels, minimized_bounds);
396 CheckExpansionStates(minimized_states); 404 CheckExpansionStates(minimized_states);
397 } 405 }
398 406
399 // Test restore. All panels are currently in minimized state. 407 // Test restore. All panels are currently in minimized state.
400 for (size_t index = 0; index < panels.size(); ++index) { 408 for (size_t index = 0; index < panels.size(); ++index) {
401 // Hover on the last panel. This is to test the case of clicking on the 409 // Hover on the last panel. This is to test the case of clicking on the
402 // panel when it's in titlebar exposed state. 410 // panel when it's in titlebar exposed state.
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); 815 MessageLoop::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask());
808 MessageLoop::current()->RunAllPending(); 816 MessageLoop::current()->RunAllPending();
809 } 817 }
810 EXPECT_LT(bounds_on_shrink.width(), bounds_on_grow.width()); 818 EXPECT_LT(bounds_on_shrink.width(), bounds_on_grow.width());
811 EXPECT_GT(bounds_on_shrink.width(), initial_bounds.width()); 819 EXPECT_GT(bounds_on_shrink.width(), initial_bounds.width());
812 EXPECT_EQ(bounds_on_shrink.height(), initial_bounds.height()); 820 EXPECT_EQ(bounds_on_shrink.height(), initial_bounds.height());
813 821
814 panel->Close(); 822 panel->Close();
815 } 823 }
816 824
817 #if defined(TOOLKIT_GTK) 825 #if defined(TOOLKIT_GTK) || defined(OS_MACOSX)
818 #define MAYBE_MinimizeRestore MinimizeRestore 826 #define MAYBE_MinimizeRestore MinimizeRestore
819 #else 827 #else
820 #define MAYBE_MinimizeRestore DISABLED_MinimizeRestore 828 #define MAYBE_MinimizeRestore DISABLED_MinimizeRestore
821 #endif 829 #endif
822 830
823 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MAYBE_MinimizeRestore) { 831 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MAYBE_MinimizeRestore) {
824 // Disable mouse watcher. We'll simulate mouse movements for test. 832 // Disable mouse watcher. We'll simulate mouse movements for test.
825 NativePanelTesting::GetPanelMouseWatcherInstance()->EnableTestingMode(); 833 NativePanelTesting::GetPanelMouseWatcherInstance()->EnableTestingMode();
826 834
827 // Test with one panel. 835 // Test with one panel.
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 EXPECT_EQ(1, tabbed_browser->tab_count()); 1004 EXPECT_EQ(1, tabbed_browser->tab_count());
997 ASSERT_TRUE(tabbed_browser->window()->IsDownloadShelfVisible()); 1005 ASSERT_TRUE(tabbed_browser->window()->IsDownloadShelfVisible());
998 tabbed_browser->CloseWindow(); 1006 tabbed_browser->CloseWindow();
999 #endif 1007 #endif
1000 1008
1001 EXPECT_EQ(1, panel_browser->tab_count()); 1009 EXPECT_EQ(1, panel_browser->tab_count());
1002 ASSERT_FALSE(panel_browser->window()->IsDownloadShelfVisible()); 1010 ASSERT_FALSE(panel_browser->window()->IsDownloadShelfVisible());
1003 1011
1004 panel_browser->CloseWindow(); 1012 panel_browser->CloseWindow();
1005 } 1013 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698