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

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

Issue 12764018: Improve panel related tests to make them more reliable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch Created 7 years, 9 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) 2012 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_command_ids.h" 8 #include "chrome/app/chrome_command_ids.h"
9 #include "chrome/browser/devtools/devtools_window.h" 9 #include "chrome/browser/devtools/devtools_window.h"
10 #include "chrome/browser/extensions/extension_apitest.h" 10 #include "chrome/browser/extensions/extension_apitest.h"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 EXPECT_EQ(Panel::TITLE_ONLY, panel2->expansion_state()); 267 EXPECT_EQ(Panel::TITLE_ONLY, panel2->expansion_state());
268 panel3->SetExpansionState(Panel::MINIMIZED); 268 panel3->SetExpansionState(Panel::MINIMIZED);
269 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state()); 269 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state());
270 scoped_ptr<NativePanelTesting> panel1_testing( 270 scoped_ptr<NativePanelTesting> panel1_testing(
271 CreateNativePanelTesting(panel1)); 271 CreateNativePanelTesting(panel1));
272 scoped_ptr<NativePanelTesting> panel2_testing( 272 scoped_ptr<NativePanelTesting> panel2_testing(
273 CreateNativePanelTesting(panel2)); 273 CreateNativePanelTesting(panel2));
274 scoped_ptr<NativePanelTesting> panel3_testing( 274 scoped_ptr<NativePanelTesting> panel3_testing(
275 CreateNativePanelTesting(panel3)); 275 CreateNativePanelTesting(panel3));
276 276
277 // Ensure that the layout message can get a chance to be processed so that
278 // the button visibility can be updated.
279 MessageLoop::current()->RunUntilIdle();
280
281 EXPECT_EQ(3, panel_manager->num_panels()); 277 EXPECT_EQ(3, panel_manager->num_panels());
282 EXPECT_TRUE(docked_collection->HasPanel(panel1)); 278 EXPECT_TRUE(docked_collection->HasPanel(panel1));
283 EXPECT_TRUE(docked_collection->HasPanel(panel2)); 279 EXPECT_TRUE(docked_collection->HasPanel(panel2));
284 EXPECT_TRUE(docked_collection->HasPanel(panel3)); 280 EXPECT_TRUE(docked_collection->HasPanel(panel3));
285 281
286 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 282 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
287 EXPECT_EQ(Panel::TITLE_ONLY, panel2->expansion_state()); 283 EXPECT_EQ(Panel::TITLE_ONLY, panel2->expansion_state());
288 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state()); 284 EXPECT_EQ(Panel::MINIMIZED, panel3->expansion_state());
289 285
290 EXPECT_TRUE(panel1->IsAlwaysOnTop()); 286 EXPECT_TRUE(panel1->IsAlwaysOnTop());
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 int bottom_bar_thickness_delta = 10; 903 int bottom_bar_thickness_delta = 10;
908 bottom_bar_thickness += bottom_bar_thickness_delta; 904 bottom_bar_thickness += bottom_bar_thickness_delta;
909 int right_bar_thickness_delta = 15; 905 int right_bar_thickness_delta = 15;
910 right_bar_thickness += right_bar_thickness_delta; 906 right_bar_thickness += right_bar_thickness_delta;
911 mock_display_settings_provider()->SetDesktopBarThickness( 907 mock_display_settings_provider()->SetDesktopBarThickness(
912 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_BOTTOM, 908 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_BOTTOM,
913 bottom_bar_thickness); 909 bottom_bar_thickness);
914 mock_display_settings_provider()->SetDesktopBarThickness( 910 mock_display_settings_provider()->SetDesktopBarThickness(
915 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_RIGHT, 911 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_RIGHT,
916 right_bar_thickness); 912 right_bar_thickness);
917 MessageLoopForUI::current()->RunUntilIdle();
918 EXPECT_EQ(initial_starting_right_position, 913 EXPECT_EQ(initial_starting_right_position,
919 docked_collection->StartingRightPosition()); 914 docked_collection->StartingRightPosition());
920 EXPECT_EQ(docked_collection->work_area().bottom() - bottom_bar_thickness, 915 EXPECT_EQ(docked_collection->work_area().bottom() - bottom_bar_thickness,
921 panel->GetBounds().bottom()); 916 panel->GetBounds().bottom());
922 EXPECT_EQ(docked_collection->StartingRightPosition(), 917 EXPECT_EQ(docked_collection->StartingRightPosition(),
923 panel->GetBounds().right()); 918 panel->GetBounds().right());
924 919
925 initial_starting_right_position = docked_collection->StartingRightPosition(); 920 initial_starting_right_position = docked_collection->StartingRightPosition();
926 bottom_bar_thickness_delta = 20; 921 bottom_bar_thickness_delta = 20;
927 bottom_bar_thickness -= bottom_bar_thickness_delta; 922 bottom_bar_thickness -= bottom_bar_thickness_delta;
928 right_bar_thickness_delta = 10; 923 right_bar_thickness_delta = 10;
929 right_bar_thickness -= right_bar_thickness_delta; 924 right_bar_thickness -= right_bar_thickness_delta;
930 mock_display_settings_provider()->SetDesktopBarThickness( 925 mock_display_settings_provider()->SetDesktopBarThickness(
931 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_BOTTOM, 926 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_BOTTOM,
932 bottom_bar_thickness); 927 bottom_bar_thickness);
933 mock_display_settings_provider()->SetDesktopBarThickness( 928 mock_display_settings_provider()->SetDesktopBarThickness(
934 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_RIGHT, 929 DisplaySettingsProvider::DESKTOP_BAR_ALIGNED_RIGHT,
935 right_bar_thickness); 930 right_bar_thickness);
936 MessageLoopForUI::current()->RunUntilIdle();
937 EXPECT_EQ(docked_collection->StartingRightPosition(), 931 EXPECT_EQ(docked_collection->StartingRightPosition(),
938 initial_starting_right_position); 932 initial_starting_right_position);
939 EXPECT_EQ(docked_collection->work_area().bottom() - bottom_bar_thickness, 933 EXPECT_EQ(docked_collection->work_area().bottom() - bottom_bar_thickness,
940 panel->GetBounds().bottom()); 934 panel->GetBounds().bottom());
941 EXPECT_EQ(docked_collection->StartingRightPosition(), 935 EXPECT_EQ(docked_collection->StartingRightPosition(),
942 panel->GetBounds().right()); 936 panel->GetBounds().right());
943 937
944 panel->Close(); 938 panel->Close();
945 } 939 }
946 940
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 1377
1384 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_INACTIVE); 1378 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_INACTIVE);
1385 Panel* panel = CreatePanelWithParams(params); 1379 Panel* panel = CreatePanelWithParams(params);
1386 1380
1387 panel->Activate(); 1381 panel->Activate();
1388 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE); 1382 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE);
1389 1383
1390 panel->Close(); 1384 panel->Close();
1391 } 1385 }
1392 1386
1393 // TODO(dimich): try/enable on other platforms. See bug 103253 for details on
1394 // why this is disabled on windows.
1395 #if defined(OS_MACOSX)
1396 #define MAYBE_MinimizeTwoPanelsWithoutTabbedWindow \
1397 MinimizeTwoPanelsWithoutTabbedWindow
1398 #else
1399 #define MAYBE_MinimizeTwoPanelsWithoutTabbedWindow \
1400 DISABLED_MinimizeTwoPanelsWithoutTabbedWindow
1401 #endif
1402
1403 // When there are 2 panels and no chrome window, minimizing one panel does 1387 // When there are 2 panels and no chrome window, minimizing one panel does
1404 // not expand/focuses another. 1388 // not expand/focuses another.
1405 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, 1389 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeTwoPanelsWithoutTabbedWindow) {
1406 MAYBE_MinimizeTwoPanelsWithoutTabbedWindow) {
1407 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_INACTIVE); 1390 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_INACTIVE);
1408 Panel* panel1 = CreatePanelWithParams(params); 1391 Panel* panel1 = CreatePanelWithParams(params);
1409 Panel* panel2 = CreatePanelWithParams(params); 1392 Panel* panel2 = CreatePanelWithParams(params);
1410 1393
1411 // Close main tabbed window. 1394 // Close main tabbed window.
1412 content::WindowedNotificationObserver signal( 1395 content::WindowedNotificationObserver signal(
1413 chrome::NOTIFICATION_BROWSER_CLOSED, 1396 chrome::NOTIFICATION_BROWSER_CLOSED,
1414 content::Source<Browser>(browser())); 1397 content::Source<Browser>(browser()));
1415 chrome::CloseWindow(browser()); 1398 chrome::CloseWindow(browser());
1416 signal.Wait(); 1399 signal.Wait();
1417 1400
1418 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state()); 1401 EXPECT_EQ(Panel::EXPANDED, panel1->expansion_state());
1419 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state()); 1402 EXPECT_EQ(Panel::EXPANDED, panel2->expansion_state());
1420 panel1->Activate(); 1403 panel1->Activate();
1421 WaitForPanelActiveState(panel1, SHOW_AS_ACTIVE); 1404 WaitForPanelActiveState(panel1, SHOW_AS_ACTIVE);
1422 1405
1423 panel1->SetExpansionState(Panel::MINIMIZED); 1406 panel1->SetExpansionState(Panel::MINIMIZED);
1424 MessageLoop::current()->RunUntilIdle();
1425 WaitForPanelActiveState(panel1, SHOW_AS_INACTIVE); 1407 WaitForPanelActiveState(panel1, SHOW_AS_INACTIVE);
1426 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 1408 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
1427 1409
1428 panel2->SetExpansionState(Panel::MINIMIZED); 1410 panel2->SetExpansionState(Panel::MINIMIZED);
1429 MessageLoop::current()->RunUntilIdle();
1430 WaitForPanelActiveState(panel2, SHOW_AS_INACTIVE); 1411 WaitForPanelActiveState(panel2, SHOW_AS_INACTIVE);
1431 EXPECT_EQ(Panel::MINIMIZED, panel2->expansion_state()); 1412 EXPECT_EQ(Panel::MINIMIZED, panel2->expansion_state());
1432 1413
1433 // Verify that panel1 is still minimized and not active. 1414 // Verify that panel1 is still minimized and not active.
1434 WaitForPanelActiveState(panel1, SHOW_AS_INACTIVE); 1415 WaitForPanelActiveState(panel1, SHOW_AS_INACTIVE);
1435 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 1416 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
1436 1417
1437 // Another check for the same. 1418 // Another check for the same.
1438 EXPECT_FALSE(panel1->IsActive()); 1419 EXPECT_FALSE(panel1->IsActive());
1439 EXPECT_FALSE(panel2->IsActive()); 1420 EXPECT_FALSE(panel2->IsActive());
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
1823 #else 1804 #else
1824 #define MAYBE_FocusChangeEventOnMinimize FocusChangeEventOnMinimize 1805 #define MAYBE_FocusChangeEventOnMinimize FocusChangeEventOnMinimize
1825 #endif 1806 #endif
1826 IN_PROC_BROWSER_TEST_F(PanelExtensionApiTest, 1807 IN_PROC_BROWSER_TEST_F(PanelExtensionApiTest,
1827 MAYBE_FocusChangeEventOnMinimize) { 1808 MAYBE_FocusChangeEventOnMinimize) {
1828 // This is needed so the subsequently created panels can be activated. 1809 // This is needed so the subsequently created panels can be activated.
1829 // On a Mac, it transforms background-only test process into foreground one. 1810 // On a Mac, it transforms background-only test process into foreground one.
1830 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 1811 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
1831 ASSERT_TRUE(RunExtensionTest("panels/focus_change_on_minimize")) << message_; 1812 ASSERT_TRUE(RunExtensionTest("panels/focus_change_on_minimize")) << message_;
1832 } 1813 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/panels/docked_panel_collection.cc ('k') | chrome/browser/ui/panels/panel_collection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698