| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ash/system/web_notification/ash_popup_alignment_delegate.h" | 5 #include "ash/system/web_notification/ash_popup_alignment_delegate.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/public/cpp/config.h" | 10 #include "ash/public/cpp/config.h" |
| 11 #include "ash/public/cpp/shelf_types.h" | 11 #include "ash/public/cpp/shelf_types.h" |
| 12 #include "ash/public/cpp/shell_window_ids.h" | 12 #include "ash/public/cpp/shell_window_ids.h" |
| 13 #include "ash/root_window_controller.h" | 13 #include "ash/root_window_controller.h" |
| 14 #include "ash/shelf/wm_shelf.h" | 14 #include "ash/shelf/shelf.h" |
| 15 #include "ash/shell.h" | 15 #include "ash/shell.h" |
| 16 #include "ash/test/ash_test_base.h" | 16 #include "ash/test/ash_test_base.h" |
| 17 #include "ash/wm_window.h" | 17 #include "ash/wm_window.h" |
| 18 #include "base/command_line.h" | 18 #include "base/command_line.h" |
| 19 #include "base/memory/ptr_util.h" | 19 #include "base/memory/ptr_util.h" |
| 20 #include "ui/display/manager/display_manager.h" | 20 #include "ui/display/manager/display_manager.h" |
| 21 #include "ui/display/screen.h" | 21 #include "ui/display/screen.h" |
| 22 #include "ui/gfx/geometry/rect.h" | 22 #include "ui/gfx/geometry/rect.h" |
| 23 #include "ui/keyboard/keyboard_switches.h" | 23 #include "ui/keyboard/keyboard_switches.h" |
| 24 #include "ui/keyboard/keyboard_util.h" | 24 #include "ui/keyboard/keyboard_util.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 | 138 |
| 139 TEST_F(AshPopupAlignmentDelegateTest, AutoHide) { | 139 TEST_F(AshPopupAlignmentDelegateTest, AutoHide) { |
| 140 const gfx::Rect toast_size(0, 0, 10, 10); | 140 const gfx::Rect toast_size(0, 0, 10, 10); |
| 141 UpdateDisplay("600x600"); | 141 UpdateDisplay("600x600"); |
| 142 int origin_x = alignment_delegate()->GetToastOriginX(toast_size); | 142 int origin_x = alignment_delegate()->GetToastOriginX(toast_size); |
| 143 int baseline = alignment_delegate()->GetBaseLine(); | 143 int baseline = alignment_delegate()->GetBaseLine(); |
| 144 | 144 |
| 145 // Create a window, otherwise autohide doesn't work. | 145 // Create a window, otherwise autohide doesn't work. |
| 146 std::unique_ptr<views::Widget> widget = CreateTestWidget( | 146 std::unique_ptr<views::Widget> widget = CreateTestWidget( |
| 147 nullptr, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 50, 50)); | 147 nullptr, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 50, 50)); |
| 148 WmShelf* shelf = GetPrimaryShelf(); | 148 Shelf* shelf = GetPrimaryShelf(); |
| 149 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 149 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
| 150 EXPECT_EQ(origin_x, alignment_delegate()->GetToastOriginX(toast_size)); | 150 EXPECT_EQ(origin_x, alignment_delegate()->GetToastOriginX(toast_size)); |
| 151 EXPECT_LT(baseline, alignment_delegate()->GetBaseLine()); | 151 EXPECT_LT(baseline, alignment_delegate()->GetBaseLine()); |
| 152 } | 152 } |
| 153 | 153 |
| 154 TEST_F(AshPopupAlignmentDelegateTest, DisplayResize) { | 154 TEST_F(AshPopupAlignmentDelegateTest, DisplayResize) { |
| 155 const gfx::Rect toast_size(0, 0, 10, 10); | 155 const gfx::Rect toast_size(0, 0, 10, 10); |
| 156 UpdateDisplay("600x600"); | 156 UpdateDisplay("600x600"); |
| 157 int origin_x = alignment_delegate()->GetToastOriginX(toast_size); | 157 int origin_x = alignment_delegate()->GetToastOriginX(toast_size); |
| 158 int baseline = alignment_delegate()->GetBaseLine(); | 158 int baseline = alignment_delegate()->GetBaseLine(); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 EXPECT_EQ(baseline - kTrayHeight - message_center::kMarginBetweenItems, | 203 EXPECT_EQ(baseline - kTrayHeight - message_center::kMarginBetweenItems, |
| 204 alignment_delegate()->GetBaseLine()); | 204 alignment_delegate()->GetBaseLine()); |
| 205 } | 205 } |
| 206 | 206 |
| 207 TEST_F(AshPopupAlignmentDelegateTest, Extended) { | 207 TEST_F(AshPopupAlignmentDelegateTest, Extended) { |
| 208 UpdateDisplay("600x600,800x800"); | 208 UpdateDisplay("600x600,800x800"); |
| 209 SetAlignmentDelegate( | 209 SetAlignmentDelegate( |
| 210 base::MakeUnique<AshPopupAlignmentDelegate>(GetPrimaryShelf())); | 210 base::MakeUnique<AshPopupAlignmentDelegate>(GetPrimaryShelf())); |
| 211 | 211 |
| 212 display::Display second_display = GetSecondaryDisplay(); | 212 display::Display second_display = GetSecondaryDisplay(); |
| 213 WmShelf* second_shelf = | 213 Shelf* second_shelf = |
| 214 Shell::GetRootWindowControllerWithDisplayId(second_display.id()) | 214 Shell::GetRootWindowControllerWithDisplayId(second_display.id()) |
| 215 ->GetShelf(); | 215 ->GetShelf(); |
| 216 AshPopupAlignmentDelegate for_2nd_display(second_shelf); | 216 AshPopupAlignmentDelegate for_2nd_display(second_shelf); |
| 217 UpdateWorkArea(&for_2nd_display, second_display); | 217 UpdateWorkArea(&for_2nd_display, second_display); |
| 218 // Make sure that the toast position on the secondary display is | 218 // Make sure that the toast position on the secondary display is |
| 219 // positioned correctly. | 219 // positioned correctly. |
| 220 EXPECT_LT(1300, for_2nd_display.GetToastOriginX(gfx::Rect(0, 0, 10, 10))); | 220 EXPECT_LT(1300, for_2nd_display.GetToastOriginX(gfx::Rect(0, 0, 10, 10))); |
| 221 EXPECT_LT(700, for_2nd_display.GetBaseLine()); | 221 EXPECT_LT(700, for_2nd_display.GetBaseLine()); |
| 222 } | 222 } |
| 223 | 223 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 242 | 242 |
| 243 // Tests that when the keyboard is showing that notifications appear above it, | 243 // Tests that when the keyboard is showing that notifications appear above it, |
| 244 // and that they return to normal once the keyboard is gone. | 244 // and that they return to normal once the keyboard is gone. |
| 245 TEST_F(AshPopupAlignmentDelegateTest, KeyboardShowing) { | 245 TEST_F(AshPopupAlignmentDelegateTest, KeyboardShowing) { |
| 246 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); | 246 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); |
| 247 ASSERT_TRUE(keyboard::IsKeyboardOverscrollEnabled()); | 247 ASSERT_TRUE(keyboard::IsKeyboardOverscrollEnabled()); |
| 248 | 248 |
| 249 UpdateDisplay("600x600"); | 249 UpdateDisplay("600x600"); |
| 250 int baseline = alignment_delegate()->GetBaseLine(); | 250 int baseline = alignment_delegate()->GetBaseLine(); |
| 251 | 251 |
| 252 WmShelf* shelf = GetPrimaryShelf(); | 252 Shelf* shelf = GetPrimaryShelf(); |
| 253 gfx::Rect keyboard_bounds(0, 300, 600, 300); | 253 gfx::Rect keyboard_bounds(0, 300, 600, 300); |
| 254 shelf->SetVirtualKeyboardBoundsForTesting(keyboard_bounds); | 254 shelf->SetVirtualKeyboardBoundsForTesting(keyboard_bounds); |
| 255 int keyboard_baseline = alignment_delegate()->GetBaseLine(); | 255 int keyboard_baseline = alignment_delegate()->GetBaseLine(); |
| 256 EXPECT_NE(baseline, keyboard_baseline); | 256 EXPECT_NE(baseline, keyboard_baseline); |
| 257 EXPECT_GT(keyboard_bounds.y(), keyboard_baseline); | 257 EXPECT_GT(keyboard_bounds.y(), keyboard_baseline); |
| 258 | 258 |
| 259 shelf->SetVirtualKeyboardBoundsForTesting(gfx::Rect()); | 259 shelf->SetVirtualKeyboardBoundsForTesting(gfx::Rect()); |
| 260 EXPECT_EQ(baseline, alignment_delegate()->GetBaseLine()); | 260 EXPECT_EQ(baseline, alignment_delegate()->GetBaseLine()); |
| 261 } | 261 } |
| 262 | 262 |
| 263 } // namespace ash | 263 } // namespace ash |
| OLD | NEW |