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

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

Issue 10836159: Fix bug 141013: OldPanelBrowserTest.CheckDockedPanelProperties is flaky (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 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) 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/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/download/download_service.h" 7 #include "chrome/browser/download/download_service.h"
8 #include "chrome/browser/download/download_service_factory.h" 8 #include "chrome/browser/download/download_service_factory.h"
9 #include "chrome/browser/net/url_request_mock_util.h" 9 #include "chrome/browser/net/url_request_mock_util.h"
10 #include "chrome/browser/prefs/browser_prefs.h" 10 #include "chrome/browser/prefs/browser_prefs.h"
11 #include "chrome/browser/prefs/pref_service.h" 11 #include "chrome/browser/prefs/pref_service.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog.h" 13 #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog.h"
14 #include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h" 14 #include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h"
15 #include "chrome/browser/ui/browser_commands.h" 15 #include "chrome/browser/ui/browser_commands.h"
16 #include "chrome/browser/ui/browser_finder.h" 16 #include "chrome/browser/ui/browser_finder.h"
17 #include "chrome/browser/ui/browser_list.h" 17 #include "chrome/browser/ui/browser_list.h"
18 #include "chrome/browser/ui/browser_tabstrip.h" 18 #include "chrome/browser/ui/browser_tabstrip.h"
19 #include "chrome/browser/ui/browser_window.h" 19 #include "chrome/browser/ui/browser_window.h"
20 #include "chrome/browser/ui/find_bar/find_bar.h" 20 #include "chrome/browser/ui/find_bar/find_bar.h"
21 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 21 #include "chrome/browser/ui/find_bar/find_bar_controller.h"
22 #include "chrome/browser/ui/panels/base_panel_browser_test.h" 22 #include "chrome/browser/ui/panels/base_panel_browser_test.h"
23 #include "chrome/browser/ui/panels/docked_panel_strip.h" 23 #include "chrome/browser/ui/panels/docked_panel_strip.h"
24 #include "chrome/browser/ui/panels/native_panel.h" 24 #include "chrome/browser/ui/panels/native_panel.h"
25 #include "chrome/browser/ui/panels/panel.h" 25 #include "chrome/browser/ui/panels/panel.h"
26 #include "chrome/browser/ui/panels/panel_manager.h" 26 #include "chrome/browser/ui/panels/panel_manager.h"
27 #include "chrome/browser/ui/panels/test_panel_mouse_watcher.h"
28 #include "chrome/browser/ui/tabs/tab_strip_model.h" 27 #include "chrome/browser/ui/tabs/tab_strip_model.h"
29 #include "chrome/browser/web_applications/web_app.h" 28 #include "chrome/browser/web_applications/web_app.h"
30 #include "chrome/common/chrome_notification_types.h" 29 #include "chrome/common/chrome_notification_types.h"
31 #include "chrome/common/extensions/extension_manifest_constants.h" 30 #include "chrome/common/extensions/extension_manifest_constants.h"
32 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
33 #include "chrome/common/url_constants.h" 32 #include "chrome/common/url_constants.h"
34 #include "chrome/test/base/ui_test_utils.h" 33 #include "chrome/test/base/ui_test_utils.h"
35 #include "content/public/browser/download_manager.h" 34 #include "content/public/browser/download_manager.h"
36 #include "content/public/browser/notification_service.h" 35 #include "content/public/browser/notification_service.h"
37 #include "content/public/browser/web_contents.h" 36 #include "content/public/browser/web_contents.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 for (size_t i = 0; i < panels.size(); ++i) 257 for (size_t i = 0; i < panels.size(); ++i)
259 delete native_panels_testing[i]; 258 delete native_panels_testing[i];
260 } 259 }
261 }; 260 };
262 261
263 // Flaky (sometimes timeout): http://crbug.com/140971 262 // Flaky (sometimes timeout): http://crbug.com/140971
264 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, DISABLED_CheckDockedPanelProperties) { 263 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, DISABLED_CheckDockedPanelProperties) {
265 PanelManager* panel_manager = PanelManager::GetInstance(); 264 PanelManager* panel_manager = PanelManager::GetInstance();
266 DockedPanelStrip* docked_strip = panel_manager->docked_strip(); 265 DockedPanelStrip* docked_strip = panel_manager->docked_strip();
267 266
268 // Don't let actual mouse movements affect this test as that may affect
269 // minimized vs title-only state.
270 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
271 panel_manager->SetMouseWatcherForTesting(mouse_watcher);
272
273 // Create 3 docked panels that are in expanded, title-only or minimized states 267 // Create 3 docked panels that are in expanded, title-only or minimized states
274 // respectively. 268 // respectively.
275 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 100, 100)); 269 Panel* panel1 = CreatePanelWithBounds("1", gfx::Rect(0, 0, 100, 100));
276 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 100, 100)); 270 Panel* panel2 = CreatePanelWithBounds("2", gfx::Rect(0, 0, 100, 100));
277 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 100)); 271 Panel* panel3 = CreatePanelWithBounds("3", gfx::Rect(0, 0, 100, 100));
278 panel2->SetExpansionState(Panel::TITLE_ONLY); 272 panel2->SetExpansionState(Panel::TITLE_ONLY);
279 WaitForExpansionStateChanged(panel2, Panel::TITLE_ONLY); 273 WaitForExpansionStateChanged(panel2, Panel::TITLE_ONLY);
280 panel3->SetExpansionState(Panel::MINIMIZED); 274 panel3->SetExpansionState(Panel::MINIMIZED);
281 WaitForExpansionStateChanged(panel3, Panel::MINIMIZED); 275 WaitForExpansionStateChanged(panel3, Panel::MINIMIZED);
282 scoped_ptr<NativePanelTesting> panel1_testing( 276 scoped_ptr<NativePanelTesting> panel1_testing(
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 // Set bounds without animation. 478 // Set bounds without animation.
485 bounds = gfx::Rect(30, 40, 200, 220); 479 bounds = gfx::Rect(30, 40, 200, 220);
486 panel->SetPanelBoundsInstantly(bounds); 480 panel->SetPanelBoundsInstantly(bounds);
487 EXPECT_FALSE(panel_testing->IsAnimatingBounds()); 481 EXPECT_FALSE(panel_testing->IsAnimatingBounds());
488 EXPECT_EQ(bounds, panel->GetBounds()); 482 EXPECT_EQ(bounds, panel->GetBounds());
489 483
490 panel->Close(); 484 panel->Close();
491 } 485 }
492 486
493 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, RestoredBounds) { 487 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, RestoredBounds) {
494 // Disable mouse watcher. We don't care about mouse movements in this test.
495 PanelManager* panel_manager = PanelManager::GetInstance();
496 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
497 panel_manager->SetMouseWatcherForTesting(mouse_watcher);
498 Panel* panel = CreatePanelWithBounds("PanelTest", gfx::Rect(0, 0, 100, 100)); 488 Panel* panel = CreatePanelWithBounds("PanelTest", gfx::Rect(0, 0, 100, 100));
499 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); 489 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state());
500 EXPECT_EQ(panel->GetBounds(), panel->GetRestoredBounds()); 490 EXPECT_EQ(panel->GetBounds(), panel->GetRestoredBounds());
501 491
502 panel->SetExpansionState(Panel::MINIMIZED); 492 panel->SetExpansionState(Panel::MINIMIZED);
503 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); 493 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state());
504 gfx::Rect bounds = panel->GetBounds(); 494 gfx::Rect bounds = panel->GetBounds();
505 gfx::Rect restored = panel->GetRestoredBounds(); 495 gfx::Rect restored = panel->GetRestoredBounds();
506 EXPECT_EQ(bounds.x(), restored.x()); 496 EXPECT_EQ(bounds.x(), restored.x());
507 EXPECT_GT(bounds.y(), restored.y()); 497 EXPECT_GT(bounds.y(), restored.y());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 bounds = gfx::Rect(40, 60, 300, 400); 535 bounds = gfx::Rect(40, 60, 300, 400);
546 panel->SetPanelBounds(bounds); 536 panel->SetPanelBounds(bounds);
547 EXPECT_EQ(saved_restored_height, panel->GetRestoredBounds().height()); 537 EXPECT_EQ(saved_restored_height, panel->GetRestoredBounds().height());
548 panel->set_full_size(bounds.size()); 538 panel->set_full_size(bounds.size());
549 EXPECT_NE(saved_restored_height, panel->GetRestoredBounds().height()); 539 EXPECT_NE(saved_restored_height, panel->GetRestoredBounds().height());
550 540
551 panel->Close(); 541 panel->Close();
552 } 542 }
553 543
554 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestore) { 544 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestore) {
555 // We'll simulate mouse movements for test.
556 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
557 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
558
559 // Test with one panel. 545 // Test with one panel.
560 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100)); 546 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100));
561 TestMinimizeRestore(); 547 TestMinimizeRestore();
562 548
563 PanelManager::GetInstance()->CloseAll(); 549 PanelManager::GetInstance()->CloseAll();
564 } 550 }
565 551
566 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreTwoPanels) { 552 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreTwoPanels) {
567 // We'll simulate mouse movements for test.
568 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
569 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
570
571 // Test with two panels. 553 // Test with two panels.
572 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100)); 554 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100));
573 CreatePanelWithBounds("PanelTest2", gfx::Rect(0, 0, 110, 110)); 555 CreatePanelWithBounds("PanelTest2", gfx::Rect(0, 0, 110, 110));
574 TestMinimizeRestore(); 556 TestMinimizeRestore();
575 557
576 PanelManager::GetInstance()->CloseAll(); 558 PanelManager::GetInstance()->CloseAll();
577 } 559 }
578 560
579 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreThreePanels) { 561 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreThreePanels) {
580 // We'll simulate mouse movements for test.
581 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
582 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
583
584 // Test with three panels. 562 // Test with three panels.
585 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100)); 563 CreatePanelWithBounds("PanelTest1", gfx::Rect(0, 0, 100, 100));
586 CreatePanelWithBounds("PanelTest2", gfx::Rect(0, 0, 110, 110)); 564 CreatePanelWithBounds("PanelTest2", gfx::Rect(0, 0, 110, 110));
587 CreatePanelWithBounds("PanelTest3", gfx::Rect(0, 0, 120, 120)); 565 CreatePanelWithBounds("PanelTest3", gfx::Rect(0, 0, 120, 120));
588 TestMinimizeRestore(); 566 TestMinimizeRestore();
589 567
590 PanelManager::GetInstance()->CloseAll(); 568 PanelManager::GetInstance()->CloseAll();
591 } 569 }
592 570
593 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreButtonClick) { 571 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, MinimizeRestoreButtonClick) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 EXPECT_TRUE(panel3->IsMinimized()); 609 EXPECT_TRUE(panel3->IsMinimized());
632 610
633 // Restore all panels by clicking restore button on a minimized panel. 611 // Restore all panels by clicking restore button on a minimized panel.
634 panel3->OnRestoreButtonClicked(panel::APPLY_TO_ALL); 612 panel3->OnRestoreButtonClicked(panel::APPLY_TO_ALL);
635 EXPECT_FALSE(panel1->IsMinimized()); 613 EXPECT_FALSE(panel1->IsMinimized());
636 EXPECT_FALSE(panel2->IsMinimized()); 614 EXPECT_FALSE(panel2->IsMinimized());
637 EXPECT_FALSE(panel3->IsMinimized()); 615 EXPECT_FALSE(panel3->IsMinimized());
638 } 616 }
639 617
640 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, RestoreAllWithTitlebarClick) { 618 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, RestoreAllWithTitlebarClick) {
641 // We'll simulate mouse movements for test.
642 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
643 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
644
645 // Test with three panels. 619 // Test with three panels.
646 Panel* panel1 = CreatePanel("PanelTest1"); 620 Panel* panel1 = CreatePanel("PanelTest1");
647 Panel* panel2 = CreatePanel("PanelTest2"); 621 Panel* panel2 = CreatePanel("PanelTest2");
648 Panel* panel3 = CreatePanel("PanelTest3"); 622 Panel* panel3 = CreatePanel("PanelTest3");
649 EXPECT_FALSE(panel1->IsMinimized()); 623 EXPECT_FALSE(panel1->IsMinimized());
650 EXPECT_FALSE(panel2->IsMinimized()); 624 EXPECT_FALSE(panel2->IsMinimized());
651 EXPECT_FALSE(panel3->IsMinimized()); 625 EXPECT_FALSE(panel3->IsMinimized());
652 626
653 scoped_ptr<NativePanelTesting> test_panel1( 627 scoped_ptr<NativePanelTesting> test_panel1(
654 CreateNativePanelTesting(panel1)); 628 CreateNativePanelTesting(panel1));
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 1023
1050 // Stop drawing attention. Titlebar should no longer be visible. 1024 // Stop drawing attention. Titlebar should no longer be visible.
1051 panel->FlashFrame(false); 1025 panel->FlashFrame(false);
1052 EXPECT_FALSE(panel->IsDrawingAttention()); 1026 EXPECT_FALSE(panel->IsDrawingAttention());
1053 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); 1027 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state());
1054 1028
1055 panel->Close(); 1029 panel->Close();
1056 } 1030 }
1057 1031
1058 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, DrawAttentionWhileMinimized) { 1032 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, DrawAttentionWhileMinimized) {
1059 // We'll simulate mouse movements for test.
1060 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
1061 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
1062
1063 // Create 3 panels so we end up with an inactive panel that can 1033 // Create 3 panels so we end up with an inactive panel that can
1064 // be made to draw attention. 1034 // be made to draw attention.
1065 Panel* panel = CreatePanel("test panel1"); 1035 Panel* panel = CreatePanel("test panel1");
1066 Panel* panel2 = CreatePanel("test panel2"); 1036 Panel* panel2 = CreatePanel("test panel2");
1067 Panel* panel3 = CreatePanel("test panel3"); 1037 Panel* panel3 = CreatePanel("test panel3");
1068 1038
1069 scoped_ptr<NativePanelTesting> native_panel_testing( 1039 scoped_ptr<NativePanelTesting> native_panel_testing(
1070 CreateNativePanelTesting(panel)); 1040 CreateNativePanelTesting(panel));
1071 1041
1072 // Test that the attention is drawn and the title-bar is brought up when the 1042 // Test that the attention is drawn and the title-bar is brought up when the
(...skipping 28 matching lines...) Expand all
1101 EXPECT_FALSE(native_panel_testing->VerifyDrawingAttention()); 1071 EXPECT_FALSE(native_panel_testing->VerifyDrawingAttention());
1102 1072
1103 panel->Close(); 1073 panel->Close();
1104 panel2->Close(); 1074 panel2->Close();
1105 panel3->Close(); 1075 panel3->Close();
1106 } 1076 }
1107 1077
1108 // Verify that minimized state of a panel is correct after draw attention 1078 // Verify that minimized state of a panel is correct after draw attention
1109 // is stopped when there are other minimized panels. 1079 // is stopped when there are other minimized panels.
1110 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, StopDrawingAttentionWhileMinimized) { 1080 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, StopDrawingAttentionWhileMinimized) {
1111 // We'll simulate mouse movements for test.
1112 PanelMouseWatcher* mouse_watcher = new TestPanelMouseWatcher();
1113 PanelManager::GetInstance()->SetMouseWatcherForTesting(mouse_watcher);
1114
1115 Panel* panel1 = CreatePanel("panel1"); 1081 Panel* panel1 = CreatePanel("panel1");
1116 Panel* panel2 = CreatePanel("panel2"); 1082 Panel* panel2 = CreatePanel("panel2");
1117 1083
1118 panel1->Minimize(); 1084 panel1->Minimize();
1119 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state()); 1085 EXPECT_EQ(Panel::MINIMIZED, panel1->expansion_state());
1120 panel2->Minimize(); 1086 panel2->Minimize();
1121 EXPECT_EQ(Panel::MINIMIZED, panel2->expansion_state()); 1087 EXPECT_EQ(Panel::MINIMIZED, panel2->expansion_state());
1122 1088
1123 // Verify panel returns to minimized state when no longer drawing attention. 1089 // Verify panel returns to minimized state when no longer drawing attention.
1124 panel1->FlashFrame(true); 1090 panel1->FlashFrame(true);
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1573 EXPECT_GT(old_full_size.width(), panel->full_size().width()); 1539 EXPECT_GT(old_full_size.width(), panel->full_size().width());
1574 EXPECT_GT(old_full_size.height(), panel->full_size().height()); 1540 EXPECT_GT(old_full_size.height(), panel->full_size().height());
1575 EXPECT_GE(panel->max_size().width(), panel->full_size().width()); 1541 EXPECT_GE(panel->max_size().width(), panel->full_size().width());
1576 EXPECT_GE(panel->max_size().height(), panel->full_size().height()); 1542 EXPECT_GE(panel->max_size().height(), panel->full_size().height());
1577 EXPECT_EQ(smaller_work_area_size.height(), panel->full_size().height()); 1543 EXPECT_EQ(smaller_work_area_size.height(), panel->full_size().height());
1578 1544
1579 panel->Close(); 1545 panel->Close();
1580 } 1546 }
1581 1547
1582 #endif // OS_WIN || OS_MACOSX 1548 #endif // OS_WIN || OS_MACOSX
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698