summaryrefslogtreecommitdiff
path: root/tests/unittest/FontFeatureTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unittest/FontFeatureTest.cpp')
-rw-r--r--tests/unittest/FontFeatureTest.cpp39
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