diff options
Diffstat (limited to 'tests/unittest/FontFeatureTest.cpp')
-rw-r--r-- | tests/unittest/FontFeatureTest.cpp | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/tests/unittest/FontFeatureTest.cpp b/tests/unittest/FontFeatureTest.cpp index 7f9cdf4..6f01842 100644 --- a/tests/unittest/FontFeatureTest.cpp +++ b/tests/unittest/FontFeatureTest.cpp @@ -14,10 +14,12 @@ * limitations under the License. */ +#include <com_android_text_flags.h> +#include <flag_macros.h> #include <gtest/gtest.h> -#include "FontFeatureUtils.h" #include "FontTestUtils.h" +#include "minikin/FontFeature.h" #include "minikin/MinikinPaint.h" namespace minikin { @@ -53,7 +55,7 @@ TEST_F(DefaultFontFeatureTest, default) { TEST_F(DefaultFontFeatureTest, disable) { auto paint = MinikinPaint(font); - paint.fontFeatureSettings = "\"chws\" off"; + paint.fontFeatureSettings = FontFeature::parse("\"chws\" off"); auto f = cleanAndAddDefaultFontFeatures(paint); std::sort(f.begin(), f.end(), compareFeatureTag); @@ -65,7 +67,7 @@ TEST_F(DefaultFontFeatureTest, disable) { TEST_F(DefaultFontFeatureTest, preserve) { auto paint = MinikinPaint(font); - paint.fontFeatureSettings = "\"ruby\" on"; + paint.fontFeatureSettings = FontFeature::parse("\"ruby\" on"); auto f = cleanAndAddDefaultFontFeatures(paint); std::sort(f.begin(), f.end(), compareFeatureTag); @@ -95,7 +97,7 @@ TEST_F(DefaultFontFeatureTest, large_letter_spacing) { TEST_F(DefaultFontFeatureTest, halt_disable_chws) { auto paint = MinikinPaint(font); - paint.fontFeatureSettings = "\"halt\" on"; + paint.fontFeatureSettings = FontFeature::parse("\"halt\" on"); auto f = cleanAndAddDefaultFontFeatures(paint); EXPECT_EQ(1u, f.size()); @@ -105,7 +107,7 @@ TEST_F(DefaultFontFeatureTest, halt_disable_chws) { TEST_F(DefaultFontFeatureTest, palt_disable_chws) { auto paint = MinikinPaint(font); - paint.fontFeatureSettings = "\"palt\" on"; + paint.fontFeatureSettings = FontFeature::parse("\"palt\" on"); auto f = cleanAndAddDefaultFontFeatures(paint); EXPECT_EQ(1u, f.size()); @@ -116,7 +118,7 @@ TEST_F(DefaultFontFeatureTest, palt_disable_chws) { TEST_F(DefaultFontFeatureTest, halt_disable_chws_large_letter_spacing) { auto paint = MinikinPaint(font); paint.letterSpacing = 1.0; // em - paint.fontFeatureSettings = "\"halt\" on"; + paint.fontFeatureSettings = FontFeature::parse("\"halt\" on"); auto f = cleanAndAddDefaultFontFeatures(paint); std::sort(f.begin(), f.end(), compareFeatureTag); @@ -133,7 +135,7 @@ TEST_F(DefaultFontFeatureTest, halt_disable_chws_large_letter_spacing) { TEST_F(DefaultFontFeatureTest, palt_disable_chws_large_letter_spacing) { auto paint = MinikinPaint(font); paint.letterSpacing = 1.0; // em - paint.fontFeatureSettings = "\"palt\" on"; + paint.fontFeatureSettings = FontFeature::parse("\"palt\" on"); auto f = cleanAndAddDefaultFontFeatures(paint); std::sort(f.begin(), f.end(), compareFeatureTag); @@ -147,4 +149,27 @@ TEST_F(DefaultFontFeatureTest, palt_disable_chws_large_letter_spacing) { EXPECT_TRUE(f[2].value); } +class FontFeatureTest : public testing::Test { +protected: + std::shared_ptr<FontCollection> font; + + virtual void SetUp() override { font = buildFontCollection("Ascii.ttf"); } +}; + +TEST_F_WITH_FLAGS(FontFeatureTest, do_not_skip_cache_if_flagEnabled, + REQUIRES_FLAGS_ENABLED(ACONFIG_FLAG(com::android::text::flags, + inter_character_justification))) { + auto paint = MinikinPaint(font); + paint.fontFeatureSettings = FontFeature::parse("\"palt\" on"); + EXPECT_FALSE(paint.skipCache()); +} + +TEST_F_WITH_FLAGS(FontFeatureTest, do_not_skip_cache_if_flagDisabled, + REQUIRES_FLAGS_DISABLED(ACONFIG_FLAG(com::android::text::flags, + inter_character_justification))) { + auto paint = MinikinPaint(font); + paint.fontFeatureSettings = FontFeature::parse("\"palt\" on"); + EXPECT_TRUE(paint.skipCache()); +} + } // namespace minikin |