diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/auto.pro | 6 | ||||
-rw-r--r-- | tests/auto/translation/data/comboBox.qml | 65 | ||||
-rw-r--r-- | tests/auto/translation/qml_jp.qm | bin | 0 -> 135 bytes | |||
-rw-r--r-- | tests/auto/translation/qml_jp.ts | 28 | ||||
-rw-r--r-- | tests/auto/translation/qtbase_fr.qm | bin | 0 -> 259 bytes | |||
-rw-r--r-- | tests/auto/translation/qtbase_fr.ts | 1 | ||||
-rw-r--r-- | tests/auto/translation/translation.pro | 5 | ||||
-rw-r--r-- | tests/auto/translation/tst_translation.cpp | 27 |
8 files changed, 122 insertions, 10 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 853c84a8..6059cf7b 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -30,7 +30,5 @@ SUBDIRS += \ qquickuniversalstyleconf \ revisions \ sanity \ - snippets - -# Requires lrelease, which isn't always available in CI. -qtHaveModule(tools): translation + snippets \ + translation diff --git a/tests/auto/translation/data/comboBox.qml b/tests/auto/translation/data/comboBox.qml new file mode 100644 index 00000000..8bb8ed6f --- /dev/null +++ b/tests/auto/translation/data/comboBox.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.13 +import QtQuick.Controls 2.13 + +ComboBox { + objectName: "comboBox" + textRole: "label" + model: ListModel { + ListElement { + label: qsTr("Hello") + } + ListElement { + label: qsTr("ListView") + } + } +} diff --git a/tests/auto/translation/qml_jp.qm b/tests/auto/translation/qml_jp.qm Binary files differnew file mode 100644 index 00000000..a3712e99 --- /dev/null +++ b/tests/auto/translation/qml_jp.qm diff --git a/tests/auto/translation/qml_jp.ts b/tests/auto/translation/qml_jp.ts new file mode 100644 index 00000000..303c142f --- /dev/null +++ b/tests/auto/translation/qml_jp.ts @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ja_JP"> +<context> + <name>main</name> + <message> + <location filename="../main.qml" line="8"/> + <source>Hello World</source> + <translation>こんにちは世界</translation> + </message> + <message> + <location filename="../main.qml" line="12"/> + <source>Hello Text</source> + <translation>ハローテキスト</translation> + </message> + <message> + <location filename="../main.qml" line="35"/> + <source>Hello</source> + <translation>こんにちは</translation> + </message> + <message> + <location filename="../main.qml" line="38"/> + <source>ListView</source> + <translation>リストビュー</translation> + </message> +</context> +</TS> + diff --git a/tests/auto/translation/qtbase_fr.qm b/tests/auto/translation/qtbase_fr.qm Binary files differnew file mode 100644 index 00000000..176675a8 --- /dev/null +++ b/tests/auto/translation/qtbase_fr.qm diff --git a/tests/auto/translation/qtbase_fr.ts b/tests/auto/translation/qtbase_fr.ts index a2a05a07..7aff8bd7 100644 --- a/tests/auto/translation/qtbase_fr.ts +++ b/tests/auto/translation/qtbase_fr.ts @@ -20,3 +20,4 @@ </message> </context> </TS> + diff --git a/tests/auto/translation/translation.pro b/tests/auto/translation/translation.pro index d2d9d6ee..a33cf56a 100644 --- a/tests/auto/translation/translation.pro +++ b/tests/auto/translation/translation.pro @@ -13,7 +13,4 @@ TESTDATA = data/* OTHER_FILES += \ data/*.qml -# We only want to run lrelease, which is why we use EXTRA_TRANSLATIONS. -EXTRA_TRANSLATIONS = qtbase_fr.ts -# Embed the translations in a qrc file. -CONFIG += lrelease embed_translations +RESOURCES += qml_jp.qm qtbase_fr.qm diff --git a/tests/auto/translation/tst_translation.cpp b/tests/auto/translation/tst_translation.cpp index 992c30a2..ffb39f96 100644 --- a/tests/auto/translation/tst_translation.cpp +++ b/tests/auto/translation/tst_translation.cpp @@ -42,8 +42,10 @@ #include <QtGui/qpa/qplatformtheme.h> #include <QtQuick/qquickview.h> #include <QtQuickTemplates2/private/qquickabstractbutton_p.h> +#include <QtQuickTemplates2/private/qquickcombobox_p.h> #include <QtQuickTemplates2/private/qquickdialog_p.h> #include <QtQuickTemplates2/private/qquickdialogbuttonbox_p.h> +#include <QtQuickTemplates2/private/qquicktextfield_p.h> using namespace QQuickVisualTestUtil; @@ -54,6 +56,7 @@ class tst_translation : public QQmlDataTest private slots: void dialogButtonBox(); void dialogButtonBoxWithCustomButtons(); + void comboBox(); }; void tst_translation::dialogButtonBox() @@ -83,7 +86,7 @@ void tst_translation::dialogButtonBox() QCOMPARE(discardButton->text(), defaultDiscardText); QTranslator translator; - QVERIFY(translator.load(":/i18n/qtbase_fr.qm")); + QVERIFY(translator.load("qtbase_fr.qm", ":/")); QVERIFY(qApp->installTranslator(&translator)); view.engine()->retranslate(); @@ -104,7 +107,7 @@ void tst_translation::dialogButtonBoxWithCustomButtons() // after the QML has been loaded. QScopedPointer<QTranslator> translator(new QTranslator); // Doesn't matter which language it is, as we won't be using it anyway. - QVERIFY(translator->load(":/i18n/qtbase_fr.qm")); + QVERIFY(translator->load("qtbase_fr.qm", ":/")); QVERIFY(qApp->installTranslator(translator.data())); QQuickView view(testFileUrl("dialogButtonBoxWithCustomButtons.qml")); @@ -135,6 +138,26 @@ void tst_translation::dialogButtonBoxWithCustomButtons() QCOMPARE(cancelButton->text(), QLatin1String("Cancel")); } +void tst_translation::comboBox() +{ + QQuickView view(testFileUrl("comboBox.qml")); + + QQuickComboBox *comboBox = qobject_cast<QQuickComboBox*>(view.rootObject()); + QVERIFY(comboBox); + QCOMPARE(comboBox->displayText(), QLatin1String("Hello")); + + QQuickTextField *contentItem = qobject_cast<QQuickTextField*>(comboBox->contentItem()); + QVERIFY(contentItem); + QCOMPARE(contentItem->text(), QLatin1String("Hello")); + + QTranslator translator; + QVERIFY(translator.load("qml_jp.qm", ":/")); + QVERIFY(qApp->installTranslator(&translator)); + view.engine()->retranslate(); + QTRY_COMPARE(comboBox->displayText(), QString::fromUtf8("こんにちは")); + QCOMPARE(contentItem->text(), QString::fromUtf8("こんにちは")); +} + QTEST_MAIN(tst_translation) #include "tst_translation.moc" |