| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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/app_list/app_list_positioner.h" | 5 #include "chrome/browser/ui/app_list/app_list_positioner.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 namespace { | 10 namespace { |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 gfx::Point DoGetAnchorPointForScreenCorner( | 81 gfx::Point DoGetAnchorPointForScreenCorner( |
| 82 AppListPositioner::ScreenCorner corner) const { | 82 AppListPositioner::ScreenCorner corner) const { |
| 83 return positioner_->GetAnchorPointForScreenCorner(corner); | 83 return positioner_->GetAnchorPointForScreenCorner(corner); |
| 84 } | 84 } |
| 85 | 85 |
| 86 gfx::Point DoGetAnchorPointForShelfCorner( | 86 gfx::Point DoGetAnchorPointForShelfCorner( |
| 87 AppListPositioner::ScreenEdge shelf_edge) const { | 87 AppListPositioner::ScreenEdge shelf_edge) const { |
| 88 return positioner_->GetAnchorPointForShelfCorner(shelf_edge); | 88 return positioner_->GetAnchorPointForShelfCorner(shelf_edge); |
| 89 } | 89 } |
| 90 | 90 |
| 91 gfx::Point DoGetAnchorPointForShelfCenter( |
| 92 AppListPositioner::ScreenEdge shelf_edge) const { |
| 93 return positioner_->GetAnchorPointForShelfCenter(shelf_edge); |
| 94 } |
| 95 |
| 91 gfx::Point DoGetAnchorPointForShelfCursor( | 96 gfx::Point DoGetAnchorPointForShelfCursor( |
| 92 AppListPositioner::ScreenEdge shelf_edge) const { | 97 AppListPositioner::ScreenEdge shelf_edge) const { |
| 93 return positioner_->GetAnchorPointForShelfCursor(shelf_edge, cursor_); | 98 return positioner_->GetAnchorPointForShelfCursor(shelf_edge, cursor_); |
| 94 } | 99 } |
| 95 | 100 |
| 96 AppListPositioner::ScreenEdge DoGetShelfEdge( | 101 AppListPositioner::ScreenEdge DoGetShelfEdge( |
| 97 const gfx::Rect& shelf_rect) const { | 102 const gfx::Rect& shelf_rect) const { |
| 98 return positioner_->GetShelfEdge(shelf_rect); | 103 return positioner_->GetShelfEdge(shelf_rect); |
| 99 } | 104 } |
| 100 | 105 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 | 168 |
| 164 // Shelf on bottom. Expect app list in bottom-left corner. | 169 // Shelf on bottom. Expect app list in bottom-left corner. |
| 165 PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); | 170 PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
| 166 EXPECT_EQ( | 171 EXPECT_EQ( |
| 167 gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, | 172 gfx::Point(kWindowWidth / 2 + kMinDistanceFromEdge, |
| 168 kScreenHeight - kShelfSize - kWindowHeight / 2 - | 173 kScreenHeight - kShelfSize - kWindowHeight / 2 - |
| 169 kMinDistanceFromEdge), | 174 kMinDistanceFromEdge), |
| 170 DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_BOTTOM)); | 175 DoGetAnchorPointForShelfCorner(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
| 171 } | 176 } |
| 172 | 177 |
| 178 TEST_F(AppListPositionerUnitTest, ShelfCenter) { |
| 179 // Position the app list on the shelf, aligned with the shelf center. |
| 180 PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
| 181 // Shelf on left. Expect app list to be center-left. |
| 182 EXPECT_EQ( |
| 183 gfx::Point(83, kScreenHeight / 2), |
| 184 DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_LEFT)); |
| 185 |
| 186 // Shelf on right. Expect app list to be center-right. |
| 187 PlaceShelf(AppListPositioner::SCREEN_EDGE_RIGHT); |
| 188 EXPECT_EQ( |
| 189 gfx::Point(kScreenWidth - 83, kScreenHeight / 2), |
| 190 DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_RIGHT)); |
| 191 |
| 192 // Shelf on top. Expect app list to be top-center. |
| 193 PlaceShelf(AppListPositioner::SCREEN_EDGE_TOP); |
| 194 EXPECT_EQ( |
| 195 gfx::Point(kScreenWidth / 2, 133), |
| 196 DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_TOP)); |
| 197 |
| 198 // Shelf on bottom. Expect app list to be bottom-center. |
| 199 PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
| 200 EXPECT_EQ( |
| 201 gfx::Point(kScreenWidth / 2, kScreenHeight - 133), |
| 202 DoGetAnchorPointForShelfCenter(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
| 203 } |
| 204 |
| 173 TEST_F(AppListPositionerUnitTest, ShelfCursor) { | 205 TEST_F(AppListPositionerUnitTest, ShelfCursor) { |
| 174 // Position the app list on the shelf, aligned with the mouse cursor. | 206 // Position the app list on the shelf, aligned with the mouse cursor. |
| 175 | 207 |
| 176 // Shelf on left. Expect app list in top-left corner. | 208 // Shelf on left. Expect app list in top-left corner. |
| 177 PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); | 209 PlaceShelf(AppListPositioner::SCREEN_EDGE_LEFT); |
| 178 PlaceCursor(kCursorIgnore, kWindowAwayFromEdge); | 210 PlaceCursor(kCursorIgnore, kWindowAwayFromEdge); |
| 179 EXPECT_EQ( | 211 EXPECT_EQ( |
| 180 gfx::Point(kShelfSize + kWindowWidth / 2 + kMinDistanceFromEdge, | 212 gfx::Point(kShelfSize + kWindowWidth / 2 + kMinDistanceFromEdge, |
| 181 kWindowAwayFromEdge), | 213 kWindowAwayFromEdge), |
| 182 DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_LEFT)); | 214 DoGetAnchorPointForShelfCursor(AppListPositioner::SCREEN_EDGE_LEFT)); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 EXPECT_EQ( | 313 EXPECT_EQ( |
| 282 kWindowAwayFromEdge - kShelfSize, | 314 kWindowAwayFromEdge - kShelfSize, |
| 283 DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); | 315 DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
| 284 | 316 |
| 285 // Shelf on bottom. Cursor inside shelf; expect 0. | 317 // Shelf on bottom. Cursor inside shelf; expect 0. |
| 286 PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); | 318 PlaceShelf(AppListPositioner::SCREEN_EDGE_BOTTOM); |
| 287 PlaceCursor(kCursorIgnore, kScreenHeight - kCursorOnShelf); | 319 PlaceCursor(kCursorIgnore, kScreenHeight - kCursorOnShelf); |
| 288 EXPECT_EQ( | 320 EXPECT_EQ( |
| 289 0, DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); | 321 0, DoGetCursorDistanceFromShelf(AppListPositioner::SCREEN_EDGE_BOTTOM)); |
| 290 } | 322 } |
| OLD | NEW |