Index: ui/app_list/views/app_list_view_unittest.cc |
diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc |
index 3495e6a3c1920e604ac30b0a35138e94c9908736..901bcf2f7261a4dd5f0bf8ce6f5551021b9e0ab2 100644 |
--- a/ui/app_list/views/app_list_view_unittest.cc |
+++ b/ui/app_list/views/app_list_view_unittest.cc |
@@ -23,6 +23,7 @@ |
#include "ui/app_list/views/contents_view.h" |
#include "ui/app_list/views/search_box_view.h" |
#include "ui/app_list/views/search_result_list_view.h" |
+#include "ui/app_list/views/search_result_tile_item_view.h" |
#include "ui/app_list/views/start_page_view.h" |
#include "ui/app_list/views/test/apps_grid_view_test_api.h" |
#include "ui/app_list/views/tile_item_view.h" |
@@ -44,17 +45,30 @@ enum TestType { |
TEST_TYPE_END, |
}; |
-size_t GetVisibleTileItemViews(const std::vector<TileItemView*>& tiles) { |
+template <class T> |
+size_t GetVisibleViews(const std::vector<T*>& tiles) { |
size_t count = 0; |
- for (std::vector<TileItemView*>::const_iterator it = tiles.begin(); |
- it != tiles.end(); |
- ++it) { |
- if ((*it)->visible()) |
+ for (const auto& tile : tiles) { |
+ if (tile->visible()) |
count++; |
} |
return count; |
} |
+void SimulateClick(views::View* view) { |
+ gfx::Point center = view->GetLocalBounds().CenterPoint(); |
+ view->OnMousePressed(ui::MouseEvent(ui::ET_MOUSE_PRESSED, |
+ center, |
+ center, |
+ ui::EF_LEFT_MOUSE_BUTTON, |
+ ui::EF_LEFT_MOUSE_BUTTON)); |
+ view->OnMouseReleased(ui::MouseEvent(ui::ET_MOUSE_RELEASED, |
+ center, |
+ center, |
+ ui::EF_LEFT_MOUSE_BUTTON, |
+ ui::EF_LEFT_MOUSE_BUTTON)); |
+} |
+ |
// Choose a set that is 3 regular app list pages and 2 landscape app list pages. |
const int kInitialItems = 34; |
@@ -115,6 +129,9 @@ class AppListViewTestContext { |
// ensure all launcher pages are in the correct position. |
void ShowContentsViewPageAndVerify(AppListModel::State state); |
+ // Tests that the app list is in |state|. |
+ void VerifyPageActive(AppListModel::State state); |
+ |
// Shows the app list and waits until a paint occurs. |
void Show(); |
@@ -204,6 +221,12 @@ void AppListViewTestContext::ShowContentsViewPageAndVerify( |
int index = contents_view->GetPageIndexForState(state); |
contents_view->SetActivePage(index); |
contents_view->Layout(); |
+ VerifyPageActive(state); |
+} |
+ |
+void AppListViewTestContext::VerifyPageActive(AppListModel::State state) { |
+ ContentsView* contents_view = view_->app_list_main_view()->contents_view(); |
+ int index = contents_view->GetPageIndexForState(state); |
for (int i = 0; i < contents_view->NumLauncherPages(); ++i) { |
EXPECT_EQ(i == index, |
contents_view->GetDefaultContentsBounds() == |
@@ -346,9 +369,13 @@ void AppListViewTestContext::RunStartPageTest() { |
// Show the start page view. |
ShowContentsViewPageAndVerify(AppListModel::STATE_START); |
EXPECT_FALSE(main_view->search_box_view()->visible()); |
- |
gfx::Size view_size(view_->GetPreferredSize()); |
- ShowContentsViewPageAndVerify(AppListModel::STATE_APPS); |
+ |
+ // Simulate clicking the "All apps" button. Check that we navigate to the |
+ // apps grid view. |
+ SimulateClick(start_page_view->all_apps_button()); |
+ main_view->contents_view()->Layout(); |
+ VerifyPageActive(AppListModel::STATE_APPS); |
EXPECT_TRUE(main_view->search_box_view()->visible()); |
// Hiding and showing the search box should not affect the app list's |
@@ -358,10 +385,10 @@ void AppListViewTestContext::RunStartPageTest() { |
// Check tiles hide and show on deletion and addition. |
model->results()->Add(new TestTileSearchResult()); |
start_page_view->UpdateForTesting(); |
- EXPECT_EQ(1u, GetVisibleTileItemViews(start_page_view->tile_views())); |
+ EXPECT_EQ(1u, GetVisibleViews(start_page_view->tile_views())); |
model->results()->DeleteAll(); |
start_page_view->UpdateForTesting(); |
- EXPECT_EQ(0u, GetVisibleTileItemViews(start_page_view->tile_views())); |
+ EXPECT_EQ(0u, GetVisibleViews(start_page_view->tile_views())); |
} else { |
EXPECT_EQ(NULL, start_page_view); |
} |
@@ -455,7 +482,7 @@ void AppListViewTestContext::RunProfileChangeTest() { |
delegate_->GetTestModel()->results()->Add(new TestTileSearchResult()); |
if (test_type_ == EXPERIMENTAL) { |
start_page_view->UpdateForTesting(); |
- EXPECT_EQ(1u, GetVisibleTileItemViews(start_page_view->tile_views())); |
+ EXPECT_EQ(1u, GetVisibleViews(start_page_view->tile_views())); |
} |
// Old model updates should be ignored. |
@@ -463,7 +490,7 @@ void AppListViewTestContext::RunProfileChangeTest() { |
original_test_model->results()->Add(new TestTileSearchResult()); |
if (test_type_ == EXPERIMENTAL) { |
start_page_view->UpdateForTesting(); |
- EXPECT_EQ(1u, GetVisibleTileItemViews(start_page_view->tile_views())); |
+ EXPECT_EQ(1u, GetVisibleViews(start_page_view->tile_views())); |
} |
Close(); |