Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: ui/app_list/views/app_list_view_unittest.cc

Issue 302803002: Refactor app list so AppsGridView owns the PaginationModel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile error (conflict). Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/app_list/views/app_list_view.cc ('k') | ui/app_list/views/apps_container_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/app_list_view.h" 5 #include "ui/app_list/views/app_list_view.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 return test_type_ == LANDSCAPE || test_type_ == EXPERIMENTAL; 95 return test_type_ == LANDSCAPE || test_type_ == EXPERIMENTAL;
96 } 96 }
97 97
98 private: 98 private:
99 // Shows the app list and waits until a paint occurs. 99 // Shows the app list and waits until a paint occurs.
100 void Show(); 100 void Show();
101 101
102 // Closes the app list. This sets |view_| to NULL. 102 // Closes the app list. This sets |view_| to NULL.
103 void Close(); 103 void Close();
104 104
105 // Gets the PaginationModel owned by |view_|.
106 PaginationModel* GetPaginationModel();
107
105 const TestType test_type_; 108 const TestType test_type_;
106 scoped_ptr<base::RunLoop> run_loop_; 109 scoped_ptr<base::RunLoop> run_loop_;
107 PaginationModel pagination_model_;
108 app_list::AppListView* view_; // Owned by native widget. 110 app_list::AppListView* view_; // Owned by native widget.
109 app_list::test::AppListTestViewDelegate* delegate_; // Owned by |view_|; 111 app_list::test::AppListTestViewDelegate* delegate_; // Owned by |view_|;
110 112
111 DISALLOW_COPY_AND_ASSIGN(AppListViewTestContext); 113 DISALLOW_COPY_AND_ASSIGN(AppListViewTestContext);
112 }; 114 };
113 115
114 // Extend the regular AppListTestViewDelegate to communicate back to the test 116 // Extend the regular AppListTestViewDelegate to communicate back to the test
115 // context. Note the test context doesn't simply inherit this, because the 117 // context. Note the test context doesn't simply inherit this, because the
116 // delegate is owned by the view. 118 // delegate is owned by the view.
117 class UnitTestViewDelegate : public app_list::test::AppListTestViewDelegate { 119 class UnitTestViewDelegate : public app_list::test::AppListTestViewDelegate {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 default: 151 default:
150 NOTREACHED(); 152 NOTREACHED();
151 break; 153 break;
152 } 154 }
153 155
154 delegate_ = new UnitTestViewDelegate(this); 156 delegate_ = new UnitTestViewDelegate(this);
155 view_ = new app_list::AppListView(delegate_); 157 view_ = new app_list::AppListView(delegate_);
156 158
157 // Initialize centered around a point that ensures the window is wholly shown. 159 // Initialize centered around a point that ensures the window is wholly shown.
158 view_->InitAsBubbleAtFixedLocation(parent, 160 view_->InitAsBubbleAtFixedLocation(parent,
159 &pagination_model_, 161 0,
160 gfx::Point(300, 300), 162 gfx::Point(300, 300),
161 views::BubbleBorder::FLOAT, 163 views::BubbleBorder::FLOAT,
162 false /* border_accepts_events */); 164 false /* border_accepts_events */);
163 } 165 }
164 166
165 AppListViewTestContext::~AppListViewTestContext() { 167 AppListViewTestContext::~AppListViewTestContext() {
166 // The view observes the PaginationModel which is about to get destroyed, so 168 // The view observes the PaginationModel which is about to get destroyed, so
167 // if the view is not already deleted by the time this destructor is called, 169 // if the view is not already deleted by the time this destructor is called,
168 // there will be problems. 170 // there will be problems.
169 EXPECT_FALSE(view_); 171 EXPECT_FALSE(view_);
(...skipping 18 matching lines...) Expand all
188 190
189 void AppListViewTestContext::Close() { 191 void AppListViewTestContext::Close() {
190 view_->GetWidget()->Close(); 192 view_->GetWidget()->Close();
191 run_loop_.reset(new base::RunLoop); 193 run_loop_.reset(new base::RunLoop);
192 run_loop_->Run(); 194 run_loop_->Run();
193 195
194 // |view_| should have been deleted and set to NULL via ViewClosing(). 196 // |view_| should have been deleted and set to NULL via ViewClosing().
195 EXPECT_FALSE(view_); 197 EXPECT_FALSE(view_);
196 } 198 }
197 199
200 PaginationModel* AppListViewTestContext::GetPaginationModel() {
201 return view_->GetAppsPaginationModel();
202 }
203
198 void AppListViewTestContext::RunDisplayTest() { 204 void AppListViewTestContext::RunDisplayTest() {
199 EXPECT_FALSE(view_->GetWidget()->IsVisible()); 205 EXPECT_FALSE(view_->GetWidget()->IsVisible());
200 EXPECT_EQ(-1, pagination_model_.total_pages()); 206 EXPECT_EQ(-1, GetPaginationModel()->total_pages());
201 delegate_->GetTestModel()->PopulateApps(kInitialItems); 207 delegate_->GetTestModel()->PopulateApps(kInitialItems);
202 208
203 Show(); 209 Show();
204 if (is_landscape()) 210 if (is_landscape())
205 EXPECT_EQ(2, pagination_model_.total_pages()); 211 EXPECT_EQ(2, GetPaginationModel()->total_pages());
206 else 212 else
207 EXPECT_EQ(3, pagination_model_.total_pages()); 213 EXPECT_EQ(3, GetPaginationModel()->total_pages());
208 EXPECT_EQ(0, pagination_model_.selected_page()); 214 EXPECT_EQ(0, GetPaginationModel()->selected_page());
209 215
210 // Checks on the main view. 216 // Checks on the main view.
211 AppListMainView* main_view = view_->app_list_main_view(); 217 AppListMainView* main_view = view_->app_list_main_view();
212 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); 218 EXPECT_NO_FATAL_FAILURE(CheckView(main_view));
213 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->search_box_view())); 219 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->search_box_view()));
214 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->contents_view())); 220 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->contents_view()));
215 221
216 Close(); 222 Close();
217 } 223 }
218 224
219 void AppListViewTestContext::RunReshowWithOpenFolderTest() { 225 void AppListViewTestContext::RunReshowWithOpenFolderTest() {
220 EXPECT_FALSE(view_->GetWidget()->IsVisible()); 226 EXPECT_FALSE(view_->GetWidget()->IsVisible());
221 EXPECT_EQ(-1, pagination_model_.total_pages()); 227 EXPECT_EQ(-1, GetPaginationModel()->total_pages());
222 228
223 AppListTestModel* model = delegate_->GetTestModel(); 229 AppListTestModel* model = delegate_->GetTestModel();
224 model->PopulateApps(kInitialItems); 230 model->PopulateApps(kInitialItems);
225 const std::string folder_id = 231 const std::string folder_id =
226 model->MergeItems(model->top_level_item_list()->item_at(0)->id(), 232 model->MergeItems(model->top_level_item_list()->item_at(0)->id(),
227 model->top_level_item_list()->item_at(1)->id()); 233 model->top_level_item_list()->item_at(1)->id());
228 234
229 AppListFolderItem* folder_item = model->FindFolderItem(folder_id); 235 AppListFolderItem* folder_item = model->FindFolderItem(folder_id);
230 EXPECT_TRUE(folder_item); 236 EXPECT_TRUE(folder_item);
231 237
(...skipping 23 matching lines...) Expand all
255 // The main grid view should be showing after a reshow. 261 // The main grid view should be showing after a reshow.
256 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); 262 EXPECT_NO_FATAL_FAILURE(CheckView(main_view));
257 EXPECT_NO_FATAL_FAILURE(CheckView(container_view->apps_grid_view())); 263 EXPECT_NO_FATAL_FAILURE(CheckView(container_view->apps_grid_view()));
258 EXPECT_FALSE(container_view->app_list_folder_view()->visible()); 264 EXPECT_FALSE(container_view->app_list_folder_view()->visible());
259 265
260 Close(); 266 Close();
261 } 267 }
262 268
263 void AppListViewTestContext::RunStartPageTest() { 269 void AppListViewTestContext::RunStartPageTest() {
264 EXPECT_FALSE(view_->GetWidget()->IsVisible()); 270 EXPECT_FALSE(view_->GetWidget()->IsVisible());
265 EXPECT_EQ(-1, pagination_model_.total_pages()); 271 EXPECT_EQ(-1, GetPaginationModel()->total_pages());
266 AppListTestModel* model = delegate_->GetTestModel(); 272 AppListTestModel* model = delegate_->GetTestModel();
267 model->PopulateApps(3); 273 model->PopulateApps(3);
268 274
269 Show(); 275 Show();
270 276
271 AppListMainView* main_view = view_->app_list_main_view(); 277 AppListMainView* main_view = view_->app_list_main_view();
272 StartPageView* start_page_view = 278 StartPageView* start_page_view =
273 main_view->contents_view()->start_page_view(); 279 main_view->contents_view()->start_page_view();
274 // Checks on the main view. 280 // Checks on the main view.
275 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); 281 EXPECT_NO_FATAL_FAILURE(CheckView(main_view));
(...skipping 23 matching lines...) Expand all
299 EXPECT_EQ(3u, GetVisibleTileItemViews(start_page_view->tile_views())); 305 EXPECT_EQ(3u, GetVisibleTileItemViews(start_page_view->tile_views()));
300 } else { 306 } else {
301 EXPECT_EQ(NULL, start_page_view); 307 EXPECT_EQ(NULL, start_page_view);
302 } 308 }
303 309
304 Close(); 310 Close();
305 } 311 }
306 312
307 void AppListViewTestContext::RunProfileChangeTest() { 313 void AppListViewTestContext::RunProfileChangeTest() {
308 EXPECT_FALSE(view_->GetWidget()->IsVisible()); 314 EXPECT_FALSE(view_->GetWidget()->IsVisible());
309 EXPECT_EQ(-1, pagination_model_.total_pages()); 315 EXPECT_EQ(-1, GetPaginationModel()->total_pages());
310 delegate_->GetTestModel()->PopulateApps(kInitialItems); 316 delegate_->GetTestModel()->PopulateApps(kInitialItems);
311 317
312 Show(); 318 Show();
313 319
314 if (is_landscape()) 320 if (is_landscape())
315 EXPECT_EQ(2, pagination_model_.total_pages()); 321 EXPECT_EQ(2, GetPaginationModel()->total_pages());
316 else 322 else
317 EXPECT_EQ(3, pagination_model_.total_pages()); 323 EXPECT_EQ(3, GetPaginationModel()->total_pages());
318 324
319 // Change the profile. The original model needs to be kept alive for 325 // Change the profile. The original model needs to be kept alive for
320 // observers to unregister themselves. 326 // observers to unregister themselves.
321 scoped_ptr<AppListTestModel> original_test_model( 327 scoped_ptr<AppListTestModel> original_test_model(
322 delegate_->ReleaseTestModel()); 328 delegate_->ReleaseTestModel());
323 delegate_->set_next_profile_app_count(1); 329 delegate_->set_next_profile_app_count(1);
324 330
325 // The original ContentsView is destroyed here. 331 // The original ContentsView is destroyed here.
326 view_->SetProfileByPath(base::FilePath()); 332 view_->SetProfileByPath(base::FilePath());
327 EXPECT_EQ(1, pagination_model_.total_pages()); 333 EXPECT_EQ(1, GetPaginationModel()->total_pages());
328 334
329 StartPageView* start_page_view = 335 StartPageView* start_page_view =
330 view_->app_list_main_view()->contents_view()->start_page_view(); 336 view_->app_list_main_view()->contents_view()->start_page_view();
331 if (test_type_ == EXPERIMENTAL) { 337 if (test_type_ == EXPERIMENTAL) {
332 EXPECT_NO_FATAL_FAILURE(CheckView(start_page_view)); 338 EXPECT_NO_FATAL_FAILURE(CheckView(start_page_view));
333 EXPECT_EQ(1u, GetVisibleTileItemViews(start_page_view->tile_views())); 339 EXPECT_EQ(1u, GetVisibleTileItemViews(start_page_view->tile_views()));
334 } else { 340 } else {
335 EXPECT_EQ(NULL, start_page_view); 341 EXPECT_EQ(NULL, start_page_view);
336 } 342 }
337 343
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 INSTANTIATE_TEST_CASE_P(AppListViewTestAuraInstance, 479 INSTANTIATE_TEST_CASE_P(AppListViewTestAuraInstance,
474 AppListViewTestAura, 480 AppListViewTestAura,
475 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); 481 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END));
476 482
477 INSTANTIATE_TEST_CASE_P(AppListViewTestDesktopInstance, 483 INSTANTIATE_TEST_CASE_P(AppListViewTestDesktopInstance,
478 AppListViewTestDesktop, 484 AppListViewTestDesktop,
479 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); 485 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END));
480 486
481 } // namespace test 487 } // namespace test
482 } // namespace app_list 488 } // namespace app_list
OLDNEW
« no previous file with comments | « ui/app_list/views/app_list_view.cc ('k') | ui/app_list/views/apps_container_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698