OLD | NEW |
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/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
8 #include "chrome/browser/download/download_service.h" | 8 #include "chrome/browser/download/download_service.h" |
9 #include "chrome/browser/download/download_service_factory.h" | 9 #include "chrome/browser/download/download_service_factory.h" |
10 #include "chrome/browser/net/url_request_mock_util.h" | 10 #include "chrome/browser/net/url_request_mock_util.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 std::vector<gfx::Rect> test_begin_bounds = GetAllPanelBounds(); | 144 std::vector<gfx::Rect> test_begin_bounds = GetAllPanelBounds(); |
145 std::vector<gfx::Rect> expected_bounds = test_begin_bounds; | 145 std::vector<gfx::Rect> expected_bounds = test_begin_bounds; |
146 std::vector<Panel::ExpansionState> expected_expansion_states( | 146 std::vector<Panel::ExpansionState> expected_expansion_states( |
147 panels.size(), Panel::EXPANDED); | 147 panels.size(), Panel::EXPANDED); |
148 std::vector<NativePanelTesting*> native_panels_testing(panels.size()); | 148 std::vector<NativePanelTesting*> native_panels_testing(panels.size()); |
149 for (size_t i = 0; i < panels.size(); ++i) { | 149 for (size_t i = 0; i < panels.size(); ++i) { |
150 native_panels_testing[i] = | 150 native_panels_testing[i] = |
151 NativePanelTesting::Create(panels[i]->native_panel()); | 151 NativePanelTesting::Create(panels[i]->native_panel()); |
152 } | 152 } |
153 | 153 |
154 // Test minimize. | 154 // Verify titlebar click does not minimize. |
155 for (size_t index = 0; index < panels.size(); ++index) { | 155 for (size_t index = 0; index < panels.size(); ++index) { |
156 // Press left mouse button. Verify nothing changed. | 156 // Press left mouse button. Verify nothing changed. |
157 native_panels_testing[index]->PressLeftMouseButtonTitlebar( | 157 native_panels_testing[index]->PressLeftMouseButtonTitlebar( |
158 panels[index]->GetBounds().origin()); | 158 panels[index]->GetBounds().origin()); |
159 EXPECT_EQ(expected_bounds, GetAllPanelBounds()); | 159 EXPECT_EQ(expected_bounds, GetAllPanelBounds()); |
160 EXPECT_EQ(expected_expansion_states, GetAllPanelExpansionStates()); | 160 EXPECT_EQ(expected_expansion_states, GetAllPanelExpansionStates()); |
161 | 161 |
162 // Release mouse button. Verify minimized. | 162 // Release mouse button. Verify nothing changed. |
163 native_panels_testing[index]->ReleaseMouseButtonTitlebar(); | 163 native_panels_testing[index]->ReleaseMouseButtonTitlebar(); |
| 164 EXPECT_EQ(expected_bounds, GetAllPanelBounds()); |
| 165 EXPECT_EQ(expected_expansion_states, GetAllPanelExpansionStates()); |
| 166 } |
| 167 |
| 168 // Minimize all panels for next stage in test. |
| 169 for (size_t index = 0; index < panels.size(); ++index) { |
| 170 panels[index]->Minimize(); |
164 expected_bounds[index].set_height(Panel::kMinimizedPanelHeight); | 171 expected_bounds[index].set_height(Panel::kMinimizedPanelHeight); |
165 expected_bounds[index].set_y( | 172 expected_bounds[index].set_y( |
166 test_begin_bounds[index].y() + | 173 test_begin_bounds[index].y() + |
167 test_begin_bounds[index].height() - Panel::kMinimizedPanelHeight); | 174 test_begin_bounds[index].height() - Panel::kMinimizedPanelHeight); |
168 expected_expansion_states[index] = Panel::MINIMIZED; | 175 expected_expansion_states[index] = Panel::MINIMIZED; |
169 EXPECT_EQ(expected_bounds, GetAllPanelBounds()); | 176 EXPECT_EQ(expected_bounds, GetAllPanelBounds()); |
170 EXPECT_EQ(expected_expansion_states, GetAllPanelExpansionStates()); | 177 EXPECT_EQ(expected_expansion_states, GetAllPanelExpansionStates()); |
171 } | 178 } |
172 | 179 |
173 // Setup bounds and expansion states for minimized and titlebar-only | 180 // Setup bounds and expansion states for minimized and titlebar-only |
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
994 native_panel_testing->ReleaseMouseButtonTitlebar(); | 1001 native_panel_testing->ReleaseMouseButtonTitlebar(); |
995 | 1002 |
996 MessageLoop::current()->RunAllPending(); | 1003 MessageLoop::current()->RunAllPending(); |
997 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE); | 1004 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE); |
998 EXPECT_FALSE(panel->IsDrawingAttention()); | 1005 EXPECT_FALSE(panel->IsDrawingAttention()); |
999 EXPECT_FALSE(native_panel_testing->VerifyDrawingAttention()); | 1006 EXPECT_FALSE(native_panel_testing->VerifyDrawingAttention()); |
1000 | 1007 |
1001 panel->Close(); | 1008 panel->Close(); |
1002 } | 1009 } |
1003 | 1010 |
1004 // There was a bug when it was not possible to minimize the panel by clicking | |
1005 // on the titlebar right after it was restored and activated. This test verifies | |
1006 // it's possible. | |
1007 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, | 1011 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, |
1008 MinimizeImmediatelyAfterRestore) { | 1012 MinimizeImmediatelyAfterRestore) { |
1009 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_ACTIVE); | 1013 CreatePanelParams params("Initially Inactive", gfx::Rect(), SHOW_AS_ACTIVE); |
1010 Panel* panel = CreatePanelWithParams(params); | 1014 Panel* panel = CreatePanelWithParams(params); |
1011 scoped_ptr<NativePanelTesting> native_panel_testing( | 1015 scoped_ptr<NativePanelTesting> native_panel_testing( |
1012 NativePanelTesting::Create(panel->native_panel())); | 1016 NativePanelTesting::Create(panel->native_panel())); |
1013 | 1017 |
1014 panel->SetExpansionState(Panel::MINIMIZED); // this should deactivate. | 1018 panel->Minimize(); // this should deactivate. |
1015 MessageLoop::current()->RunAllPending(); | 1019 MessageLoop::current()->RunAllPending(); |
1016 WaitForPanelActiveState(panel, SHOW_AS_INACTIVE); | 1020 WaitForPanelActiveState(panel, SHOW_AS_INACTIVE); |
1017 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); | 1021 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); |
1018 | 1022 |
1019 panel->Activate(); | 1023 panel->Activate(); |
1020 MessageLoop::current()->RunAllPending(); | 1024 MessageLoop::current()->RunAllPending(); |
1021 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE); | 1025 WaitForPanelActiveState(panel, SHOW_AS_ACTIVE); |
1022 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); | 1026 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); |
1023 | 1027 |
1024 // Test that click on the titlebar right after expansion minimizes the Panel. | 1028 // Verify that minimizing a panel right after expansion works. |
1025 native_panel_testing->PressLeftMouseButtonTitlebar( | 1029 panel->Minimize(); |
1026 panel->GetBounds().origin()); | |
1027 native_panel_testing->ReleaseMouseButtonTitlebar(); | |
1028 MessageLoop::current()->RunAllPending(); | 1030 MessageLoop::current()->RunAllPending(); |
1029 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); | 1031 EXPECT_EQ(Panel::MINIMIZED, panel->expansion_state()); |
1030 panel->Close(); | 1032 panel->Close(); |
1031 } | 1033 } |
1032 | 1034 |
1033 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, FocusLostOnMinimize) { | 1035 IN_PROC_BROWSER_TEST_F(PanelBrowserTest, FocusLostOnMinimize) { |
1034 CreatePanelParams params("Initially Active", gfx::Rect(), SHOW_AS_ACTIVE); | 1036 CreatePanelParams params("Initially Active", gfx::Rect(), SHOW_AS_ACTIVE); |
1035 Panel* panel = CreatePanelWithParams(params); | 1037 Panel* panel = CreatePanelWithParams(params); |
1036 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); | 1038 EXPECT_EQ(Panel::EXPANDED, panel->expansion_state()); |
1037 | 1039 |
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1668 // position when tall panel brings up its titlebar. | 1670 // position when tall panel brings up its titlebar. |
1669 CloseWindowAndWait(panel1->browser()); | 1671 CloseWindowAndWait(panel1->browser()); |
1670 EXPECT_EQ(balloon_bottom_after_tall_panel_titlebar_up, | 1672 EXPECT_EQ(balloon_bottom_after_tall_panel_titlebar_up, |
1671 GetBalloonBottomPosition(balloon)); | 1673 GetBalloonBottomPosition(balloon)); |
1672 | 1674 |
1673 // Closing the remaining tall panel should move the notification balloon back | 1675 // Closing the remaining tall panel should move the notification balloon back |
1674 // to its original position. | 1676 // to its original position. |
1675 CloseWindowAndWait(panel2->browser()); | 1677 CloseWindowAndWait(panel2->browser()); |
1676 EXPECT_EQ(original_balloon_bottom, GetBalloonBottomPosition(balloon)); | 1678 EXPECT_EQ(original_balloon_bottom, GetBalloonBottomPosition(balloon)); |
1677 } | 1679 } |
OLD | NEW |