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

Side by Side Diff: views/layout/grid_layout_unittest.cc

Issue 8588064: views: Move bubble, events, focus and layout to ui/views/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | « views/layout/grid_layout.cc ('k') | views/layout/layout_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "views/layout/grid_layout.h"
7 #include "views/view.h"
8
9 using views::ColumnSet;
10 using views::GridLayout;
11 using views::View;
12
13 static void ExpectViewBoundsEquals(int x, int y, int w, int h,
14 const View* view) {
15 EXPECT_EQ(x, view->x());
16 EXPECT_EQ(y, view->y());
17 EXPECT_EQ(w, view->width());
18 EXPECT_EQ(h, view->height());
19 }
20
21 class SettableSizeView : public View {
22 public:
23 explicit SettableSizeView(const gfx::Size& pref) {
24 pref_ = pref;
25 }
26
27 virtual gfx::Size GetPreferredSize() {
28 return pref_;
29 }
30
31 private:
32 gfx::Size pref_;
33 };
34
35 // A view with fixed circumference that trades height for width.
36 class FlexibleView : public View {
37 public:
38 explicit FlexibleView(int circumference) {
39 circumference_ = circumference;
40 }
41
42 virtual gfx::Size GetPreferredSize() {
43 return gfx::Size(0, circumference_ / 2);
44 }
45
46 virtual int GetHeightForWidth(int width) {
47 return std::max(0, circumference_ / 2 - width);
48 }
49
50 private:
51 int circumference_;
52 };
53
54 class GridLayoutTest : public testing::Test {
55 public:
56 virtual void SetUp() {
57 layout = new GridLayout(&host);
58 }
59
60 virtual void TearDown() {
61 delete layout;
62 }
63
64 virtual void RemoveAll() {
65 for (int i = host.child_count() - 1; i >= 0; i--)
66 host.RemoveChildView(host.child_at(i));
67 }
68
69 void GetPreferredSize() {
70 pref = layout->GetPreferredSize(&host);
71 }
72
73 gfx::Size pref;
74 gfx::Rect bounds;
75 View host;
76 GridLayout* layout;
77 };
78
79 class GridLayoutAlignmentTest : public testing::Test {
80 public:
81 GridLayoutAlignmentTest() :
82 host(),
83 v1(gfx::Size(10, 20)),
84 layout(new GridLayout(&host)) {}
85
86 virtual void SetUp() {
87 }
88
89 virtual void TearDown() {
90 delete layout;
91 }
92
93 virtual void RemoveAll() {
94 for (int i = host.child_count() - 1; i >= 0; i--)
95 host.RemoveChildView(host.child_at(i));
96 }
97
98 void TestAlignment(GridLayout::Alignment alignment, gfx::Rect* bounds) {
99 ColumnSet* c1 = layout->AddColumnSet(0);
100 c1->AddColumn(alignment, alignment, 1, GridLayout::USE_PREF, 0, 0);
101 layout->StartRow(1, 0);
102 layout->AddView(&v1);
103 gfx::Size pref = layout->GetPreferredSize(&host);
104 EXPECT_EQ(gfx::Size(10, 20), pref);
105 host.SetBounds(0, 0, 100, 100);
106 layout->Layout(&host);
107 *bounds = v1.bounds();
108 RemoveAll();
109 }
110
111 View host;
112 SettableSizeView v1;
113 GridLayout* layout;
114 };
115
116 TEST_F(GridLayoutAlignmentTest, Fill) {
117 gfx::Rect bounds;
118 TestAlignment(GridLayout::FILL, &bounds);
119 EXPECT_EQ(gfx::Rect(0, 0, 100, 100), bounds);
120 }
121
122 TEST_F(GridLayoutAlignmentTest, Leading) {
123 gfx::Rect bounds;
124 TestAlignment(GridLayout::LEADING, &bounds);
125 EXPECT_EQ(gfx::Rect(0, 0, 10, 20), bounds);
126 }
127
128 TEST_F(GridLayoutAlignmentTest, Center) {
129 gfx::Rect bounds;
130 TestAlignment(GridLayout::CENTER, &bounds);
131 EXPECT_EQ(gfx::Rect(45, 40, 10, 20), bounds);
132 }
133
134 TEST_F(GridLayoutAlignmentTest, Trailing) {
135 gfx::Rect bounds;
136 TestAlignment(GridLayout::TRAILING, &bounds);
137 EXPECT_EQ(gfx::Rect(90, 80, 10, 20), bounds);
138 }
139
140 TEST_F(GridLayoutTest, TwoColumns) {
141 SettableSizeView v1(gfx::Size(10, 20));
142 SettableSizeView v2(gfx::Size(20, 20));
143 ColumnSet* c1 = layout->AddColumnSet(0);
144 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
145 0, GridLayout::USE_PREF, 0, 0);
146 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
147 0, GridLayout::USE_PREF, 0, 0);
148 layout->StartRow(0, 0);
149 layout->AddView(&v1);
150 layout->AddView(&v2);
151
152 GetPreferredSize();
153 EXPECT_EQ(gfx::Size(30, 20), pref);
154
155 host.SetBounds(0, 0, pref.width(), pref.height());
156 layout->Layout(&host);
157 ExpectViewBoundsEquals(0, 0, 10, 20, &v1);
158 ExpectViewBoundsEquals(10, 0, 20, 20, &v2);
159
160 RemoveAll();
161 }
162
163 TEST_F(GridLayoutTest, ColSpan1) {
164 SettableSizeView v1(gfx::Size(100, 20));
165 SettableSizeView v2(gfx::Size(10, 40));
166 ColumnSet* c1 = layout->AddColumnSet(0);
167 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
168 0, GridLayout::USE_PREF, 0, 0);
169 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
170 1, GridLayout::USE_PREF, 0, 0);
171 layout->StartRow(0, 0);
172 layout->AddView(&v1, 2, 1);
173 layout->StartRow(0, 0);
174 layout->AddView(&v2);
175
176 GetPreferredSize();
177 EXPECT_EQ(gfx::Size(100, 60), pref);
178
179 host.SetBounds(0, 0, pref.width(), pref.height());
180 layout->Layout(&host);
181 ExpectViewBoundsEquals(0, 0, 100, 20, &v1);
182 ExpectViewBoundsEquals(0, 20, 10, 40, &v2);
183
184 RemoveAll();
185 }
186
187 TEST_F(GridLayoutTest, ColSpan2) {
188 SettableSizeView v1(gfx::Size(100, 20));
189 SettableSizeView v2(gfx::Size(10, 20));
190 ColumnSet* c1 = layout->AddColumnSet(0);
191 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
192 1, GridLayout::USE_PREF, 0, 0);
193 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
194 0, GridLayout::USE_PREF, 0, 0);
195 layout->StartRow(0, 0);
196 layout->AddView(&v1, 2, 1);
197 layout->StartRow(0, 0);
198 layout->SkipColumns(1);
199 layout->AddView(&v2);
200
201 GetPreferredSize();
202 EXPECT_EQ(gfx::Size(100, 40), pref);
203
204 host.SetBounds(0, 0, pref.width(), pref.height());
205 layout->Layout(&host);
206 ExpectViewBoundsEquals(0, 0, 100, 20, &v1);
207 ExpectViewBoundsEquals(90, 20, 10, 20, &v2);
208
209 RemoveAll();
210 }
211
212 TEST_F(GridLayoutTest, ColSpan3) {
213 SettableSizeView v1(gfx::Size(100, 20));
214 SettableSizeView v2(gfx::Size(10, 20));
215 SettableSizeView v3(gfx::Size(10, 20));
216 ColumnSet* c1 = layout->AddColumnSet(0);
217 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
218 0, GridLayout::USE_PREF, 0, 0);
219 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
220 0, GridLayout::USE_PREF, 0, 0);
221 layout->StartRow(0, 0);
222 layout->AddView(&v1, 2, 1);
223 layout->StartRow(0, 0);
224 layout->AddView(&v2);
225 layout->AddView(&v3);
226
227 GetPreferredSize();
228 EXPECT_EQ(gfx::Size(100, 40), pref);
229
230 host.SetBounds(0, 0, pref.width(), pref.height());
231 layout->Layout(&host);
232 ExpectViewBoundsEquals(0, 0, 100, 20, &v1);
233 ExpectViewBoundsEquals(0, 20, 10, 20, &v2);
234 ExpectViewBoundsEquals(50, 20, 10, 20, &v3);
235
236 RemoveAll();
237 }
238
239
240 TEST_F(GridLayoutTest, ColSpan4) {
241 views::ColumnSet* set = layout->AddColumnSet(0);
242
243 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, 0,
244 GridLayout::USE_PREF, 0, 0);
245 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, 0,
246 GridLayout::USE_PREF, 0, 0);
247
248 SettableSizeView v1(gfx::Size(10, 10));
249 SettableSizeView v2(gfx::Size(10, 10));
250 SettableSizeView v3(gfx::Size(25, 20));
251 layout->StartRow(0, 0);
252 layout->AddView(&v1);
253 layout->AddView(&v2);
254 layout->StartRow(0, 0);
255 layout->AddView(&v3, 2, 1);
256
257 GetPreferredSize();
258 EXPECT_EQ(gfx::Size(25, 30), pref);
259
260 host.SetBounds(0, 0, pref.width(), pref.height());
261 layout->Layout(&host);
262 ExpectViewBoundsEquals(0, 0, 10, 10, &v1);
263 ExpectViewBoundsEquals(12, 0, 10, 10, &v2);
264 ExpectViewBoundsEquals(0, 10, 25, 20, &v3);
265
266 RemoveAll();
267 }
268
269 TEST_F(GridLayoutTest, SameSizeColumns) {
270 SettableSizeView v1(gfx::Size(50, 20));
271 SettableSizeView v2(gfx::Size(10, 10));
272 ColumnSet* c1 = layout->AddColumnSet(0);
273 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
274 0, GridLayout::USE_PREF, 0, 0);
275 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
276 0, GridLayout::USE_PREF, 0, 0);
277 c1->LinkColumnSizes(0, 1, -1);
278 layout->StartRow(0, 0);
279 layout->AddView(&v1);
280 layout->AddView(&v2);
281
282 gfx::Size pref = layout->GetPreferredSize(&host);
283 EXPECT_EQ(gfx::Size(100, 20), pref);
284
285 host.SetBounds(0, 0, pref.width(), pref.height());
286 layout->Layout(&host);
287 ExpectViewBoundsEquals(0, 0, 50, 20, &v1);
288 ExpectViewBoundsEquals(50, 0, 10, 10, &v2);
289
290 RemoveAll();
291 }
292
293 TEST_F(GridLayoutTest, HorizontalResizeTest1) {
294 SettableSizeView v1(gfx::Size(50, 20));
295 SettableSizeView v2(gfx::Size(10, 10));
296 ColumnSet* c1 = layout->AddColumnSet(0);
297 c1->AddColumn(GridLayout::FILL, GridLayout::LEADING,
298 1, GridLayout::USE_PREF, 0, 0);
299 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
300 0, GridLayout::USE_PREF, 0, 0);
301 layout->StartRow(0, 0);
302 layout->AddView(&v1);
303 layout->AddView(&v2);
304
305 host.SetBounds(0, 0, 110, 20);
306 layout->Layout(&host);
307 ExpectViewBoundsEquals(0, 0, 100, 20, &v1);
308 ExpectViewBoundsEquals(100, 0, 10, 10, &v2);
309
310 RemoveAll();
311 }
312
313 TEST_F(GridLayoutTest, HorizontalResizeTest2) {
314 SettableSizeView v1(gfx::Size(50, 20));
315 SettableSizeView v2(gfx::Size(10, 10));
316 ColumnSet* c1 = layout->AddColumnSet(0);
317 c1->AddColumn(GridLayout::FILL, GridLayout::LEADING,
318 1, GridLayout::USE_PREF, 0, 0);
319 c1->AddColumn(GridLayout::TRAILING, GridLayout::LEADING,
320 1, GridLayout::USE_PREF, 0, 0);
321 layout->StartRow(0, 0);
322 layout->AddView(&v1);
323 layout->AddView(&v2);
324
325 host.SetBounds(0, 0, 120, 20);
326 layout->Layout(&host);
327 ExpectViewBoundsEquals(0, 0, 80, 20, &v1);
328 ExpectViewBoundsEquals(110, 0, 10, 10, &v2);
329
330 RemoveAll();
331 }
332
333 TEST_F(GridLayoutTest, TestVerticalResize1) {
334 SettableSizeView v1(gfx::Size(50, 20));
335 SettableSizeView v2(gfx::Size(10, 10));
336 ColumnSet* c1 = layout->AddColumnSet(0);
337 c1->AddColumn(GridLayout::FILL, GridLayout::FILL,
338 1, GridLayout::USE_PREF, 0, 0);
339 layout->StartRow(1, 0);
340 layout->AddView(&v1);
341 layout->StartRow(0, 0);
342 layout->AddView(&v2);
343
344 GetPreferredSize();
345 EXPECT_EQ(gfx::Size(50, 30), pref);
346
347 host.SetBounds(0, 0, 50, 100);
348 layout->Layout(&host);
349 ExpectViewBoundsEquals(0, 0, 50, 90, &v1);
350 ExpectViewBoundsEquals(0, 90, 50, 10, &v2);
351
352 RemoveAll();
353 }
354
355 TEST_F(GridLayoutTest, Insets) {
356 SettableSizeView v1(gfx::Size(10, 20));
357 ColumnSet* c1 = layout->AddColumnSet(0);
358 layout->SetInsets(1, 2, 3, 4);
359 c1->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
360 0, GridLayout::USE_PREF, 0, 0);
361 layout->StartRow(0, 0);
362 layout->AddView(&v1);
363
364 GetPreferredSize();
365 EXPECT_EQ(gfx::Size(16, 24), pref);
366
367 host.SetBounds(0, 0, pref.width(), pref.height());
368 layout->Layout(&host);
369 ExpectViewBoundsEquals(2, 1, 10, 20, &v1);
370
371 RemoveAll();
372 }
373
374 TEST_F(GridLayoutTest, FixedSize) {
375 layout->SetInsets(2, 2, 2, 2);
376
377 views::ColumnSet* set = layout->AddColumnSet(0);
378
379 int column_count = 4;
380 int title_width = 100;
381 int row_count = 2;
382 int pref_width = 10;
383 int pref_height = 20;
384
385 for (int i = 0; i < column_count; ++i) {
386 set->AddColumn(views::GridLayout::CENTER,
387 views::GridLayout::CENTER,
388 0,
389 views::GridLayout::FIXED,
390 title_width,
391 title_width);
392 }
393
394 for (int row = 0; row < row_count; ++row) {
395 layout->StartRow(0, 0);
396 for (int col = 0; col < column_count; ++col) {
397 layout->AddView(new SettableSizeView(gfx::Size(pref_width, pref_height)));
398 }
399 }
400
401 layout->Layout(&host);
402
403 for (int i = 0; i < column_count; ++i) {
404 for (int row = 0; row < row_count; ++row) {
405 View* view = host.child_at(row * column_count + i);
406 ExpectViewBoundsEquals(
407 2 + title_width * i + (title_width - pref_width) / 2,
408 2 + pref_height * row,
409 pref_width,
410 pref_height, view);
411 }
412 }
413
414 GetPreferredSize();
415 EXPECT_EQ(gfx::Size(column_count * title_width + 4,
416 row_count * pref_height + 4), pref);
417 }
418
419 TEST_F(GridLayoutTest, RowSpanWithPaddingRow) {
420 views::ColumnSet* set = layout->AddColumnSet(0);
421
422 set->AddColumn(views::GridLayout::CENTER,
423 views::GridLayout::CENTER,
424 0,
425 views::GridLayout::FIXED,
426 10,
427 10);
428
429 layout->StartRow(0, 0);
430 layout->AddView(new SettableSizeView(gfx::Size(10, 10)), 1, 2);
431 layout->AddPaddingRow(0, 10);
432 }
433
434 TEST_F(GridLayoutTest, RowSpan) {
435 views::ColumnSet* set = layout->AddColumnSet(0);
436
437 set->AddColumn(views::GridLayout::LEADING,
438 views::GridLayout::LEADING,
439 0,
440 views::GridLayout::USE_PREF,
441 0,
442 0);
443 set->AddColumn(views::GridLayout::LEADING,
444 views::GridLayout::LEADING,
445 0,
446 views::GridLayout::USE_PREF,
447 0,
448 0);
449
450 layout->StartRow(0, 0);
451 layout->AddView(new SettableSizeView(gfx::Size(20, 10)));
452 layout->AddView(new SettableSizeView(gfx::Size(20, 40)), 1, 2);
453 layout->StartRow(1, 0);
454 views::View* s3 = new SettableSizeView(gfx::Size(20, 10));
455 layout->AddView(s3);
456
457 GetPreferredSize();
458 EXPECT_EQ(gfx::Size(40, 40), pref);
459
460 host.SetBounds(0, 0, pref.width(), pref.height());
461 layout->Layout(&host);
462 ExpectViewBoundsEquals(0, 10, 20, 10, s3);
463 }
464
465 TEST_F(GridLayoutTest, RowSpan2) {
466 views::ColumnSet* set = layout->AddColumnSet(0);
467
468 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
469 0, GridLayout::USE_PREF, 0, 0);
470 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
471 0,GridLayout::USE_PREF, 0, 0);
472
473 layout->StartRow(0, 0);
474 layout->AddView(new SettableSizeView(gfx::Size(20, 20)));
475 views::View* s3 = new SettableSizeView(gfx::Size(64, 64));
476 layout->AddView(s3, 1, 3);
477
478 layout->AddPaddingRow(0, 10);
479
480 layout->StartRow(0, 0);
481 layout->AddView(new SettableSizeView(gfx::Size(10, 20)));
482
483 GetPreferredSize();
484 EXPECT_EQ(gfx::Size(84, 64), pref);
485
486 host.SetBounds(0, 0, pref.width(), pref.height());
487 layout->Layout(&host);
488 ExpectViewBoundsEquals(20, 0, 64, 64, s3);
489 }
490
491 TEST_F(GridLayoutTest, FixedViewWidth) {
492 views::ColumnSet* set = layout->AddColumnSet(0);
493
494 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
495 0, GridLayout::USE_PREF, 0, 0);
496 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
497 0,GridLayout::USE_PREF, 0, 0);
498
499 layout->StartRow(0, 0);
500 View* view = new SettableSizeView(gfx::Size(30, 40));
501 layout->AddView(view, 1, 1, GridLayout::LEADING, GridLayout::LEADING, 10, 0);
502
503 GetPreferredSize();
504 EXPECT_EQ(10, pref.width());
505 EXPECT_EQ(40, pref.height());
506
507 host.SetBounds(0, 0, pref.width(), pref.height());
508 layout->Layout(&host);
509 ExpectViewBoundsEquals(0, 0, 10, 40, view);
510 }
511
512 TEST_F(GridLayoutTest, FixedViewHeight) {
513 views::ColumnSet* set = layout->AddColumnSet(0);
514
515 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
516 0, GridLayout::USE_PREF, 0, 0);
517 set->AddColumn(GridLayout::LEADING, GridLayout::LEADING,
518 0,GridLayout::USE_PREF, 0, 0);
519
520 layout->StartRow(0, 0);
521 View* view = new SettableSizeView(gfx::Size(30, 40));
522 layout->AddView(view, 1, 1, GridLayout::LEADING, GridLayout::LEADING, 0, 10);
523
524 GetPreferredSize();
525 EXPECT_EQ(30, pref.width());
526 EXPECT_EQ(10, pref.height());
527
528 host.SetBounds(0, 0, pref.width(), pref.height());
529 layout->Layout(&host);
530 ExpectViewBoundsEquals(0, 0, 30, 10, view);
531 }
532
533 // Make sure that for views that span columns the underlying columns are resized
534 // based on the resize percent of the column.
535 TEST_F(GridLayoutTest, ColumnSpanResizing) {
536 views::ColumnSet* set = layout->AddColumnSet(0);
537
538 set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
539 2, views::GridLayout::USE_PREF, 0, 0);
540 set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
541 4, views::GridLayout::USE_PREF, 0, 0);
542
543 layout->StartRow(0, 0);
544 // span_view spans two columns and is twice as big the views added below.
545 View* span_view = new SettableSizeView(gfx::Size(12, 40));
546 layout->AddView(span_view, 2, 1, GridLayout::LEADING, GridLayout::LEADING);
547
548 layout->StartRow(0, 0);
549 View* view1 = new SettableSizeView(gfx::Size(2, 40));
550 View* view2 = new SettableSizeView(gfx::Size(4, 40));
551 layout->AddView(view1);
552 layout->AddView(view2);
553
554 host.SetBounds(0, 0, 12, 80);
555 layout->Layout(&host);
556
557 ExpectViewBoundsEquals(0, 0, 12, 40, span_view);
558
559 // view1 should be 4 pixels wide
560 // column_pref + (remaining_width * column_resize / total_column_resize) =
561 // 2 + (6 * 2 / 6).
562 ExpectViewBoundsEquals(0, 40, 4, 40, view1);
563
564 // And view2 should be 8 pixels wide:
565 // 4 + (6 * 4 / 6).
566 ExpectViewBoundsEquals(4, 40, 8, 40, view2);
567 }
568
569 // Check that GetPreferredSize() takes resizing of columns into account when
570 // there is additional space in the case we have column sets of different
571 // preferred sizes.
572 TEST_F(GridLayoutTest, ColumnResizingOnGetPreferredSize) {
573 views::ColumnSet* set = layout->AddColumnSet(0);
574 set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
575 1, views::GridLayout::USE_PREF, 0, 0);
576
577 set = layout->AddColumnSet(1);
578 set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
579 1, views::GridLayout::USE_PREF, 0, 0);
580
581 set = layout->AddColumnSet(2);
582 set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
583 1, views::GridLayout::USE_PREF, 0, 0);
584
585 // Make a row containing a flexible view that trades width for height.
586 layout->StartRow(0, 0);
587 View* view1 = new FlexibleView(100);
588 layout->AddView(view1, 1, 1, GridLayout::FILL, GridLayout::LEADING);
589
590 // The second row contains a view of fixed size that will enforce a column
591 // width of 20 pixels.
592 layout->StartRow(0, 1);
593 View* view2 = new SettableSizeView(gfx::Size(20, 20));
594 layout->AddView(view2, 1, 1, GridLayout::FILL, GridLayout::LEADING);
595
596 // Add another flexible view in row three in order to ensure column set
597 // ordering doesn't influence sizing behaviour.
598 layout->StartRow(0, 2);
599 View* view3 = new FlexibleView(40);
600 layout->AddView(view3, 1, 1, GridLayout::FILL, GridLayout::LEADING);
601
602 // We expect a height of 50: 30 from the variable width view in the first row
603 // plus 20 from the statically sized view in the second row. The flexible
604 // view in the third row should contribute no height.
605 EXPECT_EQ(gfx::Size(20, 50), layout->GetPreferredSize(&host));
606 }
OLDNEW
« no previous file with comments | « views/layout/grid_layout.cc ('k') | views/layout/layout_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698