Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / platform / fonts / FontDescriptionTest.cpp
1 /*
2  * Copyright (C) 2014 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27
28 #include "platform/fonts/FontDescription.h"
29
30 #include <gtest/gtest.h>
31
32 namespace blink {
33
34
35 static inline void assertDescriptionMatchesMask(FontDescription& source, FontTraitsBitfield bitfield)
36 {
37     FontDescription target;
38     target.setTraits(FontTraits(bitfield));
39     EXPECT_EQ(source.style(), target.style());
40     EXPECT_EQ(source.variant(), target.variant());
41     EXPECT_EQ(source.weight(), target.weight());
42     EXPECT_EQ(source.stretch(), target.stretch());
43 }
44
45 TEST(FontDescriptionTest, TestFontTraits)
46 {
47     FontDescription source;
48     source.setStyle(FontStyleNormal);
49     source.setVariant(FontVariantNormal);
50     source.setWeight(FontWeightNormal);
51     source.setStretch(FontStretchNormal);
52     assertDescriptionMatchesMask(source, source.traits().bitfield());
53
54     source.setStyle(FontStyleNormal);
55     source.setVariant(FontVariantNormal);
56     source.setWeight(FontWeightNormal);
57     source.setStretch(FontStretchExtraCondensed);
58     assertDescriptionMatchesMask(source, source.traits().bitfield());
59
60     source.setStyle(FontStyleItalic);
61     source.setVariant(FontVariantNormal);
62     source.setWeight(FontWeight900);
63     source.setStretch(FontStretchUltraExpanded);
64     assertDescriptionMatchesMask(source, source.traits().bitfield());
65
66     source.setStyle(FontStyleItalic);
67     source.setVariant(FontVariantSmallCaps);
68     source.setWeight(FontWeight100);
69     source.setStretch(FontStretchExtraExpanded);
70     assertDescriptionMatchesMask(source, source.traits().bitfield());
71
72     source.setStyle(FontStyleItalic);
73     source.setVariant(FontVariantNormal);
74     source.setWeight(FontWeight900);
75     source.setStretch(FontStretchNormal);
76     assertDescriptionMatchesMask(source, source.traits().bitfield());
77
78     source.setStyle(FontStyleItalic);
79     source.setVariant(FontVariantNormal);
80     source.setWeight(FontWeight800);
81     source.setStretch(FontStretchNormal);
82     assertDescriptionMatchesMask(source, source.traits().bitfield());
83
84     source.setStyle(FontStyleItalic);
85     source.setVariant(FontVariantNormal);
86     source.setWeight(FontWeight700);
87     source.setStretch(FontStretchNormal);
88     assertDescriptionMatchesMask(source, source.traits().bitfield());
89
90     source.setStyle(FontStyleItalic);
91     source.setVariant(FontVariantNormal);
92     source.setWeight(FontWeight600);
93     source.setStretch(FontStretchNormal);
94     assertDescriptionMatchesMask(source, source.traits().bitfield());
95
96     source.setStyle(FontStyleItalic);
97     source.setVariant(FontVariantNormal);
98     source.setWeight(FontWeight500);
99     source.setStretch(FontStretchNormal);
100     assertDescriptionMatchesMask(source, source.traits().bitfield());
101
102     source.setStyle(FontStyleItalic);
103     source.setVariant(FontVariantNormal);
104     source.setWeight(FontWeight400);
105     source.setStretch(FontStretchNormal);
106     assertDescriptionMatchesMask(source, source.traits().bitfield());
107
108     source.setStyle(FontStyleItalic);
109     source.setVariant(FontVariantNormal);
110     source.setWeight(FontWeight300);
111     source.setStretch(FontStretchUltraExpanded);
112     assertDescriptionMatchesMask(source, source.traits().bitfield());
113
114     source.setStyle(FontStyleItalic);
115     source.setVariant(FontVariantNormal);
116     source.setWeight(FontWeight200);
117     source.setStretch(FontStretchNormal);
118     assertDescriptionMatchesMask(source, source.traits().bitfield());
119 }
120
121 } // namespace blink