Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / Source / platform / fonts / FontDescriptionTest.cpp
blobd0d24fd074f357c69a2a5345f6148a46a8268c3d
1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
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.
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.
26 #include "config.h"
28 #include "platform/fonts/FontDescription.h"
30 #include <gtest/gtest.h>
32 namespace blink {
35 static inline void assertDescriptionMatchesMask(FontDescription& source, FontTraitsBitfield bitfield)
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());
45 TEST(FontDescriptionTest, TestFontTraits)
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());
54 source.setStyle(FontStyleNormal);
55 source.setVariant(FontVariantNormal);
56 source.setWeight(FontWeightNormal);
57 source.setStretch(FontStretchExtraCondensed);
58 assertDescriptionMatchesMask(source, source.traits().bitfield());
60 source.setStyle(FontStyleItalic);
61 source.setVariant(FontVariantNormal);
62 source.setWeight(FontWeight900);
63 source.setStretch(FontStretchUltraExpanded);
64 assertDescriptionMatchesMask(source, source.traits().bitfield());
66 source.setStyle(FontStyleItalic);
67 source.setVariant(FontVariantSmallCaps);
68 source.setWeight(FontWeight100);
69 source.setStretch(FontStretchExtraExpanded);
70 assertDescriptionMatchesMask(source, source.traits().bitfield());
72 source.setStyle(FontStyleItalic);
73 source.setVariant(FontVariantNormal);
74 source.setWeight(FontWeight900);
75 source.setStretch(FontStretchNormal);
76 assertDescriptionMatchesMask(source, source.traits().bitfield());
78 source.setStyle(FontStyleItalic);
79 source.setVariant(FontVariantNormal);
80 source.setWeight(FontWeight800);
81 source.setStretch(FontStretchNormal);
82 assertDescriptionMatchesMask(source, source.traits().bitfield());
84 source.setStyle(FontStyleItalic);
85 source.setVariant(FontVariantNormal);
86 source.setWeight(FontWeight700);
87 source.setStretch(FontStretchNormal);
88 assertDescriptionMatchesMask(source, source.traits().bitfield());
90 source.setStyle(FontStyleItalic);
91 source.setVariant(FontVariantNormal);
92 source.setWeight(FontWeight600);
93 source.setStretch(FontStretchNormal);
94 assertDescriptionMatchesMask(source, source.traits().bitfield());
96 source.setStyle(FontStyleItalic);
97 source.setVariant(FontVariantNormal);
98 source.setWeight(FontWeight500);
99 source.setStretch(FontStretchNormal);
100 assertDescriptionMatchesMask(source, source.traits().bitfield());
102 source.setStyle(FontStyleItalic);
103 source.setVariant(FontVariantNormal);
104 source.setWeight(FontWeight400);
105 source.setStretch(FontStretchNormal);
106 assertDescriptionMatchesMask(source, source.traits().bitfield());
108 source.setStyle(FontStyleItalic);
109 source.setVariant(FontVariantNormal);
110 source.setWeight(FontWeight300);
111 source.setStretch(FontStretchUltraExpanded);
112 assertDescriptionMatchesMask(source, source.traits().bitfield());
114 source.setStyle(FontStyleItalic);
115 source.setVariant(FontVariantNormal);
116 source.setWeight(FontWeight200);
117 source.setStretch(FontStretchNormal);
118 assertDescriptionMatchesMask(source, source.traits().bitfield());
121 } // namespace blink