diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-04-30 10:44:29 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-05-02 08:40:48 +0200 |
commit | c3e1e6390edbc28e6e528f401eb4f3639661302b (patch) | |
tree | 5c882bfe7fced9b357e80a6b56ccdc88de8a41c3 /tests/auto | |
parent | 9709d04ba7787c853a1ddbeed0347eab27c0924f (diff) | |
parent | 6a2febc680e163e56eb61d322d156dbf6fb07e0e (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: I71275a2076c3d32ee2896571be882067320a2e9e
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp | 19 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/data/qtbug_59012.qml | 14 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 9 | ||||
-rw-r--r-- | tests/auto/qmltest/listview/BLACKLIST | 2 | ||||
-rw-r--r-- | tests/auto/qmltest/textedit/BLACKLIST | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextinput/BLACKLIST | 3 | ||||
-rw-r--r-- | tests/auto/quick/quick.pro | 3 | ||||
-rw-r--r-- | tests/auto/quick/sharedimage/data/yellow.png | bin | 0 -> 95 bytes | |||
-rw-r--r-- | tests/auto/quick/sharedimage/sharedimage.pro | 12 | ||||
-rw-r--r-- | tests/auto/quick/sharedimage/tst_sharedimage.cpp | 103 |
10 files changed, 165 insertions, 4 deletions
diff --git a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp index f7748b2da9..daeb9b5455 100644 --- a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp +++ b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp @@ -28,6 +28,7 @@ #include "../../shared/util.h" #include <QQmlApplicationEngine> +#include <QScopedPointer> #include <QSignalSpy> #if QT_CONFIG(process) #include <QProcess> @@ -47,6 +48,7 @@ private slots: void testNonResolvedPath(); void application(); void applicationProperties(); + void removeObjectsWhenDestroyed(); private: QString buildDir; QString srcDir; @@ -201,6 +203,23 @@ void tst_qqmlapplicationengine::applicationProperties() delete test; } +void tst_qqmlapplicationengine::removeObjectsWhenDestroyed() +{ + QScopedPointer<QQmlApplicationEngine> test(new QQmlApplicationEngine); + QVERIFY(test->rootObjects().isEmpty()); + + QSignalSpy objectCreated(test.data(), SIGNAL(objectCreated(QObject*,QUrl))); + test->load(testFileUrl("basicTest.qml")); + QCOMPARE(objectCreated.count(), 1); + + QSignalSpy objectDestroyed(test->rootObjects().first(), SIGNAL(destroyed())); + test->rootObjects().first()->deleteLater(); + objectDestroyed.wait(); + QCOMPARE(objectDestroyed.count(), 1); + QCOMPARE(test->rootObjects().size(), 0); +} + + QTEST_MAIN(tst_qqmlapplicationengine) #include "tst_qqmlapplicationengine.moc" diff --git a/tests/auto/qml/qqmlecmascript/data/qtbug_59012.qml b/tests/auto/qml/qqmlecmascript/data/qtbug_59012.qml new file mode 100644 index 0000000000..5283614435 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/qtbug_59012.qml @@ -0,0 +1,14 @@ +import QtQuick 2.0 + +QtObject { + Component.onCompleted: { + var pieces = [[4,21],[6,22],[8,23],[12,24],[10,25],[8,26],[6,27],[4,28],[2,31],[2,32],[2,33],[2,35],[2,36],[2,37],[2,38],[2,54]] + var i = pieces.length; + var king = 10 + var val + do { + var p = pieces[--i]; + val = p[0] + } while (val !== king); + } +} diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 6c9cb331a2..aa589716c7 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -340,6 +340,7 @@ private slots: void constkw(); void redefineGlobalProp(); void freeze_empty_object(); + void singleBlockLoops(); private: // static void propertyVarWeakRefCallback(v8::Persistent<v8::Value> object, void* parameter); @@ -8348,6 +8349,14 @@ void tst_qqmlecmascript::freeze_empty_object() QCOMPARE(v.toBool(), true); } +void tst_qqmlecmascript::singleBlockLoops() +{ + QQmlComponent component(&engine, testFileUrl("qtbug_59012.qml")); + + QScopedPointer<QObject> obj(component.create()); + QVERIFY(obj != 0); + QVERIFY(!component.isError()); +} QTEST_MAIN(tst_qqmlecmascript) diff --git a/tests/auto/qmltest/listview/BLACKLIST b/tests/auto/qmltest/listview/BLACKLIST index 083e2f8978..ffb4f94e2c 100644 --- a/tests/auto/qmltest/listview/BLACKLIST +++ b/tests/auto/qmltest/listview/BLACKLIST @@ -1,4 +1,4 @@ # Blacklist for testing [ListView::test_listInteractiveCurrentIndexEnforce] linux -macos-10.12 +osx-10.12 diff --git a/tests/auto/qmltest/textedit/BLACKLIST b/tests/auto/qmltest/textedit/BLACKLIST index 08a86c1b89..e06cba3e8f 100644 --- a/tests/auto/qmltest/textedit/BLACKLIST +++ b/tests/auto/qmltest/textedit/BLACKLIST @@ -1,6 +1,6 @@ # Blacklist for testing [TextEdit::test_textentry] -macos-10.12 +osx-10.12 [TextEdit::test_textentry_char] -macos-10.12 +osx-10.12 diff --git a/tests/auto/quick/qquicktextinput/BLACKLIST b/tests/auto/quick/qquicktextinput/BLACKLIST new file mode 100644 index 0000000000..e9f4f11c58 --- /dev/null +++ b/tests/auto/quick/qquicktextinput/BLACKLIST @@ -0,0 +1,3 @@ +# QTBUG-41895 +[tripleClickSelectsAll] +windows diff --git a/tests/auto/quick/quick.pro b/tests/auto/quick/quick.pro index 6e9998c061..00be8240e5 100644 --- a/tests/auto/quick/quick.pro +++ b/tests/auto/quick/quick.pro @@ -85,7 +85,8 @@ QUICKTESTS = \ qquickdesignersupport \ qquickscreen \ touchmouse \ - scenegraph + scenegraph \ + sharedimage SUBDIRS += $$PUBLICTESTS diff --git a/tests/auto/quick/sharedimage/data/yellow.png b/tests/auto/quick/sharedimage/data/yellow.png Binary files differnew file mode 100644 index 0000000000..51e8aaf38c --- /dev/null +++ b/tests/auto/quick/sharedimage/data/yellow.png diff --git a/tests/auto/quick/sharedimage/sharedimage.pro b/tests/auto/quick/sharedimage/sharedimage.pro new file mode 100644 index 0000000000..00ec2c1131 --- /dev/null +++ b/tests/auto/quick/sharedimage/sharedimage.pro @@ -0,0 +1,12 @@ +CONFIG += testcase +TARGET = tst_sharedimage +CONFIG -= app_bundle + +SOURCES += tst_sharedimage.cpp + +QT += testlib quick-private + +TESTDATA = data/* + +OTHER_FILES += \ + data/yellow.png diff --git a/tests/auto/quick/sharedimage/tst_sharedimage.cpp b/tests/auto/quick/sharedimage/tst_sharedimage.cpp new file mode 100644 index 0000000000..b91fc8a0de --- /dev/null +++ b/tests/auto/quick/sharedimage/tst_sharedimage.cpp @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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:GPL-EXCEPT$ +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest> +#include <private/qquickimage_p.h> +#include <QQmlApplicationEngine> + +class tst_sharedimage : public QObject +{ + Q_OBJECT +public: + tst_sharedimage() + { + } + +private slots: + void initTestCase(); + void compareToPlainLoad_data(); + void compareToPlainLoad(); +}; + +void tst_sharedimage::initTestCase() +{ +#if !QT_CONFIG(systemsemaphore) + QSKIP("Shared image not supported"); +#endif +} + +void tst_sharedimage::compareToPlainLoad_data() +{ + QString imagePath = QFINDTESTDATA("data/yellow.png"); + if (imagePath.startsWith(QLatin1Char('/'))) + imagePath.remove(0, 1); + QString plainImage("Image { source: \"file:///%1\"; cache: false; %2 }"); + QString sharedImage("Image { source: \"image://shared/%1\"; cache: false; %2 }"); + QString script("import QtQuick 2.0\nimport Qt.labs.sharedimage 1.0\n%1\n"); + + QString plain = script.arg(plainImage).arg(imagePath); + QString shared = script.arg(sharedImage).arg(imagePath); + + QTest::addColumn<QByteArray>("plainScript"); + QTest::addColumn<QByteArray>("sharedScript"); + + QString opts = QStringLiteral("asynchronous: false;"); + QTest::newRow("sync") << plain.arg(opts).toLatin1() << shared.arg(opts).toLatin1(); + + opts = QStringLiteral("asynchronous: true"); + QTest::newRow("async") << plain.arg(opts).toLatin1() << shared.arg(opts).toLatin1(); + + opts = QStringLiteral("sourceSize: Qt.size(50, 50)"); + QTest::newRow("scaled, stretch") << plain.arg(opts).toLatin1() << shared.arg(opts).toLatin1(); + + opts = QStringLiteral("sourceSize: Qt.size(50, 50); fillMode: Image.PreserveAspectFit"); + QTest::newRow("scaled, aspectfit") << plain.arg(opts).toLatin1() << shared.arg(opts).toLatin1(); +} + +void tst_sharedimage::compareToPlainLoad() +{ + QFETCH(QByteArray, plainScript); + QFETCH(QByteArray, sharedScript); + + QImage images[2]; + for (int i = 0; i < 2; i++) { + QQmlApplicationEngine engine; + engine.loadData(i ? sharedScript : plainScript); + QVERIFY(engine.rootObjects().size()); + QQuickImage *obj = qobject_cast<QQuickImage*>(engine.rootObjects().at(0)); + QVERIFY(obj != 0); + QTRY_VERIFY(!obj->image().isNull()); + images[i] = obj->image(); + } + + QCOMPARE(images[1], images[0].convertToFormat(images[1].format())); +} + +QTEST_MAIN(tst_sharedimage) + +#include "tst_sharedimage.moc" |