skia2/tests/FontMgrTest.cpp

56 lines
1.6 KiB
C++
Raw Normal View History

/*
* Copyright 2013 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "Test.h"
#include "SkCommandLineFlags.h"
#include "SkFontMgr.h"
#include "SkTypeface.h"
static void test_fontiter(skiatest::Reporter* reporter, bool verbose) {
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
int count = fm->countFamilies();
for (int i = 0; i < count; ++i) {
SkString fname;
fm->getFamilyName(i, &fname);
REPORTER_ASSERT(reporter, fname.size() > 0);
SkAutoTUnref<SkFontStyleSet> fnset(fm->matchFamily(fname.c_str()));
SkAutoTUnref<SkFontStyleSet> set(fm->createStyleSet(i));
REPORTER_ASSERT(reporter, fnset->count() == set->count());
if (verbose) {
SkDebugf("[%2d] %s\n", i, fname.c_str());
}
for (int j = 0; j < set->count(); ++j) {
SkString sname;
SkFontStyle fs;
set->getStyle(j, &fs, &sname);
// REPORTER_ASSERT(reporter, sname.size() > 0);
SkAutoTUnref<SkTypeface> face(set->createTypeface(j));
// REPORTER_ASSERT(reporter, face.get());
if (verbose) {
SkDebugf("\t[%d] %s [%3d %d %d]\n", j, sname.c_str(),
fs.weight(), fs.width(), fs.isItalic());
}
}
}
}
DEFINE_bool(verboseFontMgr, false, "run verbose fontmgr tests.");
static void TestFontMgr(skiatest::Reporter* reporter) {
test_fontiter(reporter, FLAGS_verboseFontMgr);
}
#include "TestClassDef.h"
DEFINE_TESTCLASS("FontMgr", FontMgrClass, TestFontMgr)