diff options
Diffstat (limited to 'tests/auto/declarative')
42 files changed, 1555 insertions, 657 deletions
diff --git a/tests/auto/declarative/anchors/data/anchors.qml b/tests/auto/declarative/anchors/data/anchors.qml index 765e5b6..b3fba30 100644 --- a/tests/auto/declarative/anchors/data/anchors.qml +++ b/tests/auto/declarative/anchors/data/anchors.qml @@ -4,130 +4,130 @@ Rectangle { color: "white" width: 240 height: 320 - Rectangle { id: MasterRect; objectName: "MasterRect"; x: 26; width: 96; height: 20; color: "red" } + Rectangle { id: masterRect; objectName: "masterRect"; x: 26; width: 96; height: 20; color: "red" } Rectangle { - id: Rect1; objectName: "Rect1" + id: rect1; objectName: "rect1" y: 20; width: 10; height: 10 - anchors.left: MasterRect.left + anchors.left: masterRect.left } Rectangle { - id: Rect2; objectName: "Rect2" + id: rect2; objectName: "rect2" y: 20; width: 10; height: 10 - anchors.left: MasterRect.right + anchors.left: masterRect.right } Rectangle { - id: Rect3; objectName: "Rect3" + id: rect3; objectName: "rect3" y: 20; width: 10; height: 10 - anchors.left: MasterRect.horizontalCenter + anchors.left: masterRect.horizontalCenter } Rectangle { - id: Rect4; objectName: "Rect4" + id: rect4; objectName: "rect4" y: 30; width: 10; height: 10 - anchors.right: MasterRect.left + anchors.right: masterRect.left } Rectangle { - id: Rect5; objectName: "Rect5" + id: rect5; objectName: "rect5" y: 30; width: 10; height: 10 - anchors.right: MasterRect.right + anchors.right: masterRect.right } Rectangle { - id: Rect6; objectName: "Rect6" + id: rect6; objectName: "rect6" y: 30; width: 10; height: 10 - anchors.right: MasterRect.horizontalCenter + anchors.right: masterRect.horizontalCenter } Rectangle { - id: Rect7; objectName: "Rect7" + id: rect7; objectName: "rect7" y: 50; width: 10; height: 10 anchors.left: parent.left } Rectangle { - id: Rect8; objectName: "Rect8" + id: rect8; objectName: "rect8" y: 50; width: 10; height: 10 anchors.left: parent.right } Rectangle { - id: Rect9; objectName: "Rect9" + id: rect9; objectName: "rect9" y: 50; width: 10; height: 10 anchors.left: parent.horizontalCenter } Rectangle { - id: Rect10; objectName: "Rect10" + id: rect10; objectName: "rect10" y: 60; width: 10; height: 10 anchors.right: parent.left } Rectangle { - id: Rect11; objectName: "Rect11" + id: rect11; objectName: "rect11" y: 60; width: 10; height: 10 anchors.right: parent.right } Rectangle { - id: Rect12; objectName: "Rect12" + id: rect12; objectName: "rect12" y: 60; width: 10; height: 10 anchors.right: parent.horizontalCenter } Rectangle { - id: Rect13; objectName: "Rect13" + id: rect13; objectName: "rect13" x: 200; width: 10; height: 10 - anchors.top: MasterRect.bottom + anchors.top: masterRect.bottom } Rectangle { - id: Rect14; objectName: "Rect14" + id: rect14; objectName: "rect14" width: 10; height: 10; color: "steelblue" anchors.verticalCenter: parent.verticalCenter } Rectangle { - id: Rect15; objectName: "Rect15" + id: rect15; objectName: "rect15" y: 200; height: 10 - anchors.left: MasterRect.left - anchors.right: MasterRect.right + anchors.left: masterRect.left + anchors.right: masterRect.right } Rectangle { - id: Rect16; objectName: "Rect16" + id: rect16; objectName: "rect16" y: 220; height: 10 - anchors.left: MasterRect.left - anchors.horizontalCenter: MasterRect.right + anchors.left: masterRect.left + anchors.horizontalCenter: masterRect.right } Rectangle { - id: Rect17; objectName: "Rect17" + id: rect17; objectName: "rect17" y: 240; height: 10 - anchors.right: MasterRect.right - anchors.horizontalCenter: MasterRect.left + anchors.right: masterRect.right + anchors.horizontalCenter: masterRect.left } Rectangle { - id: Rect18; objectName: "Rect18" + id: rect18; objectName: "rect18" x: 180; width: 10 - anchors.top: MasterRect.bottom + anchors.top: masterRect.bottom anchors.bottom: Rect12.top } Rectangle { - id: Rect19; objectName: "Rect19" + id: rect19; objectName: "rect19" y: 70; width: 10; height: 10 anchors.horizontalCenter: parent.horizontalCenter } Rectangle { - id: Rect20; objectName: "Rect20" + id: rect20; objectName: "rect20" y: 70; width: 10; height: 10 anchors.horizontalCenter: parent.right } Rectangle { - id: Rect21; objectName: "Rect21" + id: rect21; objectName: "rect21" y: 70; width: 10; height: 10 anchors.horizontalCenter: parent.left } Rectangle { - id: Rect22; objectName: "Rect22" + id: rect22; objectName: "rect22" width: 10; height: 10 - anchors.centerIn: MasterRect + anchors.centerIn: masterRect } Rectangle { - id: Rect23; objectName: "Rect23" - anchors.left: MasterRect.left + id: rect23; objectName: "rect23" + anchors.left: masterRect.left anchors.leftMargin: 5 - anchors.right: MasterRect.right + anchors.right: masterRect.right anchors.rightMargin: 5 - anchors.top: MasterRect.top + anchors.top: masterRect.top anchors.topMargin: 5 - anchors.bottom: MasterRect.bottom + anchors.bottom: masterRect.bottom anchors.bottomMargin: 5 } Text { diff --git a/tests/auto/declarative/anchors/data/illegal1.qml b/tests/auto/declarative/anchors/data/illegal1.qml index 0a960d0..53af443 100644 --- a/tests/auto/declarative/anchors/data/illegal1.qml +++ b/tests/auto/declarative/anchors/data/illegal1.qml @@ -3,10 +3,10 @@ import Qt 4.6 Rectangle { id: rect width: 120; height: 200; color: "white" - Rectangle { id: TheRect; width: 100; height: 100 } + Rectangle { id: theRect; width: 100; height: 100 } Rectangle { - anchors.left: TheRect.left - anchors.right: TheRect.right - anchors.horizontalCenter: TheRect.horizontalCenter + anchors.left: theRect.left + anchors.right: theRect.right + anchors.horizontalCenter: theRect.horizontalCenter } } diff --git a/tests/auto/declarative/anchors/data/illegal2.qml b/tests/auto/declarative/anchors/data/illegal2.qml index 2497738..978be52 100644 --- a/tests/auto/declarative/anchors/data/illegal2.qml +++ b/tests/auto/declarative/anchors/data/illegal2.qml @@ -3,11 +3,11 @@ import Qt 4.6 Rectangle { id: rect width: 120; height: 200; color: "white" - Text { id: Text1; text: "Hello" } + Text { id: text1; text: "Hello" } Text { - id: Text2; - anchors.baseline: Text1.baseline; - anchors.top: Text1.top; + id: text2; + anchors.baseline: text1.baseline; + anchors.top: text1.top; text: "World" } } diff --git a/tests/auto/declarative/anchors/data/illegal3.qml b/tests/auto/declarative/anchors/data/illegal3.qml index 27b2e4d..065ceb5 100644 --- a/tests/auto/declarative/anchors/data/illegal3.qml +++ b/tests/auto/declarative/anchors/data/illegal3.qml @@ -4,9 +4,9 @@ Rectangle { id: rect width: 120; height: 200; color: "white" Item { - Rectangle { id: TheRect; width: 100; height: 100 } + Rectangle { id: theRect; width: 100; height: 100 } } Rectangle { - anchors.left: TheRect.left + anchors.left: theRect.left } } diff --git a/tests/auto/declarative/anchors/data/loop1.qml b/tests/auto/declarative/anchors/data/loop1.qml index ef6b63d..a266612 100644 --- a/tests/auto/declarative/anchors/data/loop1.qml +++ b/tests/auto/declarative/anchors/data/loop1.qml @@ -3,6 +3,6 @@ import Qt 4.6 Rectangle { id: rect width: 120; height: 200; color: "white" - Text { id: Text1; anchors.right: Text2.right; text: "Hello" } - Text { id: Text2; anchors.right: Text1.right; anchors.rightMargin: 10; text: "World" } + Text { id: text1; anchors.right: text2.right; text: "Hello" } + Text { id: text2; anchors.right: text1.right; anchors.rightMargin: 10; text: "World" } } diff --git a/tests/auto/declarative/anchors/data/loop2.qml b/tests/auto/declarative/anchors/data/loop2.qml index 2445a15..acb57cd 100644 --- a/tests/auto/declarative/anchors/data/loop2.qml +++ b/tests/auto/declarative/anchors/data/loop2.qml @@ -6,15 +6,15 @@ Rectangle { height: 600; Image { - id: Image1 + id: image1 source: "http://labs.trolltech.com/blogs/wp-content/uploads/2009/03/3311388091_ac2a257feb.jpg" - anchors.right: Image2.left + anchors.right: image2.left } Image { - id: Image2 + id: image2 source: "http://labs.trolltech.com/blogs/wp-content/uploads/2009/03/oslo_groupphoto.jpg" - anchors.left: Image1.right + anchors.left: image1.right anchors.leftMargin: 20 } } diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp index 4c85d2d..34c1e01 100644 --- a/tests/auto/declarative/anchors/tst_anchors.cpp +++ b/tests/auto/declarative/anchors/tst_anchors.cpp @@ -97,51 +97,51 @@ void tst_anchors::basicAnchors() qApp->processEvents(); //sibling horizontal - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect1"))->x(), 26.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect2"))->x(), 122.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect3"))->x(), 74.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect4"))->x(), 16.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect5"))->x(), 112.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect6"))->x(), 64.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect1"))->x(), 26.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect2"))->x(), 122.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect3"))->x(), 74.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect4"))->x(), 16.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect5"))->x(), 112.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect6"))->x(), 64.0); //parent horizontal - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect7"))->x(), 0.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect8"))->x(), 240.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect9"))->x(), 120.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect10"))->x(), -10.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect11"))->x(), 230.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect12"))->x(), 110.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect7"))->x(), 0.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect8"))->x(), 240.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect9"))->x(), 120.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect10"))->x(), -10.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect11"))->x(), 230.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect12"))->x(), 110.0); //vertical - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect13"))->y(), 20.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect14"))->y(), 155.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect13"))->y(), 20.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect14"))->y(), 155.0); //stretch - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect15"))->x(), 26.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect15"))->width(), 96.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect16"))->x(), 26.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect16"))->width(), 192.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect17"))->x(), -70.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect17"))->width(), 192.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect15"))->x(), 26.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect15"))->width(), 96.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect16"))->x(), 26.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect16"))->width(), 192.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect17"))->x(), -70.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect17"))->width(), 192.0); //vertical stretch - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect18"))->y(), 20.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect18"))->height(), 40.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect18"))->y(), 20.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect18"))->height(), 40.0); //more parent horizontal - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect19"))->x(), 115.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect20"))->x(), 235.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect21"))->x(), -5.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect19"))->x(), 115.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect20"))->x(), 235.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect21"))->x(), -5.0); //centerIn - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect22"))->x(), 69.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect22"))->y(), 5.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect22"))->x(), 69.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect22"))->y(), 5.0); //margins - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect23"))->x(), 31.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect23"))->y(), 5.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect23"))->width(), 86.0); - QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("Rect23"))->height(), 10.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect23"))->x(), 31.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect23"))->y(), 5.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect23"))->width(), 86.0); + QCOMPARE(findItem<QmlGraphicsRectangle>(view->root(), QLatin1String("rect23"))->height(), 10.0); //baseline QmlGraphicsText *text1 = findItem<QmlGraphicsText>(view->root(), QLatin1String("text1")); diff --git a/tests/auto/declarative/debugger/debugger.pro b/tests/auto/declarative/debugger/debugger.pro new file mode 100644 index 0000000..f4a4476 --- /dev/null +++ b/tests/auto/declarative/debugger/debugger.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +SUBDIRS += qmldebug \ + qmldebugclient \ + qmldebugservice diff --git a/tests/auto/declarative/debugger/debuggerutil.cpp b/tests/auto/declarative/debugger/debuggerutil.cpp new file mode 100644 index 0000000..8e93407 --- /dev/null +++ b/tests/auto/declarative/debugger/debuggerutil.cpp @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** 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, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QSignalSpy> +#include <QEventLoop> +#include <QTimer> + +#include <private/qmldebugclient_p.h> +#include <private/qmldebugservice_p.h> + +#include "debuggerutil_p.h" + +namespace QmlDebuggerTest { + + void waitForSignal(QObject *receiver, const char *member) { + QEventLoop loop; + QTimer timer; + QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); + QObject::connect(receiver, member, &loop, SLOT(quit())); + timer.start(5000); + loop.exec(); + } + +} + + +EchoService::EchoService(const QString &s, QObject *parent) + : QmlDebugService(s, parent), enabled(false) +{ +} + +void EchoService::messageReceived(const QByteArray &ba) +{ + sendMessage(ba); +} + +void EchoService::enabledChanged(bool e) +{ + emit enabledStateChanged(); + enabled = e; +} + + +MyQmlDebugClient::MyQmlDebugClient(const QString &s, QmlDebugConnection *c) + : QmlDebugClient(s, c) +{ +} + +QByteArray MyQmlDebugClient::waitForResponse() +{ + QSignalSpy spy(this, SIGNAL(serverMessage(QByteArray))); + QmlDebuggerTest::waitForSignal(this, SIGNAL(serverMessage(QByteArray))); + if (spy.count() == 0) { + qWarning() << "tst_QmlDebugClient: no response from server!"; + return QByteArray(); + } + return spy.at(0).at(0).value<QByteArray>(); +} + +void MyQmlDebugClient::messageReceived(const QByteArray &ba) +{ + emit serverMessage(ba); +} + + diff --git a/tests/auto/declarative/debugger/debuggerutil_p.h b/tests/auto/declarative/debugger/debuggerutil_p.h new file mode 100644 index 0000000..155d550 --- /dev/null +++ b/tests/auto/declarative/debugger/debuggerutil_p.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** 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, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QSignalSpy> +#include <QEventLoop> +#include <QTimer> + +#include <private/qmldebugclient_p.h> +#include <private/qmldebugservice_p.h> + +namespace QmlDebuggerTest { + + void waitForSignal(QObject *receiver, const char *member); +} + +class EchoService : public QmlDebugService +{ + Q_OBJECT +public: + EchoService(const QString &s, QObject *parent = 0); + bool enabled; + +signals: + void enabledStateChanged(); + +protected: + virtual void messageReceived(const QByteArray &ba); + + virtual void enabledChanged(bool e); +}; + +class MyQmlDebugClient : public QmlDebugClient +{ + Q_OBJECT +public: + MyQmlDebugClient(const QString &s, QmlDebugConnection *c); + + QByteArray waitForResponse(); + +signals: + void serverMessage(const QByteArray &); + +protected: + virtual void messageReceived(const QByteArray &ba); +}; + + diff --git a/tests/auto/declarative/qmldebug/qmldebug.pro b/tests/auto/declarative/debugger/qmldebug/qmldebug.pro index 61f821e..61f821e 100644 --- a/tests/auto/declarative/qmldebug/qmldebug.pro +++ b/tests/auto/declarative/debugger/qmldebug/qmldebug.pro diff --git a/tests/auto/declarative/qmldebug/tst_qmldebug.cpp b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp index 0890557..7c52a19 100644 --- a/tests/auto/declarative/qmldebug/tst_qmldebug.cpp +++ b/tests/auto/declarative/debugger/qmldebug/tst_qmldebug.cpp @@ -44,8 +44,6 @@ #include <QHostAddress> #include <QDebug> #include <QThread> -#include <QProcessEnvironment> -#include <QProcess> #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcontext.h> @@ -53,7 +51,6 @@ #include <QtDeclarative/qmlexpression.h> #include <QtDeclarative/qmlmetatype.h> #include <QtDeclarative/qmlmetaproperty.h> -#include <QtDeclarative/qmlcontext.h> #include <QtDeclarative/qmlbinding.h> #include <private/qmldebug_p.h> @@ -61,8 +58,6 @@ #include <private/qmldebugclient_p.h> #include <private/qmldebugservice_p.h> #include <private/qmlgraphicsrectangle_p.h> -#include <private/qmlgraphicstext_p.h> -#include <private/qmldeclarativedata_p.h> class tst_QmlDebug : public QObject @@ -81,10 +76,15 @@ protected slots: private: QmlDebugObjectReference findRootObject(); - QmlDebugPropertyReference findProperty(const QList<QmlDebugPropertyReference> &props, const QString &name); - QObject *findObjectWithId(const QObjectList &objects, int id); + QmlDebugPropertyReference findProperty(const QList<QmlDebugPropertyReference> &props, const QString &name) const; + QObject *findObjectWithId(const QObjectList &objects, int id) const; void waitForQuery(QmlDebugQuery *query); - void recursiveObjectTest(QObject *o, const QmlDebugObjectReference &oref, bool recursive); + + void recursiveObjectTest(QObject *o, const QmlDebugObjectReference &oref, bool recursive) const; + + void recursiveCompareObjects(const QmlDebugObjectReference &a, const QmlDebugObjectReference &b) const; + void recursiveCompareContexts(const QmlDebugContextReference &a, const QmlDebugContextReference &b) const; + void compareProperties(const QmlDebugPropertyReference &a, const QmlDebugPropertyReference &b) const; QmlDebugConnection *m_conn; QmlEngineDebug *m_dbg; @@ -106,6 +106,12 @@ private slots: void queryObject_data(); void queryExpressionResult(); void queryExpressionResult_data(); + + void tst_QmlDebugFileReference(); + void tst_QmlDebugEngineReference(); + void tst_QmlDebugObjectReference(); + void tst_QmlDebugContextReference(); + void tst_QmlDebugPropertyReference(); }; QmlDebugObjectReference tst_QmlDebug::findRootObject() @@ -132,7 +138,7 @@ QmlDebugObjectReference tst_QmlDebug::findRootObject() return result; } -QmlDebugPropertyReference tst_QmlDebug::findProperty(const QList<QmlDebugPropertyReference> &props, const QString &name) +QmlDebugPropertyReference tst_QmlDebug::findProperty(const QList<QmlDebugPropertyReference> &props, const QString &name) const { foreach(const QmlDebugPropertyReference &p, props) { if (p.name() == name) @@ -141,7 +147,7 @@ QmlDebugPropertyReference tst_QmlDebug::findProperty(const QList<QmlDebugPropert return QmlDebugPropertyReference(); } -QObject *tst_QmlDebug::findObjectWithId(const QObjectList &objects, int id) +QObject *tst_QmlDebug::findObjectWithId(const QObjectList &objects, int id) const { foreach (QObject *o, objects) { if (id == QmlDebugService::idForObject(o)) @@ -165,7 +171,7 @@ void tst_QmlDebug::waitForQuery(QmlDebugQuery *query) QFAIL("query timed out"); } -void tst_QmlDebug::recursiveObjectTest(QObject *o, const QmlDebugObjectReference &oref, bool recursive) +void tst_QmlDebug::recursiveObjectTest(QObject *o, const QmlDebugObjectReference &oref, bool recursive) const { const QMetaObject *meta = o->metaObject(); @@ -212,6 +218,54 @@ void tst_QmlDebug::recursiveObjectTest(QObject *o, const QmlDebugObjectReference } } +void tst_QmlDebug::recursiveCompareObjects(const QmlDebugObjectReference &a, const QmlDebugObjectReference &b) const +{ + QCOMPARE(a.debugId(), b.debugId()); + QCOMPARE(a.className(), b.className()); + QCOMPARE(a.name(), b.name()); + QCOMPARE(a.contextDebugId(), b.contextDebugId()); + + QCOMPARE(a.source().url(), b.source().url()); + QCOMPARE(a.source().lineNumber(), b.source().lineNumber()); + QCOMPARE(a.source().columnNumber(), b.source().columnNumber()); + + QCOMPARE(a.properties().count(), b.properties().count()); + QCOMPARE(a.children().count(), b.children().count()); + + QList<QmlDebugPropertyReference> aprops = a.properties(); + QList<QmlDebugPropertyReference> bprops = b.properties(); + + for (int i=0; i<aprops.count(); i++) + compareProperties(aprops[i], bprops[i]); + + for (int i=0; i<a.children().count(); i++) + recursiveCompareObjects(a.children()[i], b.children()[i]); +} + +void tst_QmlDebug::recursiveCompareContexts(const QmlDebugContextReference &a, const QmlDebugContextReference &b) const +{ + QCOMPARE(a.debugId(), b.debugId()); + QCOMPARE(a.name(), b.name()); + QCOMPARE(a.objects().count(), b.objects().count()); + QCOMPARE(a.contexts().count(), b.contexts().count()); + + for (int i=0; i<a.objects().count(); i++) + recursiveCompareObjects(a.objects()[i], b.objects()[i]); + + for (int i=0; i<a.contexts().count(); i++) + recursiveCompareContexts(a.contexts()[i], b.contexts()[i]); +} + +void tst_QmlDebug::compareProperties(const QmlDebugPropertyReference &a, const QmlDebugPropertyReference &b) const +{ + QCOMPARE(a.objectDebugId(), b.objectDebugId()); + QCOMPARE(a.name(), b.name()); + QCOMPARE(a.value(), b.value()); + QCOMPARE(a.valueTypeName(), b.valueTypeName()); + QCOMPARE(a.binding(), b.binding()); + QCOMPARE(a.hasNotifySignal(), b.hasNotifySignal()); +} + void tst_QmlDebug::initTestCase() { m_dbg = new QmlEngineDebug(m_conn, this); @@ -323,7 +377,6 @@ void tst_QmlDebug::watch_expression() int origWidth = m_rootItem->property("width").toInt(); QmlDebugObjectReference obj = findRootObject(); - QmlDebugPropertyReference prop; QmlDebugObjectExpressionWatch *watch = m_dbg->addWatch(obj, expr, this); QCOMPARE(watch->state(), QmlDebugWatch::Waiting); @@ -376,7 +429,18 @@ void tst_QmlDebug::watch_expression_data() void tst_QmlDebug::queryAvailableEngines() { - QmlDebugEnginesQuery *q_engines = m_dbg->queryAvailableEngines(this); + QmlDebugEnginesQuery *q_engines; + + QmlEngineDebug unconnected(0); + q_engines = unconnected.queryAvailableEngines(0); + QCOMPARE(q_engines->state(), QmlDebugQuery::Error); + delete q_engines; + + q_engines = m_dbg->queryAvailableEngines(this); + delete q_engines; + + q_engines = m_dbg->queryAvailableEngines(this); + QVERIFY(q_engines->engines().isEmpty()); waitForQuery(q_engines); // TODO test multiple engines @@ -395,8 +459,19 @@ void tst_QmlDebug::queryRootContexts() { QmlDebugEnginesQuery *q_engines = m_dbg->queryAvailableEngines(this); waitForQuery(q_engines); + int engineId = q_engines->engines()[0].debugId(); + + QmlDebugRootContextQuery *q_context; - QmlDebugRootContextQuery *q_context = m_dbg->queryRootContexts(q_engines->engines()[0].debugId(), this); + QmlEngineDebug unconnected(0); + q_context = unconnected.queryRootContexts(engineId, this); + QCOMPARE(q_context->state(), QmlDebugQuery::Error); + delete q_context; + + q_context = m_dbg->queryRootContexts(engineId, this); + delete q_context; + + q_context = m_dbg->queryRootContexts(engineId, this); waitForQuery(q_context); QmlContext *actualContext = m_engine->rootContext(); @@ -427,12 +502,19 @@ void tst_QmlDebug::queryObject() QmlDebugRootContextQuery *q_context = m_dbg->queryRootContexts(q_engines->engines()[0].debugId(), this); waitForQuery(q_context); + QmlDebugObjectReference rootObject = q_context->rootContext().objects()[0]; QmlDebugObjectQuery *q_obj = 0; - if (recursive) - q_obj = m_dbg->queryObjectRecursive(q_context->rootContext().objects()[0], this); - else - q_obj = m_dbg->queryObject(q_context->rootContext().objects()[0], this); + + QmlEngineDebug unconnected(0); + q_obj = recursive ? unconnected.queryObjectRecursive(rootObject, this) : unconnected.queryObject(rootObject, this); + QCOMPARE(q_obj->state(), QmlDebugQuery::Error); + delete q_obj; + + q_obj = recursive ? m_dbg->queryObjectRecursive(rootObject, this) : m_dbg->queryObject(rootObject, this); + delete q_obj; + + q_obj = recursive ? m_dbg->queryObjectRecursive(rootObject, this) : m_dbg->queryObject(rootObject, this); waitForQuery(q_obj); QmlDebugObjectReference obj = q_obj->object(); @@ -494,8 +576,19 @@ void tst_QmlDebug::queryExpressionResult() QmlDebugRootContextQuery *q_context = m_dbg->queryRootContexts(q_engines->engines()[0].debugId(), this); waitForQuery(q_context); + int objectId = q_context->rootContext().objects()[0].debugId(); - QmlDebugExpressionQuery *q_expr = m_dbg->queryExpressionResult(q_context->rootContext().objects()[0].debugId(), expr, this); + QmlDebugExpressionQuery *q_expr; + + QmlEngineDebug unconnected(0); + q_expr = unconnected.queryExpressionResult(objectId, expr, this); + QCOMPARE(q_expr->state(), QmlDebugQuery::Error); + delete q_expr; + + q_expr = m_dbg->queryExpressionResult(objectId, expr, this); + delete q_expr; + + q_expr = m_dbg->queryExpressionResult(objectId, expr, this); QCOMPARE(q_expr->expression(), expr); waitForQuery(q_expr); @@ -516,6 +609,120 @@ void tst_QmlDebug::queryExpressionResult_data() QTest::newRow("bad expr") << "aeaef" << qVariantFromValue(QString("<undefined>")); } +void tst_QmlDebug::tst_QmlDebugFileReference() +{ + QmlDebugFileReference ref; + QVERIFY(ref.url().isEmpty()); + QCOMPARE(ref.lineNumber(), -1); + QCOMPARE(ref.columnNumber(), -1); + + ref.setUrl(QUrl("http://test")); + QCOMPARE(ref.url(), QUrl("http://test")); + ref.setLineNumber(1); + QCOMPARE(ref.lineNumber(), 1); + ref.setColumnNumber(1); + QCOMPARE(ref.columnNumber(), 1); + + QmlDebugFileReference copy(ref); + QmlDebugFileReference copyAssign; + copyAssign = ref; + foreach (const QmlDebugFileReference &r, (QList<QmlDebugFileReference>() << copy << copyAssign)) { + QCOMPARE(r.url(), ref.url()); + QCOMPARE(r.lineNumber(), ref.lineNumber()); + QCOMPARE(r.columnNumber(), ref.columnNumber()); + } +} + +void tst_QmlDebug::tst_QmlDebugEngineReference() +{ + QmlDebugEngineReference ref; + QCOMPARE(ref.debugId(), -1); + QVERIFY(ref.name().isEmpty()); + + ref = QmlDebugEngineReference(1); + QCOMPARE(ref.debugId(), 1); + QVERIFY(ref.name().isEmpty()); + + QmlDebugEnginesQuery *q_engines = m_dbg->queryAvailableEngines(this); + waitForQuery(q_engines); + ref = q_engines->engines()[0]; + delete q_engines; + + QmlDebugEngineReference copy(ref); + QmlDebugEngineReference copyAssign; + copyAssign = ref; + foreach (const QmlDebugEngineReference &r, (QList<QmlDebugEngineReference>() << copy << copyAssign)) { + QCOMPARE(r.debugId(), ref.debugId()); + QCOMPARE(r.name(), ref.name()); + } +} + +void tst_QmlDebug::tst_QmlDebugObjectReference() +{ + QmlDebugObjectReference ref; + QCOMPARE(ref.debugId(), -1); + QCOMPARE(ref.className(), QString()); + QCOMPARE(ref.name(), QString()); + QCOMPARE(ref.contextDebugId(), -1); + QVERIFY(ref.properties().isEmpty()); + QVERIFY(ref.children().isEmpty()); + + QmlDebugFileReference source = ref.source(); + QVERIFY(source.url().isEmpty()); + QVERIFY(source.lineNumber() < 0); + QVERIFY(source.columnNumber() < 0); + + ref = QmlDebugObjectReference(1); + QCOMPARE(ref.debugId(), 1); + + QmlDebugObjectReference rootObject = findRootObject(); + QmlDebugObjectQuery *query = m_dbg->queryObjectRecursive(rootObject, this); + waitForQuery(query); + ref = query->object(); + delete query; + + QVERIFY(ref.debugId() >= 0); + + QmlDebugObjectReference copy(ref); + QmlDebugObjectReference copyAssign; + copyAssign = ref; + foreach (const QmlDebugObjectReference &r, (QList<QmlDebugObjectReference>() << copy << copyAssign)) + recursiveCompareObjects(r, ref); +} + +void tst_QmlDebug::tst_QmlDebugContextReference() +{ + QmlDebugContextReference ref; + QCOMPARE(ref.debugId(), -1); + QVERIFY(ref.name().isEmpty()); + QVERIFY(ref.objects().isEmpty()); + QVERIFY(ref.contexts().isEmpty()); + + QmlDebugEnginesQuery *q_engines = m_dbg->queryAvailableEngines(this); + waitForQuery(q_engines); + QmlDebugRootContextQuery *q_context = m_dbg->queryRootContexts(q_engines->engines()[0].debugId(), this); + waitForQuery(q_context); + + ref = q_context->rootContext(); + delete q_engines; + delete q_context; + QVERIFY(ref.debugId() >= 0); + + QmlDebugContextReference copy(ref); + QmlDebugContextReference copyAssign; + copyAssign = ref; + foreach (const QmlDebugContextReference &r, (QList<QmlDebugContextReference>() << copy << copyAssign)) + recursiveCompareContexts(r, ref); +} + +void tst_QmlDebug::tst_QmlDebugPropertyReference() +{ + QmlDebugObjectReference rootObject = findRootObject(); + QmlDebugObjectQuery *query = m_dbg->queryObject(rootObject, this); + waitForQuery(query); + QmlDebugObjectReference obj = query->object(); + delete query; +} class TestRunnerThread : public QThread { diff --git a/tests/auto/declarative/debugger/qmldebugclient/qmldebugclient.pro b/tests/auto/declarative/debugger/qmldebugclient/qmldebugclient.pro new file mode 100644 index 0000000..6e68cd5 --- /dev/null +++ b/tests/auto/declarative/debugger/qmldebugclient/qmldebugclient.pro @@ -0,0 +1,7 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += network declarative +macx:CONFIG -= app_bundle + +HEADERS += ../debuggerutil_p.h +SOURCES += tst_qmldebugclient.cpp \ + ../debuggerutil.cpp diff --git a/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp b/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp new file mode 100644 index 0000000..db33061 --- /dev/null +++ b/tests/auto/declarative/debugger/qmldebugclient/tst_qmldebugclient.cpp @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** 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, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <qtest.h> +#include <QSignalSpy> +#include <QTimer> +#include <QHostAddress> +#include <QDebug> +#include <QThread> + +#include <QtDeclarative/qmlengine.h> + +#include <private/qmldebug_p.h> +#include <private/qmlenginedebug_p.h> +#include <private/qmldebugclient_p.h> +#include <private/qmldebugservice_p.h> + +#include "../debuggerutil_p.h" + +class tst_QmlDebugClient : public QObject +{ + Q_OBJECT + +public: + tst_QmlDebugClient(QmlDebugConnection *conn, QmlEngine *engine) + : m_conn(conn), m_engine(engine) {} + + QmlDebugConnection *m_conn; + QmlEngine *m_engine; + +private slots: + void name(); + void isEnabled(); + void setEnabled(); + void isConnected(); + void sendMessage(); +}; + +void tst_QmlDebugClient::name() +{ + QString name = "tst_QmlDebugClient::name()"; + + QmlDebugClient client(name, m_conn); + QCOMPARE(client.name(), name); +} + +void tst_QmlDebugClient::isEnabled() +{ + QmlDebugClient client("tst_QmlDebugClient::isEnabled()", m_conn); + QCOMPARE(client.isEnabled(), false); +} + +void tst_QmlDebugClient::setEnabled() +{ + EchoService service("tst_QmlDebugClient::setEnabled()"); + MyQmlDebugClient client("tst_QmlDebugClient::setEnabled()", m_conn); + + QCOMPARE(service.isEnabled(), false); + + client.setEnabled(true); + QCOMPARE(client.isEnabled(), true); + QmlDebuggerTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); + QCOMPARE(service.isEnabled(), true); + + client.setEnabled(false); + QCOMPARE(client.isEnabled(), false); + QmlDebuggerTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); + QCOMPARE(service.isEnabled(), false); +} + +void tst_QmlDebugClient::isConnected() +{ + QmlDebugClient client1("tst_QmlDebugClient::isConnected() A", m_conn); + QCOMPARE(client1.isConnected(), true); + + QmlDebugConnection conn; + QmlDebugClient client2("tst_QmlDebugClient::isConnected() B", &conn); + QCOMPARE(client2.isConnected(), false); + + QmlDebugClient client3("tst_QmlDebugClient::isConnected() C", 0); + QCOMPARE(client3.isConnected(), false); + + // duplicate plugin name + QTest::ignoreMessage(QtWarningMsg, "QmlDebugClient: Conflicting plugin name \"tst_QmlDebugClient::isConnected() A\" "); + QmlDebugClient client4("tst_QmlDebugClient::isConnected() A", m_conn); + QCOMPARE(client4.isConnected(), false); +} + +void tst_QmlDebugClient::sendMessage() +{ + EchoService service("tst_QmlDebugClient::sendMessage()"); + MyQmlDebugClient client("tst_QmlDebugClient::sendMessage()", m_conn); + + QByteArray msg = "hello!"; + + client.sendMessage(msg); + QByteArray resp = client.waitForResponse(); + QCOMPARE(resp, msg); +} + + + +class tst_QmlDebugClient_Thread : public QThread +{ + Q_OBJECT +public: + void run() { + QTest::qWait(1000); + connectToEngine(); + } + + QPointer<QmlEngine> m_engine; + +signals: + void testsFinished(); + +public slots: + + void connectToEngine() + { + QmlDebugConnection conn; + conn.connectToHost("127.0.0.1", 3768); + bool ok = conn.waitForConnected(5000); + Q_ASSERT(ok); + while (!m_engine) + QTest::qWait(50); + + tst_QmlDebugClient test(&conn, m_engine); + QTest::qExec(&test); + emit testsFinished(); + } +}; + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + qputenv("QML_DEBUG_SERVER_PORT", "3768"); + + tst_QmlDebugClient_Thread thread; + QObject::connect(&thread, SIGNAL(testsFinished()), qApp, SLOT(quit())); + thread.start(); + + QmlEngine engine; // blocks until client connects + + // start the test + thread.m_engine = &engine; + + return app.exec(); + +} + +#include "tst_qmldebugclient.moc" diff --git a/tests/auto/declarative/debugger/qmldebugservice/qmldebugservice.pro b/tests/auto/declarative/debugger/qmldebugservice/qmldebugservice.pro new file mode 100644 index 0000000..1b6762c --- /dev/null +++ b/tests/auto/declarative/debugger/qmldebugservice/qmldebugservice.pro @@ -0,0 +1,7 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += network declarative +macx:CONFIG -= app_bundle + +HEADERS += ../debuggerutil_p.h +SOURCES += tst_qmldebugservice.cpp \ + ../debuggerutil.cpp diff --git a/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp b/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp new file mode 100644 index 0000000..224e7e1 --- /dev/null +++ b/tests/auto/declarative/debugger/qmldebugservice/tst_qmldebugservice.cpp @@ -0,0 +1,222 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** 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, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <qtest.h> +#include <QSignalSpy> +#include <QTimer> +#include <QHostAddress> +#include <QDebug> +#include <QThread> + +#include <QtDeclarative/qmlengine.h> + +#include <private/qmldebug_p.h> +#include <private/qmlenginedebug_p.h> +#include <private/qmldebugclient_p.h> +#include <private/qmldebugservice_p.h> + +#include "../debuggerutil_p.h" + +class tst_QmlDebugService : public QObject +{ + Q_OBJECT + +public: + tst_QmlDebugService(QmlDebugConnection *conn, QmlEngine *engine) + : m_conn(conn), m_engine(engine) {} + + QmlDebugConnection *m_conn; + QmlEngine *m_engine; + +private slots: + void name(); + void isEnabled(); + void enabledChanged(); + void sendMessage(); + void idForObject(); + void objectForId(); + void objectToString(); +}; + +void tst_QmlDebugService::name() +{ + QString name = "tst_QmlDebugService::name()"; + + QmlDebugService service(name); + QCOMPARE(service.name(), name); +} + +void tst_QmlDebugService::isEnabled() +{ + EchoService service("tst_QmlDebugService::isEnabled()", m_conn); + QCOMPARE(service.isEnabled(), false); + + MyQmlDebugClient client("tst_QmlDebugService::isEnabled()", m_conn); + client.setEnabled(true); + QmlDebuggerTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); + QCOMPARE(service.isEnabled(), true); + + QTest::ignoreMessage(QtWarningMsg, "QmlDebugService: Conflicting plugin name \"tst_QmlDebugService::isEnabled()\" "); + QmlDebugService duplicate("tst_QmlDebugService::isEnabled()", m_conn); + QCOMPARE(duplicate.isEnabled(), false); +} + +void tst_QmlDebugService::enabledChanged() +{ + EchoService service("tst_QmlDebugService::enabledChanged()"); + MyQmlDebugClient client("tst_QmlDebugService::enabledChanged()", m_conn); + + QCOMPARE(service.enabled, false); + + client.setEnabled(true); + QmlDebuggerTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); + QCOMPARE(service.enabled, true); +} + +void tst_QmlDebugService::sendMessage() +{ + EchoService service("tst_QmlDebugService::sendMessage()"); + MyQmlDebugClient client("tst_QmlDebugService::sendMessage()", m_conn); + + QByteArray msg = "hello!"; + + client.sendMessage(msg); + QByteArray resp = client.waitForResponse(); + QCOMPARE(resp, msg); +} + +void tst_QmlDebugService::idForObject() +{ + QCOMPARE(QmlDebugService::idForObject(0), -1); + + QObject *objA = new QObject; + + int idA = QmlDebugService::idForObject(objA); + QVERIFY(idA >= 0); + QCOMPARE(QmlDebugService::objectForId(idA), objA); + + int idAA = QmlDebugService::idForObject(objA); + QCOMPARE(idAA, idA); + + QObject *objB = new QObject; + int idB = QmlDebugService::idForObject(objB); + QVERIFY(idB != idA); + QCOMPARE(QmlDebugService::objectForId(idB), objB); + + delete objA; + delete objB; +} + +void tst_QmlDebugService::objectForId() +{ + QCOMPARE(QmlDebugService::objectForId(-1), static_cast<QObject*>(0)); + QCOMPARE(QmlDebugService::objectForId(1), static_cast<QObject*>(0)); + + QObject *obj = new QObject; + int id = QmlDebugService::idForObject(obj); + QCOMPARE(QmlDebugService::objectForId(id), obj); + + delete obj; + QCOMPARE(QmlDebugService::objectForId(id), static_cast<QObject*>(0)); +} + +void tst_QmlDebugService::objectToString() +{ + QCOMPARE(QmlDebugService::objectToString(0), QString("NULL")); + + QObject *obj = new QObject; + QCOMPARE(QmlDebugService::objectToString(obj), QString("QObject: <unnamed>")); + + obj->setObjectName("Hello"); + QCOMPARE(QmlDebugService::objectToString(obj), QString("QObject: Hello")); +} + + +class tst_QmlDebugService_Thread : public QThread +{ + Q_OBJECT +public: + void run() { + QTest::qWait(1000); + connectToEngine(); + } + + QPointer<QmlEngine> m_engine; + +signals: + void testsFinished(); + +public slots: + + void connectToEngine() + { + QmlDebugConnection conn; + conn.connectToHost("127.0.0.1", 3768); + bool ok = conn.waitForConnected(5000); + Q_ASSERT(ok); + while (!m_engine) + QTest::qWait(50); + + tst_QmlDebugService test(&conn, m_engine); + QTest::qExec(&test); + emit testsFinished(); + } +}; + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + qputenv("QML_DEBUG_SERVER_PORT", "3768"); + + tst_QmlDebugService_Thread thread; + QObject::connect(&thread, SIGNAL(testsFinished()), qApp, SLOT(quit())); + thread.start(); + + QmlEngine engine; // blocks until client connects + + // start the test + thread.m_engine = &engine; + + return app.exec(); + +} + +#include "tst_qmldebugservice.moc" diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 930eb09..3106f90 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -5,6 +5,7 @@ SUBDIRS += \ animations \ # Cover behaviors \ # Cover datetimeformatter \ # Cover + debugger \ # Cover examples \ layouts \ # Cover qmlgraphicslistview \ # Cover @@ -12,12 +13,11 @@ SUBDIRS += \ numberformatter \ # Cover parserstress \ # Cover pathview \ # Cover - qfxloader \ # Cover + qmlgraphicsloader \ # Cover qmetaobjectbuilder \ # Cover qmlbinding \ # Cover qmlconnection \ # Cover qmlcontext \ # Cover - qmldebug \ # Cover qmldom \ # Cover qmlecmascript \ # Cover qmlerror \ # Cover diff --git a/tests/auto/declarative/qfxloader/NoResize.qml b/tests/auto/declarative/qmlgraphicsloader/NoResize.qml index cfbb55a..cfbb55a 100644 --- a/tests/auto/declarative/qfxloader/NoResize.qml +++ b/tests/auto/declarative/qmlgraphicsloader/NoResize.qml diff --git a/tests/auto/declarative/qfxloader/Rect120x60.qml b/tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml index aa4b0c2..aa4b0c2 100644 --- a/tests/auto/declarative/qfxloader/Rect120x60.qml +++ b/tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml diff --git a/tests/auto/declarative/qfxloader/SetSourceComponent.qml b/tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml index 1db56c4..1db56c4 100644 --- a/tests/auto/declarative/qfxloader/SetSourceComponent.qml +++ b/tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml diff --git a/tests/auto/declarative/qfxloader/SizeToItem.qml b/tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml index b52fa03..b52fa03 100644 --- a/tests/auto/declarative/qfxloader/SizeToItem.qml +++ b/tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml diff --git a/tests/auto/declarative/qfxloader/SizeToLoader.qml b/tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml index 1a107e1..1a107e1 100644 --- a/tests/auto/declarative/qfxloader/SizeToLoader.qml +++ b/tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml diff --git a/tests/auto/declarative/qfxloader/qfxloader.pro b/tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro index aee52cc..8be8cdf 100644 --- a/tests/auto/declarative/qfxloader/qfxloader.pro +++ b/tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro @@ -2,6 +2,6 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative gui macx:CONFIG -= app_bundle -SOURCES += tst_qfxloader.cpp +SOURCES += tst_qmlgraphicsloader.cpp DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp index 9a3da90..8fda991 100644 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp @@ -43,15 +43,16 @@ #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicsloader_p.h> -class tst_qfxloader : public QObject +class tst_QmlGraphicsLoader : public QObject { Q_OBJECT public: - tst_qfxloader(); + tst_QmlGraphicsLoader(); private slots: void url(); + void invalidUrl(); void component(); void clear(); void urlToComponent(); @@ -77,23 +78,25 @@ inline QUrl TEST_FILE(const char *filename) } */ -tst_qfxloader::tst_qfxloader() +tst_QmlGraphicsLoader::tst_QmlGraphicsLoader() { } -void tst_qfxloader::url() +void tst_QmlGraphicsLoader::url() { QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"Rect120x60.qml\" }"), QUrl("file://" SRCDIR "/")); QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); QVERIFY(loader != 0); QVERIFY(loader->item()); + QVERIFY(loader->source() == QUrl("file://" SRCDIR "/Rect120x60.qml")); QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Ready); QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1); delete loader; } -void tst_qfxloader::component() +void tst_QmlGraphicsLoader::component() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); QmlGraphicsItem *item = qobject_cast<QmlGraphicsItem*>(component.create()); @@ -103,36 +106,75 @@ void tst_qfxloader::component() QVERIFY(loader); QVERIFY(loader->item()); QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Ready); QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1); delete loader; } -void tst_qfxloader::clear() +void tst_QmlGraphicsLoader::invalidUrl() { - QmlComponent component(&engine, QByteArray( - "import Qt 4.6\n" - " Loader { id: loader\n" - " source: 'Rect120x60.qml'\n" - " Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n" - " }") - , QUrl("file://" SRCDIR "/")); +// QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml)"); + + QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), QUrl("file://" SRCDIR "/")); QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); QVERIFY(loader != 0); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1); - - QTest::qWait(500); - QVERIFY(loader->item() == 0); - QCOMPARE(loader->progress(), 0.0); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Error); QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0); delete loader; } -void tst_qfxloader::urlToComponent() +void tst_QmlGraphicsLoader::clear() +{ + { + QmlComponent component(&engine, QByteArray( + "import Qt 4.6\n" + " Loader { id: loader\n" + " source: 'Rect120x60.qml'\n" + " Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n" + " }") + , QUrl("file://" SRCDIR "/")); + QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1); + + QTest::qWait(500); + + QVERIFY(loader->item() == 0); + QCOMPARE(loader->progress(), 0.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Null); + QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0); + + delete loader; + } + { + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); + QmlGraphicsItem *item = qobject_cast<QmlGraphicsItem*>(component.create()); + QVERIFY(item); + + QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(item->QGraphicsObject::children().at(1)); + QVERIFY(loader); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1); + + loader->setSourceComponent(0); + + QVERIFY(loader->item() == 0); + QCOMPARE(loader->progress(), 0.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Null); + QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0); + + delete loader; + } +} + +void tst_QmlGraphicsLoader::urlToComponent() { QmlComponent component(&engine, QByteArray("import Qt 4.6\n" "Loader {\n" @@ -154,7 +196,7 @@ void tst_qfxloader::urlToComponent() delete loader; } -void tst_qfxloader::componentToUrl() +void tst_QmlGraphicsLoader::componentToUrl() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); QmlGraphicsItem *item = qobject_cast<QmlGraphicsItem*>(component.create()); @@ -176,20 +218,37 @@ void tst_qfxloader::componentToUrl() delete loader; } -void tst_qfxloader::sizeLoaderToItem() +void tst_QmlGraphicsLoader::sizeLoaderToItem() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToItem.qml")); QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); QVERIFY(loader != 0); + QVERIFY(loader->resizeMode() == QmlGraphicsLoader::SizeLoaderToItem); QCOMPARE(loader->width(), 120.0); QCOMPARE(loader->height(), 60.0); + + // Check resize + QmlGraphicsItem *rect = loader->item(); + QVERIFY(rect); + rect->setWidth(150); + rect->setHeight(45); + QCOMPARE(loader->width(), 150.0); + QCOMPARE(loader->height(), 45.0); + + // Switch mode + loader->setResizeMode(QmlGraphicsLoader::SizeItemToLoader); + loader->setWidth(180); + loader->setHeight(30); + QCOMPARE(rect->width(), 180.0); + QCOMPARE(rect->height(), 30.0); } -void tst_qfxloader::sizeItemToLoader() +void tst_QmlGraphicsLoader::sizeItemToLoader() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToLoader.qml")); QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); QVERIFY(loader != 0); + QVERIFY(loader->resizeMode() == QmlGraphicsLoader::SizeItemToLoader); QCOMPARE(loader->width(), 200.0); QCOMPARE(loader->height(), 80.0); @@ -197,9 +256,15 @@ void tst_qfxloader::sizeItemToLoader() QVERIFY(rect); QCOMPARE(rect->width(), 200.0); QCOMPARE(rect->height(), 80.0); + + // Check resize + loader->setWidth(180); + loader->setHeight(30); + QCOMPARE(rect->width(), 180.0); + QCOMPARE(rect->height(), 30.0); } -void tst_qfxloader::noResize() +void tst_QmlGraphicsLoader::noResize() { QmlComponent component(&engine, QUrl("file://" SRCDIR "/NoResize.qml")); QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create()); @@ -213,6 +278,6 @@ void tst_qfxloader::noResize() QCOMPARE(rect->height(), 60.0); } -QTEST_MAIN(tst_qfxloader) +QTEST_MAIN(tst_QmlGraphicsLoader) -#include "tst_qfxloader.moc" +#include "tst_qmlgraphicsloader.moc" diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png Binary files differindex 1aa4118..d58afd8 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png Binary files differindex d4a1033..6271bfb 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png Binary files differindex 39cb15d..b6f0241 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png Binary files differindex 1aa4118..d58afd8 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml index 164ade9..d5f67bf 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 32 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 48 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 64 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 80 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 96 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 112 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 128 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 144 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 160 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 176 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 192 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 208 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 224 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 240 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 256 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 272 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 288 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 304 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 320 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 336 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 352 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 368 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 384 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 400 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 416 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 432 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 448 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 464 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 480 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 496 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 512 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 528 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 544 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 560 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 576 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 592 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 608 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 624 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 640 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 656 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 672 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 688 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 704 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 720 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 736 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 752 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 768 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 784 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 800 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 816 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 832 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 848 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 864 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 880 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 896 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 912 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 928 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 944 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Mouse { type: 2 @@ -262,7 +262,7 @@ VisualTest { } Frame { msec: 976 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Mouse { type: 5 @@ -274,11 +274,11 @@ VisualTest { } Frame { msec: 992 - hash: "977f0b0f5a1496870fc23b03c8ae1bc1" + hash: "c4d91a9e7f785ccd50db55f697d75cb9" } Frame { msec: 1008 - hash: "977f0b0f5a1496870fc23b03c8ae1bc1" + hash: "c4d91a9e7f785ccd50db55f697d75cb9" } Mouse { type: 5 @@ -290,7 +290,7 @@ VisualTest { } Frame { msec: 1024 - hash: "44e907a136dad33b8324baee24d8738f" + hash: "4f054038668f56cf3fc46dee08504b24" } Mouse { type: 5 @@ -302,7 +302,7 @@ VisualTest { } Frame { msec: 1040 - hash: "1749a8ef0298bfa6209969275b03d656" + hash: "e6ae6e2a8e5fb7204ae1f559b5dc4a63" } Mouse { type: 5 @@ -322,219 +322,219 @@ VisualTest { } Frame { msec: 1056 - hash: "f4f5b1530cf0b325a4a1600b28e84ebc" + hash: "3bfaaef12ca852421ad179d8598a306d" } Frame { msec: 1072 - hash: "95a072a5abb8c50ab3f796aa82610686" + hash: "e00ff5e13a9a97bc11e041f89e4782f5" } Frame { msec: 1088 - hash: "12b7eeeb356ecf347dd3484a15a9d5e1" + hash: "ae10ada837b21365936672e9a4b4b175" } Frame { msec: 1104 - hash: "f4b09cc69a92f9d63766162f9f3e50ee" + hash: "63566d7f1707025c9ec37e398d0e69ef" } Frame { msec: 1120 - hash: "44bbb2226c3f5226df34a4014528d566" + hash: "20e9d299cd867d680cf85f99e06cd200" } Frame { msec: 1136 - hash: "004f80d0307b9ffa9c4fed0eb8ea132e" + hash: "4d3a19b3c50a20ba1d93a8bcd178a424" } Frame { msec: 1152 - hash: "26dbaf102b7cce6504891ee593335dc2" + hash: "d373ab5240e438e8234ae05f935c1ef8" } Frame { msec: 1168 - hash: "5bf148e84c49e7c9d57d22d6b78a97f2" + hash: "2f9c00aa1f8a8cc5d10e6c6a0baee366" } Frame { msec: 1184 - hash: "a65e2fb6cdb4209b09a75a88c28219ff" + hash: "0fd8203b0a33fd8243ecd878f04f9b42" } Frame { msec: 1200 - hash: "a5717b018032b16ca2e2d7d6176b7b4f" + hash: "24a197df4209c7076d68031e5dd4fd9e" } Frame { msec: 1216 - hash: "1863bee07e7d0af16350eca29c30680e" + hash: "9e4271eacdc875183e3c8e7a1eb098c2" } Frame { msec: 1232 - hash: "b990be702197081ec305f2ee574335ad" + hash: "cdf7aac4ff7e5df806977eb38392f5bc" } Frame { msec: 1248 - hash: "c68e718db51fbf7bdcb06d7f8b791050" + hash: "1ace4a1312cad6f173a04c388624a97f" } Frame { msec: 1264 - hash: "f54cc959e032d4d278abf23a20e8a9bf" + hash: "193d6d6838ac1d5ddb941fbb340ec506" } Frame { msec: 1280 - hash: "784e68b1cd9c005073b328e9a4370bc4" + hash: "ed82807a48f28610ba9bda0c7ab91ce4" } Frame { msec: 1296 - hash: "a5cbc7f46cc8e3341fe1990d2ad85cb5" + hash: "e1168bb9a88a972decb0c537d86d7758" } Frame { msec: 1312 - hash: "cdaea6f8392a9a585939d0693e7dfdb4" + hash: "828ba428b04826687c6ef19b72318924" } Frame { msec: 1328 - hash: "7c55c32cf28b7220ae5cb62a978cbf8b" + hash: "7dae52c428253cf44045ffaabaadd2f4" } Frame { msec: 1344 - hash: "73d6da0f6f5e9d9208c1a4298b12a927" + hash: "06e2a81e1a2421523642cfcf17ec22e4" } Frame { msec: 1360 - hash: "a39afd2aa0354768298ec07706f58b0b" + hash: "283997835a54e80c0ab8a0321bd03ce7" } Frame { msec: 1376 - hash: "2ab85582bb135624cb28db1014aa53e7" + hash: "6354f9379b7b25c8fabda4e5bc3cdf6a" } Frame { msec: 1392 - hash: "a5efd47689c2afe86e8ac8b9c5b9f0cb" + hash: "6bc87dfd21d59efd3397e3cfb0d00d25" } Frame { msec: 1408 - hash: "ece4a8908b46d17a40442c345f3cfd35" + hash: "4f97fc9aa1f79a6b007a00459386b9ff" } Frame { msec: 1424 - hash: "59bea64b5afc088b4574dc2d05781410" + hash: "2b5c711ede124c9e97d3ef83a3fdcc8b" } Frame { msec: 1440 - hash: "d40b0ba1fe765c78a0508f156206ed24" + hash: "5a8cbd4ac3fcd920f2aea6e2cfa96467" } Frame { msec: 1456 - hash: "453563ccf786a1fad9eb7bcc82bc1837" + hash: "5b32961cb36e519f5b1d50386e796d3e" } Frame { msec: 1472 - hash: "ff8ab23c6e93d997495cd27b59a8b37a" + hash: "c91f95cccd38cbd1a16ee65abffd40ab" } Frame { msec: 1488 - hash: "eeb2f27400bcd3d8e56b08a22f808e0e" + hash: "25108050298d3ffc850113971bcf54da" } Frame { msec: 1504 - hash: "ad44e927b4501c5ff4dac6715687eaa0" + hash: "6a236881f2a1cb487ee1945c279e020b" } Frame { msec: 1520 - hash: "12f82b67503ff0817de2eb1286a1af0f" + hash: "2df1824df1cf20022595f64d26adb4ad" } Frame { msec: 1536 - hash: "a53c71405ef22f78d389a2865efdbf37" + hash: "4ca4a0a4b4fd9f9c4846adebcdc8fd67" } Frame { msec: 1552 - hash: "d00f09eb4e31bc2b58650ddc23b006de" + hash: "1696ef0862ff4772f960d203c43fbddf" } Frame { msec: 1568 - hash: "7fc5a3a78bc5a08321e5520b08b83fee" + hash: "c5846835b8eb5d98c481ee5811344ea1" } Frame { msec: 1584 - hash: "635515ec1d85b3103e2348249e090f33" + hash: "fbcb044ee53302de573321b43f068e65" } Frame { msec: 1600 - hash: "8313dbdabaffda563264883eebb26e84" + hash: "d369e0a6c4a3e63102be29a7362ef9eb" } Frame { msec: 1616 - hash: "e692758ee1d51cb9bbc2056d0d97b28e" + hash: "e93131b881805d4aa44949c69f486821" } Frame { msec: 1632 - hash: "52b32f8591c40fb385f5a2ff85c6ddce" + hash: "b7aeee9e5065f1d4656e451b542ecf6a" } Frame { msec: 1648 - hash: "85b9e88281c51b8f34861e1148d82aa2" + hash: "05521ca19960c070d5f3dd72c5ade0e4" } Frame { msec: 1664 - hash: "d88adae40850ab799783eaa198927ae8" + hash: "2c68cb3291cf1f892c8b8eb28b409e4d" } Frame { msec: 1680 - hash: "da02cc9a7dc19f5285d07a53a9e71010" + hash: "5a0908aea91df2b9e65d222829c2b0ba" } Frame { msec: 1696 - hash: "6f918e1110d7a9e44588f6cadb72d496" + hash: "0d4ff147517eee8b3dbcd51a708b2aa7" } Frame { msec: 1712 - hash: "fac57187bb9397af570403f3f304aefd" + hash: "521e1075de1de89c6e25f469d2728ab7" } Frame { msec: 1728 - hash: "a791e2251a6ac16d3eca1a13fe6ad688" + hash: "c543447f98ae608058c6c02c8c8665e6" } Frame { msec: 1744 - hash: "444c360ed83a967e38e42644f87cb048" + hash: "ac259db754b7dfb8cce8548527c72e4b" } Frame { msec: 1760 - hash: "088c7622dcb96bd3a0770bedf3b91ce3" + hash: "bc5b68d5ecfb583ae41001e326b7aa9b" } Frame { msec: 1776 - hash: "6c90b37eae7641f7bc327f92783b3480" + hash: "e08051cb1ab2d8f979a52dc86411f78f" } Frame { msec: 1792 - hash: "274d7824fc290644ff1d86a76c65f86b" + hash: "b1746ad9563359f0d70a1aaee62e9bd8" } Frame { msec: 1808 - hash: "26b1251d048b752fdd6412bd05e4ebb4" + hash: "5d6bc33ff2857fb8db582362bf7c19c7" } Frame { msec: 1824 - hash: "260336803008cd9fc18b8793c6e7ff45" + hash: "83f2c3a7124f9be4dbe883a27ca7df8e" } Frame { msec: 1840 - hash: "7c3f37385ab47b37bf370c2c9a885b6b" + hash: "189f7cfb5ede1f8380b1a05b7e3d942e" } Frame { msec: 1856 - hash: "d4f49a6540a51489529f2b5ef8fc1749" + hash: "07b1a4e5ca156e6aa1f3e76b825807ce" } Frame { msec: 1872 - hash: "64889c9b02ef00d01393499dc13b07e6" + hash: "48b25f0acfe6eb3bc2cb9eb16e6595d0" } Frame { msec: 1888 - hash: "88746e0d897de3f24c455cf0b79ec53d" + hash: "15ae05f5ed098021073c4593587949ea" } Frame { msec: 1904 - hash: "94c3e0c330a80873ead8b98d2988de6c" + hash: "b300f2c75f4aebcf84ed37ad424ca9fa" } Frame { msec: 1920 @@ -542,215 +542,215 @@ VisualTest { } Frame { msec: 1936 - hash: "b792022e5ffc6c6442024732e21b3970" + hash: "7d8ea492fb1c664502e95e085896c569" } Frame { msec: 1952 - hash: "b14cded381a30c7af9a9d26c975b82ce" + hash: "7513b077e073d78b387309b56e1fd44c" } Frame { msec: 1968 - hash: "a93beb1a8220c941c164933a5a3195b6" + hash: "ed1ac5cf6d4b081983a8e16258f431bf" } Frame { msec: 1984 - hash: "2be13d8356a4c71f3933cac242d1ef48" + hash: "fbb31f23ba6e5d02011363abfb4b3f18" } Frame { msec: 2000 - hash: "0cc0afa2e4a6144dfb35e43e2ed56e41" + hash: "6f01df424b38036b9921b4ee1491a1c1" } Frame { msec: 2016 - hash: "ff02d304cb59e5e35590c25f352aeaba" + hash: "11f706dfacbec5c0be0c2f3c5442f717" } Frame { msec: 2032 - hash: "d27412f80810102d9955106f54899001" + hash: "0a70348986f4987f43db3e55af63fca5" } Frame { msec: 2048 - hash: "73fc0ef258b3812aa898c0027ab63d3b" + hash: "6f8b7aaad846f83c6349836d7af34662" } Frame { msec: 2064 - hash: "73fc0ef258b3812aa898c0027ab63d3b" + hash: "44723b22aad6d2d814e074ff9324f3c4" } Frame { msec: 2080 - hash: "73fc0ef258b3812aa898c0027ab63d3b" + hash: "44723b22aad6d2d814e074ff9324f3c4" } Frame { msec: 2096 - hash: "73fc0ef258b3812aa898c0027ab63d3b" + hash: "44723b22aad6d2d814e074ff9324f3c4" } Frame { msec: 2112 - hash: "9cfbf1d60a312090ffad9d4844e1cde3" + hash: "1c12d2c68223324f040b7a693cef2074" } Frame { msec: 2128 - hash: "d27412f80810102d9955106f54899001" + hash: "0a70348986f4987f43db3e55af63fca5" } Frame { msec: 2144 - hash: "0cc0afa2e4a6144dfb35e43e2ed56e41" + hash: "bf4de7baf2730cdaf83887d50d577986" } Frame { msec: 2160 - hash: "9c43502f88d57b79a56b1e5b72556da8" + hash: "23ddb2c0793d7161a0d8c5b2a777dceb" } Frame { msec: 2176 - hash: "b14cded381a30c7af9a9d26c975b82ce" + hash: "7513b077e073d78b387309b56e1fd44c" } Frame { msec: 2192 - hash: "d6176543b445ec185214a5d160846360" + hash: "83fa82362057466dff6a243a95d423db" } Frame { msec: 2208 - hash: "922284f2073ceb0a3ffbd699b75fec4a" + hash: "0e60b632ce511109cb01d2e5ff6945f8" } Frame { msec: 2224 - hash: "e28e2b3831c7c0a05722deeefe0e75ca" + hash: "78c25194827c4243a16807491f798cdf" } Frame { msec: 2240 - hash: "6c59cd907fefec85e5e2a53ace6728d2" + hash: "4c9dc46794d4a32e654395bb9d78409e" } Frame { msec: 2256 - hash: "ce64653d01d924313a95c7dc62189c7a" + hash: "e996d4f3a0b3a4a4ed29ec23a1ad5615" } Frame { msec: 2272 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2288 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2304 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2320 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2336 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2352 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2368 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2384 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2400 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2416 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2432 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2448 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2464 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2480 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2496 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2512 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2528 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2544 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2560 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2576 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2592 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2608 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2624 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2640 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2656 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2672 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2688 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2704 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2720 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2736 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2752 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2768 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Mouse { type: 2 @@ -762,15 +762,15 @@ VisualTest { } Frame { msec: 2784 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2800 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Frame { msec: 2816 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Mouse { type: 5 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2832 - hash: "c1c9421390ffab13b7529df32ff12cda" + hash: "cd6770afe63f28517a93f0961cf9c26e" } Mouse { type: 5 @@ -794,7 +794,7 @@ VisualTest { } Frame { msec: 2848 - hash: "d0b5d17cfdb80953f1708c7afaf8d647" + hash: "edd015434d7ead96c03a51a2b1c9e527" } Mouse { type: 5 @@ -806,7 +806,7 @@ VisualTest { } Frame { msec: 2864 - hash: "a06edc3b827b43890b31c43c94528418" + hash: "ea0eda505daea4171e27aac358aa6a4a" } Mouse { type: 5 @@ -830,11 +830,11 @@ VisualTest { } Frame { msec: 2896 - hash: "e3b769cc98dd14050b61124d60729416" + hash: "34f70dfe1c226e63300112aa9a4a6968" } Frame { msec: 2912 - hash: "e3b769cc98dd14050b61124d60729416" + hash: "34f70dfe1c226e63300112aa9a4a6968" } Mouse { type: 5 @@ -854,231 +854,231 @@ VisualTest { } Frame { msec: 2928 - hash: "128c43127815ee61d4e04b5447b4ebdd" + hash: "dd61e0ae58d7a344908a10bb97cfcb39" } Frame { msec: 2944 - hash: "272059ad4598cae7bfa5e333411907c8" + hash: "14a384c4bdd3e89808761d1e86976170" } Frame { msec: 2960 - hash: "313a41ad178f774b3f31310c36b96384" + hash: "0e82a4920a53239f117448cd0e0b27f2" } Frame { msec: 2976 - hash: "8c2a43fee7b63ebc8157ffc1e5fcb960" + hash: "711e29bf6fbbeb7882064adb0619f4ac" } Frame { msec: 2992 - hash: "51498fb98bd4a8d44cca097a99ede331" + hash: "43307cbfe1688daf300fafc8df0082b8" } Frame { msec: 3008 - hash: "af6ca69bf74d46a942586a108828ce2a" + hash: "46d788d926c03d85a68b66252e73ae90" } Frame { msec: 3024 - hash: "854ae6e29c44a8c48e112cb5195770c9" + hash: "a0042935ad2d5557c906050d4a3581c9" } Frame { msec: 3040 - hash: "553b7344dea684a54cf0dbe724af2e8b" + hash: "b618a40490ca0aea310f08b452fa8c68" } Frame { msec: 3056 - hash: "d529d4abed74766722c6b8c79c92deb7" + hash: "e2aaad7f160a6d77dd788c76bb8cb8a7" } Frame { msec: 3072 - hash: "a142d88b935c51edf8bff7cb76f2682e" + hash: "ab5c27fa790c67a6678db0bbae1ae477" } Frame { msec: 3088 - hash: "f99b784f9d383bb9d79ff52614a1c388" + hash: "b43ed7af838cd6edd32393fc56cf8fb1" } Frame { msec: 3104 - hash: "be2824b6e02a05e964077773e7ae9c3b" + hash: "88ac50602c9f27fb5b882ad32d14ff46" } Frame { msec: 3120 - hash: "8eb67b4b413817414a003cdc2f1f86bb" + hash: "259af2e080ed93e16cb633fa940c7c08" } Frame { msec: 3136 - hash: "73c7d57bb7a201402b4ff9becd3c82a6" + hash: "d05bec2351068d552b7bbbf47cf82fad" } Frame { msec: 3152 - hash: "ddfa1aeef7e4c067455ae4e6ae18cc71" + hash: "5354b8e07f1ed22950687187ee7a0290" } Frame { msec: 3168 - hash: "f4f5b1530cf0b325a4a1600b28e84ebc" + hash: "3bfaaef12ca852421ad179d8598a306d" } Frame { msec: 3184 - hash: "60da5fb0439cb20905fb20ee1c31680e" + hash: "40d3a77fce7a9a9ca7ae6023fc4cfc10" } Frame { msec: 3200 - hash: "049df3603a3e99a22a35534333da743d" + hash: "5837c0122aa6b28518f1b7043ead99a9" } Frame { msec: 3216 - hash: "daa9754519ce6df8e0836dba7207bb34" + hash: "9514d8530275e4642810ac441e8de353" } Frame { msec: 3232 - hash: "3b636346c08a9d7fadb96faa477e4ed1" + hash: "3b720882f52340549d8e1b9659443461" } Frame { msec: 3248 - hash: "54509abac3bce1333ebce926938ae3a3" + hash: "4de5b95c8f4949a4f1ee9a119940e80a" } Frame { msec: 3264 - hash: "8723907d2d9c7f6abd5b0a2972dd0206" + hash: "a35097c00483e0b481222e4ad220c7a4" } Frame { msec: 3280 - hash: "98bde35a77a706019e89d999125db7b8" + hash: "82ac348a63a4e358a877a2e45d48e2b1" } Frame { msec: 3296 - hash: "086a66572ed7b9a1b6ba765617273ffa" + hash: "1322108409d1fa87d128f0c44c81ab4b" } Frame { msec: 3312 - hash: "87bff32df027aff1c5a23bab6f988205" + hash: "f6b030effcca891ab20073f106b22d73" } Frame { msec: 3328 - hash: "140effcb29db05cf99b4b9aa875294f4" + hash: "a7ccd998ac2ff2777d9423d704ddef48" } Frame { msec: 3344 - hash: "a1eecff3b60daecfa1f1639f53f1a6e6" + hash: "b6d971a4f3321b7f3632e778ce733589" } Frame { msec: 3360 - hash: "a1eecff3b60daecfa1f1639f53f1a6e6" + hash: "b6d971a4f3321b7f3632e778ce733589" } Frame { msec: 3376 - hash: "a1eecff3b60daecfa1f1639f53f1a6e6" + hash: "b6d971a4f3321b7f3632e778ce733589" } Frame { msec: 3392 - hash: "790e32368985a3320b37185204f6abdf" + hash: "82ef6700a513e39508fb6de5ef07f1e7" } Frame { msec: 3408 - hash: "c6550cb01cee0ebc36163e02732b47f2" + hash: "9e4c4d479bc0b1a61566eae12416bea6" } Frame { msec: 3424 - hash: "87bff32df027aff1c5a23bab6f988205" + hash: "f6b030effcca891ab20073f106b22d73" } Frame { msec: 3440 - hash: "79507b20a8f235b126e18cbe6ef72f50" + hash: "8968acd022a9ba6fcc3ea52bdd7268c4" } Frame { msec: 3456 - hash: "b2374960c6e77d626f5b0ad1ae3cbb45" + hash: "de8f1a1fd680af475173d5f81e85b26c" } Frame { msec: 3472 - hash: "9bca6e81315436eeedad0f7f491e04a3" + hash: "82e8c0c7cb7c2b1e8d7a5fc019533e6b" } Frame { msec: 3488 - hash: "374c81cf58b1be36069bb35799e92e88" + hash: "f820d250252cd910af97e5c9be181457" } Frame { msec: 3504 - hash: "ad1f31e7547694e125d61e44ef549cbc" + hash: "a40558c1fbf328d3c891b473b2454020" } Frame { msec: 3520 - hash: "abd5c21a69af3ab47ca4cdbbff322207" + hash: "0ef9e64bad67670102e1e4d9ef0e96f3" } Frame { msec: 3536 - hash: "54174b29f97ad782bb033e2cc7d5422b" + hash: "1d8013765ac2d3fe09ccaa6db098a208" } Frame { msec: 3552 - hash: "54174b29f97ad782bb033e2cc7d5422b" + hash: "1d8013765ac2d3fe09ccaa6db098a208" } Frame { msec: 3568 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3584 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3600 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3616 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3632 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3648 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3664 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3680 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3696 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3712 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3728 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3744 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3760 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3776 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3792 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3808 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3824 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3840 @@ -1086,114 +1086,114 @@ VisualTest { } Frame { msec: 3856 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3872 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3888 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3904 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3920 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3936 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3952 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3968 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 3984 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4000 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4016 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4032 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4048 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4064 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4080 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4096 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4112 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4128 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4144 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4160 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 4176 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4192 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4208 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4224 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4240 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } Frame { msec: 4256 - hash: "b9d6ace089c7bdce8fad4143e2068d19" + hash: "0fa60818532d1e5c20cd82ce3d61e3f7" } } diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png Binary files differindex fe859b8..2187f8e 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png Binary files differindex 5bd0477..cf3e770 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png Binary files differindex c6a109d..8a1554a 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml index 8dd1b3f..cb8df62 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml @@ -6,203 +6,203 @@ VisualTest { } Frame { msec: 16 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 32 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 48 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 64 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 80 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 96 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 112 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 128 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 144 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 160 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 176 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 192 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 208 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 224 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 240 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 256 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 272 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 288 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 304 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 320 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 336 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 352 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 368 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 384 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 400 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 416 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 432 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 448 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 464 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 480 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 496 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 512 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 528 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 544 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 560 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 576 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 592 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 608 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 624 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 640 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 656 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 672 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 688 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 704 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 720 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 736 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 752 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 768 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 784 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 800 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Mouse { type: 2 @@ -214,11 +214,11 @@ VisualTest { } Frame { msec: 816 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 832 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Mouse { type: 5 @@ -230,7 +230,7 @@ VisualTest { } Frame { msec: 848 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Mouse { type: 5 @@ -242,7 +242,7 @@ VisualTest { } Frame { msec: 864 - hash: "5700af521a36e043b526fbc6bd4fae6d" + hash: "7ee6361319fa538204cece6cfdfd6ec0" } Mouse { type: 5 @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 880 - hash: "4630b2b00646ad0c1083fbf1e03f8360" + hash: "aac822b5bfed36a6574b00e1c2da7768" } Mouse { type: 5 @@ -266,7 +266,7 @@ VisualTest { } Frame { msec: 896 - hash: "45fd3c04fdb2d3efc0b5fd7231c71f27" + hash: "356a2162d597298c5295e2d62ee6f185" } Mouse { type: 5 @@ -278,7 +278,7 @@ VisualTest { } Frame { msec: 912 - hash: "5f99f2d2f10e18b253f054defa476e4e" + hash: "cc72b8b9fe2f8f2a14559f3e1ef07b62" } Mouse { type: 5 @@ -290,7 +290,7 @@ VisualTest { } Frame { msec: 928 - hash: "de6ccfff15cb467cb3d19b03c159355c" + hash: "38e6fdcd1ed7d93369a2585172e693a5" } Mouse { type: 5 @@ -310,7 +310,7 @@ VisualTest { } Frame { msec: 944 - hash: "4211162f76e7f4409f25990573fc0e15" + hash: "5060aa07416f909ce62debcb7dc41f59" } Frame { msec: 960 @@ -318,239 +318,239 @@ VisualTest { } Frame { msec: 976 - hash: "2781d9edfd2739631f2f2592507dbd0d" + hash: "ff2a52636ef08cc1c50017a932d1d7a2" } Frame { msec: 992 - hash: "52c0c2282722610a720190bef706aa2c" + hash: "951e80e2015f0ea4d3a4a625453df725" } Frame { msec: 1008 - hash: "6e179d49b5953a075c9e6c69ed24429b" + hash: "9cb54b41349e62192e4f58b458d02114" } Frame { msec: 1024 - hash: "33f9ef1c95ea86bfec2060a7c325d1c6" + hash: "b2e2bb3805facc5051d1a07d9a2c1148" } Frame { msec: 1040 - hash: "e27400e38908b8063a5af4c5b51fba8d" + hash: "00e22e1a119d50c111b33473530aed79" } Frame { msec: 1056 - hash: "23c7d81506e1f6db5b4383847d811a42" + hash: "1226183cd5118b785ae3dd0d45417434" } Frame { msec: 1072 - hash: "a154380a4f3b70ffb5ffee68c12d83ad" + hash: "50d41bff31234d7b3fa5081ae418ffba" } Frame { msec: 1088 - hash: "c615b3200246a13e3fb4d455bb7f9b24" + hash: "8ecc7dc39bd17c6baecd0998fbf6937e" } Frame { msec: 1104 - hash: "61e969a6d715ea6f401266e0839b073a" + hash: "40ae10e92f7bcc791bf433ab8de538b9" } Frame { msec: 1120 - hash: "2746787bb9ed352ef6887f6d650e9a27" + hash: "6fb7d01b1c9d486100af56121eff60d5" } Frame { msec: 1136 - hash: "216c91c52456c1b511a2e948a4723472" + hash: "fa5f7adad0a1e5ff06902860aa4f8248" } Frame { msec: 1152 - hash: "5eb299776e85f919e6859c0a9bb5ff47" + hash: "67081124a7f909b9366cce1cbc89b03c" } Frame { msec: 1168 - hash: "6c7e310e53f1a38a79c895876008203d" + hash: "7ccee35625f4daf9b97c0929f9eb14ae" } Frame { msec: 1184 - hash: "456a40f98f6880a5802f2f1908c67b77" + hash: "db9b8bab0f2c71be0fb8d10d57199533" } Frame { msec: 1200 - hash: "441202576b91f52a86f7fb0be1e4b6a0" + hash: "81a01620e28817c476fdda383183dc0e" } Frame { msec: 1216 - hash: "a172758640806fa858ef54984a63857a" + hash: "8f99dd630d547c3ffb74048b5e557dab" } Frame { msec: 1232 - hash: "495c9021925e32dec626a6c58dc45f5f" + hash: "15b90b0f3f0ecbea02c1c0a096b0375c" } Frame { msec: 1248 - hash: "f8d01621fee12fb707cbbe4cb847183a" + hash: "411d7b73389bf23019f4db6e4e8aec40" } Frame { msec: 1264 - hash: "08d0b0a1b8414335c679aa36a9936f9d" + hash: "8cb8d626658d5a244be2efceb6cc0caa" } Frame { msec: 1280 - hash: "fcf3bdb7673fd15fcdd7ef7263398b96" + hash: "a4c09ac39ce6fd73e374fb7830362d28" } Frame { msec: 1296 - hash: "2520e8af0c82cf49763d7aae67044142" + hash: "34f372f9f4edef7eaf806312178b6229" } Frame { msec: 1312 - hash: "afd3ebebf0b6b0428c262909c2a04361" + hash: "e60a578e183a8b0f650d55f5ae53af47" } Frame { msec: 1328 - hash: "31c2193b3debf0148b95e3be28a65544" + hash: "92ad03e47c3011594cbe9eacea96b567" } Frame { msec: 1344 - hash: "f99ab54aac551ebfe65053bb9e34171f" + hash: "8c11b1658e99644966586672f0ed795a" } Frame { msec: 1360 - hash: "2b1974b713c90983da49fbe5f7d453af" + hash: "ee39e7ef14ac135d893c309395c7325b" } Frame { msec: 1376 - hash: "8420fd3909ae0dfdc9957d3ed95f4380" + hash: "f4569fa1ae5d06bcf6a3d7fa07a79d36" } Frame { msec: 1392 - hash: "9d44680f7713ecd31b76d8df6778ba0d" + hash: "5b3a74d2e33848d27bc39ac68b18f1cb" } Frame { msec: 1408 - hash: "caf78d799dbc6417dc446fe0becc3116" + hash: "3037e5c910247bfa05664fc4f88b329a" } Frame { msec: 1424 - hash: "6509c51422fb346c1573e6032e353211" + hash: "134ff2884f7a4ccb5b0b5022331ac981" } Frame { msec: 1440 - hash: "8572ce4c1e275bfb8a54c89932d02711" + hash: "8e8335263e26f24bb88df0b86ccdef1e" } Frame { msec: 1456 - hash: "e0278ae477d8f7d0551f00cabc022e9b" + hash: "c976d8abcd6511dc263bada0de531535" } Frame { msec: 1472 - hash: "7ce5dcbfad8e27505a8c47312f99777d" + hash: "8b09b7bffc48df791f8044fa8fd8c810" } Frame { msec: 1488 - hash: "f41f10d913b9bed3289303aa340b0c93" + hash: "ff82a1f8070f76e8de314ef8cd800031" } Frame { msec: 1504 - hash: "3f15887e5bdfe7a432aed447370d457a" + hash: "98f720a9ab7cc824c0971d6e29954863" } Frame { msec: 1520 - hash: "3f15887e5bdfe7a432aed447370d457a" + hash: "98f720a9ab7cc824c0971d6e29954863" } Frame { msec: 1536 - hash: "3f15887e5bdfe7a432aed447370d457a" + hash: "98a1cad92ec9d8eeae93eb3894ee65ef" } Frame { msec: 1552 - hash: "dd9386a7e94bee43b29c554f0b5ec538" + hash: "6d0a08623d30aa0bbca1acd6f84db84f" } Frame { msec: 1568 - hash: "21552c56a06b2989e3ad1e13aa315723" + hash: "473e40326f5e2059a2bf3d6d03a96aca" } Frame { msec: 1584 - hash: "e0278ae477d8f7d0551f00cabc022e9b" + hash: "c976d8abcd6511dc263bada0de531535" } Frame { msec: 1600 - hash: "9e0a1cd7e1687259f392cf7dd352134e" + hash: "196df7fdcb6ee4cfafb724b72a9dbab5" } Frame { msec: 1616 - hash: "15fd6ada534f44264b60509f4ba989bb" + hash: "8cf6ecc49e016f1543529826cad71e20" } Frame { msec: 1632 - hash: "a5745b138f31c1512c637ee920fc41bb" + hash: "63ce337f006b71999e9b07f5feacfc3f" } Frame { msec: 1648 - hash: "caf78d799dbc6417dc446fe0becc3116" + hash: "3ac7c056389764e33c77df0b08b3fb3d" } Frame { msec: 1664 - hash: "e296831e72e684ec47f5a892dc7f3a22" + hash: "ef788c78a0e35d70e219af3a46b93a23" } Frame { msec: 1680 - hash: "d8bc3e9eede3a8a2778ecd8d2421b4ff" + hash: "0ea550b3f88a925b0293153ce3044fc3" } Frame { msec: 1696 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1712 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1728 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1744 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1760 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1776 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1792 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1808 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1824 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1840 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1856 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1872 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1888 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1904 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1920 @@ -558,63 +558,63 @@ VisualTest { } Frame { msec: 1936 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1952 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1968 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 1984 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2000 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2016 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2032 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2048 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2064 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2080 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2096 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2112 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2128 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2144 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2160 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Mouse { type: 2 @@ -634,7 +634,7 @@ VisualTest { } Frame { msec: 2176 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Mouse { type: 5 @@ -646,11 +646,11 @@ VisualTest { } Frame { msec: 2192 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Frame { msec: 2208 - hash: "e5a2b2f4b06732102b7d1412a61aff54" + hash: "9ca67bbd73fefc521819df517e6a0ecf" } Mouse { type: 5 @@ -670,11 +670,11 @@ VisualTest { } Frame { msec: 2224 - hash: "313fc0d1531d8337ad4537f888915329" + hash: "2121160b0cab27b1b5f1d29b463f4c15" } Frame { msec: 2240 - hash: "313fc0d1531d8337ad4537f888915329" + hash: "2121160b0cab27b1b5f1d29b463f4c15" } Mouse { type: 5 @@ -686,7 +686,7 @@ VisualTest { } Frame { msec: 2256 - hash: "91bd4c42569707dcf5f6495479b09ded" + hash: "22ea9a42269540113c3f83eb1e8d47af" } Mouse { type: 5 @@ -698,7 +698,7 @@ VisualTest { } Frame { msec: 2272 - hash: "ead7ecc4516b25cc31f64215cb283344" + hash: "e0534106f487317ed11ce5c0cc41315f" } Mouse { type: 5 @@ -710,7 +710,7 @@ VisualTest { } Frame { msec: 2288 - hash: "b1260a5fabfd167428d2808d70a23346" + hash: "fcfca6b84764d04f6750754e3e880703" } Mouse { type: 5 @@ -722,7 +722,7 @@ VisualTest { } Frame { msec: 2304 - hash: "77c9ca5c46224bb12908f07d820bcb11" + hash: "939e7ee0446e39926531e202a1117968" } Mouse { type: 5 @@ -742,143 +742,143 @@ VisualTest { } Frame { msec: 2320 - hash: "7c44a727fb5173ee60b161381ddc8469" + hash: "301ab8202173c104a5eada9ff98e9972" } Frame { msec: 2336 - hash: "7e92b161c55c56fc7ab2cad038b7346e" + hash: "c8fe58c0ab2afbd7afe0887143b52fc4" } Frame { msec: 2352 - hash: "a0178a8469b25aefcfcf6e5c5c2e1d8e" + hash: "8a1d3c0f7e1ad817ba9bfd28272afa08" } Frame { msec: 2368 - hash: "ace207b8c382e90519553e607f97e026" + hash: "28f48036d03696abb890fed65adeb4e8" } Frame { msec: 2384 - hash: "d6e329262546b3a7d986fd42b727f39f" + hash: "963d9bf16016c191be09a325575e4939" } Frame { msec: 2400 - hash: "03131c2e53a770b771c62ee3d30fdce7" + hash: "fb69cf91ae5cae41692e97e7dd670ef8" } Frame { msec: 2416 - hash: "f243a74942f8df796d0b81b4ec00e367" + hash: "451552f0598cc9ebf7abc682450716bb" } Frame { msec: 2432 - hash: "b45dc3359a666d5b99decadfb7d0e7c6" + hash: "ea15dd0b1fd64608d56cd89cf85758cb" } Frame { msec: 2448 - hash: "08363157dfa3ade159413e72947999b9" + hash: "f3810b0a2e3bd1965648d2f8aac071e4" } Frame { msec: 2464 - hash: "59a5a5950bb46bf15694862f6d8f5435" + hash: "2d049055ac110f3fb9889a5aa8c7e40f" } Frame { msec: 2480 - hash: "b538f5348d02d3c3443048fc36b4155b" + hash: "58cb05fb96601e068d94839e23fe5d5c" } Frame { msec: 2496 - hash: "588c18ef48f2f93b60c1b6acf2f6c688" + hash: "7bf16d64e31f7689852ecd30edde91a5" } Frame { msec: 2512 - hash: "181d307353f25b84dd13a603d6363408" + hash: "07f8a7336649e7bd0175033af61e7c13" } Frame { msec: 2528 - hash: "7c53b2cba936e45a82cfab46285e06cb" + hash: "5f14c8d4d4df78bb980316d5504b18c5" } Frame { msec: 2544 - hash: "ec7c45adf50c6d1a5adefb4cf344c7c2" + hash: "dfd747f34771af04f53509975ad2e55a" } Frame { msec: 2560 - hash: "8981a12381fc9d564e7c9c9bb12e0b43" + hash: "b81eb1626f100a52d9da05c79f24d83b" } Frame { msec: 2576 - hash: "c8505c9ef15ad7af27cc033f80354bd4" + hash: "1febbc750e271153a93c61a244723b34" } Frame { msec: 2592 - hash: "c620ca4dc1abba3a8537dbb0537046bb" + hash: "b604470f6621930b3022c7b1d1190ab1" } Frame { msec: 2608 - hash: "2cbf3a865232b7775777ab2ad4949e5a" + hash: "0563d86b925b1f32542efd6c5012df9f" } Frame { msec: 2624 - hash: "08e2a6dc88b2eda23189450c33004422" + hash: "2d92ae71cc424a8d5bd20de4664b37ae" } Frame { msec: 2640 - hash: "c0454b6f55d19f52a33769607215f91b" + hash: "f9122195cd14c767ca373090f2ecec87" } Frame { msec: 2656 - hash: "e1f821a483df071a006b5995ddb9e762" + hash: "74c6e3a107666609054737252df1ad86" } Frame { msec: 2672 - hash: "62b01646cba8eb49148199d32d8aba64" + hash: "8845ca88445b5317863ac50db511b9fb" } Frame { msec: 2688 - hash: "6ed5f1ae6466d69f5003d22105270718" + hash: "0fed9f5fe46073fd0cbacdf66e9d8619" } Frame { msec: 2704 - hash: "3e1cad3731b06d08c7a508d57b7e7d43" + hash: "caaec9b6f8d17a72224eb14bd7dccc84" } Frame { msec: 2720 - hash: "5a3bae328139a30eaa7e4e21463692c6" + hash: "e41245a9c1d8ebbf2ebd695e06e5ea09" } Frame { msec: 2736 - hash: "41a6bfbef67bbdd5d2c58e92f960b9cd" + hash: "f0ec12f7a8a5c5f82afbd5db71a22945" } Frame { msec: 2752 - hash: "6a23e7788cf6aee5aab685cae3e3406b" + hash: "286fc5815c3097c88ad5059c88f54ecb" } Frame { msec: 2768 - hash: "2a3dcdd4e9cb177ab4823820edbe11f9" + hash: "b4ffa4c9aebdcbf9bbf19e0de70142dd" } Frame { msec: 2784 - hash: "2a3dcdd4e9cb177ab4823820edbe11f9" + hash: "758675faec11cd74517c95255a7f64e2" } Frame { msec: 2800 - hash: "2a3dcdd4e9cb177ab4823820edbe11f9" + hash: "758675faec11cd74517c95255a7f64e2" } Frame { msec: 2816 - hash: "0daea30919fe78d07f0c44e1d1e2a054" + hash: "8f7cae2c23f1becfde192934db12ba03" } Frame { msec: 2832 - hash: "6a23e7788cf6aee5aab685cae3e3406b" + hash: "286fc5815c3097c88ad5059c88f54ecb" } Frame { msec: 2848 - hash: "132f9dff5cf656cc451e70ef624a5762" + hash: "2e3e8e53074ddef149367edffe7b430e" } Frame { msec: 2864 - hash: "10dde1f1c7080c8331354f8233dc23d3" + hash: "8765816b08838bf96415879faf094830" } Frame { msec: 2880 @@ -886,222 +886,222 @@ VisualTest { } Frame { msec: 2896 - hash: "00dfcaaa25ee8b89b33e6bfaf233fd25" + hash: "7a55c3562be2471f91268ccf76f0a6d8" } Frame { msec: 2912 - hash: "2802a4cf55f881ff391ef19935ff74ad" + hash: "1258f71c1c27a2101e600785a19fa305" } Frame { msec: 2928 - hash: "2633a8581b29b2acb6ea04bc5a181855" + hash: "9a0e0ac06bbe83987ece38124c7ada92" } Frame { msec: 2944 - hash: "6ed5f1ae6466d69f5003d22105270718" + hash: "0fed9f5fe46073fd0cbacdf66e9d8619" } Frame { msec: 2960 - hash: "1ba3ccd82d16ea8176d8dd3f75819934" + hash: "04cd9d6996e4ce039646d1ce87cb5882" } Frame { msec: 2976 - hash: "1ba3ccd82d16ea8176d8dd3f75819934" + hash: "04cd9d6996e4ce039646d1ce87cb5882" } Frame { msec: 2992 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3008 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3024 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3040 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3056 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3072 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3088 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3104 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3120 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3136 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3152 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3168 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3184 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3200 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3216 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3232 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3248 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3264 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3280 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3296 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3312 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3328 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3344 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3360 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3376 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3392 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3408 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3424 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3440 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3456 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3472 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3488 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3504 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3520 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3536 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3552 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3568 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3584 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3600 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 } Frame { msec: 3616 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3632 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3648 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3664 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3680 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3696 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3712 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } Frame { msec: 3728 - hash: "220ad54a212709243bb54b1ca1ad2ee2" + hash: "12f8ae38d58e978d78bf83c7c339537d" } } diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml index a5e15d6..1a7366d 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml @@ -5,7 +5,7 @@ Rectangle { width: 600; height: 300 ListModel { - id: List + id: list ListElement { dayColor: "steelblue" } ListElement { dayColor: "blue" } ListElement { dayColor: "yellow" } @@ -16,15 +16,22 @@ Rectangle { } Flickable { - id: Flick + id: flickable anchors.fill: parent; viewportWidth: row.width Row { id: row Repeater { - model: List + model: list Rectangle { width: 200; height: 300; color: dayColor } } } } + Rectangle { + radius: 3 + y: flickable.height-8 + height: 8 + x: flickable.visibleArea.xPosition * flickable.width + width: flickable.visibleArea.widthRatio * flickable.width + } } diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml index e6b0bf5..a1885c4 100644 --- a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml +++ b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml @@ -5,7 +5,7 @@ Rectangle { width: 300; height: 600 ListModel { - id: List + id: list ListElement { dayColor: "steelblue" } ListElement { dayColor: "blue" } ListElement { dayColor: "yellow" } @@ -22,9 +22,16 @@ Rectangle { Column { id: column Repeater { - model: List + model: list Rectangle { width: 300; height: 200; color: dayColor } } } } + Rectangle { + radius: 3 + x: Flick.width-8 + width: 8 + y: Flick.visibleArea.yPosition * Flick.height + height: Flick.visibleArea.heightRatio * Flick.height + } } diff --git a/tests/auto/declarative/visual/qmlgraphicstext/elide/elide.qml b/tests/auto/declarative/visual/qmlgraphicstext/elide/elide.qml index 3c9ea5b..fa6b5da 100644 --- a/tests/auto/declarative/visual/qmlgraphicstext/elide/elide.qml +++ b/tests/auto/declarative/visual/qmlgraphicstext/elide/elide.qml @@ -5,12 +5,12 @@ Rectangle { height: childrenRect.height Column { width: 80 - height: MyText.height*4 + height: myText.height*4 Text { elide: "ElideLeft" text: "aaa bbb ccc ddd eee fff" width: 80 - id: MyText + id: myText } Text { elide: "ElideMiddle" diff --git a/tests/auto/declarative/visual/qmlgraphicstext/elide/multilength.qml b/tests/auto/declarative/visual/qmlgraphicstext/elide/multilength.qml index fa74cc4..081971c 100644 --- a/tests/auto/declarative/visual/qmlgraphicstext/elide/multilength.qml +++ b/tests/auto/declarative/visual/qmlgraphicstext/elide/multilength.qml @@ -5,12 +5,12 @@ Rectangle { height: 50 color: "lightBlue" Rectangle { - width: MyText.width - height: MyText.height + width: myText.width + height: myText.height color: "white" anchors.centerIn: parent Text { - id: MyText + id: myText width: NumberAnimation { from: 500; to: 0; running: true; repeat: true; duration: 1000 } elide: "ElideRight" text: "Brevity is the soul of wit, and tediousness the limbs and outward flourishes.\x9CBrevity is a great charm of eloquence.\x9CBe concise!\x9CSHHHHHHHHHHHHHHHHHHHHHHHHHHHH" diff --git a/tests/auto/declarative/visual/repeater/basic1.qml b/tests/auto/declarative/visual/repeater/basic1.qml index f6899e8..acb669c 100644 --- a/tests/auto/declarative/visual/repeater/basic1.qml +++ b/tests/auto/declarative/visual/repeater/basic1.qml @@ -4,7 +4,6 @@ Rectangle { color: "blue" width: 300 height: 200 - id: Page Row { Repeater { delegate: Rectangle { diff --git a/tests/auto/declarative/visual/repeater/basic2.qml b/tests/auto/declarative/visual/repeater/basic2.qml index 15a1e91..3323da5 100644 --- a/tests/auto/declarative/visual/repeater/basic2.qml +++ b/tests/auto/declarative/visual/repeater/basic2.qml @@ -4,9 +4,8 @@ Rectangle { color: "blue" width: 300 height: 200 - id: Page Component { - id: Delegate + id: delegate Rectangle { color: "red" width: 100 @@ -18,7 +17,7 @@ Rectangle { } Row { Repeater { - delegate: Delegate + delegate: delegate model: ListModel { ListElement { name: "January" diff --git a/tests/auto/declarative/visual/repeater/basic3.qml b/tests/auto/declarative/visual/repeater/basic3.qml index 4680534..cb57d49 100644 --- a/tests/auto/declarative/visual/repeater/basic3.qml +++ b/tests/auto/declarative/visual/repeater/basic3.qml @@ -4,9 +4,8 @@ Rectangle { color: "blue" width: 300 height: 200 - id: Page ListModel { - id: DataSource + id: dataSource ListElement { name: "January" } @@ -16,7 +15,7 @@ Rectangle { } Row { Repeater { - model: DataSource + model: dataSource delegate: Rectangle { color: "red" width: 100 diff --git a/tests/auto/declarative/visual/repeater/basic4.qml b/tests/auto/declarative/visual/repeater/basic4.qml index 6172493..f31de2c 100644 --- a/tests/auto/declarative/visual/repeater/basic4.qml +++ b/tests/auto/declarative/visual/repeater/basic4.qml @@ -4,9 +4,8 @@ Rectangle { color: "blue" width: 300 height: 200 - id: Page ListModel { - id: DataSource + id: dataSource ListElement { name: "January" } @@ -15,7 +14,7 @@ Rectangle { } } Component { - id: Delegate + id: delegate Rectangle { color: "red" width: 100 @@ -27,8 +26,8 @@ Rectangle { } Row { Repeater { - model: DataSource - delegate: Delegate + model: dataSource + delegate: delegate } } } diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/scriptAction.qml index b1254e2..872701b 100644 --- a/tests/auto/declarative/visual/scriptAction/scriptAction.qml +++ b/tests/auto/declarative/visual/scriptAction/scriptAction.qml @@ -8,13 +8,13 @@ Rectangle { color: "red" } MouseRegion { - id: Clickable + id: clickable anchors.fill: parent } states: State { name: "state1" - when: Clickable.pressed + when: clickable.pressed PropertyChanges { target: myRect x: 50; y: 50 |