Chromium Code Reviews| 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 |