aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-04-17 01:00:20 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-04-17 10:46:57 +0200
commite4707f8ae9dc198abd1460384d1573420f663a84 (patch)
tree6cae05ad48f31f13d05237f1af52e9d7dc394eb7 /tests
parentc3fcbe73189b26e49ad8fa824b2b8e6b7db0a8f4 (diff)
parentb3eb349ddddec6967fcedfdbfc857b99f34e552a (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/qmltyperegistrar/qmltypesclassdescription.cpp src/quick/items/qquickrendertarget.h Change-Id: I9e24d2252a35b8e74af89ad72af796df658167ca
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qmltyperegistrar/foreign/foreign.h7
-rw-r--r--tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp17
-rw-r--r--tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h40
3 files changed, 64 insertions, 0 deletions
diff --git a/tests/auto/qml/qmltyperegistrar/foreign/foreign.h b/tests/auto/qml/qmltyperegistrar/foreign/foreign.h
index d5e5a060b4..dc9fbc84a8 100644
--- a/tests/auto/qml/qmltyperegistrar/foreign/foreign.h
+++ b/tests/auto/qml/qmltyperegistrar/foreign/foreign.h
@@ -30,6 +30,7 @@
#define FOREIGN_H
#include <QtCore/qobject.h>
+#include <QtCore/qsize.h>
class Foreign : public QObject
{
@@ -49,4 +50,10 @@ private:
int m_things = 0;
};
+class SizeGadget : public QSize
+{
+ Q_GADGET
+ Q_PROPERTY(int height READ height WRITE setHeight FINAL)
+};
+
#endif // FOREIGN_H
diff --git a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp
index 8bdee2f937..1cfcd689c6 100644
--- a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp
+++ b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.cpp
@@ -58,4 +58,21 @@ void tst_qmltyperegistrar::qmltypesHasFileNames()
QVERIFY(qmltypesData.contains("file: \"tst_qmltyperegistrar.h\""));
}
+void tst_qmltyperegistrar::qmltypesHasFlags()
+{
+ QVERIFY(qmltypesData.contains("name: \"Flags\""));
+ QVERIFY(qmltypesData.contains("alias: \"Flag\""));
+ QVERIFY(qmltypesData.contains("isFlag: true"));
+}
+
+void tst_qmltyperegistrar::superAndForeignTypes()
+{
+ QVERIFY(qmltypesData.contains("values: [\"Pixel\", \"Centimeter\", \"Inch\", \"Point\"]"));
+ QVERIFY(qmltypesData.contains("name: \"SizeGadget\""));
+ QVERIFY(qmltypesData.contains("prototype: \"SizeEnums\""));
+ QVERIFY(qmltypesData.contains("Property { name: \"height\"; type: \"int\" }"));
+ QVERIFY(qmltypesData.contains("Property { name: \"width\"; type: \"int\" }"));
+ QVERIFY(qmltypesData.contains("Method { name: \"sizeToString\"; type: \"string\" }"));
+}
+
QTEST_MAIN(tst_qmltyperegistrar)
diff --git a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h
index 37d49efa40..09485ab0b6 100644
--- a/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h
+++ b/tests/auto/qml/qmltyperegistrar/tst_qmltyperegistrar.h
@@ -33,10 +33,48 @@
#include <QtQml/qqml.h>
+class SizeEnums
+{
+ Q_GADGET
+ QML_NAMED_ELEMENT(SizeEnums)
+ QML_UNCREATABLE("Element is not creatable.")
+
+public:
+ enum Unit { Pixel, Centimeter, Inch, Point };
+ Q_ENUM(Unit)
+};
+
+class SizeValueType : public SizeEnums
+{
+ QSize v;
+ Q_GADGET
+ Q_PROPERTY(int width READ width WRITE setWidth FINAL)
+ QML_NAMED_ELEMENT(MySize)
+ QML_FOREIGN(SizeGadget)
+
+public:
+ Q_INVOKABLE QString sizeToString() const
+ {
+ return QString::fromLatin1("%1x%2").arg(v.width()).arg(v.height());
+ }
+
+ int width() const { return v.width(); }
+ void setWidth(int width) { v.setWidth(width); }
+};
+
class Local : public Foreign
{
Q_OBJECT
QML_ELEMENT
+public:
+ enum Flag {
+ Flag1 = 0x1,
+ Flag2 = 0x2,
+ Flag3 = 0x4,
+ Flag4 = 0x8
+ };
+ Q_DECLARE_FLAGS(Flags, Flag)
+ Q_FLAG(Flags)
};
class tst_qmltyperegistrar : public QObject
@@ -48,6 +86,8 @@ private slots:
void qmltypesHasForeign();
void qmltypesHasHppClassAndNoext();
void qmltypesHasFileNames();
+ void qmltypesHasFlags();
+ void superAndForeignTypes();
private:
QByteArray qmltypesData;