Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 return test_type_ == LANDSCAPE || test_type_ == EXPERIMENTAL; | 92 return test_type_ == LANDSCAPE || test_type_ == EXPERIMENTAL; |
| 93 } | 93 } |
| 94 | 94 |
| 95 private: | 95 private: |
| 96 // Shows the app list and waits until a paint occurs. | 96 // Shows the app list and waits until a paint occurs. |
| 97 void Show(); | 97 void Show(); |
| 98 | 98 |
| 99 // Closes the app list. This sets |view_| to NULL. | 99 // Closes the app list. This sets |view_| to NULL. |
| 100 void Close(); | 100 void Close(); |
| 101 | 101 |
| 102 // Gets the PaginationModel owned by |view_|. | |
| 103 PaginationModel* PaginationModel() const; | |
|
xiyuan
2014/05/30 15:47:47
nit: accessor should be named in lower case, like
Matt Giuca
2014/06/02 07:11:23
const: done.
lowercase: My reading of the style gu
| |
| 104 | |
| 102 const TestType test_type_; | 105 const TestType test_type_; |
| 103 scoped_ptr<base::RunLoop> run_loop_; | 106 scoped_ptr<base::RunLoop> run_loop_; |
| 104 PaginationModel pagination_model_; | |
| 105 app_list::AppListView* view_; // Owned by native widget. | 107 app_list::AppListView* view_; // Owned by native widget. |
| 106 app_list::test::AppListTestViewDelegate* delegate_; // Owned by |view_|; | 108 app_list::test::AppListTestViewDelegate* delegate_; // Owned by |view_|; |
| 107 | 109 |
| 108 DISALLOW_COPY_AND_ASSIGN(AppListViewTestContext); | 110 DISALLOW_COPY_AND_ASSIGN(AppListViewTestContext); |
| 109 }; | 111 }; |
| 110 | 112 |
| 111 // Extend the regular AppListTestViewDelegate to communicate back to the test | 113 // Extend the regular AppListTestViewDelegate to communicate back to the test |
| 112 // context. Note the test context doesn't simply inherit this, because the | 114 // context. Note the test context doesn't simply inherit this, because the |
| 113 // delegate is owned by the view. | 115 // delegate is owned by the view. |
| 114 class UnitTestViewDelegate : public app_list::test::AppListTestViewDelegate { | 116 class UnitTestViewDelegate : public app_list::test::AppListTestViewDelegate { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 default: | 148 default: |
| 147 NOTREACHED(); | 149 NOTREACHED(); |
| 148 break; | 150 break; |
| 149 } | 151 } |
| 150 | 152 |
| 151 delegate_ = new UnitTestViewDelegate(this); | 153 delegate_ = new UnitTestViewDelegate(this); |
| 152 view_ = new app_list::AppListView(delegate_); | 154 view_ = new app_list::AppListView(delegate_); |
| 153 | 155 |
| 154 // Initialize centered around a point that ensures the window is wholly shown. | 156 // Initialize centered around a point that ensures the window is wholly shown. |
| 155 view_->InitAsBubbleAtFixedLocation(parent, | 157 view_->InitAsBubbleAtFixedLocation(parent, |
| 156 &pagination_model_, | |
| 157 gfx::Point(300, 300), | 158 gfx::Point(300, 300), |
| 158 views::BubbleBorder::FLOAT, | 159 views::BubbleBorder::FLOAT, |
| 159 false /* border_accepts_events */); | 160 false /* border_accepts_events */); |
| 160 } | 161 } |
| 161 | 162 |
| 162 AppListViewTestContext::~AppListViewTestContext() { | 163 AppListViewTestContext::~AppListViewTestContext() { |
| 163 // The view observes the PaginationModel which is about to get destroyed, so | 164 // The view observes the PaginationModel which is about to get destroyed, so |
| 164 // if the view is not already deleted by the time this destructor is called, | 165 // if the view is not already deleted by the time this destructor is called, |
| 165 // there will be problems. | 166 // there will be problems. |
| 166 EXPECT_FALSE(view_); | 167 EXPECT_FALSE(view_); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 185 | 186 |
| 186 void AppListViewTestContext::Close() { | 187 void AppListViewTestContext::Close() { |
| 187 view_->GetWidget()->Close(); | 188 view_->GetWidget()->Close(); |
| 188 run_loop_.reset(new base::RunLoop); | 189 run_loop_.reset(new base::RunLoop); |
| 189 run_loop_->Run(); | 190 run_loop_->Run(); |
| 190 | 191 |
| 191 // |view_| should have been deleted and set to NULL via ViewClosing(). | 192 // |view_| should have been deleted and set to NULL via ViewClosing(). |
| 192 EXPECT_FALSE(view_); | 193 EXPECT_FALSE(view_); |
| 193 } | 194 } |
| 194 | 195 |
| 196 PaginationModel* AppListViewTestContext::PaginationModel() const { | |
| 197 return view_->app_list_main_view() | |
| 198 ->contents_view() | |
| 199 ->apps_container_view() | |
| 200 ->apps_grid_view() | |
| 201 ->GetPaginationModel(); | |
| 202 } | |
| 203 | |
| 195 void AppListViewTestContext::RunDisplayTest() { | 204 void AppListViewTestContext::RunDisplayTest() { |
| 196 EXPECT_FALSE(view_->GetWidget()->IsVisible()); | 205 EXPECT_FALSE(view_->GetWidget()->IsVisible()); |
| 197 EXPECT_EQ(-1, pagination_model_.total_pages()); | 206 EXPECT_EQ(-1, PaginationModel()->total_pages()); |
| 198 delegate_->GetTestModel()->PopulateApps(kInitialItems); | 207 delegate_->GetTestModel()->PopulateApps(kInitialItems); |
| 199 | 208 |
| 200 Show(); | 209 Show(); |
| 201 if (is_landscape()) | 210 if (is_landscape()) |
| 202 EXPECT_EQ(2, pagination_model_.total_pages()); | 211 EXPECT_EQ(2, PaginationModel()->total_pages()); |
| 203 else | 212 else |
| 204 EXPECT_EQ(3, pagination_model_.total_pages()); | 213 EXPECT_EQ(3, PaginationModel()->total_pages()); |
| 205 EXPECT_EQ(0, pagination_model_.selected_page()); | 214 EXPECT_EQ(0, PaginationModel()->selected_page()); |
| 206 | 215 |
| 207 // Checks on the main view. | 216 // Checks on the main view. |
| 208 AppListMainView* main_view = view_->app_list_main_view(); | 217 AppListMainView* main_view = view_->app_list_main_view(); |
| 209 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); | 218 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); |
| 210 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->search_box_view())); | 219 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->search_box_view())); |
| 211 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->contents_view())); | 220 EXPECT_NO_FATAL_FAILURE(CheckView(main_view->contents_view())); |
| 212 | 221 |
| 213 Close(); | 222 Close(); |
| 214 } | 223 } |
| 215 | 224 |
| 216 void AppListViewTestContext::RunReshowWithOpenFolderTest() { | 225 void AppListViewTestContext::RunReshowWithOpenFolderTest() { |
| 217 EXPECT_FALSE(view_->GetWidget()->IsVisible()); | 226 EXPECT_FALSE(view_->GetWidget()->IsVisible()); |
| 218 EXPECT_EQ(-1, pagination_model_.total_pages()); | 227 EXPECT_EQ(-1, PaginationModel()->total_pages()); |
| 219 | 228 |
| 220 AppListTestModel* model = delegate_->GetTestModel(); | 229 AppListTestModel* model = delegate_->GetTestModel(); |
| 221 model->PopulateApps(kInitialItems); | 230 model->PopulateApps(kInitialItems); |
| 222 const std::string folder_id = | 231 const std::string folder_id = |
| 223 model->MergeItems(model->top_level_item_list()->item_at(0)->id(), | 232 model->MergeItems(model->top_level_item_list()->item_at(0)->id(), |
| 224 model->top_level_item_list()->item_at(1)->id()); | 233 model->top_level_item_list()->item_at(1)->id()); |
| 225 | 234 |
| 226 AppListFolderItem* folder_item = model->FindFolderItem(folder_id); | 235 AppListFolderItem* folder_item = model->FindFolderItem(folder_id); |
| 227 EXPECT_TRUE(folder_item); | 236 EXPECT_TRUE(folder_item); |
| 228 | 237 |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 252 // The main grid view should be showing after a reshow. | 261 // The main grid view should be showing after a reshow. |
| 253 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); | 262 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); |
| 254 EXPECT_NO_FATAL_FAILURE(CheckView(container_view->apps_grid_view())); | 263 EXPECT_NO_FATAL_FAILURE(CheckView(container_view->apps_grid_view())); |
| 255 EXPECT_FALSE(container_view->app_list_folder_view()->visible()); | 264 EXPECT_FALSE(container_view->app_list_folder_view()->visible()); |
| 256 | 265 |
| 257 Close(); | 266 Close(); |
| 258 } | 267 } |
| 259 | 268 |
| 260 void AppListViewTestContext::RunStartPageTest() { | 269 void AppListViewTestContext::RunStartPageTest() { |
| 261 EXPECT_FALSE(view_->GetWidget()->IsVisible()); | 270 EXPECT_FALSE(view_->GetWidget()->IsVisible()); |
| 262 EXPECT_EQ(-1, pagination_model_.total_pages()); | 271 EXPECT_EQ(-1, PaginationModel()->total_pages()); |
| 263 AppListTestModel* model = delegate_->GetTestModel(); | 272 AppListTestModel* model = delegate_->GetTestModel(); |
| 264 model->PopulateApps(3); | 273 model->PopulateApps(3); |
| 265 | 274 |
| 266 Show(); | 275 Show(); |
| 267 | 276 |
| 268 AppListMainView* main_view = view_->app_list_main_view(); | 277 AppListMainView* main_view = view_->app_list_main_view(); |
| 269 StartPageView* start_page_view = | 278 StartPageView* start_page_view = |
| 270 main_view->contents_view()->start_page_view(); | 279 main_view->contents_view()->start_page_view(); |
| 271 // Checks on the main view. | 280 // Checks on the main view. |
| 272 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); | 281 EXPECT_NO_FATAL_FAILURE(CheckView(main_view)); |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 417 INSTANTIATE_TEST_CASE_P(AppListViewTestAuraInstance, | 426 INSTANTIATE_TEST_CASE_P(AppListViewTestAuraInstance, |
| 418 AppListViewTestAura, | 427 AppListViewTestAura, |
| 419 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); | 428 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); |
| 420 | 429 |
| 421 INSTANTIATE_TEST_CASE_P(AppListViewTestDesktopInstance, | 430 INSTANTIATE_TEST_CASE_P(AppListViewTestDesktopInstance, |
| 422 AppListViewTestDesktop, | 431 AppListViewTestDesktop, |
| 423 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); | 432 ::testing::Range<int>(TEST_TYPE_START, TEST_TYPE_END)); |
| 424 | 433 |
| 425 } // namespace test | 434 } // namespace test |
| 426 } // namespace app_list | 435 } // namespace app_list |
| OLD | NEW |