aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/FontNamesTest.cpp
diff options
context:
space:
mode:
authorGravatar jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-08-06 23:31:44 +0000
committerGravatar jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-08-06 23:31:44 +0000
commit7ca6d2f0709d844f6afc601738b9453b3543d38b (patch)
tree272ed793ffbbb0294d80da2bc361ba3a3eb25935 /tests/FontNamesTest.cpp
parent990d85f02ba6efaf6f3d75262d7ed650edc8afd5 (diff)
Reverting r10589: Add getFamilyNames to SkTypeface
git-svn-id: http://skia.googlecode.com/svn/trunk@10590 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/FontNamesTest.cpp')
-rw-r--r--tests/FontNamesTest.cpp115
1 files changed, 34 insertions, 81 deletions
diff --git a/tests/FontNamesTest.cpp b/tests/FontNamesTest.cpp
index 18ba35695e..3845c3b6c5 100644
--- a/tests/FontNamesTest.cpp
+++ b/tests/FontNamesTest.cpp
@@ -7,8 +7,6 @@
#include "Test.h"
-#include "SkCommandLineFlags.h"
-#include "SkFontMgr.h"
#include "SkOTTable_name.h"
#include "SkTypeface.h"
@@ -110,7 +108,40 @@ struct FontNamesTest {
},
};
-static void test_synthetic(skiatest::Reporter* reporter, bool verbose) {
+static void TestFontNames(skiatest::Reporter* reporter) {
+ static const char* interestingFont[] = {
+ "Arial",
+ "Times New Roman",
+ "MS PGothic", // Has Japanese name.
+ "Wingdings", // Uses 'Symbol' name encoding.
+ };
+ static const SkFontTableTag nameTag = SkSetFourByteTag('n','a','m','e');
+
+ for (size_t i = 0; i < SK_ARRAY_COUNT(interestingFont); ++i) {
+ SkAutoTUnref<SkTypeface> typeface(SkTypeface::CreateFromName(interestingFont[i],
+ SkTypeface::kNormal));
+ if (NULL == typeface.get()) {
+ continue;
+ }
+ size_t nameTableSize = typeface->getTableSize(nameTag);
+ if (0 == nameTableSize) {
+ continue;
+ }
+ uint8_t* nameTableData = new uint8_t[nameTableSize];
+ SkAutoTDeleteArray<uint8_t> ada(nameTableData);
+ size_t copied = typeface->getTableData(nameTag, 0, nameTableSize, nameTableData);
+ if (copied != nameTableSize) {
+ continue;
+ }
+
+ SkOTTableName::Iterator iter(*((SkOTTableName*)nameTableData),
+ SkOTTableName::Record::NameID::Predefined::FontFamilyName);
+ SkOTTableName::Iterator::Record record;
+ while (iter.next(record)) {
+ //printf("%s <%s>\n", record.name.c_str(), record.language.c_str());
+ }
+ }
+
for (size_t i = 0; i < SK_ARRAY_COUNT(test); ++i) {
SkOTTableName::Iterator iter(*test[i].data, test[i].nameID.predefined.value);
SkOTTableName::Iterator::Record record;
@@ -139,84 +170,6 @@ static void test_synthetic(skiatest::Reporter* reporter, bool verbose) {
}
}
-#define MAX_FAMILIES 1000
-static void test_systemfonts(skiatest::Reporter* reporter, bool verbose) {
- static const SkFontTableTag nameTag = SkSetFourByteTag('n','a','m','e');
-
- SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
- int count = SkMin32(fm->countFamilies(), MAX_FAMILIES);
- for (int i = 0; i < count; ++i) {
- SkAutoTUnref<SkFontStyleSet> set(fm->createStyleSet(i));
- for (int j = 0; j < set->count(); ++j) {
- SkString sname;
- SkFontStyle fs;
- set->getStyle(j, &fs, &sname);
-
- SkAutoTUnref<SkTypeface> typeface(set->createTypeface(j));
-
- SkString familyName;
- typeface->getFamilyName(&familyName);
- if (verbose) {
- printf("[%s]\n", familyName.c_str());
- }
-
- SkAutoTDelete<SkTypeface::LocalizedStrings> familyNamesIter(typeface->getFamilyNames());
- SkTypeface::LocalizedString familyNameLocalized;
- while (familyNamesIter->next(&familyNameLocalized)) {
- if (verbose) {
- printf("(%s) <%s>\n", familyNameLocalized.fString.c_str(),
- familyNameLocalized.fLanguage.c_str());
- }
- }
-
- size_t nameTableSize = typeface->getTableSize(nameTag);
- if (0 == nameTableSize) {
- continue;
- }
- SkAutoTMalloc<uint8_t> nameTableData(nameTableSize);
- size_t copied = typeface->getTableData(nameTag, 0, nameTableSize, nameTableData.get());
- if (copied != nameTableSize) {
- continue;
- }
-
- SkOTTableName::Iterator::Record record;
- SkOTTableName::Iterator familyNameIter(*((SkOTTableName*)nameTableData.get()),
- SkOTTableName::Record::NameID::Predefined::FontFamilyName);
- while (familyNameIter.next(record)) {
- REPORTER_ASSERT_MESSAGE(reporter,
- SkOTTableName::Record::NameID::Predefined::FontFamilyName == record.type,
- "Requested family name, got something else."
- );
- if (verbose) {
- printf("{%s} <%s>\n", record.name.c_str(), record.language.c_str());
- }
- }
-
- SkOTTableName::Iterator styleNameIter(*((SkOTTableName*)nameTableData.get()),
- SkOTTableName::Record::NameID::Predefined::FontSubfamilyName);
- while (styleNameIter.next(record)) {
- REPORTER_ASSERT_MESSAGE(reporter,
- SkOTTableName::Record::NameID::Predefined::FontSubfamilyName == record.type,
- "Requested subfamily name, got something else."
- );
- if (verbose) {
- printf("{{%s}} <%s>\n", record.name.c_str(), record.language.c_str());
- }
- }
-
- if (verbose) {
- printf("\n");
- }
- }
- }
-}
-
-DEFINE_bool(verboseFontNames, false, "verbose FontNames test.");
-
-static void TestFontNames(skiatest::Reporter* reporter) {
- test_synthetic(reporter, FLAGS_verboseFontNames);
- test_systemfonts(reporter, FLAGS_verboseFontNames);
-}
#include "TestClassDef.h"
DEFINE_TESTCLASS("FontNames", FontNamesTestClass, TestFontNames)