summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-01-06 01:00:08 +0100
committerFabian Kosmale <fabian.kosmale@qt.io>2020-01-06 07:20:18 +0000
commit3a010f72b81d530df96bfb04e0dd2f13a527cc18 (patch)
tree76bcc3439bf0efccc6b354f648817bcf455409f0 /tests
parent1f87fb359fdff14e42662384a9c8a0bcb3837671 (diff)
parent2c3eaa7b87219d24facfe81a5b22cb218324f1ae (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts: src/corelib/kernel/qvariant.h Change-Id: I8f3873e74b9795ac889e7c7ec5de2619bca92160
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp44
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp21
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index e719871128..45eb61f6e4 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -282,6 +282,8 @@ private slots:
void fromStdVariant();
void qt4UuidDataStream();
+ void preferDirectConversionOverInterfaces();
+
private:
void dataStream_data(QDataStream::Version version);
void loadQVariantFromDataStream(QDataStream::Version version);
@@ -5140,5 +5142,47 @@ void tst_QVariant::qt4UuidDataStream()
QCOMPARE(result.value<QUuid>(), source);
}
+void tst_QVariant::preferDirectConversionOverInterfaces()
+{
+ using namespace QtMetaTypePrivate;
+ bool calledCorrectConverter = false;
+ QMetaType::registerConverter<MyType, QSequentialIterableImpl>([](const MyType &) {
+ return QSequentialIterableImpl {};
+ });
+ QMetaType::registerConverter<MyType, QVariantList>([&calledCorrectConverter](const MyType &) {
+ calledCorrectConverter = true;
+ return QVariantList {};
+ });
+ QMetaType::registerConverter<MyType, QAssociativeIterableImpl>([](const MyType &) {
+ return QAssociativeIterableImpl {};
+ });
+ QMetaType::registerConverter<MyType, QVariantHash>([&calledCorrectConverter](const MyType &) {
+ calledCorrectConverter = true;
+ return QVariantHash {};
+ });
+ QMetaType::registerConverter<MyType, QVariantMap>([&calledCorrectConverter](const MyType &) {
+ calledCorrectConverter = true;
+ return QVariantMap {};
+ });
+ auto holder = QVariant::fromValue(MyType {});
+
+ QVERIFY(holder.canConvert<QSequentialIterableImpl>());
+ QVERIFY(holder.canConvert<QVariantList>());
+ QVERIFY(holder.canConvert<QAssociativeIterableImpl>());
+ QVERIFY(holder.canConvert<QVariantHash>());
+ QVERIFY(holder.canConvert<QVariantMap>());
+
+ holder.value<QVariantList>();
+ QVERIFY(calledCorrectConverter);
+ calledCorrectConverter = false;
+
+ holder.value<QVariantHash>();
+ QVERIFY(calledCorrectConverter);
+ calledCorrectConverter = false;
+
+ holder.value<QVariantMap>();
+ QVERIFY(calledCorrectConverter);
+}
+
QTEST_MAIN(tst_QVariant)
#include "tst_qvariant.moc"
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 3917c859cc..6eae6db12a 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -194,6 +194,8 @@ private slots:
void fontTagFace();
void clearUndoRedoStacks();
+ void mergeFontFamilies();
+
private:
void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
void buildRegExpData();
@@ -3585,6 +3587,25 @@ void tst_QTextDocument::fontTagFace()
}
}
+void tst_QTextDocument::mergeFontFamilies()
+{
+ QTextDocument td;
+ td.setHtml(QLatin1String(
+ "<html><body>"
+ "<span style=\" font-family:'MS Shell Dlg 2';\">Hello world</span>"
+ "</body></html>"));
+
+ QTextCharFormat newFormat;
+ newFormat.setFontFamily(QLatin1String("Jokerman"));
+
+ QTextCursor cursor = QTextCursor(&td);
+ cursor.setPosition(0);
+ cursor.setPosition(QByteArray("Hello World").length(), QTextCursor::KeepAnchor);
+ cursor.mergeCharFormat(newFormat);
+
+ QVERIFY(td.toHtml().contains(QLatin1String("font-family:'Jokerman','MS Shell Dlg 2';")));
+}
+
void tst_QTextDocument::clearUndoRedoStacks()
{
QTextDocument doc;