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

Side by Side Diff: Source/core/rendering/RenderGridTest.cpp

Issue 363133003: [CSS Grid Layout] Adapting align-self, align-items and justify-self to the last CSS 3 spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 5 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "core/rendering/RenderGrid.h"
7
8 #include "core/html/HTMLElement.h"
9
10 #include "core/rendering/RenderObject.h"
11 #include "core/rendering/RenderView.h"
12
13 #include "core/testing/DummyPageHolder.h"
14 #include <gtest/gtest.h>
15
16 using namespace WebCore;
17
18 namespace {
19
20 // Base class for RenderGrid testing, it exposes some useful getter.
Julien - ping for review 2014/07/08 16:05:39 I don't think this is a RenderGrid testing, we onl
21 class RenderGridTest : public testing::Test {
22 protected:
23 virtual void SetUp() OVERRIDE
24 {
25 m_pageHolder = DummyPageHolder::create(IntSize(800, 600));
26
27 // This ensures that the minimal DOM tree gets attached
28 // correctly for tests that don't call setBodyInnerHTML.
29 document().view()->updateLayoutAndStyleIfNeededRecursive();
30 }
31
32 Document& document() const { return m_pageHolder->document(); }
33 RenderView& renderView() const { return *document().renderView(); }
34
35 void setBodyInnerHTML(const char*);
36
37 private:
38 OwnPtr<DummyPageHolder> m_pageHolder;
39 };
40
41 void RenderGridTest::setBodyInnerHTML(const char* htmlContent)
42 {
43 document().body()->setInnerHTML(String::fromUTF8(htmlContent), ASSERT_NO_EXC EPTION);
44 document().view()->updateLayoutAndStyleIfNeededRecursive();
45 }
46
47 TEST_F(RenderGridTest, JustifyItemsResolvedAutoValue)
48 {
49 setBodyInnerHTML("<div style='display: grid; justify-items: auto'></div>");
50 RenderObject* renderer = document().body()->firstChild()->renderer();
51 EXPECT_EQ(renderer->isRenderGrid(), true);
52 EXPECT_EQ(ItemPositionStretch, renderer->style()->justifyItems());
53 EXPECT_EQ(OverflowAlignmentDefault, renderer->style()->justifyItemsOverflowA lignment());
54 EXPECT_EQ(NonLegacyPosition, renderer->style()->justifyItemsPositionType());
55 }
56
57 TEST_F(RenderGridTest, JustifySelfResolvedAutoValue)
58 {
59 setBodyInnerHTML("<div style='display: grid; justify-items: right safe'><div style='display: grid; justify-self: auto'></div></div>");
60 RenderObject* container = document().body()->firstChild()->renderer();
61 RenderObject* renderer = toRenderBlock(container)->firstChild();
62 EXPECT_EQ(container->isRenderGrid(), true);
63 EXPECT_EQ(renderer->isRenderGrid(), true);
64 EXPECT_EQ(ItemPositionRight, renderer->style()->justifySelf());
65 EXPECT_EQ(OverflowAlignmentSafe, renderer->style()->justifySelfOverflowAlign ment());
66 }
67
68 TEST_F(RenderGridTest, AlignItemsResolvedAutoValue)
69 {
70 setBodyInnerHTML("<div style='display: grid; align-items: auto'></div>");
71 RenderObject* renderer = document().body()->firstChild()->renderer();
72 EXPECT_EQ(renderer->isRenderGrid(), true);
73 EXPECT_EQ(ItemPositionStretch, renderer->style()->alignItems());
74 EXPECT_EQ(OverflowAlignmentDefault, renderer->style()->alignItemsOverflowAli gnment());
75 }
76
77 TEST_F(RenderGridTest, AlignSelfResolvedAutoValue)
78 {
79 setBodyInnerHTML("<div style='display: grid; align-items: right safe'><div s tyle='display: grid; align-self: auto'></div></div>");
80 RenderObject* container = document().body()->firstChild()->renderer();
81 RenderObject* renderer = toRenderBlock(container)->firstChild();
82 EXPECT_EQ(container->isRenderGrid(), true);
83 EXPECT_EQ(renderer->isRenderGrid(), true);
84 EXPECT_EQ(ItemPositionRight, renderer->style()->alignSelf());
85 EXPECT_EQ(OverflowAlignmentSafe, renderer->style()->alignSelfOverflowAlignme nt());
86 }
87
88 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698