1 // Copyright 2017 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 "third_party/blink/renderer/core/editing/markers/composition_marker.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 using ui::mojom::ImeTextSpanThickness;
10 using ui::mojom::ImeTextSpanUnderlineStyle;
11
12 namespace blink {
13
14 class CompositionMarkerTest : public testing::Test {};
15
TEST_F(CompositionMarkerTest,MarkerType)16 TEST_F(CompositionMarkerTest, MarkerType) {
17 DocumentMarker* marker = MakeGarbageCollected<CompositionMarker>(
18 0, 1, Color::kTransparent, ImeTextSpanThickness::kNone,
19 ImeTextSpanUnderlineStyle::kNone, Color::kTransparent,
20 Color::kTransparent);
21 EXPECT_EQ(DocumentMarker::kComposition, marker->GetType());
22 }
23
TEST_F(CompositionMarkerTest,IsStyleableMarker)24 TEST_F(CompositionMarkerTest, IsStyleableMarker) {
25 DocumentMarker* marker = MakeGarbageCollected<CompositionMarker>(
26 0, 1, Color::kTransparent, ImeTextSpanThickness::kNone,
27 ImeTextSpanUnderlineStyle::kNone, Color::kTransparent,
28 Color::kTransparent);
29 EXPECT_TRUE(IsStyleableMarker(*marker));
30 }
31
TEST_F(CompositionMarkerTest,ConstructorAndGetters)32 TEST_F(CompositionMarkerTest, ConstructorAndGetters) {
33 CompositionMarker* marker = MakeGarbageCollected<CompositionMarker>(
34 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThin,
35 ImeTextSpanUnderlineStyle::kSolid, Color::kTransparent, Color::kGray);
36 EXPECT_EQ(Color::kDarkGray, marker->UnderlineColor());
37 EXPECT_TRUE(marker->HasThicknessThin());
38 EXPECT_EQ(ImeTextSpanUnderlineStyle::kSolid, marker->UnderlineStyle());
39 EXPECT_EQ(Color::kTransparent, marker->TextColor());
40 EXPECT_EQ(Color::kGray, marker->BackgroundColor());
41
42 CompositionMarker* thick_marker = MakeGarbageCollected<CompositionMarker>(
43 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThick,
44 ImeTextSpanUnderlineStyle::kSolid, Color::kTransparent, Color::kGray);
45 EXPECT_TRUE(thick_marker->HasThicknessThick());
46 EXPECT_EQ(ImeTextSpanUnderlineStyle::kSolid, marker->UnderlineStyle());
47 EXPECT_EQ(Color::kTransparent, marker->TextColor());
48 }
49
TEST_F(CompositionMarkerTest,UnderlineStyleDottedAndGrayText)50 TEST_F(CompositionMarkerTest, UnderlineStyleDottedAndGrayText) {
51 CompositionMarker* marker = MakeGarbageCollected<CompositionMarker>(
52 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThin,
53 ImeTextSpanUnderlineStyle::kDot, Color::kGray, Color::kGray);
54 EXPECT_EQ(Color::kDarkGray, marker->UnderlineColor());
55 EXPECT_TRUE(marker->HasThicknessThin());
56 EXPECT_EQ(ImeTextSpanUnderlineStyle::kDot, marker->UnderlineStyle());
57 EXPECT_EQ(Color::kGray, marker->TextColor());
58 EXPECT_EQ(Color::kGray, marker->BackgroundColor());
59
60 CompositionMarker* thick_marker = MakeGarbageCollected<CompositionMarker>(
61 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThick,
62 ImeTextSpanUnderlineStyle::kDot, Color::kGray, Color::kGray);
63 EXPECT_TRUE(thick_marker->HasThicknessThick());
64 EXPECT_EQ(ImeTextSpanUnderlineStyle::kDot, marker->UnderlineStyle());
65 EXPECT_EQ(Color::kGray, marker->TextColor());
66 }
67
TEST_F(CompositionMarkerTest,UnderlineStyleDashed)68 TEST_F(CompositionMarkerTest, UnderlineStyleDashed) {
69 CompositionMarker* marker = MakeGarbageCollected<CompositionMarker>(
70 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThin,
71 ImeTextSpanUnderlineStyle::kDash, Color::kTransparent, Color::kGray);
72 EXPECT_EQ(Color::kDarkGray, marker->UnderlineColor());
73 EXPECT_TRUE(marker->HasThicknessThin());
74 EXPECT_EQ(ImeTextSpanUnderlineStyle::kDash, marker->UnderlineStyle());
75 EXPECT_EQ(Color::kTransparent, marker->TextColor());
76 EXPECT_EQ(Color::kGray, marker->BackgroundColor());
77
78 CompositionMarker* thick_marker = MakeGarbageCollected<CompositionMarker>(
79 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThick,
80 ImeTextSpanUnderlineStyle::kDash, Color::kTransparent, Color::kGray);
81 EXPECT_TRUE(thick_marker->HasThicknessThick());
82 EXPECT_EQ(ImeTextSpanUnderlineStyle::kDash, marker->UnderlineStyle());
83 EXPECT_EQ(Color::kTransparent, marker->TextColor());
84 }
85
TEST_F(CompositionMarkerTest,UnderlineStyleSquiggled)86 TEST_F(CompositionMarkerTest, UnderlineStyleSquiggled) {
87 CompositionMarker* marker = MakeGarbageCollected<CompositionMarker>(
88 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThin,
89 ImeTextSpanUnderlineStyle::kSquiggle, Color::kTransparent, Color::kGray);
90 EXPECT_EQ(Color::kDarkGray, marker->UnderlineColor());
91 EXPECT_TRUE(marker->HasThicknessThin());
92 EXPECT_EQ(ImeTextSpanUnderlineStyle::kSquiggle, marker->UnderlineStyle());
93 EXPECT_EQ(Color::kTransparent, marker->TextColor());
94 EXPECT_EQ(Color::kGray, marker->BackgroundColor());
95
96 CompositionMarker* thick_marker = MakeGarbageCollected<CompositionMarker>(
97 0, 1, Color::kDarkGray, ImeTextSpanThickness::kThick,
98 ImeTextSpanUnderlineStyle::kSquiggle, Color::kTransparent, Color::kGray);
99 EXPECT_TRUE(thick_marker->HasThicknessThick());
100 EXPECT_EQ(ImeTextSpanUnderlineStyle::kSquiggle, marker->UnderlineStyle());
101 EXPECT_EQ(Color::kTransparent, marker->TextColor());
102 }
103
104 } // namespace blink
105