Update Android's FontHost to return NULL if familyName does not match

R=scroggo@google.com, wangxianzhu@chromium.org

Review URL: https://codereview.chromium.org/23601041

git-svn-id: http://skia.googlecode.com/svn/trunk@11377 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
djsollen@google.com 2013-09-19 12:08:40 +00:00
parent b39b5b100a
commit 1f584ed3f4
3 changed files with 35 additions and 3 deletions

View File

@ -128,6 +128,7 @@
'../tests/TLSTest.cpp',
'../tests/TSetTest.cpp',
'../tests/ToUnicode.cpp',
'../tests/Typeface.cpp',
'../tests/UnicodeTest.cpp',
'../tests/UnitTestTest.cpp',
'../tests/UtilsTest.cpp',

View File

@ -413,10 +413,11 @@ bool SkFontConfigInterfaceAndroid::matchFamilyName(const char familyName[],
}
// If no matching family name is found then return false. This allows clients
// to be able to search for other fonts instead of forcing them to use the
// default font.
if (INVALID_FAMILY_REC_ID == familyRecID) {
//TODO this ensures that we always return something
familyRecID = fDefaultFamilyRecID;
//return false;
return false;
}
FontRecID fontRecID = find_best_style(fFontFamilies[familyRecID], style);

30
tests/Typeface.cpp Normal file
View File

@ -0,0 +1,30 @@
/*
* 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 "SkTypeface.h"
static void TestDefaultTypeface(skiatest::Reporter* reporter) {
SkAutoTUnref<SkTypeface> t1(SkTypeface::CreateFromName(NULL, SkTypeface::kNormal));
SkAutoTUnref<SkTypeface> t2(SkTypeface::RefDefault(SkTypeface::kNormal));
REPORTER_ASSERT(reporter, SkTypeface::Equal(t1.get(), t2.get()));
REPORTER_ASSERT(reporter, SkTypeface::Equal(0, t1.get()));
REPORTER_ASSERT(reporter, SkTypeface::Equal(0, t2.get()));
REPORTER_ASSERT(reporter, SkTypeface::Equal(t1.get(), 0));
REPORTER_ASSERT(reporter, SkTypeface::Equal(t2.get(), 0));
#ifdef SK_BUILD_FOR_ANDROID
SkAutoTUnref<SkTypeface> t3(SkTypeface::CreateFromName("non-existent-font", SkTypeface::kNormal));
REPORTER_ASSERT(reporter, NULL == t3.get());
#endif
}
#include "TestClassDef.h"
DEFINE_TESTCLASS("Typeface", TypefaceTestClass, TestDefaultTypeface)