| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
| 6 #include "chrome/browser/ui/panels/base_panel_browser_test.h" | 6 #include "chrome/browser/ui/panels/base_panel_browser_test.h" |
| 7 #include "chrome/browser/ui/panels/detached_panel_collection.h" | 7 #include "chrome/browser/ui/panels/detached_panel_collection.h" |
| 8 #include "chrome/browser/ui/panels/docked_panel_collection.h" | 8 #include "chrome/browser/ui/panels/docked_panel_collection.h" |
| 9 #include "chrome/browser/ui/panels/native_panel.h" | 9 #include "chrome/browser/ui/panels/native_panel.h" |
| 10 #include "chrome/browser/ui/panels/panel.h" | 10 #include "chrome/browser/ui/panels/panel.h" |
| (...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 | 1109 |
| 1110 // Wait until all panels created from profile2 get fully closed since profile2 | 1110 // Wait until all panels created from profile2 get fully closed since profile2 |
| 1111 // is going out of scope at the exit of this function. | 1111 // is going out of scope at the exit of this function. |
| 1112 CloseWindowAndWait(panel3); | 1112 CloseWindowAndWait(panel3); |
| 1113 CloseWindowAndWait(panel4); | 1113 CloseWindowAndWait(panel4); |
| 1114 CloseWindowAndWait(panel6); | 1114 CloseWindowAndWait(panel6); |
| 1115 | 1115 |
| 1116 panel_manager->CloseAll(); | 1116 panel_manager->CloseAll(); |
| 1117 } | 1117 } |
| 1118 | 1118 |
| 1119 // Skip the test since system-minimize might not be supported for some window | |
| 1120 // managers on Linux. | |
| 1121 #if defined(TOOLKIT_GTK) | |
| 1122 #define MAYBE_AddNewPanelNotWithSystemMinimizedDetachedPanel \ | |
| 1123 DISABLED_AddNewPanelNotWithSystemMinimizedDetachedPanel | |
| 1124 #else | |
| 1125 #define MAYBE_AddNewPanelNotWithSystemMinimizedDetachedPanel \ | |
| 1126 AddNewPanelNotWithSystemMinimizedDetachedPanel | |
| 1127 #endif | |
| 1128 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, | 1119 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, |
| 1129 MAYBE_AddNewPanelNotWithSystemMinimizedDetachedPanel) { | 1120 AddNewPanelNotWithSystemMinimizedDetachedPanel) { |
| 1130 PanelManager* panel_manager = PanelManager::GetInstance(); | 1121 PanelManager* panel_manager = PanelManager::GetInstance(); |
| 1131 | 1122 |
| 1132 // Create 1 detached panel. | 1123 // Create 1 detached panel. |
| 1133 Panel* panel1 = CreateDetachedPanel("1", gfx::Rect(200, 50, 250, 150)); | 1124 Panel* panel1 = CreateDetachedPanel("1", gfx::Rect(200, 50, 250, 150)); |
| 1134 EXPECT_EQ(1, panel_manager->num_panels()); | 1125 EXPECT_EQ(1, panel_manager->num_panels()); |
| 1135 EXPECT_EQ(0, panel_manager->num_stacks()); | 1126 EXPECT_EQ(0, panel_manager->num_stacks()); |
| 1136 EXPECT_EQ(1, panel_manager->detached_collection()->num_panels()); | 1127 EXPECT_EQ(1, panel_manager->detached_collection()->num_panels()); |
| 1137 EXPECT_EQ(PanelCollection::DETACHED, panel1->collection()->type()); | 1128 EXPECT_EQ(PanelCollection::DETACHED, panel1->collection()->type()); |
| 1138 | 1129 |
| 1139 // Minimize the detached panel by system. | 1130 // Minimize the detached panel by system. |
| 1140 panel1->OnMinimizeButtonClicked(panel::NO_MODIFIER); | 1131 panel1->OnMinimizeButtonClicked(panel::NO_MODIFIER); |
| 1141 | 1132 |
| 1142 // Create new panel. Expect that new panel will open as a separate detached | 1133 // Create new panel. Expect that new panel will open as a separate detached |
| 1143 // panel, instead of being grouped with the system-minimized detached panel. | 1134 // panel, instead of being grouped with the system-minimized detached panel. |
| 1144 CreatePanelParams params("N", gfx::Rect(50, 50, 150, 100), SHOW_AS_ACTIVE); | 1135 CreatePanelParams params("N", gfx::Rect(50, 50, 150, 100), SHOW_AS_ACTIVE); |
| 1145 params.create_mode = PanelManager::CREATE_AS_DETACHED; | 1136 params.create_mode = PanelManager::CREATE_AS_DETACHED; |
| 1146 Panel* new_panel = CreatePanelWithParams(params); | 1137 Panel* new_panel = CreatePanelWithParams(params); |
| 1147 EXPECT_EQ(2, panel_manager->num_panels()); | 1138 EXPECT_EQ(2, panel_manager->num_panels()); |
| 1148 EXPECT_EQ(2, panel_manager->detached_collection()->num_panels()); | 1139 EXPECT_EQ(2, panel_manager->detached_collection()->num_panels()); |
| 1149 EXPECT_EQ(0, panel_manager->num_stacks()); | 1140 EXPECT_EQ(0, panel_manager->num_stacks()); |
| 1150 EXPECT_EQ(PanelCollection::DETACHED, panel1->collection()->type()); | 1141 EXPECT_EQ(PanelCollection::DETACHED, panel1->collection()->type()); |
| 1151 EXPECT_EQ(PanelCollection::DETACHED, new_panel->collection()->type()); | 1142 EXPECT_EQ(PanelCollection::DETACHED, new_panel->collection()->type()); |
| 1152 | 1143 |
| 1153 panel_manager->CloseAll(); | 1144 panel_manager->CloseAll(); |
| 1154 } | 1145 } |
| 1155 | 1146 |
| 1156 // Skip the test since system-minimize might not be supported for some window | |
| 1157 // managers on Linux. | |
| 1158 #if defined(TOOLKIT_GTK) | |
| 1159 #define MAYBE_AddNewPanelNotWithSystemMinimizedStack \ | |
| 1160 DISABLED_AddNewPanelNotWithSystemMinimizedStack | |
| 1161 #else | |
| 1162 #define MAYBE_AddNewPanelNotWithSystemMinimizedStack \ | |
| 1163 AddNewPanelNotWithSystemMinimizedStack | |
| 1164 #endif | |
| 1165 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, | 1147 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, |
| 1166 MAYBE_AddNewPanelNotWithSystemMinimizedStack) { | 1148 AddNewPanelNotWithSystemMinimizedStack) { |
| 1167 PanelManager* panel_manager = PanelManager::GetInstance(); | 1149 PanelManager* panel_manager = PanelManager::GetInstance(); |
| 1168 | 1150 |
| 1169 // Create one stack with 2 panels. | 1151 // Create one stack with 2 panels. |
| 1170 StackedPanelCollection* stack = panel_manager->CreateStack(); | 1152 StackedPanelCollection* stack = panel_manager->CreateStack(); |
| 1171 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 90, 200, 150), stack); | 1153 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 90, 200, 150), stack); |
| 1172 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); | 1154 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); |
| 1173 EXPECT_EQ(2, panel_manager->num_panels()); | 1155 EXPECT_EQ(2, panel_manager->num_panels()); |
| 1174 EXPECT_EQ(0, panel_manager->detached_collection()->num_panels()); | 1156 EXPECT_EQ(0, panel_manager->detached_collection()->num_panels()); |
| 1175 EXPECT_EQ(1, panel_manager->num_stacks()); | 1157 EXPECT_EQ(1, panel_manager->num_stacks()); |
| 1176 EXPECT_EQ(2, stack->num_panels()); | 1158 EXPECT_EQ(2, stack->num_panels()); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1245 ASSERT_EQ(1, panel_manager->num_panels()); | 1227 ASSERT_EQ(1, panel_manager->num_panels()); |
| 1246 ASSERT_EQ(0, panel_manager->num_stacks()); | 1228 ASSERT_EQ(0, panel_manager->num_stacks()); |
| 1247 EXPECT_EQ(PanelCollection::DETACHED, panel3->collection()->type()); | 1229 EXPECT_EQ(PanelCollection::DETACHED, panel3->collection()->type()); |
| 1248 | 1230 |
| 1249 panel3_expected_bounds.set_y(panel2_expected_bounds.y()); | 1231 panel3_expected_bounds.set_y(panel2_expected_bounds.y()); |
| 1250 EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds()); | 1232 EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds()); |
| 1251 | 1233 |
| 1252 panel_manager->CloseAll(); | 1234 panel_manager->CloseAll(); |
| 1253 } | 1235 } |
| 1254 | 1236 |
| 1255 // Skip the test since active state might not be fully supported for some window | 1237 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, FocusNextPanelOnPanelClose) { |
| 1256 // managers. | |
| 1257 #if defined(TOOLKIT_GTK) || defined(OS_MACOSX) | |
| 1258 #define MAYBE_FocusNextPanelOnPanelClose DISABLED_FocusNextPanelOnPanelClose | |
| 1259 #else | |
| 1260 #define MAYBE_FocusNextPanelOnPanelClose FocusNextPanelOnPanelClose | |
| 1261 #endif | |
| 1262 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, | |
| 1263 MAYBE_FocusNextPanelOnPanelClose) { | |
| 1264 PanelManager* panel_manager = PanelManager::GetInstance(); | 1238 PanelManager* panel_manager = PanelManager::GetInstance(); |
| 1265 | 1239 |
| 1266 // Create 3 stacked panels. | 1240 // Create 3 stacked panels. |
| 1267 StackedPanelCollection* stack = panel_manager->CreateStack(); | 1241 StackedPanelCollection* stack = panel_manager->CreateStack(); |
| 1268 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 50, 200, 200), stack); | 1242 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 50, 200, 200), stack); |
| 1269 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); | 1243 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); |
| 1270 Panel* panel3 = CreateStackedPanel("3", gfx::Rect(0, 0, 150, 120), stack); | 1244 Panel* panel3 = CreateStackedPanel("3", gfx::Rect(0, 0, 150, 120), stack); |
| 1271 ASSERT_EQ(3, stack->num_panels()); | 1245 ASSERT_EQ(3, stack->num_panels()); |
| 1272 ASSERT_FALSE(panel1->IsActive()); | 1246 ASSERT_FALSE(panel1->IsActive()); |
| 1273 ASSERT_FALSE(panel2->IsActive()); | 1247 ASSERT_FALSE(panel2->IsActive()); |
| 1274 ASSERT_TRUE(panel3->IsActive()); | 1248 ASSERT_TRUE(panel3->IsActive()); |
| 1275 | 1249 |
| 1276 // Close P3. Expect P2 should become active. | 1250 // Close P3. Expect P2 should become active. |
| 1277 CloseWindowAndWait(panel3); | 1251 CloseWindowAndWait(panel3); |
| 1278 EXPECT_FALSE(panel1->IsActive()); | 1252 EXPECT_FALSE(panel1->IsActive()); |
| 1279 EXPECT_TRUE(panel2->IsActive()); | 1253 EXPECT_TRUE(panel2->IsActive()); |
| 1280 | 1254 |
| 1281 // Close P2. Expect P1 should become active. | 1255 // Close P2. Expect P1 should become active. |
| 1282 CloseWindowAndWait(panel2); | 1256 CloseWindowAndWait(panel2); |
| 1283 EXPECT_TRUE(panel1->IsActive()); | 1257 EXPECT_TRUE(panel1->IsActive()); |
| 1284 | 1258 |
| 1285 panel_manager->CloseAll(); | 1259 panel_manager->CloseAll(); |
| 1286 } | 1260 } |
| 1287 | 1261 |
| 1288 // Skip the test since active state might not be fully supported for some window | |
| 1289 // managers. | |
| 1290 #if defined(TOOLKIT_GTK) || defined(OS_MACOSX) | |
| 1291 #define MAYBE_FocusNextUnminimizedPanelOnPanelClose \ | |
| 1292 DISABLED_FocusNextUnminimizedPanelOnPanelClose | |
| 1293 #else | |
| 1294 #define MAYBE_FocusNextUnminimizedPanelOnPanelClose \ | |
| 1295 FocusNextUnminimizedPanelOnPanelClose | |
| 1296 #endif | |
| 1297 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, | 1262 IN_PROC_BROWSER_TEST_F(StackedPanelBrowserTest, |
| 1298 MAYBE_FocusNextUnminimizedPanelOnPanelClose) { | 1263 FocusNextUnminimizedPanelOnPanelClose) { |
| 1299 PanelManager* panel_manager = PanelManager::GetInstance(); | 1264 PanelManager* panel_manager = PanelManager::GetInstance(); |
| 1300 | 1265 |
| 1301 // Create 3 stacked panels. | 1266 // Create 3 stacked panels. |
| 1302 StackedPanelCollection* stack = panel_manager->CreateStack(); | 1267 StackedPanelCollection* stack = panel_manager->CreateStack(); |
| 1303 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 50, 200, 200), stack); | 1268 Panel* panel1 = CreateStackedPanel("1", gfx::Rect(100, 50, 200, 200), stack); |
| 1304 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); | 1269 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); |
| 1305 Panel* panel3 = CreateStackedPanel("3", gfx::Rect(0, 0, 150, 120), stack); | 1270 Panel* panel3 = CreateStackedPanel("3", gfx::Rect(0, 0, 150, 120), stack); |
| 1306 ASSERT_EQ(3, stack->num_panels()); | 1271 ASSERT_EQ(3, stack->num_panels()); |
| 1307 ASSERT_FALSE(panel1->IsActive()); | 1272 ASSERT_FALSE(panel1->IsActive()); |
| 1308 ASSERT_FALSE(panel2->IsActive()); | 1273 ASSERT_FALSE(panel2->IsActive()); |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1464 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); | 1429 Panel* panel2 = CreateStackedPanel("2", gfx::Rect(0, 0, 150, 100), stack); |
| 1465 scoped_ptr<NativePanelTesting> panel1_testing( | 1430 scoped_ptr<NativePanelTesting> panel1_testing( |
| 1466 CreateNativePanelTesting(panel1)); | 1431 CreateNativePanelTesting(panel1)); |
| 1467 scoped_ptr<NativePanelTesting> panel2_testing( | 1432 scoped_ptr<NativePanelTesting> panel2_testing( |
| 1468 CreateNativePanelTesting(panel2)); | 1433 CreateNativePanelTesting(panel2)); |
| 1469 | 1434 |
| 1470 // Panels should be visible at first. | 1435 // Panels should be visible at first. |
| 1471 EXPECT_TRUE(panel1_testing->IsWindowVisible()); | 1436 EXPECT_TRUE(panel1_testing->IsWindowVisible()); |
| 1472 EXPECT_TRUE(panel2_testing->IsWindowVisible()); | 1437 EXPECT_TRUE(panel2_testing->IsWindowVisible()); |
| 1473 | 1438 |
| 1474 // Panels' visibility should not be affected when entering full-screen mode. | 1439 // Panels' visibility should not be affected when entering full-screen mode. |
| 1475 mock_display_settings_provider()->EnableFullScreenMode(true); | 1440 mock_display_settings_provider()->EnableFullScreenMode(true); |
| 1476 EXPECT_TRUE(panel1_testing->IsWindowVisible()); | 1441 EXPECT_TRUE(panel1_testing->IsWindowVisible()); |
| 1477 EXPECT_TRUE(panel2_testing->IsWindowVisible()); | 1442 EXPECT_TRUE(panel2_testing->IsWindowVisible()); |
| 1478 | 1443 |
| 1479 // Panels' visibility should not be affected when leaving full-screen mode. | 1444 // Panels' visibility should not be affected when leaving full-screen mode. |
| 1480 mock_display_settings_provider()->EnableFullScreenMode(false); | 1445 mock_display_settings_provider()->EnableFullScreenMode(false); |
| 1481 EXPECT_TRUE(panel1_testing->IsWindowVisible()); | 1446 EXPECT_TRUE(panel1_testing->IsWindowVisible()); |
| 1482 EXPECT_TRUE(panel2_testing->IsWindowVisible()); | 1447 EXPECT_TRUE(panel2_testing->IsWindowVisible()); |
| 1483 | 1448 |
| 1484 panel_manager->CloseAll(); | 1449 panel_manager->CloseAll(); |
| 1485 } | 1450 } |
| OLD | NEW |