OLD | NEW |
---|---|
(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 | |
OLD | NEW |