blob: b9f3f099864befd1533eb33ff3b6045fa13731c2 [file] [edit]
// Copyright 2026 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fxge/cfx_standardfont.h"
#include <optional>
#include "core/fxcrt/bytestring.h"
#include "testing/gtest/include/gtest/gtest.h"
TEST(CFXStandardFontTest, IsStandardFontName) {
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Courier"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Courier-Bold"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Courier-BoldOblique"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Courier-Oblique"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Helvetica"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Helvetica-Bold"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Helvetica-BoldOblique"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Helvetica-Oblique"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Times-Roman"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Times-Bold"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Times-BoldItalic"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Times-Italic"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("Symbol"));
EXPECT_TRUE(CFX_StandardFont::IsStandardFontName("ZapfDingbats"));
EXPECT_FALSE(CFX_StandardFont::IsStandardFontName("Courie"));
EXPECT_FALSE(CFX_StandardFont::IsStandardFontName("Courier-"));
EXPECT_FALSE(CFX_StandardFont::IsStandardFontName("Helvetica+Bold"));
EXPECT_FALSE(CFX_StandardFont::IsStandardFontName("YapfDingbats"));
}
TEST(CFXStandardFontTest, GetStandardFontIndex) {
// Canonical names
EXPECT_EQ(CFX_StandardFont::kCourier,
CFX_StandardFont::GetStandardFontIndex("Courier"));
EXPECT_EQ(CFX_StandardFont::kTimesBold,
CFX_StandardFont::GetStandardFontIndex("Times-Bold"));
EXPECT_EQ(CFX_StandardFont::kDingbats,
CFX_StandardFont::GetStandardFontIndex("ZapfDingbats"));
// Alternates (aliases)
EXPECT_EQ(CFX_StandardFont::kHelvetica,
CFX_StandardFont::GetStandardFontIndex("Arial"));
EXPECT_EQ(CFX_StandardFont::kCourier,
CFX_StandardFont::GetStandardFontIndex("CourierNew"));
EXPECT_EQ(CFX_StandardFont::kTimesBold,
CFX_StandardFont::GetStandardFontIndex("TimesNewRoman,Bold"));
EXPECT_EQ(CFX_StandardFont::kHelvetica,
CFX_StandardFont::GetStandardFontIndex("arial"));
// Non-standard
EXPECT_FALSE(CFX_StandardFont::GetStandardFontIndex("ComicSans").has_value());
}
TEST(CFXStandardFontTest, GetCanonicalFontName) {
EXPECT_EQ("Courier",
CFX_StandardFont::GetCanonicalFontName(CFX_StandardFont::kCourier));
EXPECT_EQ("Helvetica-Bold", CFX_StandardFont::GetCanonicalFontName(
CFX_StandardFont::kHelveticaBold));
EXPECT_EQ("ZapfDingbats", CFX_StandardFont::GetCanonicalFontName(
CFX_StandardFont::kDingbats));
}
TEST(CFXStandardFontTest, IsSymbolicFont) {
EXPECT_TRUE(CFX_StandardFont::IsSymbolicFont(CFX_StandardFont::kSymbol));
EXPECT_TRUE(CFX_StandardFont::IsSymbolicFont(CFX_StandardFont::kDingbats));
EXPECT_FALSE(CFX_StandardFont::IsSymbolicFont(CFX_StandardFont::kCourier));
EXPECT_FALSE(CFX_StandardFont::IsSymbolicFont(CFX_StandardFont::kHelvetica));
EXPECT_FALSE(CFX_StandardFont::IsSymbolicFont(CFX_StandardFont::kTimes));
}
TEST(CFXStandardFontTest, IsFixedFont) {
EXPECT_TRUE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kCourier));
EXPECT_TRUE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kCourierBold));
EXPECT_TRUE(
CFX_StandardFont::IsFixedFont(CFX_StandardFont::kCourierBoldOblique));
EXPECT_TRUE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kCourierOblique));
EXPECT_FALSE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kHelvetica));
EXPECT_FALSE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kTimes));
EXPECT_FALSE(CFX_StandardFont::IsFixedFont(CFX_StandardFont::kSymbol));
}