aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmltranslation
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2020-03-24 11:21:25 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2020-04-02 22:23:04 +0200
commite40098c5303e7af4b12c64093b120405c63fdf8d (patch)
tree9636894ed820567731f9b4dd41870392ce052a70 /tests/auto/qml/qqmltranslation
parent63bf6ac4c483cc64b48c410c6e1afb404f2bcbd1 (diff)
Add support for translation bindings on QProperty based properties
Change-Id: I439653123cdc96df97a1801664655c9d28a8b9b5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/qml/qqmltranslation')
-rw-r--r--tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt1
-rw-r--r--tests/auto/qml/qqmltranslation/CMakeLists.txt1
-rw-r--r--tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml3
-rw-r--r--tests/auto/qml/qqmltranslation/data/translationChange.qml1
-rw-r--r--tests/auto/qml/qqmltranslation/qqmltranslation.pro2
-rw-r--r--tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp15
6 files changed, 21 insertions, 2 deletions
diff --git a/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt b/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt
index f62dfd9a3e..576f836cf9 100644
--- a/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt
+++ b/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt
@@ -21,6 +21,7 @@ qt_add_test(tst_qqmltranslation
Qt::Gui
Qt::GuiPrivate
Qt::QmlPrivate
+ Qt::Quick
TESTDATA ${test_data}
)
diff --git a/tests/auto/qml/qqmltranslation/CMakeLists.txt b/tests/auto/qml/qqmltranslation/CMakeLists.txt
index 8e280cc1de..8b665dd1b5 100644
--- a/tests/auto/qml/qqmltranslation/CMakeLists.txt
+++ b/tests/auto/qml/qqmltranslation/CMakeLists.txt
@@ -21,6 +21,7 @@ qt_add_test(tst_qqmltranslation
Qt::Gui
Qt::GuiPrivate
Qt::QmlPrivate
+ Qt::Quick
TESTDATA ${test_data}
)
diff --git a/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml b/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml
index 294fff3284..0d994761c4 100644
--- a/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml
+++ b/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml
@@ -1,5 +1,6 @@
import QtQuick 2.0
+import Test 1.0
-Item {
+CppTranslationBase {
property string baseProperty: qsTr("translate me");
}
diff --git a/tests/auto/qml/qqmltranslation/data/translationChange.qml b/tests/auto/qml/qqmltranslation/data/translationChange.qml
index ae3231935c..54ba82018d 100644
--- a/tests/auto/qml/qqmltranslation/data/translationChange.qml
+++ b/tests/auto/qml/qqmltranslation/data/translationChange.qml
@@ -18,6 +18,7 @@ TranslationChangeBase {
property string text2: weDoTranslations()
property string text3
property string fromListModel: listModel.get(0).text
+ qProperty: qsTr("translate me")
states: [
State {
diff --git a/tests/auto/qml/qqmltranslation/qqmltranslation.pro b/tests/auto/qml/qqmltranslation/qqmltranslation.pro
index ac329a204b..266ad51a79 100644
--- a/tests/auto/qml/qqmltranslation/qqmltranslation.pro
+++ b/tests/auto/qml/qqmltranslation/qqmltranslation.pro
@@ -9,4 +9,4 @@ include (../../shared/util.pri)
TESTDATA = data/*
-QT += core-private gui-private qml-private testlib
+QT += core-private gui-private qml-private testlib quick
diff --git a/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp b/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp
index a75a00bd01..bb5a5bf7e3 100644
--- a/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp
+++ b/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp
@@ -31,6 +31,7 @@
#include <QQmlComponent>
#include <QTranslator>
#include <QQmlContext>
+#include <QQuickItem>
#include <private/qqmlengine_p.h>
#include <private/qqmltypedata_p.h>
#include "../../shared/util.h"
@@ -165,6 +166,15 @@ void tst_qqmltranslation::idTranslation()
delete object;
}
+class CppTranslationBase : public QQuickItem
+{
+ Q_OBJECT
+ QML_ELEMENT
+ Q_PROPERTY(QString qProperty)
+
+ QProperty<QString> qProperty;
+};
+
class DummyTranslator : public QTranslator
{
Q_OBJECT
@@ -193,6 +203,8 @@ void tst_qqmltranslation::translationChange()
{
QQmlEngine engine;
+ qmlRegisterTypesAndRevisions<CppTranslationBase>("Test", 1);
+
QQmlComponent component(&engine, testFileUrl("translationChange.qml"));
QScopedPointer<QObject> object(component.create());
QVERIFY(!object.isNull());
@@ -202,18 +214,21 @@ void tst_qqmltranslation::translationChange()
QCOMPARE(object->property("text2").toString(), QString::fromUtf8("translate me"));
QCOMPARE(object->property("text3").toString(), QString::fromUtf8("translate me"));
QCOMPARE(object->property("fromListModel").toString(), QString::fromUtf8("translate me"));
+ QCOMPARE(object->property("qProperty").toString(), QString::fromUtf8("translate me"));
DummyTranslator translator;
QCoreApplication::installTranslator(&translator);
QEvent ev(QEvent::LanguageChange);
QCoreApplication::sendEvent(&engine, &ev);
+ engine.setUiLanguage("xxx");
QCOMPARE(object->property("baseProperty").toString(), QString::fromUtf8("do not translate"));
QCOMPARE(object->property("text1").toString(), QString::fromUtf8("xxx"));
QCOMPARE(object->property("text2").toString(), QString::fromUtf8("xxx"));
QCOMPARE(object->property("text3").toString(), QString::fromUtf8("xxx"));
QCOMPARE(object->property("fromListModel").toString(), QString::fromUtf8("xxx"));
+ QCOMPARE(object->property("qProperty").toString(), QString::fromUtf8("xxx"));
QCoreApplication::removeTranslator(&translator);
}