Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/app_list/views/apps_grid_view.h" | 5 #include "ui/app_list/views/apps_grid_view.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 13 #include "base/message_loop/message_loop.h" | 13 #include "base/message_loop/message_loop.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/timer/timer.h" | 15 #include "base/timer/timer.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 17 #include "ui/app_list/app_list_item.h" | 17 #include "ui/app_list/app_list_item.h" |
| 18 #include "ui/app_list/app_list_model.h" | 18 #include "ui/app_list/app_list_model.h" |
| 19 #include "ui/app_list/app_list_switches.h" | 19 #include "ui/app_list/app_list_switches.h" |
| 20 #include "ui/app_list/pagination_model.h" | 20 #include "ui/app_list/pagination_model.h" |
| 21 #include "ui/app_list/test/app_list_test_model.h" | 21 #include "ui/app_list/test/app_list_test_model.h" |
| 22 #include "ui/app_list/views/app_list_item_view.h" | 22 #include "ui/app_list/views/app_list_item_view.h" |
| 23 #include "ui/app_list/views/apps_grid_view_folder_delegate.h" | |
| 23 #include "ui/app_list/views/test/apps_grid_view_test_api.h" | 24 #include "ui/app_list/views/test/apps_grid_view_test_api.h" |
| 24 #include "ui/views/test/views_test_base.h" | 25 #include "ui/views/test/views_test_base.h" |
| 25 | 26 |
| 26 namespace app_list { | 27 namespace app_list { |
| 27 namespace test { | 28 namespace test { |
| 28 | 29 |
| 29 namespace { | 30 namespace { |
| 30 | 31 |
| 31 const int kIconDimension = 48; | 32 const int kIconDimension = 48; |
| 32 const int kCols = 2; | 33 const int kCols = 2; |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 172 | 173 |
| 173 scoped_ptr<AppListTestModel> model_; | 174 scoped_ptr<AppListTestModel> model_; |
| 174 scoped_ptr<PaginationModel> pagination_model_; | 175 scoped_ptr<PaginationModel> pagination_model_; |
| 175 scoped_ptr<AppsGridView> apps_grid_view_; | 176 scoped_ptr<AppsGridView> apps_grid_view_; |
| 176 scoped_ptr<AppsGridViewTestApi> test_api_; | 177 scoped_ptr<AppsGridViewTestApi> test_api_; |
| 177 | 178 |
| 178 private: | 179 private: |
| 179 DISALLOW_COPY_AND_ASSIGN(AppsGridViewTest); | 180 DISALLOW_COPY_AND_ASSIGN(AppsGridViewTest); |
| 180 }; | 181 }; |
| 181 | 182 |
| 183 class TestAppsGridViewFolderDelegate : public AppsGridViewFolderDelegate { | |
| 184 public: | |
| 185 TestAppsGridViewFolderDelegate() : show_bubble_(false) {} | |
| 186 ~TestAppsGridViewFolderDelegate() {} | |
| 187 | |
| 188 // Overridden from AppsGridViewFolderDelegate: | |
| 189 virtual void UpdateFolderViewBackground(bool show_bubble) OVERRIDE { | |
| 190 show_bubble_ = show_bubble; | |
| 191 } | |
| 192 | |
| 193 virtual void ReparentItem(AppListItemView* original_drag_view, | |
| 194 const gfx::Point& drag_point_in_folder_grid) | |
| 195 OVERRIDE {} | |
|
tapted
2014/03/26 02:53:54
nit: OVERRIDE looks lonely, unless clang-format di
calamity
2014/03/27 05:14:44
All hail our benevolent clang-format overlord.
| |
| 196 | |
| 197 virtual void DispatchDragEventForReparent(AppsGridView::Pointer pointer, | |
| 198 const ui::LocatedEvent& event) | |
| 199 OVERRIDE {} | |
| 200 | |
| 201 virtual void DispatchEndDragEventForReparent( | |
| 202 bool events_forwarded_to_drag_drop_host) OVERRIDE {} | |
| 203 | |
| 204 virtual bool IsPointOutsideOfFolderBoundary(const gfx::Point& point) | |
| 205 OVERRIDE { | |
| 206 return false; | |
| 207 } | |
| 208 | |
| 209 bool show_bubble() { return show_bubble_; } | |
| 210 | |
| 211 private: | |
| 212 bool show_bubble_; | |
| 213 }; | |
|
tapted
2014/03/26 02:53:54
nit: DISALLOW_COPY_AND_ASSIGN(..)
calamity
2014/03/27 05:14:44
Done.
| |
| 214 | |
| 182 TEST_F(AppsGridViewTest, CreatePage) { | 215 TEST_F(AppsGridViewTest, CreatePage) { |
| 183 // Fully populates a page. | 216 // Fully populates a page. |
| 184 const int kPages = 1; | 217 const int kPages = 1; |
| 185 model_->PopulateApps(kPages * kTilesPerPage); | 218 model_->PopulateApps(kPages * kTilesPerPage); |
| 186 EXPECT_EQ(kPages, pagination_model_->total_pages()); | 219 EXPECT_EQ(kPages, pagination_model_->total_pages()); |
| 187 | 220 |
| 188 // Adds one more and gets a new page created. | 221 // Adds one more and gets a new page created. |
| 189 model_->CreateAndAddItem("Extra"); | 222 model_->CreateAndAddItem("Extra"); |
| 190 EXPECT_EQ(kPages + 1, pagination_model_->total_pages()); | 223 EXPECT_EQ(kPages + 1, pagination_model_->total_pages()); |
| 191 } | 224 } |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 // Starts a touch drag first then a mouse drag. | 378 // Starts a touch drag first then a mouse drag. |
| 346 SimulateDrag(AppsGridView::TOUCH, touch_from, touch_to); | 379 SimulateDrag(AppsGridView::TOUCH, touch_from, touch_to); |
| 347 SimulateDrag(AppsGridView::MOUSE, mouse_from, mouse_to); | 380 SimulateDrag(AppsGridView::MOUSE, mouse_from, mouse_to); |
| 348 // Finishes the drag and touch drag wins. | 381 // Finishes the drag and touch drag wins. |
| 349 apps_grid_view_->EndDrag(false); | 382 apps_grid_view_->EndDrag(false); |
| 350 EXPECT_EQ(std::string("Item 1,Item 0,Item 3,Item 2"), | 383 EXPECT_EQ(std::string("Item 1,Item 0,Item 3,Item 2"), |
| 351 model_->GetModelContent()); | 384 model_->GetModelContent()); |
| 352 test_api_->LayoutToIdealBounds(); | 385 test_api_->LayoutToIdealBounds(); |
| 353 } | 386 } |
| 354 | 387 |
| 388 TEST_F(AppsGridViewTest, UpdateFolderBackgroundOnCancelDrag) { | |
| 389 const int kTotalItems = 4; | |
| 390 TestAppsGridViewFolderDelegate folder_delegate; | |
| 391 apps_grid_view_->set_folder_delegate(&folder_delegate); | |
| 392 model_->PopulateApps(kTotalItems); | |
| 393 EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"), | |
| 394 model_->GetModelContent()); | |
| 395 | |
| 396 gfx::Point mouse_from = GetItemTileRectAt(0, 0).CenterPoint(); | |
| 397 gfx::Point mouse_to = GetItemTileRectAt(0, 1).CenterPoint(); | |
| 398 | |
| 399 // Starts a mouse drag and then cancels it. | |
| 400 SimulateDrag(AppsGridView::MOUSE, mouse_from, mouse_to); | |
| 401 EXPECT_TRUE(folder_delegate.show_bubble()); | |
| 402 apps_grid_view_->EndDrag(true); | |
| 403 EXPECT_FALSE(folder_delegate.show_bubble()); | |
| 404 EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"), | |
| 405 model_->GetModelContent()); | |
| 406 } | |
| 407 | |
| 355 TEST_F(AppsGridViewTest, HighlightWithKeyboard) { | 408 TEST_F(AppsGridViewTest, HighlightWithKeyboard) { |
| 356 const int kPages = 3; | 409 const int kPages = 3; |
| 357 const int kItems = (kPages - 1) * kTilesPerPage + 1; | 410 const int kItems = (kPages - 1) * kTilesPerPage + 1; |
| 358 model_->PopulateApps(kItems); | 411 model_->PopulateApps(kItems); |
| 359 | 412 |
| 360 const int first_index = 0; | 413 const int first_index = 0; |
| 361 const int last_index = kItems - 1; | 414 const int last_index = kItems - 1; |
| 362 const int last_index_on_page1_first_row = kRows - 1; | 415 const int last_index_on_page1_first_row = kRows - 1; |
| 363 const int last_index_on_page1 = kTilesPerPage - 1; | 416 const int last_index_on_page1 = kTilesPerPage - 1; |
| 364 const int first_index_on_page2 = kTilesPerPage; | 417 const int first_index_on_page2 = kTilesPerPage; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 461 AppListItemView* item_view = GetItemViewAt(0); | 514 AppListItemView* item_view = GetItemViewAt(0); |
| 462 ASSERT_TRUE(item_view); | 515 ASSERT_TRUE(item_view); |
| 463 const views::Label* title_label = item_view->title(); | 516 const views::Label* title_label = item_view->title(); |
| 464 EXPECT_FALSE(title_label->GetTooltipText( | 517 EXPECT_FALSE(title_label->GetTooltipText( |
| 465 title_label->bounds().CenterPoint(), &actual_tooltip)); | 518 title_label->bounds().CenterPoint(), &actual_tooltip)); |
| 466 EXPECT_EQ(title, base::UTF16ToUTF8(title_label->text())); | 519 EXPECT_EQ(title, base::UTF16ToUTF8(title_label->text())); |
| 467 } | 520 } |
| 468 | 521 |
| 469 } // namespace test | 522 } // namespace test |
| 470 } // namespace app_list | 523 } // namespace app_list |
| OLD | NEW |