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

Side by Side Diff: ui/views/controls/table/table_view_unittest.cc

Issue 11801027: More work to make ash_unittests pass when we require context. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix TableViewTest by making it a ViewsTestBase. Created 7 years, 11 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/oak/oak_window.cc ('k') | ui/views/test/views_test_base.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 (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 // For WinDDK ATL compatibility, these ATL headers must come first. 5 // For WinDDK ATL compatibility, these ATL headers must come first.
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #include <atlbase.h> // NOLINT 9 #include <atlbase.h> // NOLINT
10 #include <atlwin.h> // NOLINT 10 #include <atlwin.h> // NOLINT
11 #include <vector> // NOLINT 11 #include <vector> // NOLINT
12 12
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/message_loop.h" 14 #include "base/message_loop.h"
15 #include "base/string_number_conversions.h" 15 #include "base/string_number_conversions.h"
16 #include "base/utf_string_conversions.h" 16 #include "base/utf_string_conversions.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "ui/base/models/table_model.h" 18 #include "ui/base/models/table_model.h"
19 #include "ui/base/models/table_model_observer.h" 19 #include "ui/base/models/table_model_observer.h"
20 #include "ui/base/win/scoped_ole_initializer.h"
21 #include "ui/views/controls/table/table_view.h" 20 #include "ui/views/controls/table/table_view.h"
21 #include "ui/views/test/views_test_base.h"
22 #include "ui/views/widget/widget.h" 22 #include "ui/views/widget/widget.h"
23 #include "ui/views/widget/widget_delegate.h" 23 #include "ui/views/widget/widget_delegate.h"
24 24
25 // Put the tests in the views namespace to make it easier to declare them as 25 // Put the tests in the views namespace to make it easier to declare them as
26 // friend classes. 26 // friend classes.
27 namespace views { 27 namespace views {
28 28
29 // TestTableModel -------------------------------------------------------------- 29 // TestTableModel --------------------------------------------------------------
30 30
31 // Trivial TableModel implementation that is backed by a vector of vectors. 31 // Trivial TableModel implementation that is backed by a vector of vectors.
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 void TestTableModel::SetObserver(ui::TableModelObserver* observer) { 126 void TestTableModel::SetObserver(ui::TableModelObserver* observer) {
127 observer_ = observer; 127 observer_ = observer;
128 } 128 }
129 129
130 int TestTableModel::CompareValues(int row1, int row2, int column_id) { 130 int TestTableModel::CompareValues(int row1, int row2, int column_id) {
131 return rows_[row1][column_id] - rows_[row2][column_id]; 131 return rows_[row1][column_id] - rows_[row2][column_id];
132 } 132 }
133 133
134 // TableViewTest --------------------------------------------------------------- 134 // TableViewTest ---------------------------------------------------------------
135 135
136 class TableViewTest : public testing::Test, views::WidgetDelegate { 136 class TableViewTest : public ViewsTestBase, views::WidgetDelegate {
137 public: 137 public:
138 virtual void SetUp() OVERRIDE; 138 virtual void SetUp() OVERRIDE;
139 virtual void TearDown() OVERRIDE; 139 virtual void TearDown() OVERRIDE;
140 140
141 virtual views::View* GetContentsView() OVERRIDE { 141 virtual views::View* GetContentsView() OVERRIDE {
142 return table_; 142 return table_;
143 } 143 }
144 virtual views::Widget* GetWidget() OVERRIDE { 144 virtual views::Widget* GetWidget() OVERRIDE {
145 return table_->GetWidget(); 145 return table_->GetWidget();
146 } 146 }
(...skipping 19 matching lines...) Expand all
166 // This selects model rows 0 and 1, and if |sort| is true the first column 166 // This selects model rows 0 and 1, and if |sort| is true the first column
167 // is sorted in descending order. 167 // is sorted in descending order.
168 void SetUpMultiSelectTestState(bool sort); 168 void SetUpMultiSelectTestState(bool sort);
169 169
170 scoped_ptr<TestTableModel> model_; 170 scoped_ptr<TestTableModel> model_;
171 171
172 // The table. This is owned by the window. 172 // The table. This is owned by the window.
173 TableView* table_; 173 TableView* table_;
174 174
175 private: 175 private:
176 MessageLoopForUI message_loop_;
177 views::Widget* window_; 176 views::Widget* window_;
178 ui::ScopedOleInitializer ole_initializer_;
179 }; 177 };
180 178
181 void TableViewTest::SetUp() { 179 void TableViewTest::SetUp() {
180 ViewsTestBase::SetUp();
181
182 model_.reset(CreateModel()); 182 model_.reset(CreateModel());
183 std::vector<ui::TableColumn> columns; 183 std::vector<ui::TableColumn> columns;
184 columns.resize(2); 184 columns.resize(2);
185 columns[0].id = 0; 185 columns[0].id = 0;
186 columns[1].id = 1; 186 columns[1].id = 1;
187
188 // TODO(erg): This crashes on windows. Try making this derive from ViewsTests.
187 table_ = new TableView(model_.get(), columns, views::ICON_AND_TEXT, 189 table_ = new TableView(model_.get(), columns, views::ICON_AND_TEXT,
188 false, false, false); 190 false, false, false);
189 window_ = views::Widget::CreateWindowWithBounds( 191 window_ = views::Widget::CreateWindowWithContextAndBounds(
190 this, 192 this, GetContext(), gfx::Rect(100, 100, 512, 512));
191 gfx::Rect(100, 100, 512, 512));
192 } 193 }
193 194
194 void TableViewTest::TearDown() { 195 void TableViewTest::TearDown() {
195 window_->Close(); 196 window_->Close();
196 // Temporary workaround to avoid leak of RootView::pending_paint_task_. 197
197 message_loop_.RunUntilIdle(); 198 ViewsTestBase::TearDown();
198 } 199 }
199 200
200 void TableViewTest::VerifyViewOrder(int first, ...) { 201 void TableViewTest::VerifyViewOrder(int first, ...) {
201 va_list marker; 202 va_list marker;
202 va_start(marker, first); 203 va_start(marker, first);
203 int value = first; 204 int value = first;
204 int index = 0; 205 int index = 0;
205 for (int value = first, index = 0; value != -1; index++) { 206 for (int value = first, index = 0; value != -1; index++) {
206 ASSERT_EQ(value, table_->ViewToModel(index)); 207 ASSERT_EQ(value, table_->ViewToModel(index));
207 value = va_arg(marker, int); 208 value = va_arg(marker, int);
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 VerifySelectedRows(2, 0, -1); 455 VerifySelectedRows(2, 0, -1);
455 } 456 }
456 457
457 // Crashing: http://crbug.com/45015 458 // Crashing: http://crbug.com/45015
458 TEST_F(NullModelTableViewTest, DISABLED_NullModel) { 459 TEST_F(NullModelTableViewTest, DISABLED_NullModel) {
459 // There's nothing explicit to test. If there is a bug in TableView relating 460 // There's nothing explicit to test. If there is a bug in TableView relating
460 // to a NULL model we'll crash. 461 // to a NULL model we'll crash.
461 } 462 }
462 463
463 } // namespace views 464 } // namespace views
OLDNEW
« no previous file with comments | « ui/oak/oak_window.cc ('k') | ui/views/test/views_test_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698