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 |