summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qfont
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2023-06-27 09:47:45 +0200
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2023-06-29 16:04:34 +0200
commit17f8e2c441f2302f1df19053208f77f7fb60e1f1 (patch)
tree6c515046fcc49b3411865b484406ef14d2b29c44 /tests/auto/gui/text/qfont
parentbacb04d77b064d1f348d310b5b57aeebe93f590c (diff)
API update: Don't expose QHash storage in API
To maintain flexibility in how we store the features, we introduce accessors through indirection rather than accessing the property directly. Made as response to API review. Pick-to: 6.6 Change-Id: I3e5d4ddabe93f67796af4626fddefe028ded9888 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Diffstat (limited to 'tests/auto/gui/text/qfont')
-rw-r--r--tests/auto/gui/text/qfont/tst_qfont.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp
index 258ac1c2f7..ff92af8169 100644
--- a/tests/auto/gui/text/qfont/tst_qfont.cpp
+++ b/tests/auto/gui/text/qfont/tst_qfont.cpp
@@ -54,6 +54,7 @@ private slots:
void setFamilies();
void setFamiliesAndFamily_data();
void setFamiliesAndFamily();
+ void featureAccessors();
};
// Testing get/set functions
@@ -841,5 +842,37 @@ void tst_QFont::setFamiliesAndFamily()
QFontDatabase::removeApplicationFont(weirdFontId);
}
+void tst_QFont::featureAccessors()
+{
+ QFont font;
+ QVERIFY(font.featureTags().isEmpty());
+ font.setFeature("abcd", 0xc0ffee);
+
+ quint32 abcdTag = QFont::stringToTag("abcd");
+ quint32 bcdeTag = QFont::stringToTag("bcde");
+ QVERIFY(font.isFeatureSet(abcdTag));
+ QVERIFY(!font.isFeatureSet(bcdeTag));
+ QCOMPARE(font.featureTags().size(), 1);
+ QCOMPARE(font.featureTags().first(), abcdTag);
+ QCOMPARE(QFont::tagToString(font.featureTags().first()), QByteArray("abcd"));
+ QCOMPARE(font.featureValue(abcdTag), 0xc0ffee);
+ QCOMPARE(font.featureValue(bcdeTag), 0);
+ font.setFeature(abcdTag, 0xf00d);
+ QCOMPARE(font.featureTags().size(), 1);
+ QCOMPARE(font.featureValue(abcdTag), 0xf00d);
+ font.setFeature("abcde", 0xcaca0);
+ QVERIFY(!font.isFeatureSet(QFont::stringToTag("abcde")));
+ QCOMPARE(font.featureTags().size(), 1);
+ QFont font2 = font;
+
+ font.unsetFeature("abcd");
+ QVERIFY(!font.isFeatureSet(QFont::stringToTag("abcd")));
+ QVERIFY(font.featureTags().isEmpty());
+
+ QVERIFY(font2.isFeatureSet(QFont::stringToTag("abcd")));
+ font2.clearFeatures();
+ QVERIFY(font.featureTags().isEmpty());
+}
+
QTEST_MAIN(tst_QFont)
#include "tst_qfont.moc"