OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #include "config.h" | 5 #include "config.h" |
6 #include "core/paint/TextPainter.h" | 6 #include "core/paint/TextPainter.h" |
7 | 7 |
8 #include "core/CSSPropertyNames.h" | 8 #include "core/CSSPropertyNames.h" |
9 #include "core/CSSValueKeywords.h" | 9 #include "core/CSSValueKeywords.h" |
10 #include "core/css/CSSPrimitiveValue.h" | 10 #include "core/css/CSSPrimitiveValue.h" |
11 #include "core/frame/Settings.h" | 11 #include "core/frame/Settings.h" |
12 #include "core/layout/LayoutTestHelper.h" | 12 #include "core/layout/LayoutTestHelper.h" |
13 #include "core/layout/LayoutText.h" | 13 #include "core/layout/LayoutText.h" |
14 #include "core/paint/PaintInfo.h" | 14 #include "core/paint/PaintInfo.h" |
15 #include "core/style/ShadowData.h" | 15 #include "core/style/ShadowData.h" |
16 #include "core/style/ShadowList.h" | 16 #include "core/style/ShadowList.h" |
| 17 #include "platform/graphics/paint/PaintController.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
18 | 19 |
19 namespace blink { | 20 namespace blink { |
20 namespace { | 21 namespace { |
21 | 22 |
22 class TextPainterTest : public RenderingTest { | 23 class TextPainterTest : public RenderingTest { |
23 public: | 24 public: |
24 TextPainterTest() : m_layoutText(nullptr) { } | 25 TextPainterTest() |
| 26 : m_layoutText(nullptr) |
| 27 , m_paintController(PaintController::create()) |
| 28 , m_context(*m_paintController) |
| 29 { } |
25 | 30 |
26 protected: | 31 protected: |
27 LayoutText* layoutText() { return m_layoutText; } | 32 LayoutText* layoutText() { return m_layoutText; } |
28 | 33 |
| 34 PaintInfo createPaintInfo(bool usesTextAsClip, bool isPrinting) |
| 35 { |
| 36 return PaintInfo(m_context, IntRect(), usesTextAsClip ? PaintPhaseTextCl
ip : PaintPhaseBlockBackground, isPrinting ? GlobalPaintPrinting : GlobalPaintNo
rmalPhase, 0); |
| 37 } |
| 38 |
29 private: | 39 private: |
30 void SetUp() override | 40 void SetUp() override |
31 { | 41 { |
32 RenderingTest::SetUp(); | 42 RenderingTest::SetUp(); |
33 setBodyInnerHTML("Hello world"); | 43 setBodyInnerHTML("Hello world"); |
34 m_layoutText = toLayoutText(document().body()->firstChild()->layoutObjec
t()); | 44 m_layoutText = toLayoutText(document().body()->firstChild()->layoutObjec
t()); |
35 ASSERT_TRUE(m_layoutText); | 45 ASSERT_TRUE(m_layoutText); |
36 ASSERT_EQ("Hello world", m_layoutText->text()); | 46 ASSERT_EQ("Hello world", m_layoutText->text()); |
37 } | 47 } |
38 | 48 |
39 LayoutText* m_layoutText; | 49 LayoutText* m_layoutText; |
| 50 OwnPtr<PaintController> m_paintController; |
| 51 GraphicsContext m_context; |
40 }; | 52 }; |
41 | 53 |
42 static PaintInfo createPaintInfo(bool usesTextAsClip, bool isPrinting) | |
43 { | |
44 return PaintInfo(nullptr, IntRect(), usesTextAsClip ? PaintPhaseTextClip : P
aintPhaseBlockBackground, isPrinting ? GlobalPaintPrinting : GlobalPaintNormalPh
ase, 0); | |
45 } | |
46 | |
47 TEST_F(TextPainterTest, TextPaintingStyle_Simple) | 54 TEST_F(TextPainterTest, TextPaintingStyle_Simple) |
48 { | 55 { |
49 document().body()->setInlineStyleProperty(CSSPropertyColor, CSSValueBlue); | 56 document().body()->setInlineStyleProperty(CSSPropertyColor, CSSValueBlue); |
50 document().view()->updateAllLifecyclePhases(); | 57 document().view()->updateAllLifecyclePhases(); |
51 | 58 |
52 TextPainter::Style textStyle = TextPainter::textPaintingStyle( | 59 TextPainter::Style textStyle = TextPainter::textPaintingStyle( |
53 *layoutText(), layoutText()->styleRef(), createPaintInfo(false /* usesTe
xtAsClip */, false /* isPrinting */)); | 60 *layoutText(), layoutText()->styleRef(), createPaintInfo(false /* usesTe
xtAsClip */, false /* isPrinting */)); |
54 EXPECT_EQ(Color(0, 0, 255), textStyle.fillColor); | 61 EXPECT_EQ(Color(0, 0, 255), textStyle.fillColor); |
55 EXPECT_EQ(Color(0, 0, 255), textStyle.strokeColor); | 62 EXPECT_EQ(Color(0, 0, 255), textStyle.strokeColor); |
56 EXPECT_EQ(Color(0, 0, 255), textStyle.emphasisMarkColor); | 63 EXPECT_EQ(Color(0, 0, 255), textStyle.emphasisMarkColor); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 135 |
129 TextPainter::Style textStyle = TextPainter::textPaintingStyle( | 136 TextPainter::Style textStyle = TextPainter::textPaintingStyle( |
130 *layoutText(), layoutText()->styleRef(), createPaintInfo(false /* usesTe
xtAsClip */, true /* isPrinting */)); | 137 *layoutText(), layoutText()->styleRef(), createPaintInfo(false /* usesTe
xtAsClip */, true /* isPrinting */)); |
131 EXPECT_EQ(Color(255, 220, 220).dark(), textStyle.fillColor); | 138 EXPECT_EQ(Color(255, 220, 220).dark(), textStyle.fillColor); |
132 EXPECT_EQ(Color(220, 255, 220).dark(), textStyle.strokeColor); | 139 EXPECT_EQ(Color(220, 255, 220).dark(), textStyle.strokeColor); |
133 EXPECT_EQ(Color(220, 220, 255).dark(), textStyle.emphasisMarkColor); | 140 EXPECT_EQ(Color(220, 220, 255).dark(), textStyle.emphasisMarkColor); |
134 } | 141 } |
135 | 142 |
136 } // namespace | 143 } // namespace |
137 } // namespace blink | 144 } // namespace blink |
OLD | NEW |