Index: chrome/browser/ui/app_list/app_list_positioner_unittest.cc |
diff --git a/chrome/browser/ui/app_list/app_list_positioner_unittest.cc b/chrome/browser/ui/app_list/app_list_positioner_unittest.cc |
deleted file mode 100644 |
index 24fce11708f827a6a19eecdb05b62d69c535f552..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/app_list/app_list_positioner_unittest.cc |
+++ /dev/null |
@@ -1,339 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/app_list/app_list_positioner.h" |
- |
-#include <memory> |
- |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-const int kScreenWidth = 800; |
-const int kScreenHeight = 600; |
- |
-const int kWindowWidth = 100; |
-const int kWindowHeight = 200; |
- |
-// Size of the menu bar along the top of the screen. |
-const int kMenuBarSize = 22; |
-// Size of the normal (non-hidden) shelf. |
-const int kShelfSize = 30; |
- |
-// The distance the shelf will appear from the edge of the screen. |
-const int kMinDistanceFromEdge = 3; |
- |
-// A cursor position that is within the shelf. This must be < kShelfSize. |
-const int kCursorOnShelf = kShelfSize / 2; |
-// A cursor position that should be ignored. |
-const int kCursorIgnore = -300; |
- |
-// A position for the center of the window that causes the window to overlap the |
-// edge of the screen. This must be < kWindowWidth / 2 and < kWindowHeight / 2. |
-const int kWindowNearEdge = kWindowWidth / 4; |
-// A position for the center of the window that places the window away from all |
-// edges of the screen. This must be > kWindowWidth / 2, > kWindowHeight / 2, < |
-// kScreenWidth - kWindowWidth / 2 and < kScreenHeight - kWindowHeight / 2. |
-const int kWindowAwayFromEdge = 158; |
- |
-} // namespace |
- |
-class AppListPositionerUnitTest : public testing::Test { |
- public: |
- void ResetPositioner() { |
- gfx::Size view_size(kWindowWidth, kWindowHeight); |
- positioner_.reset( |
- new AppListPositioner(display_, view_size, kMinDistanceFromEdge)); |
- } |
- |
- void SetUp() override { |
- display_.set_bounds(gfx::Rect(0, 0, kScreenWidth, kScreenHeight)); |
- // Assume there is a menu bar at the top of the screen, as on Mac and Unity. |
- // This is for cases where the work area does not fill the entire screen. |
- display_.set_work_area( |
- gfx::Rect(0, kMenuBarSize, kScreenWidth, kScreenHeight - kMenuBarSize)); |
- ResetPositioner(); |
- cursor_ = gfx::Point(); |
- } |
- |
- // Sets up the test environment with the shelf along a given edge of the work |
- // area. |
- void PlaceShelf(AppListPositioner::ScreenEdge edge) { |
- ResetPositioner(); |
- switch (edge) { |
- case AppListPositioner::SCREEN_EDGE_UNKNOWN: |
- break; |
- case AppListPositioner::SCREEN_EDGE_LEFT: |
- positioner_->WorkAreaInset(kShelfSize, 0, 0, 0); |
- break; |
- case AppListPositioner::SCREEN_EDGE_RIGHT: |
- positioner_->WorkAreaInset(0, 0, kShelfSize, 0); |
- break; |
- case AppListPositioner::SCREEN_EDGE_TOP: |
- positioner_->WorkAreaInset(0, kShelfSize, 0, 0); |
- break; |
- case AppListPositioner::SCREEN_EDGE_BOTTOM: |
- positioner_->WorkAreaInset(0, 0, 0, kShelfSize); |
- break; |
- } |
- } |
- |
- // Set up the test mouse cursor in a given location. |
- void PlaceCursor(int x, int y) { |
- cursor_ = gfx::Point(x, y); |
- } |
- |
- gfx::Point DoGetAnchorPointForScreenCorner( |
- AppListPositioner::ScreenCorner corner) const { |
- return positioner_->GetAnchorPointForScreenCorner(corner); |
- } |
- |
- gfx::Point DoGetAnchorPointForShelfCorner( |
- AppListPositioner::ScreenEdge shelf_edge) const { |
- return positioner_->GetAnchorPointForShelfCorner(shelf_edge); |
- } |
- |
- gfx::Point DoGetAnchorPointForShelfCenter( |
- AppListPositioner::ScreenEdge shelf_edge) const { |
- return positioner_->GetAnchorPointForShelfCenter(shelf_edge); |
- } |
- |
- gfx::Point DoGetAnchorPointForShelfCursor( |
- AppListPositioner::ScreenEdge shelf_edge) const { |
- return positioner_->GetAnchorPointForShelfCursor(shelf_edge, cursor_); |
- } |
- |
- AppListPositioner::ScreenEdge DoGetShelfEdge( |
- const gfx::Rect& shelf_rect) const { |
- return positioner_->GetShelfEdge(shelf_rect); |
- } |
- |
- int DoGetCursorDistanceFromShelf( |
- AppListPositioner::ScreenEdge shelf_edge) const { |
- return positioner_->GetCursorDistanceFromShelf(shelf_edge, cursor_); |
- } |
- |
- private: |
- display::Display display_; |
- std::unique_ptr<AppListPositioner> positioner_; |
- gfx::Point cursor_; |
-}; |
- |
-TEST_F(AppListPositionerUnitTest, ScreenCorner) { |
- // Position the app list in a corner of the screen. |
- // Top-left corner. |
- EXPECT_EQ(gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
- kMenuBarSize + kWindowHeight / 2 + kMinDistanceFromEdge), |
- DoGetAnchorPointForScreenCorner( |
- AppListPositioner::SCREEN_CORNER_TOP_LEFT)); |
- |
- // Top-right corner. |
- EXPECT_EQ(gfx::Point(kScreenWidth - kWindowWidth / 2 - kMinDistanceFromEdge, |
- kMenuBarSize + kWindowHeight / 2 + kMinDistanceFromEdge), |
- DoGetAnchorPointForScreenCorner( |
- AppListPositioner::SCREEN_CORNER_TOP_RIGHT)); |
- |
- // Bottom-left corner. |
- EXPECT_EQ( |
- gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
- kScreenHeight - kWindowHeight / 2 - kMinDistanceFromEdge), |
- DoGetAnchorPointForScreenCorner( |
- AppListPositioner::SCREEN_CORNER_BOTTOM_LEFT)); |
- |
- // Bottom-right corner. |
- EXPECT_EQ( |
- gfx::Point(kScreenWidth - kWindowWidth / 2 - kMinDistanceFromEdge, |
- kScreenHeight - kWindowHeight / 2 - kMinDistanceFromEdge), |
- DoGetAnchorPointForScreenCorner( |
- AppListPositioner::SCREEN_CORNER_BOTTOM_RIGHT)); |
-} |
- |
-TEST_F(AppListPositionerUnitTest, ShelfCorner) { |
- // Position the app list on the shelf, aligned with the top or left corner. |
- // Shelf on left. Expect app list in top-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
- EXPECT_EQ( |
- gfx::Point(kShelfSize + kWindowWidth / 2 + kMinDistanceFromEdge, |
- kMenuBarSize + kWindowHeight / 2 + kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_LEFT)); |
- |
- // Shelf on right. Expect app list in top-right corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_RIGHT); |
- EXPECT_EQ( |
- gfx::Point( |
- kScreenWidth - kShelfSize - kWindowWidth / 2 - kMinDistanceFromEdge, |
- kMenuBarSize + kWindowHeight / 2 + kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_RIGHT)); |
- |
- // Shelf on top. Expect app list in top-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_TOP); |
- EXPECT_EQ(gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
- kMenuBarSize + kShelfSize + kWindowHeight / 2 + |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_TOP)); |
- |
- // Shelf on bottom. Expect app list in bottom-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- EXPECT_EQ( |
- gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
- kScreenHeight - kShelfSize - kWindowHeight / 2 - |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
-} |
- |
-TEST_F(AppListPositionerUnitTest, ShelfCenter) { |
- // Position the app list on the shelf, aligned with the shelf center. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
- // Shelf on left. Expect app list to be center-left. |
- EXPECT_EQ( |
- gfx::Point(kShelfSize + kWindowWidth / 2 + kMinDistanceFromEdge, |
- (kMenuBarSize + kScreenHeight) / 2), |
- DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_LEFT)); |
- |
- // Shelf on right. Expect app list to be center-right. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_RIGHT); |
- EXPECT_EQ( |
- gfx::Point( |
- kScreenWidth - kShelfSize - kWindowWidth / 2 - kMinDistanceFromEdge, |
- (kMenuBarSize + kScreenHeight) / 2), |
- DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_RIGHT)); |
- |
- // Shelf on top. Expect app list to be top-center. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_TOP); |
- EXPECT_EQ(gfx::Point(kScreenWidth / 2, |
- kMenuBarSize + kShelfSize + kWindowHeight / 2 + |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_TOP)); |
- |
- // Shelf on bottom. Expect app list to be bottom-center. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- EXPECT_EQ( |
- gfx::Point(kScreenWidth / 2, |
- kScreenHeight - kShelfSize - kWindowHeight / 2 - |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
-} |
- |
-TEST_F(AppListPositionerUnitTest, ShelfCursor) { |
- // Position the app list on the shelf, aligned with the mouse cursor. |
- |
- // Shelf on left. Expect app list in top-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
- PlaceCursor(kCursorIgnore, kWindowAwayFromEdge); |
- EXPECT_EQ( |
- gfx::Point(kShelfSize + kWindowWidth / 2 + kMinDistanceFromEdge, |
- kWindowAwayFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_LEFT)); |
- |
- // Shelf on right. Expect app list in top-right corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_RIGHT); |
- PlaceCursor(kCursorIgnore, kWindowAwayFromEdge); |
- EXPECT_EQ( |
- gfx::Point( |
- kScreenWidth - kShelfSize - kWindowWidth / 2 - kMinDistanceFromEdge, |
- kWindowAwayFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_RIGHT)); |
- |
- // Shelf on top. Expect app list in top-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_TOP); |
- PlaceCursor(kWindowAwayFromEdge, kCursorIgnore); |
- EXPECT_EQ(gfx::Point(kWindowAwayFromEdge, |
- kMenuBarSize + kShelfSize + kWindowHeight / 2 + |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_TOP)); |
- |
- // Shelf on bottom. Expect app list in bottom-left corner. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- PlaceCursor(kWindowAwayFromEdge, kCursorIgnore); |
- EXPECT_EQ( |
- gfx::Point(kWindowAwayFromEdge, |
- kScreenHeight - kShelfSize - kWindowHeight / 2 - |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
- |
- // Shelf on bottom. Mouse near left edge. App list must not go off screen. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- PlaceCursor(kWindowNearEdge, kCursorIgnore); |
- EXPECT_EQ( |
- gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
- kScreenHeight - kShelfSize - kWindowHeight / 2 - |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
- |
- // Shelf on bottom. Mouse near right edge. App list must not go off screen. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- PlaceCursor(kScreenWidth - kWindowNearEdge, kCursorIgnore); |
- EXPECT_EQ( |
- gfx::Point(kScreenWidth - kWindowWidth / 2 - kMinDistanceFromEdge, |
- kScreenHeight - kShelfSize - kWindowHeight / 2 - |
- kMinDistanceFromEdge), |
- DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
-} |
- |
-TEST_F(AppListPositionerUnitTest, GetShelfEdge) { |
- gfx::Rect shelf_rect; |
- // Shelf on left. |
- shelf_rect = |
- gfx::Rect(0, kMenuBarSize, kShelfSize, kScreenHeight - kMenuBarSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_LEFT, DoGetShelfEdge(shelf_rect)); |
- |
- // Shelf on right. |
- shelf_rect = gfx::Rect(kScreenWidth - kShelfSize, |
- kMenuBarSize, |
- kShelfSize, |
- kScreenHeight - kMenuBarSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_RIGHT, DoGetShelfEdge(shelf_rect)); |
- |
- // Shelf on top. |
- shelf_rect = gfx::Rect(0, 0, kScreenWidth, kShelfSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_TOP, DoGetShelfEdge(shelf_rect)); |
- |
- // Shelf on bottom. |
- shelf_rect = |
- gfx::Rect(0, kScreenHeight - kShelfSize, kScreenWidth, kShelfSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_BOTTOM, DoGetShelfEdge(shelf_rect)); |
- |
- // A couple of inconclusive cases, which should return unknown. |
- shelf_rect = gfx::Rect(); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_UNKNOWN, DoGetShelfEdge(shelf_rect)); |
- shelf_rect = gfx::Rect(-10, 0, kScreenWidth, kShelfSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_UNKNOWN, DoGetShelfEdge(shelf_rect)); |
- shelf_rect = gfx::Rect(10, 0, kScreenWidth - 20, kShelfSize); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_UNKNOWN, DoGetShelfEdge(shelf_rect)); |
- shelf_rect = gfx::Rect(0, kShelfSize, kScreenWidth, 60); |
- EXPECT_EQ(AppListPositioner::SCREEN_EDGE_UNKNOWN, DoGetShelfEdge(shelf_rect)); |
-} |
- |
-TEST_F(AppListPositionerUnitTest, GetCursorDistanceFromShelf) { |
- // Shelf on left. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
- PlaceCursor(kWindowAwayFromEdge, kCursorIgnore); |
- EXPECT_EQ(kWindowAwayFromEdge - kShelfSize, |
- DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_LEFT)); |
- |
- // Shelf on right. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_RIGHT); |
- PlaceCursor(kScreenWidth - kWindowAwayFromEdge, kCursorIgnore); |
- EXPECT_EQ(kWindowAwayFromEdge - kShelfSize, |
- DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_RIGHT)); |
- |
- // Shelf on top. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_TOP); |
- PlaceCursor(kCursorIgnore, kMenuBarSize + kWindowAwayFromEdge); |
- EXPECT_EQ(kWindowAwayFromEdge - kShelfSize, |
- DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_TOP)); |
- |
- // Shelf on bottom. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- PlaceCursor(kCursorIgnore, kScreenHeight - kWindowAwayFromEdge); |
- EXPECT_EQ( |
- kWindowAwayFromEdge - kShelfSize, |
- DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
- |
- // Shelf on bottom. Cursor inside shelf; expect 0. |
- PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
- PlaceCursor(kCursorIgnore, kScreenHeight - kCursorOnShelf); |
- EXPECT_EQ( |
- 0, DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
-} |