diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-05-22 07:48:30 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-05-22 07:48:54 +0200 |
commit | 800025fb70ace453275011c1ae5ce906e0fa3344 (patch) | |
tree | 7f1ff56262b75beb3b0a1e94563c43fc59de742b /tests | |
parent | 666f20523cd7be16d88d3c03252ed2fd6e4be0c4 (diff) | |
parent | eb0f98499485487f9f75b6388f00c58b50aeff50 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I0dd91626837276f5811e4830f4a4e9f89bf1e1bd
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 39 | ||||
-rw-r--r-- | tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp | 27 | ||||
-rw-r--r-- | tests/auto/qmltest/animators/tst_multiwindow.qml | 103 | ||||
-rw-r--r-- | tests/auto/quick/qquickitem2/tst_qquickitem.cpp | 2 | ||||
-rw-r--r-- | tests/auto/quick/qquicktext/tst_qquicktext.cpp | 7 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextedit/data/qtbug-38947.qml | 16 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp | 28 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextinput/qquicktextinput.pro | 2 |
8 files changed, 221 insertions, 3 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index b2723b02fd..17acb4fd32 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -157,6 +157,8 @@ private slots: void dynamicProperties(); + void scopeOfEvaluate(); + signals: void testSignal(); }; @@ -3011,6 +3013,43 @@ void tst_QJSEngine::dynamicProperties() } } +class EvaluateWrapper : public QObject +{ + Q_OBJECT +public: + EvaluateWrapper(QJSEngine *engine) + : engine(engine) + {} + +public slots: + QJSValue cppEvaluate(const QString &program) + { + return engine->evaluate(program); + } + +private: + QJSEngine *engine; +}; + +void tst_QJSEngine::scopeOfEvaluate() +{ + QJSEngine engine; + QJSValue wrapper = engine.newQObject(new EvaluateWrapper(&engine)); + + engine.evaluate("testVariable = 42"); + + QJSValue function = engine.evaluate("(function(evalWrapper){\n" + "var testVariable = 100; \n" + "try { \n" + " return evalWrapper.cppEvaluate(\"(function() { return testVariable; })\")\n" + " ()\n" + "} catch (e) {}\n" + "})"); + QVERIFY(function.isCallable()); + QJSValue result = function.call(QJSValueList() << wrapper); + QCOMPARE(result.toInt(), 42); +} + QTEST_MAIN(tst_QJSEngine) #include "tst_qjsengine.moc" diff --git a/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp b/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp index fa6ac3249b..73c880cc2d 100644 --- a/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp +++ b/tests/auto/qml/qjsvalueiterator/tst_qjsvalueiterator.cpp @@ -66,6 +66,7 @@ private slots: void assignObjectToIterator(); void iterateNonObject(); void iterateOverObjectFromDeletedEngine(); + void iterateWithNext(); }; tst_QJSValueIterator::tst_QJSValueIterator() @@ -516,5 +517,31 @@ void tst_QJSValueIterator::iterateOverObjectFromDeletedEngine() } +void tst_QJSValueIterator::iterateWithNext() +{ + QJSEngine engine; + QJSValue value = engine.newObject(); + value.setProperty("one", 1); + value.setProperty("two", 2); + value.setProperty("three", 3); + + QStringList list; + list << QStringLiteral("one") << QStringLiteral("three") << QStringLiteral("two"); + + int counter = 0; + QJSValueIterator it(value); + QStringList actualList; + while (it.next()) { + ++counter; + actualList << it.name(); + } + + std::sort(actualList.begin(), actualList.end()); + + QCOMPARE(counter, 3); + QCOMPARE(list, actualList); + +} + QTEST_MAIN(tst_QJSValueIterator) #include "tst_qjsvalueiterator.moc" diff --git a/tests/auto/qmltest/animators/tst_multiwindow.qml b/tests/auto/qmltest/animators/tst_multiwindow.qml new file mode 100644 index 0000000000..7f7ca253d3 --- /dev/null +++ b/tests/auto/qmltest/animators/tst_multiwindow.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Jolla Ltd, author: <gunnar.sletta@jollamobile.com> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.2 +import QtTest 1.0 +import QtQuick.Window 2.0 + +Item { + id: root; + width: 200 + height: 200 + + TestCase { + id: testCase + name: "animators-mixed" + when: countdown == 0 + function test_endresult() { + verify(true, "Just making sure we didn't crash"); + } + } + + property int countdown: 5; + + Window { + id: window + + width: 100 + height: 100 + + ShaderEffect { + width: 50 + height: 50 + + property real t; + UniformAnimator on t { from: 0; to: 1; duration: 1000; loops: Animation.Infinite } + RotationAnimator on rotation { from: 0; to: 360; duration: 1000; loops: Animation.Infinite } + ScaleAnimator on scale { from: 0.5; to: 1.5; duration: 1000; loops: Animation.Infinite } + XAnimator on x { from: 0; to: 50; duration: 1000; loops: Animation.Infinite } + YAnimator on y { from: 0; to: 50; duration: 1000; loops: Animation.Infinite } + OpacityAnimator on opacity { from: 1; to: 0.5; duration: 1000; loops: Animation.Infinite } + + fragmentShader: " + uniform lowp float t; + uniform lowp float qt_Opacity; + varying highp vec2 qt_TexCoord0; + void main() { + gl_FragColor = vec4(qt_TexCoord0, t, 1) * qt_Opacity; + } + " + } + + visible: true + } + + Timer { + interval: 250 + running: true + repeat: true + onTriggered: { + if (window.visible) + --countdown + window.visible = !window.visible; + } + } +} diff --git a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp index 3298036f53..e7f0adb24d 100644 --- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp @@ -2271,7 +2271,7 @@ void tst_QQuickItem::transforms() QFETCH(QByteArray, qml); QFETCH(QTransform, transform); QQmlComponent component(&engine); - component.setData("import QtQuick 2.4\nItem { transform: "+qml+"}", QUrl::fromLocalFile("")); + component.setData("import QtQuick 2.3\nItem { transform: "+qml+"}", QUrl::fromLocalFile("")); QQuickItem *item = qobject_cast<QQuickItem*>(component.create()); QVERIFY(item); QCOMPARE(item->itemTransform(0,0), transform); diff --git a/tests/auto/quick/qquicktext/tst_qquicktext.cpp b/tests/auto/quick/qquicktext/tst_qquicktext.cpp index 3859fa8424..9ca7cafe3d 100644 --- a/tests/auto/quick/qquicktext/tst_qquicktext.cpp +++ b/tests/auto/quick/qquicktext/tst_qquicktext.cpp @@ -1334,6 +1334,13 @@ void tst_qquicktext::antialiasing() text->resetAntialiasing(); QCOMPARE(text->antialiasing(), true); QCOMPARE(spy.count(), 2); + + // QTBUG-39047 + component.setData("import QtQuick 2.0\n Text { antialiasing: true }", QUrl()); + object.reset(component.create()); + text = qobject_cast<QQuickText *>(object.data()); + QVERIFY(text); + QCOMPARE(text->antialiasing(), true); } void tst_qquicktext::weight() diff --git a/tests/auto/quick/qquicktextedit/data/qtbug-38947.qml b/tests/auto/quick/qquicktextedit/data/qtbug-38947.qml new file mode 100644 index 0000000000..ebf8080e69 --- /dev/null +++ b/tests/auto/quick/qquicktextedit/data/qtbug-38947.qml @@ -0,0 +1,16 @@ +import QtQuick 2.0 + +Item { + height: 200 + width: 200 + TextEdit { + objectName: "textedit" + text: "Hello\nWorld!" + selectByMouse: true + cursorDelegate: Rectangle { + width: 10 + color: "transparent" + border.color: "red" + } + } +} diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index 88b9c2d792..f8fc4c10da 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -207,6 +207,7 @@ private slots: void embeddedImages_data(); void emptytags_QTBUG_22058(); + void cursorRectangle_QTBUG_38947(); private: void simulateKeys(QWindow *window, const QList<Key> &keys); @@ -5262,6 +5263,33 @@ void tst_qquicktextedit::emptytags_QTBUG_22058() QCOMPARE(input->text(), QString("<b>Bold<>")); } +void tst_qquicktextedit::cursorRectangle_QTBUG_38947() +{ + QQuickView window(testFileUrl("qtbug-38947.qml")); + + window.show(); + window.requestActivate(); + QTest::qWaitForWindowExposed(&window); + QQuickTextEdit *edit = window.rootObject()->findChild<QQuickTextEdit *>("textedit"); + QVERIFY(edit); + + QPoint from = edit->positionToRectangle(0).center().toPoint(); + QTest::mousePress(&window, Qt::LeftButton, Qt::NoModifier, from); + + QSignalSpy spy(edit, SIGNAL(cursorRectangleChanged())); + QVERIFY(spy.isValid()); + + for (int i = 1; i < edit->length() - 1; ++i) { + QRectF rect = edit->positionToRectangle(i); + QTest::mouseMove(&window, rect.center().toPoint()); + QCOMPARE(edit->cursorRectangle(), rect); + QCOMPARE(spy.count(), i); + } + + QPoint to = edit->positionToRectangle(edit->length() - 1).center().toPoint(); + QTest::mouseRelease(&window, Qt::LeftButton, Qt::NoModifier, to); +} + QTEST_MAIN(tst_qquicktextedit) #include "tst_qquicktextedit.moc" diff --git a/tests/auto/quick/qquicktextinput/qquicktextinput.pro b/tests/auto/quick/qquicktextinput/qquicktextinput.pro index 521f41df43..c14b09c545 100644 --- a/tests/auto/quick/qquicktextinput/qquicktextinput.pro +++ b/tests/auto/quick/qquicktextinput/qquicktextinput.pro @@ -14,5 +14,3 @@ TESTDATA = data/* QT += core-private gui-private qml-private quick-private testlib DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 - -macx: CONFIG+=insignificant_test # QTBUG-38363 |