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 32namespace blink { 33 34 35static 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 45TEST(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 122