Index: chrome/browser/ui/views/app_list/win/app_list_win_unittest.cc |
diff --git a/chrome/browser/ui/views/app_list/win/app_list_win_unittest.cc b/chrome/browser/ui/views/app_list/win/app_list_win_unittest.cc |
index 607426ed01d702a723867fee8577f59ebdb9482d..5ac1ff9e05f8d1bf3e324edacf8663b9f1bb9e48 100644 |
--- a/chrome/browser/ui/views/app_list/win/app_list_win_unittest.cc |
+++ b/chrome/browser/ui/views/app_list/win/app_list_win_unittest.cc |
@@ -54,6 +54,7 @@ class AppListWinUnitTest : public testing::Test { |
display_.set_work_area(gfx::Rect(0, 0, kScreenWidth, kScreenHeight)); |
cursor_ = gfx::Point(); |
taskbar_rect_ = gfx::Rect(); |
+ center_window_ = false; |
} |
// Set the display work area. |
@@ -99,17 +100,23 @@ class AppListWinUnitTest : public testing::Test { |
cursor_ = gfx::Point(x, y); |
} |
+ void EnableWindowCentering() { |
+ center_window_ = true; |
+ } |
+ |
gfx::Point DoFindAnchorPoint() const { |
return AppListWin::FindAnchorPoint(gfx::Size(kWindowWidth, kWindowHeight), |
display_, |
cursor_, |
- taskbar_rect_); |
+ taskbar_rect_, |
+ center_window_); |
} |
private: |
gfx::Display display_; |
gfx::Point cursor_; |
gfx::Rect taskbar_rect_; |
+ bool center_window_; |
}; |
TEST_F(AppListWinUnitTest, FindAnchorPointNoTaskbar) { |
@@ -242,3 +249,13 @@ TEST_F(AppListWinUnitTest, FindAnchorPointWin8SplitScreen) { |
kMinDistanceFromEdge), |
DoFindAnchorPoint()); |
} |
+ |
+TEST_F(AppListWinUnitTest, FindAnchorPointCentered) { |
+ // Cursor on the top taskbar; enable centered app list mode. |
+ PlaceTaskbar(AppListPositioner::SCREEN_EDGE_TOP); |
+ PlaceCursor(0, 0); |
+ EnableWindowCentering(); |
+ // Expect the app list to be in the center of the screen (ignore the cursor). |
+ EXPECT_EQ(gfx::Point(kScreenWidth / 2, kScreenHeight / 2), |
+ DoFindAnchorPoint()); |
+} |