flutter_flutter/tests/FontLanguageListCacheTest.cpp
Seigo Nonaka 2342e5310f Fix lock assertion failures in unit test.
The assertion for the lock state has now activated by
I9c4b1e1f09c6793e387fbdb8bb654cc0a13c65d5.
This CL fixes the assertion failure in the unit tests by acquiring
lock before calling the functions.

Change-Id: I6a6afefb4de01e8610c2abfe6c779afa9442cc67
2016-01-06 22:49:33 +09:00

74 lines
2.7 KiB
C++

/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <gtest/gtest.h>
#include <minikin/FontFamily.h>
#include "FontLanguageListCache.h"
#include "ICUTestBase.h"
#include "MinikinInternal.h"
namespace android {
typedef ICUTestBase FontLanguageListCacheTest;
TEST_F(FontLanguageListCacheTest, getId) {
EXPECT_NE(0UL, FontStyle::registerLanguageList("en"));
EXPECT_NE(0UL, FontStyle::registerLanguageList("jp"));
EXPECT_NE(0UL, FontStyle::registerLanguageList("en,zh-Hans"));
AutoMutex _l(gMinikinLock);
EXPECT_EQ(0UL, FontLanguageListCache::getId(""));
EXPECT_EQ(FontLanguageListCache::getId("en"), FontLanguageListCache::getId("en"));
EXPECT_NE(FontLanguageListCache::getId("en"), FontLanguageListCache::getId("jp"));
EXPECT_EQ(FontLanguageListCache::getId("en,zh-Hans"),
FontLanguageListCache::getId("en,zh-Hans"));
EXPECT_NE(FontLanguageListCache::getId("en,zh-Hans"),
FontLanguageListCache::getId("zh-Hans,en"));
EXPECT_NE(FontLanguageListCache::getId("en,zh-Hans"),
FontLanguageListCache::getId("jp"));
EXPECT_NE(FontLanguageListCache::getId("en,zh-Hans"),
FontLanguageListCache::getId("en"));
EXPECT_NE(FontLanguageListCache::getId("en,zh-Hans"),
FontLanguageListCache::getId("en,zh-Hant"));
}
TEST_F(FontLanguageListCacheTest, getById) {
AutoMutex _l(gMinikinLock);
uint32_t enLangId = FontLanguageListCache::getId("en");
uint32_t jpLangId = FontLanguageListCache::getId("jp");
FontLanguage english = FontLanguageListCache::getById(enLangId)[0];
FontLanguage japanese = FontLanguageListCache::getById(jpLangId)[0];
FontLanguages defLangs = FontLanguageListCache::getById(0);
EXPECT_EQ(1UL, defLangs.size());
EXPECT_TRUE(defLangs[0].isUnsupported());
FontLanguages langs = FontLanguageListCache::getById(FontLanguageListCache::getId("en"));
ASSERT_EQ(1UL, langs.size());
EXPECT_EQ(english, langs[0]);
langs = FontLanguageListCache::getById(FontLanguageListCache::getId("en,jp"));
ASSERT_EQ(2UL, langs.size());
EXPECT_EQ(english, langs[0]);
EXPECT_EQ(japanese, langs[1]);
}
} // android