diff options
author | Tor Arne Vestbø <tor.arne.vestbo@digia.com> | 2012-10-26 12:28:31 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@digia.com> | 2012-10-26 12:28:53 +0200 |
commit | 6e5818f2bbc8443b9308252a5e1543e014ef439d (patch) | |
tree | 07922adee2f13e818b9439c8a0bdf871dda59039 /tests/auto/gui/text/qfont/tst_qfont.cpp | |
parent | 32aac0a1c009ee940920fd12f277180dd80b8eff (diff) | |
parent | deac55becd18efa4504eb686a1bb8081a5cd488a (diff) |
Merge remote-tracking branch 'gerrit/master' into newdocs
Change-Id: I10cf9f915c602c8e5a0e7d7c9e17b7bc5ca00640
Diffstat (limited to 'tests/auto/gui/text/qfont/tst_qfont.cpp')
-rw-r--r-- | tests/auto/gui/text/qfont/tst_qfont.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp index 287fd728ff..3fe23bf1ff 100644 --- a/tests/auto/gui/text/qfont/tst_qfont.cpp +++ b/tests/auto/gui/text/qfont/tst_qfont.cpp @@ -44,6 +44,7 @@ #include <qfont.h> +#include <private/qfont_p.h> #include <qfontdatabase.h> #include <qfontinfo.h> #include <qstringlist.h> @@ -81,6 +82,8 @@ private slots: void styleName(); void defaultFamily_data(); void defaultFamily(); + + void sharing(); }; // Testing get/set functions @@ -685,5 +688,45 @@ void tst_QFont::defaultFamily() QVERIFY2(isAcceptable, msgNotAcceptableFont(familyForHint, acceptableFamilies)); } +void tst_QFont::sharing() +{ + QFont f; + f.setStyleHint(QFont::Serif); + f.exactMatch(); // loads engine + QCOMPARE(QFontPrivate::get(f)->ref.load(), 1); + QVERIFY(QFontPrivate::get(f)->engineData); + QCOMPARE(QFontPrivate::get(f)->engineData->ref.load(), 1); + + QFont f2(f); + QVERIFY(QFontPrivate::get(f2) == QFontPrivate::get(f)); + QCOMPARE(QFontPrivate::get(f2)->ref.load(), 2); + QVERIFY(QFontPrivate::get(f2)->engineData); + QVERIFY(QFontPrivate::get(f2)->engineData == QFontPrivate::get(f)->engineData); + QCOMPARE(QFontPrivate::get(f2)->engineData->ref.load(), 1); + + f2.setKerning(!f.kerning()); + QVERIFY(QFontPrivate::get(f2) != QFontPrivate::get(f)); + QCOMPARE(QFontPrivate::get(f2)->ref.load(), 1); + QVERIFY(QFontPrivate::get(f2)->engineData); + QVERIFY(QFontPrivate::get(f2)->engineData == QFontPrivate::get(f)->engineData); + QCOMPARE(QFontPrivate::get(f2)->engineData->ref.load(), 2); + + f2 = f; + QVERIFY(QFontPrivate::get(f2) == QFontPrivate::get(f)); + QCOMPARE(QFontPrivate::get(f2)->ref.load(), 2); + QVERIFY(QFontPrivate::get(f2)->engineData); + QVERIFY(QFontPrivate::get(f2)->engineData == QFontPrivate::get(f)->engineData); + QCOMPARE(QFontPrivate::get(f2)->engineData->ref.load(), 1); + + if (f.pointSize() > 0) + f2.setPointSize(f.pointSize() * 2 / 3); + else + f2.setPixelSize(f.pixelSize() * 2 / 3); + QVERIFY(QFontPrivate::get(f2) != QFontPrivate::get(f)); + QCOMPARE(QFontPrivate::get(f2)->ref.load(), 1); + QVERIFY(!QFontPrivate::get(f2)->engineData); + QVERIFY(QFontPrivate::get(f2)->engineData != QFontPrivate::get(f)->engineData); +} + QTEST_MAIN(tst_QFont) #include "tst_qfont.moc" |