Chromium Code Reviews| Index: chrome/browser/ui/panels/base_panel_browser_test.cc |
| diff --git a/chrome/browser/ui/panels/base_panel_browser_test.cc b/chrome/browser/ui/panels/base_panel_browser_test.cc |
| index 037a52f5f4fbfb4281267e882b77d79ff0cebd43..8f5f3a0988df5fab82eb5f943cc7b80228629a99 100644 |
| --- a/chrome/browser/ui/panels/base_panel_browser_test.cc |
| +++ b/chrome/browser/ui/panels/base_panel_browser_test.cc |
| @@ -147,6 +147,11 @@ void MockAutoHidingDesktopBarImpl::NotifyThicknessChange() { |
| observer_->OnAutoHidingDesktopBarThicknessChanged(); |
| } |
| +bool ExistsPanel(Panel* panel) { |
| + const PanelManager::Panels& panels = PanelManager::GetInstance()->panels(); |
| + return find(panels.begin(), panels.end(), panel) != panels.end(); |
| +} |
| + |
| } // namespace |
| BasePanelBrowserTest::BasePanelBrowserTest() |
| @@ -174,7 +179,10 @@ void BasePanelBrowserTest::SetUpOnMainThread() { |
| mock_auto_hiding_desktop_bar_ = new MockAutoHidingDesktopBarImpl( |
| panel_manager); |
| panel_manager->set_auto_hiding_desktop_bar(mock_auto_hiding_desktop_bar_); |
| - panel_manager->SetWorkAreaForTesting(testing_work_area_); |
| + // Do not use the testing work area if it is empty since we're going to |
| + // use the actual work area in some testing scenarios. |
| + if (!testing_work_area_.IsEmpty()) |
| + panel_manager->SetWorkAreaForTesting(testing_work_area_); |
| panel_manager->enable_auto_sizing(false); |
| panel_manager->remove_delays_for_testing(); |
| // This is needed so the subsequently created panels can be activated. |
| @@ -182,6 +190,26 @@ void BasePanelBrowserTest::SetUpOnMainThread() { |
| EXPECT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
| } |
| +void BasePanelBrowserTest::WaitForPanelAdded(Panel* panel) { |
| + if (ExistsPanel(panel)) |
| + return; |
| + ui_test_utils::WindowedNotificationObserver signal( |
|
jennb
2011/11/11 23:02:43
Should create the signal first, then do the 'if (E
|
| + chrome::NOTIFICATION_PANEL_ADDED, |
| + content::Source<Panel>(panel)); |
| + signal.Wait(); |
| + EXPECT_TRUE(ExistsPanel(panel)); |
| +} |
| + |
| +void BasePanelBrowserTest::WaitForPanelRemoved(Panel* panel) { |
| + if (!ExistsPanel(panel)) |
| + return; |
| + ui_test_utils::WindowedNotificationObserver signal( |
| + chrome::NOTIFICATION_PANEL_REMOVED, |
| + content::Source<Panel>(panel)); |
| + signal.Wait(); |
| + EXPECT_FALSE(ExistsPanel(panel)); |
| +} |
| + |
| void BasePanelBrowserTest::WaitForPanelActiveState( |
| Panel* panel, ActiveState expected_state) { |
| DCHECK(expected_state == SHOW_AS_ACTIVE || |