summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/collections/tst_collections.cpp109
-rw-r--r--tests/auto/declarative/behaviors/data/empty.qml23
-rw-r--r--tests/auto/declarative/behaviors/data/nonSelecting.qml26
-rw-r--r--tests/auto/declarative/behaviors/data/reassignedAnimation.qml27
-rw-r--r--tests/auto/declarative/behaviors/tst_behaviors.cpp8
-rw-r--r--tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp10
-rw-r--r--tests/auto/declarative/declarative.pro66
-rw-r--r--tests/auto/declarative/examples/data/dummytest.qml1
-rw-r--r--tests/auto/declarative/examples/data/webbrowser/webbrowser.qml2
-rw-r--r--tests/auto/declarative/examples/tst_examples.cpp5
-rw-r--r--tests/auto/declarative/listview/data/listview-enforcerange.qml55
-rw-r--r--tests/auto/declarative/listview/data/listview.qml4
-rw-r--r--tests/auto/declarative/listview/tst_listview.cpp191
-rw-r--r--tests/auto/declarative/qfxloader/SetSourceComponent.qml4
-rw-r--r--tests/auto/declarative/qfxloader/tst_qfxloader.cpp68
-rw-r--r--tests/auto/declarative/qmlfontloader/data/dummy.ttf0
-rw-r--r--tests/auto/declarative/qmlfontloader/qmlfontloader.pro3
-rw-r--r--tests/auto/declarative/qmlfontloader/tst_qmlfontloader.cpp50
-rw-r--r--tests/auto/declarative/qmlgraphicsborderimage/data/colors-round.sci7
-rw-r--r--tests/auto/declarative/qmlgraphicsborderimage/data/colors.pngbin0 -> 1655 bytes
-rw-r--r--tests/auto/declarative/qmlgraphicsborderimage/qmlgraphicsborderimage.pro8
-rw-r--r--tests/auto/declarative/qmlgraphicsborderimage/tst_qmlgraphicsborderimage.cpp162
-rw-r--r--tests/auto/declarative/qmlgraphicsparticles/data/particle.pngbin0 -> 262 bytes
-rw-r--r--tests/auto/declarative/qmlgraphicsparticles/data/particles.qml15
-rw-r--r--tests/auto/declarative/qmlgraphicsparticles/qmlgraphicsparticles.pro8
-rw-r--r--tests/auto/declarative/qmlgraphicsparticles/tst_qmlgraphicsparticles.cpp122
-rw-r--r--tests/auto/declarative/qmlgraphicstext/tst_qmlgraphicstext.cpp316
-rw-r--r--tests/auto/declarative/qmllanguage/data/NestedErrorsType.qml5
-rw-r--r--tests/auto/declarative/qmllanguage/data/assignBasicTypes.qml2
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.1.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.1.qml4
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.2.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.2.qml9
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.3.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.3.qml9
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.4.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.4.qml6
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.5.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.5.qml6
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.6.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/component.6.qml6
-rw-r--r--tests/auto/declarative/qmllanguage/data/defaultGrouped.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/defaultGrouped.qml10
-rw-r--r--tests/auto/declarative/qmllanguage/data/doubleSignal.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/doubleSignal.qml7
-rw-r--r--tests/auto/declarative/qmllanguage/data/emptySignal.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/emptySignal.qml6
-rw-r--r--tests/auto/declarative/qmllanguage/data/nestedErrors.errors.txt2
-rw-r--r--tests/auto/declarative/qmllanguage/data/nestedErrors.qml6
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.1.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.1.qml4
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.10.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.10.qml9
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.11.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.11.qml7
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.2.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.2.qml7
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.3.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.3.qml7
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.4.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.4.qml8
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.5.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.5.qml9
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.6.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.6.qml11
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.7.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.7.qml11
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.8.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.8.qml9
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.9.errors.txt1
-rw-r--r--tests/auto/declarative/qmllanguage/data/script.9.qml7
-rw-r--r--tests/auto/declarative/qmllanguage/data/test.js0
-rw-r--r--tests/auto/declarative/qmllanguage/data/test2.js0
-rw-r--r--tests/auto/declarative/qmllanguage/qmllanguage.pro1
-rw-r--r--tests/auto/declarative/qmllanguage/testtypes.h19
-rw-r--r--tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp32
-rw-r--r--tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp820
-rw-r--r--tests/auto/declarative/qmlpixmapcache/data/exists.png (renamed from tests/auto/declarative/qfxpixmapcache/data/exists.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlpixmapcache/data/exists1.png (renamed from tests/auto/declarative/qfxpixmapcache/data/exists1.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlpixmapcache/data/exists2.png (renamed from tests/auto/declarative/qfxpixmapcache/data/exists2.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlpixmapcache/qmlpixmapcache.pro (renamed from tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro)2
-rw-r--r--tests/auto/declarative/qmlpixmapcache/tst_qmlpixmapcache.cpp (renamed from tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp)40
-rw-r--r--tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp18
-rw-r--r--tests/auto/declarative/qmlqt/data/closestangle.qml12
-rw-r--r--tests/auto/declarative/qmlqt/tst_qmlqt.cpp18
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/model.qml10
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/model.xml54
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/model2.qml11
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/recipes.qml10
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/recipes.xml90
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/qmlxmllistmodel.pro7
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp131
-rw-r--r--tests/auto/declarative/states/data/anchorChanges.qml22
-rw-r--r--tests/auto/declarative/states/data/anchorChanges2.qml21
-rw-r--r--tests/auto/declarative/states/data/parentChange.qml36
-rw-r--r--tests/auto/declarative/states/data/parentChange2.qml31
-rw-r--r--tests/auto/declarative/states/data/parentChange3.qml42
-rw-r--r--tests/auto/declarative/states/data/script.qml10
-rw-r--r--tests/auto/declarative/states/tst_states.cpp113
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.0.pngbin11521 -> 11501 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.1.pngbin11521 -> 11501 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.2.pngbin11503 -> 11486 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.3.pngbin11518 -> 11500 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.4.pngbin11518 -> 11500 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.5.pngbin11518 -> 11500 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test.qml726
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.0.pngbin10098 -> 10093 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.1.pngbin10056 -> 10051 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.2.pngbin9817 -> 9812 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.3.pngbin9631 -> 9625 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.4.pngbin9464 -> 9458 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.5.pngbin9638 -> 9645 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.6.pngbin9817 -> 9812 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.7.pngbin10056 -> 10051 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.8.pngbin10095 -> 10087 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.9.pngbin10077 -> 10072 bytes
-rw-r--r--tests/auto/declarative/visual/focusscope/data-X11/test3.qml1286
-rw-r--r--tests/auto/declarative/visual/focusscope/test3.qml2
-rw-r--r--tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.0.pngbin1012 -> 1002 bytes
-rw-r--r--tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.qml132
-rw-r--r--tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.0.pngbin596 -> 596 bytes
-rw-r--r--tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.qml146
-rw-r--r--tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.pngbin0 -> 6886 bytes
-rw-r--r--tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml83
-rw-r--r--tests/auto/declarative/visual/rect/GradientRect.qml6
-rw-r--r--tests/auto/declarative/visual/rect/MyRect.qml6
-rw-r--r--tests/auto/declarative/visual/rect/data-X11/rect-painting.0.pngbin0 -> 31355 bytes
-rw-r--r--tests/auto/declarative/visual/rect/data-X11/rect-painting.qml355
-rw-r--r--tests/auto/declarative/visual/tst_visual.cpp31
-rw-r--r--tests/auto/gestures/tst_gestures.cpp212
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp19
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result8
-rw-r--r--tests/auto/qactiongroup/tst_qactiongroup.cpp21
-rw-r--r--tests/auto/qapplication/tst_qapplication.cpp22
-rw-r--r--tests/auto/qboxlayout/tst_qboxlayout.cpp1
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp52
-rw-r--r--tests/auto/qdatastream/tst_qdatastream.cpp81
-rw-r--r--tests/auto/qdatetime/tst_qdatetime.cpp7
-rw-r--r--tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp59
-rw-r--r--tests/auto/qdbusinterface/tst_qdbusinterface.cpp34
-rw-r--r--tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro8
-rw-r--r--tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp273
-rw-r--r--tests/auto/qdom/tst_qdom.cpp1
-rw-r--r--tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp3
-rw-r--r--tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp99
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp6
-rw-r--r--tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp2
-rw-r--r--tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp4
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp44
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp2
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp2
-rw-r--r--tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp2
-rw-r--r--tests/auto/qscriptstring/tst_qscriptstring.cpp37
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp1
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp4
-rw-r--r--tests/auto/qstatemachine/tst_qstatemachine.cpp74
-rw-r--r--tests/auto/qstringbuilder1/qstringbuilder1.pro3
-rw-r--r--tests/auto/qstringbuilder1/stringbuilder.cpp56
-rw-r--r--tests/auto/qstringbuilder1/stringbuilder.h55
-rw-r--r--tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp33
-rw-r--r--tests/auto/qstringbuilder2/qstringbuilder2.pro3
-rw-r--r--tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp32
-rw-r--r--tests/auto/qstringbuilder3/qstringbuilder3.pro3
-rw-r--r--tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp31
-rw-r--r--tests/auto/qstringbuilder4/qstringbuilder4.pro3
-rw-r--r--tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp34
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp21
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.pngbin1232 -> 1232 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.pngbin1231 -> 1231 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/last-char-on-line.pngbin1220 -> 1226 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.pngbin1222 -> 1223 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.pngbin1236 -> 1236 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/nowrap_long.pngbin1199 -> 1199 bytes
-rw-r--r--tests/auto/qtextedit/fullWidthSelection/single-full-width-line.pngbin1235 -> 1225 bytes
-rw-r--r--tests/auto/qtextedit/tst_qtextedit.cpp4
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp102
-rw-r--r--tests/auto/qudpsocket/tst_qudpsocket.cpp10
-rw-r--r--tests/auto/qurl/tst_qurl.cpp47
-rw-r--r--tests/auto/qvariant/tst_qvariant.cpp4
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp3
180 files changed, 5813 insertions, 1509 deletions
diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp
index 670cff0..f97805e 100644
--- a/tests/auto/collections/tst_collections.cpp
+++ b/tests/auto/collections/tst_collections.cpp
@@ -164,6 +164,7 @@ private slots:
void qtimerList();
void containerTypedefs();
void forwardDeclared();
+ void alignment();
};
struct LargeStatic {
@@ -3481,5 +3482,113 @@ void tst_Collections::forwardDeclared()
{ typedef QSet<T1> C; C *x = 0; /* C::iterator i; */ C::const_iterator j; Q_UNUSED(x) }
}
+#if defined(Q_ALIGNOF) && defined(Q_DECL_ALIGN)
+
+class Q_DECL_ALIGN(4) Aligned4
+{
+ char i;
+public:
+ Aligned4(int i = 0) : i(i) {}
+ bool checkAligned() const
+ {
+ return (quintptr(this) & 3) == 0;
+ }
+
+ inline bool operator==(const Aligned4 &other) const { return i == other.i; }
+ inline bool operator<(const Aligned4 &other) const { return i < other.i; }
+ friend inline int qHash(const Aligned4 &a) { return qHash(a.i); }
+};
+
+class Q_DECL_ALIGN(128) Aligned128
+{
+ char i;
+public:
+ Aligned128(int i = 0) : i(i) {}
+ bool checkAligned() const
+ {
+ return (quintptr(this) & 127) == 0;
+ }
+
+ inline bool operator==(const Aligned128 &other) const { return i == other.i; }
+ inline bool operator<(const Aligned128 &other) const { return i < other.i; }
+ friend inline int qHash(const Aligned128 &a) { return qHash(a.i); }
+};
+
+template<typename C>
+void testVectorAlignment()
+{
+ typedef typename C::value_type Aligned;
+ C container;
+ container.append(Aligned());
+ QVERIFY(container[0].checkAligned());
+
+ for (int i = 0; i < 200; ++i)
+ container.append(Aligned());
+
+ for (int i = 0; i < container.size(); ++i)
+ QVERIFY(container.at(i).checkAligned());
+}
+
+template<typename C>
+void testContiguousCacheAlignment()
+{
+ typedef typename C::value_type Aligned;
+ C container(150);
+ container.append(Aligned());
+ QVERIFY(container[container.firstIndex()].checkAligned());
+
+ for (int i = 0; i < 200; ++i)
+ container.append(Aligned());
+
+ for (int i = container.firstIndex(); i < container.lastIndex(); ++i)
+ QVERIFY(container.at(i).checkAligned());
+}
+
+template<typename C>
+void testAssociativeContainerAlignment()
+{
+ typedef typename C::key_type Key;
+ typedef typename C::mapped_type Value;
+ C container;
+ container.insert(Key(), Value());
+
+ typename C::const_iterator it = container.constBegin();
+ QVERIFY(it.key().checkAligned());
+ QVERIFY(it.value().checkAligned());
+
+ // add some more elements
+ for (int i = 0; i < 200; ++i)
+ container.insert(Key(i), Value(i));
+
+ it = container.constBegin();
+ for ( ; it != container.constEnd(); ++it) {
+ QVERIFY(it.key().checkAligned());
+ QVERIFY(it.value().checkAligned());
+ }
+}
+
+void tst_Collections::alignment()
+{
+ testVectorAlignment<QVector<Aligned4> >();
+ testVectorAlignment<QVector<Aligned128> >();
+ testContiguousCacheAlignment<QContiguousCache<Aligned4> >();
+ testContiguousCacheAlignment<QContiguousCache<Aligned128> >();
+ testAssociativeContainerAlignment<QMap<Aligned4, Aligned4> >();
+ testAssociativeContainerAlignment<QMap<Aligned4, Aligned128> >();
+ testAssociativeContainerAlignment<QMap<Aligned128, Aligned4> >();
+ testAssociativeContainerAlignment<QMap<Aligned128, Aligned128> >();
+ testAssociativeContainerAlignment<QHash<Aligned4, Aligned4> >();
+ testAssociativeContainerAlignment<QHash<Aligned4, Aligned128> >();
+ testAssociativeContainerAlignment<QHash<Aligned128, Aligned4> >();
+ testAssociativeContainerAlignment<QHash<Aligned128, Aligned128> >();
+}
+
+#else
+void tst_Collections::alignment()
+{
+ QSKIP("Compiler doesn't support necessary extension keywords", SkipAll)
+}
+#endif
+
QTEST_APPLESS_MAIN(tst_Collections)
#include "tst_collections.moc"
diff --git a/tests/auto/declarative/behaviors/data/empty.qml b/tests/auto/declarative/behaviors/data/empty.qml
new file mode 100644
index 0000000..412e26c
--- /dev/null
+++ b/tests/auto/declarative/behaviors/data/empty.qml
@@ -0,0 +1,23 @@
+import Qt 4.6
+Rectangle {
+ width: 400
+ height: 400
+ Rectangle {
+ id: rect
+ objectName: "MyRect"
+ width: 100; height: 100; color: "green"
+ x: Behavior {}
+ }
+ MouseRegion {
+ id: clicker
+ anchors.fill: parent
+ }
+ states: State {
+ name: "moved"
+ when: clicker.pressed
+ PropertyChanges {
+ target: rect
+ x: 200
+ }
+ }
+}
diff --git a/tests/auto/declarative/behaviors/data/nonSelecting.qml b/tests/auto/declarative/behaviors/data/nonSelecting.qml
new file mode 100644
index 0000000..ae9a9f5
--- /dev/null
+++ b/tests/auto/declarative/behaviors/data/nonSelecting.qml
@@ -0,0 +1,26 @@
+import Qt 4.6
+Rectangle {
+ width: 400
+ height: 400
+ Rectangle {
+ id: rect
+ objectName: "MyRect"
+ width: 100; height: 100; color: "green"
+ x: Behavior {
+ objectName: "MyBehavior";
+ NumberAnimation { target: rect; property: "y"; duration: 200; }
+ }
+ }
+ MouseRegion {
+ id: clicker
+ anchors.fill: parent
+ }
+ states: State {
+ name: "moved"
+ when: clicker.pressed
+ PropertyChanges {
+ target: rect
+ x: 200
+ }
+ }
+}
diff --git a/tests/auto/declarative/behaviors/data/reassignedAnimation.qml b/tests/auto/declarative/behaviors/data/reassignedAnimation.qml
new file mode 100644
index 0000000..693a595
--- /dev/null
+++ b/tests/auto/declarative/behaviors/data/reassignedAnimation.qml
@@ -0,0 +1,27 @@
+import Qt 4.6
+Rectangle {
+ width: 400
+ height: 400
+ Rectangle {
+ id: rect
+ objectName: "MyRect"
+ width: 100; height: 100; color: "green"
+ x: Behavior {
+ objectName: "MyBehavior"
+ NumberAnimation { duration: 200 }
+ NumberAnimation { duration: 1000 }
+ }
+ }
+ MouseRegion {
+ id: clicker
+ anchors.fill: parent
+ }
+ states: State {
+ name: "moved"
+ when: clicker.pressed
+ PropertyChanges {
+ target: rect
+ x: 200
+ }
+ }
+}
diff --git a/tests/auto/declarative/behaviors/tst_behaviors.cpp b/tests/auto/declarative/behaviors/tst_behaviors.cpp
index 29c631d..da910d9 100644
--- a/tests/auto/declarative/behaviors/tst_behaviors.cpp
+++ b/tests/auto/declarative/behaviors/tst_behaviors.cpp
@@ -225,11 +225,9 @@ void tst_behaviors::reassignedAnimation()
QTest::ignoreMessage(QtWarningMsg, "QML QmlBehavior (file://" SRCDIR "/data/reassignedAnimation.qml:9:12) Can't change the animation assigned to a Behavior.");
QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(c.create());
QVERIFY(rect);
-
- rect->setState("moved");
- QTest::qWait(200 + 100);
- qreal x = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"))->x();
- QCOMPARE(x, qreal(200)); //i.e. the right behavior has been triggered
+ QCOMPARE(qobject_cast<QmlNumberAnimation*>(
+ qobject_cast<QmlBehavior*>(
+ rect->findChild<QmlBehavior*>("MyBehavior"))->animation())->duration(), 200);
}
QTEST_MAIN(tst_behaviors)
diff --git a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp
index 1712b86..5899d8d 100644
--- a/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp
+++ b/tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp
@@ -67,12 +67,16 @@ void tst_datetimeformatter::date()
QVERIFY(formatter != 0);
QDate date(2008,12,24);
+ QCOMPARE(formatter->date(), date);
+ QCOMPARE(formatter->dateTime().date(), date);
QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleShortDate));
formatter->setLongStyle(true);
+ QVERIFY(formatter->longStyle());
QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleLongDate));
formatter->setDateFormat("ddd MMMM d yy");
+ QCOMPARE(formatter->dateFormat(), QLatin1String("ddd MMMM d yy"));
QCOMPARE(formatter->dateText(),date.toString("ddd MMMM d yy"));
QVERIFY(formatter->timeText().isEmpty());
@@ -91,6 +95,7 @@ void tst_datetimeformatter::time()
QTime time(14,15,38,200);
QCOMPARE(formatter->time(),time);
+ QCOMPARE(formatter->dateTime().time(),time);
QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleShortDate));
@@ -98,6 +103,7 @@ void tst_datetimeformatter::time()
QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleLongDate));
formatter->setTimeFormat("H:m:s a");
+ QCOMPARE(formatter->timeFormat(), QLatin1String("H:m:s a"));
QCOMPARE(formatter->timeText(),time.toString("H:m:s a"));
formatter->setTimeFormat("hh:mm:ss.zzz");
@@ -117,12 +123,16 @@ void tst_datetimeformatter::dateTime()
QVERIFY(formatter != 0);
QDateTime dateTime(QDate(1978,03,04),QTime(9,13,54));
+ QCOMPARE(formatter->dateTime(),dateTime);
+ QCOMPARE(formatter->date(),dateTime.date());
+ QCOMPARE(formatter->time(),dateTime.time());
QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleShortDate));
formatter->setLongStyle(true);
QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleLongDate));
formatter->setDateTimeFormat("M/d/yy H:m:s a");
+ QCOMPARE(formatter->dateTimeFormat(), QLatin1String("M/d/yy H:m:s a"));
QCOMPARE(formatter->dateTimeText(),dateTime.toString("M/d/yy H:m:s a"));
}
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 73269e1..1be38a8 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -1,35 +1,41 @@
TEMPLATE = subdirs
-SUBDIRS += anchors \
- animatedimage \
- animations \
- behaviors \
- datetimeformatter \
+SUBDIRS += \
+ anchors \ # Cover
+ animatedimage \ # Cover
+ animations \ # Cover
+ behaviors \ # Cover
+ datetimeformatter \ # Cover
examples \
- layouts \
- listview \
- numberformatter \
- pathview \
- qfxloader \
- qfxpixmapcache \
- qfxtextedit \
- qfxtextinput \
- qfxwebview \
- qmetaobjectbuilder \
- qmlcontext \
- qmldom \
- qmlecmascript \
- qmlgraphicstext \
- qmllanguage \
- qmllist \
- qmllistaccessor \
- qmlmetaproperty \
- qmlmetatype \
- qmlpropertymap \
- qmltimer \
- repeater \
- sql \
- states \
- visual
+ layouts \ # Cover
+ listview \ # Cover
+ numberformatter \ # Cover
+ pathview \ # Cover
+ qfxloader \ # Cover
+ qfxtextedit \ # Cover
+ qfxtextinput \ # Cover
+ qfxwebview \ # Cover
+ qmetaobjectbuilder \ # Cover
+ qmlcontext \ # Cover
+ qmldom \ # Cover
+ qmlecmascript \ # Cover
+ qmlfontloader \ # Cover
+ qmlgraphicsborderimage \ # Cover
+ qmlgraphicsparticles \ # Cover
+ qmlgraphicstext \ # Cover
+ qmllanguage \ # Cover
+ qmllist \ # Cover
+ qmllistaccessor \ # Cover
+ qmlmetaproperty \ # Cover
+ qmlmetatype \ # Cover
+ qmlpixmapcache \ # Cover
+ qmlpropertymap \ # Cover
+ qmlqt \ # Cover
+ qmltimer \ # Cover
+ qmlxmllistmodel \ # Cover
+ repeater \ # Cover
+ sql \ # Cover
+ states \ # Cover
+ visual # Cover
# Tests which should run in Pulse
PULSE_TESTS = $$SUBDIRS
diff --git a/tests/auto/declarative/examples/data/dummytest.qml b/tests/auto/declarative/examples/data/dummytest.qml
index cd9d8fb..b20e907 100644
--- a/tests/auto/declarative/examples/data/dummytest.qml
+++ b/tests/auto/declarative/examples/data/dummytest.qml
@@ -2,4 +2,5 @@ import Qt.VisualTest 4.6
VisualTest {
Frame { msec: 0 }
+ Frame { msec: 10 }
}
diff --git a/tests/auto/declarative/examples/data/webbrowser/webbrowser.qml b/tests/auto/declarative/examples/data/webbrowser/webbrowser.qml
index bdf3290..d31787b 100644
--- a/tests/auto/declarative/examples/data/webbrowser/webbrowser.qml
+++ b/tests/auto/declarative/examples/data/webbrowser/webbrowser.qml
@@ -2,5 +2,5 @@ import Qt.VisualTest 4.6
VisualTest {
Frame { msec: 0 }
- Frame { msec: 1000 }
+ Frame { msec: 2000 }
}
diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp
index d758101..2cbb916 100644
--- a/tests/auto/declarative/examples/tst_examples.cpp
+++ b/tests/auto/declarative/examples/tst_examples.cpp
@@ -182,9 +182,10 @@ void tst_examples::examples()
QFileInfo fi(file);
QFileInfo dir(fi.path());
- QFileInfo testdata("data/"+dir.baseName()+"/"+fi.baseName());
+ QString script = "data/"+dir.baseName()+"/"+fi.baseName();
+ QFileInfo testdata(script+".qml");
QStringList arguments;
- arguments << "-script" << (testdata.exists() ? testdata.filePath() : QLatin1String("data/dummytest"))
+ arguments << "-script" << (testdata.exists() ? script : QLatin1String("data/dummytest"))
<< "-scriptopts" << "play,testerror,exitoncomplete,exitonfailure"
<< file;
QProcess p;
diff --git a/tests/auto/declarative/listview/data/listview-enforcerange.qml b/tests/auto/declarative/listview/data/listview-enforcerange.qml
new file mode 100644
index 0000000..46fddae
--- /dev/null
+++ b/tests/auto/declarative/listview/data/listview-enforcerange.qml
@@ -0,0 +1,55 @@
+import Qt 4.6
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ Component {
+ id: myDelegate
+ Item {
+ id: wrapper
+ objectName: "wrapper"
+ height: 20
+ width: 240
+ Text {
+ text: index
+ }
+ Text {
+ x: 30
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ x: 120
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ Text {
+ x: 200
+ text: wrapper.y
+ }
+ }
+ }
+
+ Component {
+ id: myHighlight
+ Rectangle {
+ color: "lightsteelblue"
+ }
+ }
+
+ ListView {
+ id: list
+ objectName: "list"
+ width: 240
+ height: 320
+ model: testModel
+ delegate: myDelegate
+ highlight: myHighlight
+ preferredHighlightBegin: 100
+ preferredHighlightEnd: 100
+ highlightRangeMode: "StrictlyEnforceRange"
+ }
+}
diff --git a/tests/auto/declarative/listview/data/listview.qml b/tests/auto/declarative/listview/data/listview.qml
index 9039b55..b7b838b 100644
--- a/tests/auto/declarative/listview/data/listview.qml
+++ b/tests/auto/declarative/listview/data/listview.qml
@@ -6,7 +6,7 @@ Rectangle {
color: "#ffffff"
resources: [
Component {
- id: Delegate
+ id: myDelegate
Rectangle {
id: wrapper
objectName: "wrapper"
@@ -41,6 +41,6 @@ Rectangle {
width: 240
height: 320
model: testModel
- delegate: Delegate
+ delegate: myDelegate
}
}
diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp
index 42d4900..6bf1080 100644
--- a/tests/auto/declarative/listview/tst_listview.cpp
+++ b/tests/auto/declarative/listview/tst_listview.cpp
@@ -66,11 +66,17 @@ private slots:
void qListModelInterface_removed();
void qAbstractItemModel_removed();
+ void qListModelInterface_moved();
+ void qAbstractItemModel_moved();
+
+ void enforceRange();
+
private:
template <class T> void items();
template <class T> void changed();
template <class T> void inserted();
template <class T> void removed();
+ template <class T> void moved();
QmlView *createView(const QString &filename);
template<typename T>
T *findItem(QmlGraphicsItem *parent, const QString &id, int index=-1);
@@ -140,6 +146,11 @@ public:
emit itemsRemoved(index, 1);
}
+ void moveItem(int from, int to) {
+ list.move(from, to);
+ emit itemsMoved(from, to, 1);
+ }
+
void modifyItem(int index, const QString &name, const QString &number) {
list[index] = QPair<QString,QString>(name, number);
emit itemsChanged(index, 1, roles());
@@ -195,6 +206,12 @@ public:
emit endRemoveRows();
}
+ void moveItem(int from, int to) {
+ emit beginMoveRows(QModelIndex(), from, from, QModelIndex(), to);
+ list.move(from, to);
+ emit endMoveRows();
+ }
+
void modifyItem(int idx, const QString &name, const QString &number) {
list[idx] = QPair<QString,QString>(name, number);
emit dataChanged(index(idx,0), index(idx,0));
@@ -224,12 +241,13 @@ void tst_QmlGraphicsListView::items()
canvas->execute();
qApp->processEvents();
- QmlGraphicsFlickable *listview = findItem<QmlGraphicsFlickable>(canvas->root(), "list");
+ QmlGraphicsListView *listview = findItem<QmlGraphicsListView>(canvas->root(), "list");
QVERIFY(listview != 0);
QmlGraphicsItem *viewport = listview->viewport();
QVERIFY(viewport != 0);
+ QCOMPARE(listview->count(), model.count());
QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
for (int i = 0; i < model.count(); ++i) {
@@ -241,6 +259,11 @@ void tst_QmlGraphicsListView::items()
QCOMPARE(number->text(), model.number(i));
}
+ listview->incrementCurrentIndex();
+ QCOMPARE(listview->currentIndex(), 1);
+ listview->decrementCurrentIndex();
+ QCOMPARE(listview->currentIndex(), 0);
+
delete canvas;
}
@@ -341,6 +364,26 @@ void tst_QmlGraphicsListView::inserted()
QVERIFY(item->y() == i*20);
}
+ for (int i = model.count(); i < 30; ++i)
+ model.insertItem(i, "Hello", QString::number(i));
+ QTest::qWait(1000);
+
+ listview->setViewportY(80);
+ QTest::qWait(1000);
+
+ // Insert item outside visible area
+ model.insertItem(1, "Hello", "1324");
+ QTest::qWait(1000);
+
+ QVERIFY(listview->viewportY() == 80);
+
+ // Confirm items positioned correctly
+ int itemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count() - 1;
+ for (int i = 5; i < 5+itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ QVERIFY(item->y() == i*20 - 20);
+ }
+
delete canvas;
}
@@ -454,6 +497,141 @@ void tst_QmlGraphicsListView::removed()
delete canvas;
}
+template <class T>
+void tst_QmlGraphicsListView::moved()
+{
+ QmlView *canvas = createView(SRCDIR "/data/listview.qml");
+
+ T model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QmlContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->execute();
+ qApp->processEvents();
+
+ QmlGraphicsListView *listview = findItem<QmlGraphicsListView>(canvas->root(), "list");
+ QVERIFY(listview != 0);
+
+ QmlGraphicsItem *viewport = listview->viewport();
+ QVERIFY(viewport != 0);
+
+ model.moveItem(1, 4);
+
+ // let transitions settle.
+ QTest::qWait(1000);
+
+ QmlGraphicsText *name = findItem<QmlGraphicsText>(viewport, "textName", 1);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(1));
+ QmlGraphicsText *number = findItem<QmlGraphicsText>(viewport, "textNumber", 1);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(1));
+
+ name = findItem<QmlGraphicsText>(viewport, "textName", 4);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(4));
+ number = findItem<QmlGraphicsText>(viewport, "textNumber", 4);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(4));
+
+ // Confirm items positioned correctly
+ int itemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count();
+ for (int i = 0; i < model.count() && i < itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QVERIFY(item);
+ QVERIFY(item->y() == i*20);
+ }
+
+ listview->setViewportY(80);
+
+ // move outside visible area
+ model.moveItem(1, 18);
+
+ // let transitions settle.
+ QTest::qWait(1000);
+
+ // Confirm items positioned correctly and indexes correct
+ for (int i = 3; i < model.count() && i < itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QVERIFY(item);
+ QVERIFY(item->y() == i*20 + 20);
+ name = findItem<QmlGraphicsText>(viewport, "textName", i);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(i));
+ number = findItem<QmlGraphicsText>(viewport, "textNumber", i);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(i));
+ }
+
+ // move from outside visible into visible
+ model.moveItem(20, 4);
+
+ // let transitions settle.
+ QTest::qWait(1000);
+
+ // Confirm items positioned correctly and indexes correct
+ for (int i = 3; i < model.count() && i < itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QVERIFY(item);
+ QVERIFY(item->y() == i*20 + 20);
+ name = findItem<QmlGraphicsText>(viewport, "textName", i);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(i));
+ number = findItem<QmlGraphicsText>(viewport, "textNumber", i);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(i));
+ }
+
+ delete canvas;
+}
+
+void tst_QmlGraphicsListView::enforceRange()
+{
+ QmlView *canvas = createView(SRCDIR "/data/listview-enforcerange.qml");
+
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QmlContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->execute();
+ qApp->processEvents();
+
+ QmlGraphicsListView *listview = findItem<QmlGraphicsListView>(canvas->root(), "list");
+ QVERIFY(listview != 0);
+
+ QmlGraphicsItem *viewport = listview->viewport();
+ QVERIFY(viewport != 0);
+
+ // view should be positioned at the top of the range.
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", 0);
+ QVERIFY(item);
+ QCOMPARE(listview->viewportY(), -100.0);
+
+ QmlGraphicsText *name = findItem<QmlGraphicsText>(viewport, "textName", 0);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(0));
+ QmlGraphicsText *number = findItem<QmlGraphicsText>(viewport, "textNumber", 0);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(0));
+
+ // Check currentIndex is updated when viewport moves
+ listview->setViewportY(20);
+ QTest::qWait(1000);
+
+ QCOMPARE(listview->currentIndex(), 6);
+
+ delete canvas;
+}
+
void tst_QmlGraphicsListView::qListModelInterface_items()
{
items<TestModel>();
@@ -494,6 +672,17 @@ void tst_QmlGraphicsListView::qAbstractItemModel_removed()
removed<TestModel2>();
}
+void tst_QmlGraphicsListView::qListModelInterface_moved()
+{
+ moved<TestModel>();
+}
+
+void tst_QmlGraphicsListView::qAbstractItemModel_moved()
+{
+ moved<TestModel2>();
+}
+
+
QmlView *tst_QmlGraphicsListView::createView(const QString &filename)
{
QmlView *canvas = new QmlView(0);
diff --git a/tests/auto/declarative/qfxloader/SetSourceComponent.qml b/tests/auto/declarative/qfxloader/SetSourceComponent.qml
index c5dd7ff..1db56c4 100644
--- a/tests/auto/declarative/qfxloader/SetSourceComponent.qml
+++ b/tests/auto/declarative/qfxloader/SetSourceComponent.qml
@@ -1,6 +1,6 @@
import Qt 4.6
Item {
- Component { id: Comp; Rectangle { width: 120; height: 60 } }
- Loader { sourceComponent: Comp }
+ Component { id: comp; Rectangle { width: 100; height: 50 } }
+ Loader { sourceComponent: comp }
}
diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp
index 38d06b8..9a8f8f1 100644
--- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp
+++ b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp
@@ -53,6 +53,9 @@ public:
private slots:
void url();
void component();
+ void clear();
+ void urlToComponent();
+ void componentToUrl();
void sizeLoaderToItem();
void sizeItemToLoader();
void noResize();
@@ -86,6 +89,8 @@ void tst_qfxloader::url()
QVERIFY(loader->item());
QCOMPARE(loader->progress(), 1.0);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+
+ delete loader;
}
void tst_qfxloader::component()
@@ -99,6 +104,69 @@ void tst_qfxloader::component()
QVERIFY(loader->item());
QCOMPARE(loader->progress(), 1.0);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+
+ delete loader;
+}
+
+void tst_qfxloader::clear()
+{
+ 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());
+ QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+
+ loader->setSource(QUrl(""));
+ QVERIFY(loader->item() == 0);
+ QCOMPARE(loader->progress(), 0.0);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0);
+
+ delete loader;
+}
+
+void tst_qfxloader::urlToComponent()
+{
+ QmlComponent component(&engine, QByteArray("import Qt 4.6\n"
+ "Loader {\n"
+ " id: loader\n"
+ " Component { id: myComp; Rectangle { width: 10; height: 10 } }\n"
+ " source: \"Rect120x60.qml\"\n"
+ " Timer { interval: 100; running: true; onTriggered: loader.sourceComponent = myComp }\n"
+ "}" )
+ , QUrl("file://" SRCDIR "/"));
+ QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create());
+ QTest::qWait(1000);
+ QVERIFY(loader != 0);
+ QVERIFY(loader->item());
+ QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+ QCOMPARE(loader->width(), 10.0);
+ QCOMPARE(loader->height(), 10.0);
+
+ delete loader;
+}
+
+void tst_qfxloader::componentToUrl()
+{
+ 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->setSource(QUrl("file://" SRCDIR "/Rect120x60.qml"));
+ QVERIFY(loader->item());
+ QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+ QCOMPARE(loader->width(), 120.0);
+ QCOMPARE(loader->height(), 60.0);
+
+ delete loader;
}
void tst_qfxloader::sizeLoaderToItem()
diff --git a/tests/auto/declarative/qmlfontloader/data/dummy.ttf b/tests/auto/declarative/qmlfontloader/data/dummy.ttf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/declarative/qmlfontloader/data/dummy.ttf
diff --git a/tests/auto/declarative/qmlfontloader/qmlfontloader.pro b/tests/auto/declarative/qmlfontloader/qmlfontloader.pro
index 0ecfde0..bc89639 100644
--- a/tests/auto/declarative/qmlfontloader/qmlfontloader.pro
+++ b/tests/auto/declarative/qmlfontloader/qmlfontloader.pro
@@ -3,3 +3,6 @@ contains(QT_CONFIG,declarative): QT += declarative gui
macx:CONFIG -= app_bundle
SOURCES += tst_qmlfontloader.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlfontloader/tst_qmlfontloader.cpp b/tests/auto/declarative/qmlfontloader/tst_qmlfontloader.cpp
index 464ae5d..efc86cd 100644
--- a/tests/auto/declarative/qmlfontloader/tst_qmlfontloader.cpp
+++ b/tests/auto/declarative/qmlfontloader/tst_qmlfontloader.cpp
@@ -52,10 +52,12 @@ public:
tst_qmlfontloader();
private slots:
- void nofont();
- void namedfont();
- void localfont();
- void webfont();
+ void noFont();
+ void namedFont();
+ void localFont();
+ void failLocalFont();
+ void webFont();
+ void failWebFont();
private slots:
@@ -67,7 +69,7 @@ tst_qmlfontloader::tst_qmlfontloader()
{
}
-void tst_qmlfontloader::nofont()
+void tst_qmlfontloader::noFont()
{
QString componentStr = "import Qt 4.6\nFontLoader { }";
QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
@@ -75,9 +77,12 @@ void tst_qmlfontloader::nofont()
QVERIFY(fontObject != 0);
QCOMPARE(fontObject->name(), QString(""));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Null);
+
+ delete fontObject;
}
-void tst_qmlfontloader::namedfont()
+void tst_qmlfontloader::namedFont()
{
QString componentStr = "import Qt 4.6\nFontLoader { name: \"Helvetica\" }";
QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
@@ -85,19 +90,32 @@ void tst_qmlfontloader::namedfont()
QVERIFY(fontObject != 0);
QCOMPARE(fontObject->name(), QString("Helvetica"));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Ready);
+}
+
+void tst_qmlfontloader::localFont()
+{
+ QString componentStr = "import Qt 4.6\nFontLoader { source: \"" SRCDIR "/data/Fontin-Bold.ttf\" }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlFontLoader *fontObject = qobject_cast<QmlFontLoader*>(component.create());
+
+ QVERIFY(fontObject != 0);
+ QTRY_COMPARE(fontObject->name(), QString("Fontin"));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Ready);
}
-void tst_qmlfontloader::localfont()
+void tst_qmlfontloader::failLocalFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { source: \"data/Fontin-Bold.ttf\" }";
+ QString componentStr = "import Qt 4.6\nFontLoader { source: \"" SRCDIR "/data/dummy.ttf\" }";
QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlFontLoader *fontObject = qobject_cast<QmlFontLoader*>(component.create());
QVERIFY(fontObject != 0);
- QCOMPARE(fontObject->name(), QString("Fontin"));
+ QTRY_COMPARE(fontObject->name(), QString(""));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Error);
}
-void tst_qmlfontloader::webfont()
+void tst_qmlfontloader::webFont()
{
QString componentStr = "import Qt 4.6\nFontLoader { source: \"http://www.princexml.com/fonts/steffmann/Starburst.ttf\" }";
QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
@@ -105,6 +123,18 @@ void tst_qmlfontloader::webfont()
QVERIFY(fontObject != 0);
QTRY_COMPARE(fontObject->name(), QString("Starburst"));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Ready);
+}
+
+void tst_qmlfontloader::failWebFont()
+{
+ QString componentStr = "import Qt 4.6\nFontLoader { source: \"http://wrong.address.com/Starburst.ttf\" }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlFontLoader *fontObject = qobject_cast<QmlFontLoader*>(component.create());
+
+ QVERIFY(fontObject != 0);
+ QTRY_COMPARE(fontObject->name(), QString(""));
+ QTRY_VERIFY(fontObject->status() == QmlFontLoader::Error);
}
QTEST_MAIN(tst_qmlfontloader)
diff --git a/tests/auto/declarative/qmlgraphicsborderimage/data/colors-round.sci b/tests/auto/declarative/qmlgraphicsborderimage/data/colors-round.sci
new file mode 100644
index 0000000..5d2f49f
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsborderimage/data/colors-round.sci
@@ -0,0 +1,7 @@
+border.left:10
+border.top:20
+border.right:30
+border.bottom:40
+horizontalTileRule:Round
+verticalTileRule:Repeat
+source:colors.png
diff --git a/tests/auto/declarative/qmlgraphicsborderimage/data/colors.png b/tests/auto/declarative/qmlgraphicsborderimage/data/colors.png
new file mode 100644
index 0000000..dfb62f3
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsborderimage/data/colors.png
Binary files differ
diff --git a/tests/auto/declarative/qmlgraphicsborderimage/qmlgraphicsborderimage.pro b/tests/auto/declarative/qmlgraphicsborderimage/qmlgraphicsborderimage.pro
new file mode 100644
index 0000000..82da769
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsborderimage/qmlgraphicsborderimage.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlgraphicsborderimage.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicsborderimage/tst_qmlgraphicsborderimage.cpp b/tests/auto/declarative/qmlgraphicsborderimage/tst_qmlgraphicsborderimage.cpp
new file mode 100644
index 0000000..4174ccf
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsborderimage/tst_qmlgraphicsborderimage.cpp
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** 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 <QTextDocument>
+#include <QtDeclarative/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmlgraphicsborderimage_p.h>
+#include <private/qmlgraphicsimagebase_p.h>
+#include <private/qmlgraphicsscalegrid_p_p.h>
+
+class tst_qmlgraphicsborderimage : public QObject
+
+{
+ Q_OBJECT
+public:
+ tst_qmlgraphicsborderimage();
+
+private slots:
+ void simple();
+ void resized();
+ void smooth();
+ void tileModes();
+ void sciFile();
+
+private:
+ QmlEngine engine;
+};
+
+tst_qmlgraphicsborderimage::tst_qmlgraphicsborderimage()
+{
+}
+
+void tst_qmlgraphicsborderimage::simple()
+{
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\" }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 120);
+ QVERIFY(obj->height() == 120);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Stretch);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Stretch);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsborderimage::resized()
+{
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 300 }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 300);
+ QVERIFY(obj->height() == 300);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Stretch);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Stretch);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsborderimage::smooth()
+{
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 300);
+ QVERIFY(obj->height() == 300);
+ QVERIFY(obj->smooth() == true);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Stretch);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Stretch);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsborderimage::tileModes()
+{
+ {
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 100; height: 300; horizontalTileMode: BorderImage.Repeat; verticalTileMode: BorderImage.Repeat }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 100);
+ QVERIFY(obj->height() == 300);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Repeat);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Repeat);
+
+ delete obj;
+ }
+ {
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 150; horizontalTileMode: BorderImage.Round; verticalTileMode: BorderImage.Round }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 300);
+ QVERIFY(obj->height() == 150);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Round);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Round);
+
+ delete obj;
+ }
+}
+
+void tst_qmlgraphicsborderimage::sciFile()
+{
+ QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors-round.sci\"; width: 300; height: 300 }";
+ QmlComponent component(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsBorderImage *obj = qobject_cast<QmlGraphicsBorderImage*>(component.create());
+ QVERIFY(obj != 0);
+ QVERIFY(obj->width() == 300);
+ QVERIFY(obj->height() == 300);
+ QVERIFY(obj->border()->left() == 10);
+ QVERIFY(obj->border()->top() == 20);
+ QVERIFY(obj->border()->right() == 30);
+ QVERIFY(obj->border()->bottom() == 40);
+ QVERIFY(obj->horizontalTileMode() == QmlGraphicsBorderImage::Round);
+ QVERIFY(obj->verticalTileMode() == QmlGraphicsBorderImage::Repeat);
+
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmlgraphicsborderimage)
+
+#include "tst_qmlgraphicsborderimage.moc"
diff --git a/tests/auto/declarative/qmlgraphicsparticles/data/particle.png b/tests/auto/declarative/qmlgraphicsparticles/data/particle.png
new file mode 100644
index 0000000..defbde5
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsparticles/data/particle.png
Binary files differ
diff --git a/tests/auto/declarative/qmlgraphicsparticles/data/particles.qml b/tests/auto/declarative/qmlgraphicsparticles/data/particles.qml
new file mode 100644
index 0000000..dccd2c7
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsparticles/data/particles.qml
@@ -0,0 +1,15 @@
+import Qt 4.6
+Rectangle{
+ width: 100
+ height: 100
+ color: "black"
+ objectName: "rect"
+ Particles { id: particles
+ objectName: "particles"
+ width:1; height:1; anchors.centerIn: parent; opacity: 1
+ lifeSpan: 100; lifeSpanDeviation: 20; count:1000;
+ fadeInDuration: 20; fadeOutDuration: 20;
+ angle: 0; angleDeviation: 360; velocity: 500; velocityDeviation:30
+ source: "particle.png"
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicsparticles/qmlgraphicsparticles.pro b/tests/auto/declarative/qmlgraphicsparticles/qmlgraphicsparticles.pro
new file mode 100644
index 0000000..94eeb4e
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsparticles/qmlgraphicsparticles.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlgraphicsparticles.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicsparticles/tst_qmlgraphicsparticles.cpp b/tests/auto/declarative/qmlgraphicsparticles/tst_qmlgraphicsparticles.cpp
new file mode 100644
index 0000000..e50437a
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsparticles/tst_qmlgraphicsparticles.cpp
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** 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 <QtTest/QtTest>
+#include <qmlview.h>
+#include <private/qmlgraphicsparticles_p.h>
+
+class tst_QmlGraphicsParticles : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QmlGraphicsParticles();
+
+private slots:
+ void properties();
+ void runs();
+private:
+ QmlView *createView(const QString &filename);
+
+};
+
+tst_QmlGraphicsParticles::tst_QmlGraphicsParticles()
+{
+}
+
+void tst_QmlGraphicsParticles::properties()
+{
+ QmlView *canvas = createView(SRCDIR "/data/particles.qml");
+ QVERIFY(canvas->root());
+ QmlGraphicsParticles* particles = canvas->root()->findChild<QmlGraphicsParticles*>("particles");
+ QVERIFY(particles);
+
+ particles->setSource(QUrl("file://" SRCDIR "/data/particle.png"));
+ QCOMPARE(particles->source(), QUrl("file://" SRCDIR "/data/particle.png"));
+
+ particles->setLifeSpanDeviation(1000);
+ QCOMPARE(particles->lifeSpanDeviation(), 1000);
+
+ particles->setFadeInDuration(1000);
+ QCOMPARE(particles->fadeInDuration(), 1000);
+
+ particles->setFadeOutDuration(1000);
+ QCOMPARE(particles->fadeOutDuration(), 1000);
+
+ particles->setAngle(100.0);
+ QCOMPARE(particles->angle(), 100.0);
+
+ particles->setAngleDeviation(100.0);
+ QCOMPARE(particles->angleDeviation(), 100.0);
+
+ particles->setVelocity(100.0);
+ QCOMPARE(particles->velocity(), 100.0);
+
+ particles->setVelocityDeviation(100.0);
+ QCOMPARE(particles->velocityDeviation(), 100.0);
+
+ particles->setEmitting(false);
+ QCOMPARE(particles->emitting(), false);
+}
+
+void tst_QmlGraphicsParticles::runs()
+{
+ QmlView *canvas = createView(SRCDIR "/data/particles.qml");
+ QVERIFY(canvas->root());
+ QmlGraphicsParticles* particles = canvas->root()->findChild<QmlGraphicsParticles*>("particles");
+ QVERIFY(particles);
+ QTest::qWait(1000);//Run for one second. Test passes if it doesn't crash.
+}
+
+QmlView *tst_QmlGraphicsParticles::createView(const QString &filename)
+{
+ QmlView *canvas = new QmlView(0);
+ canvas->setFixedSize(240,320);
+
+ QFile file(filename);
+ file.open(QFile::ReadOnly);
+ QString qml = file.readAll();
+ canvas->setQml(qml, filename);
+ canvas->execute();
+
+ return canvas;
+}
+QTEST_MAIN(tst_QmlGraphicsParticles)
+
+#include "tst_qmlgraphicsparticles.moc"
diff --git a/tests/auto/declarative/qmlgraphicstext/tst_qmlgraphicstext.cpp b/tests/auto/declarative/qmlgraphicstext/tst_qmlgraphicstext.cpp
index d53de59..fc47d41 100644
--- a/tests/auto/declarative/qmlgraphicstext/tst_qmlgraphicstext.cpp
+++ b/tests/auto/declarative/qmlgraphicstext/tst_qmlgraphicstext.cpp
@@ -43,6 +43,7 @@
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
#include <private/qmlgraphicstext_p.h>
+#include <private/qmlvaluetype_p.h>
#include <QFontMetrics>
class tst_qmlgraphicstext : public QObject
@@ -57,6 +58,7 @@ private slots:
void width();
void wrap();
void elide();
+ void textFormat();
// ### these tests may be trivial
void horizontalAlignment();
@@ -66,6 +68,15 @@ private slots:
void color();
void smooth();
+ // QmlFontValueType
+ void weight();
+ void underline();
+ void overline();
+ void strikeout();
+ void capitalization();
+ void letterSpacing();
+ void wordSpacing();
+
private:
QStringList standard;
QStringList richText;
@@ -87,54 +98,54 @@ private:
tst_qmlgraphicstext::tst_qmlgraphicstext()
{
standard << "the quick brown fox jumped over the lazy dog"
- << "the quick brown fox\n jumped over the lazy dog";
+ << "the quick brown fox\n jumped over the lazy dog";
richText << "<i>the <b>quick</b> brown <a href=\\\"http://www.google.com\\\">fox</a> jumped over the <b>lazy</b> dog</i>"
- << "<i>the <b>quick</b> brown <a href=\\\"http://www.google.com\\\">fox</a><br>jumped over the <b>lazy</b> dog</i>";
+ << "<i>the <b>quick</b> brown <a href=\\\"http://www.google.com\\\">fox</a><br>jumped over the <b>lazy</b> dog</i>";
horizontalAlignmentmentStrings << "AlignLeft"
- << "AlignRight"
- << "AlignHCenter";
+ << "AlignRight"
+ << "AlignHCenter";
verticalAlignmentmentStrings << "AlignTop"
- << "AlignBottom"
- << "AlignVCenter";
+ << "AlignBottom"
+ << "AlignVCenter";
horizontalAlignmentments << Qt::AlignLeft
- << Qt::AlignRight
- << Qt::AlignHCenter;
+ << Qt::AlignRight
+ << Qt::AlignHCenter;
verticalAlignmentments << Qt::AlignTop
- << Qt::AlignBottom
- << Qt::AlignVCenter;
+ << Qt::AlignBottom
+ << Qt::AlignVCenter;
styleStrings << "Normal"
- << "Outline"
- << "Raised"
- << "Sunken";
+ << "Outline"
+ << "Raised"
+ << "Sunken";
styles << QmlGraphicsText::Normal
- << QmlGraphicsText::Outline
- << QmlGraphicsText::Raised
- << QmlGraphicsText::Sunken;
+ << QmlGraphicsText::Outline
+ << QmlGraphicsText::Raised
+ << QmlGraphicsText::Sunken;
colorStrings << "aliceblue"
- << "antiquewhite"
- << "aqua"
- << "darkkhaki"
- << "darkolivegreen"
- << "dimgray"
- << "palevioletred"
- << "lightsteelblue"
- << "#000000"
- << "#AAAAAA"
- << "#FFFFFF"
- << "#2AC05F";
- //
- // need a different test to do alpha channel test
- // << "#AA0011DD"
- // << "#00F16B11";
- //
+ << "antiquewhite"
+ << "aqua"
+ << "darkkhaki"
+ << "darkolivegreen"
+ << "dimgray"
+ << "palevioletred"
+ << "lightsteelblue"
+ << "#000000"
+ << "#AAAAAA"
+ << "#FFFFFF"
+ << "#2AC05F";
+ //
+ // need a different test to do alpha channel test
+ // << "#AA0011DD"
+ // << "#00F16B11";
+ //
}
void tst_qmlgraphicstext::text()
@@ -145,6 +156,9 @@ void tst_qmlgraphicstext::text()
QVERIFY(textObject != 0);
QCOMPARE(textObject->text(), QString(""));
+ QVERIFY(textObject->width() == 0);
+
+ delete textObject;
}
for (int i = 0; i < standard.size(); i++)
@@ -155,6 +169,7 @@ void tst_qmlgraphicstext::text()
QVERIFY(textObject != 0);
QCOMPARE(textObject->text(), standard.at(i));
+ QVERIFY(textObject->width() > 0);
}
for (int i = 0; i < richText.size(); i++)
@@ -166,6 +181,7 @@ void tst_qmlgraphicstext::text()
QVERIFY(textObject != 0);
QString expected = richText.at(i);
QCOMPARE(textObject->text(), expected.replace("\\\"", "\""));
+ QVERIFY(textObject->width() > 0);
}
}
@@ -176,11 +192,14 @@ void tst_qmlgraphicstext::width()
QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"\" }", QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), 0.);
}
for (int i = 0; i < standard.size(); i++)
{
+ QVERIFY(!Qt::mightBeRichText(standard.at(i))); // self-test
+
QFont f;
QFontMetrics fm(f);
int metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width();
@@ -189,11 +208,15 @@ void tst_qmlgraphicstext::width()
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), qreal(metricWidth));
+ QVERIFY(textObject->textFormat() == QmlGraphicsText::AutoText); // setting text doesn't change format
}
for (int i = 0; i < richText.size(); i++)
{
+ QVERIFY(Qt::mightBeRichText(richText.at(i))); // self-test
+
QTextDocument document;
document.setHtml(richText.at(i));
document.setDocumentMargin(0);
@@ -204,7 +227,9 @@ void tst_qmlgraphicstext::width()
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), qreal(documentWidth));
+ QVERIFY(textObject->textFormat() == QmlGraphicsText::AutoText); // setting text doesn't change format
}
}
@@ -217,6 +242,8 @@ void tst_qmlgraphicstext::wrap()
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
textHeight = textObject->height();
+ QVERIFY(textObject != 0);
+ QVERIFY(textObject->wrap() == true);
QCOMPARE(textObject->width(), 300.);
}
@@ -226,6 +253,7 @@ void tst_qmlgraphicstext::wrap()
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), 30.);
QVERIFY(textObject->height() > textHeight);
}
@@ -236,6 +264,7 @@ void tst_qmlgraphicstext::wrap()
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), 30.);
QVERIFY(textObject->height() > textHeight);
}
@@ -246,38 +275,56 @@ void tst_qmlgraphicstext::elide()
{
for (Qt::TextElideMode m = Qt::ElideLeft; m<=Qt::ElideNone; m=Qt::TextElideMode(int(m)+1)) {
const char* elidename[]={"ElideLeft", "ElideRight", "ElideMiddle", "ElideNone"};
- QString elide = "elide: \""+QString(elidename[int(m)])+"\";";
+ QString elide = "elide: Text." + QString(elidename[int(m)]) + ";";
// XXX Poor coverage.
{
- QmlComponent textComponent(&engine, ("import Qt 4.6\nText { text: \"\"; "+elide+" width: 300 }").toLatin1(), QUrl("file://"));
+ QmlComponent textComponent(&engine, ("import Qt 4.6\nText { text: \"\"; "+elide+" width: 100 }").toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->width(), 300.);
+ QCOMPARE(textObject->width(), 100.);
}
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { "+elide+" width: 300; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.6\nText { "+elide+" width: 100; text: \"" + standard.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->width(), 300.);
+ QCOMPARE(textObject->width(), 100.);
}
// richtext - does nothing
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { "+elide+" width: 300; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.6\nText { "+elide+" width: 100; text: \"" + richText.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->width(), 300.);
+ QCOMPARE(textObject->width(), 100.);
}
}
}
+void tst_qmlgraphicstext::textFormat()
+{
+ {
+ QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"Hello\"; textFormat: Text.RichText }", QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QVERIFY(textObject->textFormat() == QmlGraphicsText::RichText);
+ }
+ {
+ QmlComponent textComponent(&engine, "import Qt 4.6\nText { text: \"<b>Hello</b>\"; textFormat: Text.PlainText }", QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QVERIFY(textObject->textFormat() == QmlGraphicsText::PlainText);
+ }
+}
+
//the alignment tests may be trivial o.oa
void tst_qmlgraphicstext::horizontalAlignment()
{
@@ -320,6 +367,8 @@ void tst_qmlgraphicstext::verticalAlignment()
QString componentStr = "import Qt 4.6\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
QCOMPARE((int)textObject->vAlign(), (int)verticalAlignmentments.at(j));
}
}
@@ -332,6 +381,7 @@ void tst_qmlgraphicstext::verticalAlignment()
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+ QVERIFY(textObject != 0);
QCOMPARE((int)textObject->vAlign(), (int)verticalAlignmentments.at(j));
}
}
@@ -469,13 +519,13 @@ void tst_qmlgraphicstext::smooth()
QString componentStr = "import Qt 4.6\nText { smooth: true; text: \"" + standard.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->smoothTransform(), true);
+ QCOMPARE(textObject->smooth(), true);
}
{
QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->smoothTransform(), false);
+ QCOMPARE(textObject->smooth(), false);
}
}
for (int i = 0; i < richText.size(); i++)
@@ -484,17 +534,197 @@ void tst_qmlgraphicstext::smooth()
QString componentStr = "import Qt 4.6\nText { smooth: true; text: \"" + richText.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->smoothTransform(), true);
+ QCOMPARE(textObject->smooth(), true);
}
{
QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }";
QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
- QCOMPARE(textObject->smoothTransform(), false);
+ QCOMPARE(textObject->smooth(), false);
}
}
}
+void tst_qmlgraphicstext::weight()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().weight(), (int)QmlFontValueType::Normal);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { font.weight: \"Bold\"; text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().weight(), (int)QmlFontValueType::Bold);
+ }
+}
+
+void tst_qmlgraphicstext::underline()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().underline(), false);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { font.underline: true; text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().underline(), true);
+ }
+}
+
+void tst_qmlgraphicstext::overline()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().overline(), false);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { font.overline: true; text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().overline(), true);
+ }
+}
+
+void tst_qmlgraphicstext::strikeout()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().strikeOut(), false);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { font.strikeout: true; text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().strikeOut(), true);
+ }
+}
+
+void tst_qmlgraphicstext::capitalization()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().capitalization(), (int)QmlFontValueType::MixedCase);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"AllUppercase\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().capitalization(), (int)QmlFontValueType::AllUppercase);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"AllLowercase\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().capitalization(), (int)QmlFontValueType::AllLowercase);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"SmallCaps\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().capitalization(), (int)QmlFontValueType::SmallCaps);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"Capitalize\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE((int)textObject->font().capitalization(), (int)QmlFontValueType::Capitalize);
+ }
+}
+
+void tst_qmlgraphicstext::letterSpacing()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().letterSpacing(), 0.0);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.letterSpacing: -50 }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().letterSpacing(), -50.);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.letterSpacing: 200 }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().letterSpacing(), 200.);
+ }
+}
+
+void tst_qmlgraphicstext::wordSpacing()
+{
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().wordSpacing(), 0.0);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.wordSpacing: -50 }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().wordSpacing(), -50.);
+ }
+ {
+ QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.wordSpacing: 200 }";
+ QmlComponent textComponent(&engine, componentStr.toLatin1(), QUrl("file://"));
+ QmlGraphicsText *textObject = qobject_cast<QmlGraphicsText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->font().wordSpacing(), 200.);
+ }
+}
+
QTEST_MAIN(tst_qmlgraphicstext)
#include "tst_qmlgraphicstext.moc"
diff --git a/tests/auto/declarative/qmllanguage/data/NestedErrorsType.qml b/tests/auto/declarative/qmllanguage/data/NestedErrorsType.qml
new file mode 100644
index 0000000..5cc8d20
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/NestedErrorsType.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Item {
+ x: "You can't assign a string to a real!"
+}
diff --git a/tests/auto/declarative/qmllanguage/data/assignBasicTypes.qml b/tests/auto/declarative/qmllanguage/data/assignBasicTypes.qml
index cef9f8d..50723a3 100644
--- a/tests/auto/declarative/qmllanguage/data/assignBasicTypes.qml
+++ b/tests/auto/declarative/qmllanguage/data/assignBasicTypes.qml
@@ -7,6 +7,7 @@ MyTypeObject {
intProperty: -19
realProperty: 23.2
doubleProperty: -19.7
+ floatProperty: 8.5
colorProperty: "red"
dateProperty: "1982-11-25"
timeProperty: "11:11:31"
@@ -21,6 +22,7 @@ MyTypeObject {
rectFProperty: "1000.1,-10.9,400x90.99"
boolProperty: true
variantProperty: "Hello World!"
+ vectorProperty: "10,1,2.2"
objectProperty: MyTypeObject { intProperty: 8 }
}
diff --git a/tests/auto/declarative/qmllanguage/data/component.1.errors.txt b/tests/auto/declarative/qmllanguage/data/component.1.errors.txt
new file mode 100644
index 0000000..091aad6
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.1.errors.txt
@@ -0,0 +1 @@
+3:1:Cannot create empty component specification
diff --git a/tests/auto/declarative/qmllanguage/data/component.1.qml b/tests/auto/declarative/qmllanguage/data/component.1.qml
new file mode 100644
index 0000000..07e463a
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.1.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Component {
+}
diff --git a/tests/auto/declarative/qmllanguage/data/component.2.errors.txt b/tests/auto/declarative/qmllanguage/data/component.2.errors.txt
new file mode 100644
index 0000000..76e7656
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.2.errors.txt
@@ -0,0 +1 @@
+6:9:id is not unique
diff --git a/tests/auto/declarative/qmllanguage/data/component.2.qml b/tests/auto/declarative/qmllanguage/data/component.2.qml
new file mode 100644
index 0000000..74a4f89
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.2.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Item {
+ id: myId
+ Component {
+ id: myId
+ Object {}
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/component.3.errors.txt b/tests/auto/declarative/qmllanguage/data/component.3.errors.txt
new file mode 100644
index 0000000..9a13142
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.3.errors.txt
@@ -0,0 +1 @@
+6:9:Invalid component id specification
diff --git a/tests/auto/declarative/qmllanguage/data/component.3.qml b/tests/auto/declarative/qmllanguage/data/component.3.qml
new file mode 100644
index 0000000..043cb6b
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.3.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Item {
+ Component {
+ id: myId
+ id: myId2
+ Object {}
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/component.4.errors.txt b/tests/auto/declarative/qmllanguage/data/component.4.errors.txt
new file mode 100644
index 0000000..2ab18685
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.4.errors.txt
@@ -0,0 +1 @@
+3:1:Invalid component body specification
diff --git a/tests/auto/declarative/qmllanguage/data/component.4.qml b/tests/auto/declarative/qmllanguage/data/component.4.qml
new file mode 100644
index 0000000..3d115ba
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.4.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Component {
+ Object {}
+ Object {}
+}
diff --git a/tests/auto/declarative/qmllanguage/data/component.5.errors.txt b/tests/auto/declarative/qmllanguage/data/component.5.errors.txt
new file mode 100644
index 0000000..5e88900
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.5.errors.txt
@@ -0,0 +1 @@
+4:5:Invalid component specification
diff --git a/tests/auto/declarative/qmllanguage/data/component.5.qml b/tests/auto/declarative/qmllanguage/data/component.5.qml
new file mode 100644
index 0000000..ab57622
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.5.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Component {
+ x: 10
+ Object {}
+}
diff --git a/tests/auto/declarative/qmllanguage/data/component.6.errors.txt b/tests/auto/declarative/qmllanguage/data/component.6.errors.txt
new file mode 100644
index 0000000..2b1c6ca
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.6.errors.txt
@@ -0,0 +1 @@
+4:5:Invalid component id specification
diff --git a/tests/auto/declarative/qmllanguage/data/component.6.qml b/tests/auto/declarative/qmllanguage/data/component.6.qml
new file mode 100644
index 0000000..6adaf0d
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/component.6.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Component {
+ id: Object {}
+ Object {}
+}
diff --git a/tests/auto/declarative/qmllanguage/data/defaultGrouped.errors.txt b/tests/auto/declarative/qmllanguage/data/defaultGrouped.errors.txt
new file mode 100644
index 0000000..945d51b
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/defaultGrouped.errors.txt
@@ -0,0 +1 @@
+7:9:Invalid value in grouped property
diff --git a/tests/auto/declarative/qmllanguage/data/defaultGrouped.qml b/tests/auto/declarative/qmllanguage/data/defaultGrouped.qml
new file mode 100644
index 0000000..39ac5e0
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/defaultGrouped.qml
@@ -0,0 +1,10 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ grouped {
+ script: print(1921)
+ Object {}
+ }
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/doubleSignal.errors.txt b/tests/auto/declarative/qmllanguage/data/doubleSignal.errors.txt
new file mode 100644
index 0000000..2aea251
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/doubleSignal.errors.txt
@@ -0,0 +1 @@
+5:5:Incorrectly specified signal
diff --git a/tests/auto/declarative/qmllanguage/data/doubleSignal.qml b/tests/auto/declarative/qmllanguage/data/doubleSignal.qml
new file mode 100644
index 0000000..ec813c9
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/doubleSignal.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyQmlObject {
+ onBasicSignal: print(1921)
+ onBasicSignal: print(1921)
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/emptySignal.errors.txt b/tests/auto/declarative/qmllanguage/data/emptySignal.errors.txt
new file mode 100644
index 0000000..353bbf5
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/emptySignal.errors.txt
@@ -0,0 +1 @@
+4:5:Empty signal assignment
diff --git a/tests/auto/declarative/qmllanguage/data/emptySignal.qml b/tests/auto/declarative/qmllanguage/data/emptySignal.qml
new file mode 100644
index 0000000..4c5a122
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/emptySignal.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyQmlObject {
+ onBasicSignal: " "
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/nestedErrors.errors.txt b/tests/auto/declarative/qmllanguage/data/nestedErrors.errors.txt
new file mode 100644
index 0000000..886da55
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/nestedErrors.errors.txt
@@ -0,0 +1,2 @@
+4:5:Unable to create type NestedErrorsType
+4:8:Invalid property assignment: double expected
diff --git a/tests/auto/declarative/qmllanguage/data/nestedErrors.qml b/tests/auto/declarative/qmllanguage/data/nestedErrors.qml
new file mode 100644
index 0000000..c0d755a
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/nestedErrors.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Item {
+ NestedErrorsType {}
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.1.errors.txt b/tests/auto/declarative/qmllanguage/data/script.1.errors.txt
new file mode 100644
index 0000000..50518cc
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.1.errors.txt
@@ -0,0 +1 @@
+3:1:Invalid use of Script block
diff --git a/tests/auto/declarative/qmllanguage/data/script.1.qml b/tests/auto/declarative/qmllanguage/data/script.1.qml
new file mode 100644
index 0000000..8dac8b7
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.1.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Script {
+}
diff --git a/tests/auto/declarative/qmllanguage/data/script.10.errors.txt b/tests/auto/declarative/qmllanguage/data/script.10.errors.txt
new file mode 100644
index 0000000..8299d23
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.10.errors.txt
@@ -0,0 +1 @@
+6:9:Invalid component specification
diff --git a/tests/auto/declarative/qmllanguage/data/script.10.qml b/tests/auto/declarative/qmllanguage/data/script.10.qml
new file mode 100644
index 0000000..516e878
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.10.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Item {
+ Component {
+ Item {}
+ Script {}
+ }
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.11.errors.txt b/tests/auto/declarative/qmllanguage/data/script.11.errors.txt
new file mode 100644
index 0000000..a664203
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.11.errors.txt
@@ -0,0 +1 @@
+5:9:Invalid Script block
diff --git a/tests/auto/declarative/qmllanguage/data/script.11.qml b/tests/auto/declarative/qmllanguage/data/script.11.qml
new file mode 100644
index 0000000..d8313a3
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.11.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Object {
+ Script {
+ Object {}
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/script.2.errors.txt b/tests/auto/declarative/qmllanguage/data/script.2.errors.txt
new file mode 100644
index 0000000..8fb3bbd
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.2.errors.txt
@@ -0,0 +1 @@
+5:9:Properties cannot be set on Script block
diff --git a/tests/auto/declarative/qmllanguage/data/script.2.qml b/tests/auto/declarative/qmllanguage/data/script.2.qml
new file mode 100644
index 0000000..18bb7c8
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.2.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Object {
+ Script {
+ id: myScript
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/script.3.errors.txt b/tests/auto/declarative/qmllanguage/data/script.3.errors.txt
new file mode 100644
index 0000000..8fb3bbd
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.3.errors.txt
@@ -0,0 +1 @@
+5:9:Properties cannot be set on Script block
diff --git a/tests/auto/declarative/qmllanguage/data/script.3.qml b/tests/auto/declarative/qmllanguage/data/script.3.qml
new file mode 100644
index 0000000..c2296ff
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.3.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Object {
+ Script {
+ hello: world
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/script.4.errors.txt b/tests/auto/declarative/qmllanguage/data/script.4.errors.txt
new file mode 100644
index 0000000..49a507f
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.4.errors.txt
@@ -0,0 +1 @@
+5:9:Invalid Script source value
diff --git a/tests/auto/declarative/qmllanguage/data/script.4.qml b/tests/auto/declarative/qmllanguage/data/script.4.qml
new file mode 100644
index 0000000..08115c2
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.4.qml
@@ -0,0 +1,8 @@
+import Qt 4.6
+
+Object {
+ Script {
+ source: 10
+ }
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.5.errors.txt b/tests/auto/declarative/qmllanguage/data/script.5.errors.txt
new file mode 100644
index 0000000..49a507f
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.5.errors.txt
@@ -0,0 +1 @@
+5:9:Invalid Script source value
diff --git a/tests/auto/declarative/qmllanguage/data/script.5.qml b/tests/auto/declarative/qmllanguage/data/script.5.qml
new file mode 100644
index 0000000..a3b1a15
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.5.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Object {
+ Script {
+ source: "hello" + ".js"
+ }
+}
+
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.6.errors.txt b/tests/auto/declarative/qmllanguage/data/script.6.errors.txt
new file mode 100644
index 0000000..4e53b6b
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.6.errors.txt
@@ -0,0 +1 @@
+5:9:Invalid Script block. Specify either the source property or inline script
diff --git a/tests/auto/declarative/qmllanguage/data/script.6.qml b/tests/auto/declarative/qmllanguage/data/script.6.qml
new file mode 100644
index 0000000..e578629
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.6.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+Object {
+ Script {
+ source: "test.js"
+ function helloWorld() {}
+ }
+}
+
+
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.7.errors.txt b/tests/auto/declarative/qmllanguage/data/script.7.errors.txt
new file mode 100644
index 0000000..dc15ddf
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.7.errors.txt
@@ -0,0 +1 @@
+5:9:Variable declarations not allow in inline Script blocks
diff --git a/tests/auto/declarative/qmllanguage/data/script.7.qml b/tests/auto/declarative/qmllanguage/data/script.7.qml
new file mode 100644
index 0000000..6bee3f9
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.7.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+Object {
+ Script {
+ var a = 10;
+ }
+}
+
+
+
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.8.errors.txt b/tests/auto/declarative/qmllanguage/data/script.8.errors.txt
new file mode 100644
index 0000000..b5bf1a8
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.8.errors.txt
@@ -0,0 +1 @@
+6:9:Invalid Script source value
diff --git a/tests/auto/declarative/qmllanguage/data/script.8.qml b/tests/auto/declarative/qmllanguage/data/script.8.qml
new file mode 100644
index 0000000..55bc05c
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.8.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Object {
+ Script {
+ source: "test.js"
+ source: "test2.js"
+ }
+}
+
diff --git a/tests/auto/declarative/qmllanguage/data/script.9.errors.txt b/tests/auto/declarative/qmllanguage/data/script.9.errors.txt
new file mode 100644
index 0000000..dc1eb53
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.9.errors.txt
@@ -0,0 +1 @@
+5:9:Invalid component specification
diff --git a/tests/auto/declarative/qmllanguage/data/script.9.qml b/tests/auto/declarative/qmllanguage/data/script.9.qml
new file mode 100644
index 0000000..79aa504
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/script.9.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Item {
+ Component {
+ Script {}
+ }
+}
diff --git a/tests/auto/declarative/qmllanguage/data/test.js b/tests/auto/declarative/qmllanguage/data/test.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/test.js
diff --git a/tests/auto/declarative/qmllanguage/data/test2.js b/tests/auto/declarative/qmllanguage/data/test2.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/test2.js
diff --git a/tests/auto/declarative/qmllanguage/qmllanguage.pro b/tests/auto/declarative/qmllanguage/qmllanguage.pro
index 80228a9..e45d73a 100644
--- a/tests/auto/declarative/qmllanguage/qmllanguage.pro
+++ b/tests/auto/declarative/qmllanguage/qmllanguage.pro
@@ -1,5 +1,6 @@
load(qttest_p4)
contains(QT_CONFIG,declarative): QT += declarative
+QT += script
macx:CONFIG -= app_bundle
SOURCES += tst_qmllanguage.cpp \
diff --git a/tests/auto/declarative/qmllanguage/testtypes.h b/tests/auto/declarative/qmllanguage/testtypes.h
index 91c6e2e..e654faa 100644
--- a/tests/auto/declarative/qmllanguage/testtypes.h
+++ b/tests/auto/declarative/qmllanguage/testtypes.h
@@ -46,6 +46,7 @@
#include <QtCore/qdatetime.h>
#include <QtGui/qmatrix.h>
#include <QtGui/qcolor.h>
+#include <QtGui/qvector3d.h>
#include <QtDeclarative/qml.h>
#include <QtDeclarative/qmlcomponent.h>
#include <QtDeclarative/qmlparserstatus.h>
@@ -185,6 +186,7 @@ class MyTypeObject : public QObject
Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty);
Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty);
Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty);
+ Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty);
Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty);
Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty);
Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty);
@@ -198,6 +200,7 @@ class MyTypeObject : public QObject
Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty);
Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty);
Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty);
+ Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty);
Q_PROPERTY(QmlScriptString scriptProperty READ scriptProperty WRITE setScriptProperty);
Q_PROPERTY(MyGroupedObject *grouped READ grouped CONSTANT);
@@ -289,6 +292,14 @@ public:
doublePropertyValue = v;
}
+ float floatPropertyValue;
+ float floatProperty() const {
+ return floatPropertyValue;
+ }
+ void setFloatProperty(const float &v) {
+ floatPropertyValue = v;
+ }
+
QColor colorPropertyValue;
QColor colorProperty() const {
return colorPropertyValue;
@@ -394,6 +405,14 @@ public:
variantPropertyValue = v;
}
+ QVector3D vectorPropertyValue;
+ QVector3D vectorProperty() const {
+ return vectorPropertyValue;
+ }
+ void setVectorProperty(const QVector3D &v) {
+ vectorPropertyValue = v;
+ }
+
QmlScriptString scriptPropertyValue;
QmlScriptString scriptProperty() const {
return scriptPropertyValue;
diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
index da586d9..c82aa4d 100644
--- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
+++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
@@ -45,6 +45,7 @@
#include <QtCore/qdebug.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qdir.h>
+#include <private/qmlmetaproperty_p.h>
#include "testtypes.h"
#include "../../../shared/util.h"
@@ -246,8 +247,29 @@ void tst_qmllanguage::errors_data()
QTest::newRow("importVersionMissing (builtin)") << "importVersionMissingBuiltIn.qml" << "importVersionMissingBuiltIn.errors.txt" << false;
QTest::newRow("importVersionMissing (installed)") << "importVersionMissingInstalled.qml" << "importVersionMissingInstalled.errors.txt" << false;
-
-
+ QTest::newRow("Script.1") << "script.1.qml" << "script.1.errors.txt" << false;
+ QTest::newRow("Script.2") << "script.2.qml" << "script.2.errors.txt" << false;
+ QTest::newRow("Script.3") << "script.3.qml" << "script.3.errors.txt" << false;
+ QTest::newRow("Script.4") << "script.4.qml" << "script.4.errors.txt" << false;
+ QTest::newRow("Script.5") << "script.5.qml" << "script.5.errors.txt" << false;
+ QTest::newRow("Script.6") << "script.6.qml" << "script.6.errors.txt" << false;
+ QTest::newRow("Script.7") << "script.7.qml" << "script.7.errors.txt" << false;
+ QTest::newRow("Script.8") << "script.8.qml" << "script.8.errors.txt" << false;
+ QTest::newRow("Script.9") << "script.9.qml" << "script.9.errors.txt" << false;
+ QTest::newRow("Script.10") << "script.10.qml" << "script.10.errors.txt" << false;
+ QTest::newRow("Script.11") << "script.11.qml" << "script.11.errors.txt" << false;
+
+ QTest::newRow("Component.1") << "component.1.qml" << "component.1.errors.txt" << false;
+ QTest::newRow("Component.2") << "component.2.qml" << "component.2.errors.txt" << false;
+ QTest::newRow("Component.3") << "component.3.qml" << "component.3.errors.txt" << false;
+ QTest::newRow("Component.4") << "component.4.qml" << "component.4.errors.txt" << false;
+ QTest::newRow("Component.5") << "component.5.qml" << "component.5.errors.txt" << false;
+ QTest::newRow("Component.6") << "component.6.qml" << "component.6.errors.txt" << false;
+
+ QTest::newRow("nestedErrors") << "nestedErrors.qml" << "nestedErrors.errors.txt" << false;
+ QTest::newRow("defaultGrouped") << "defaultGrouped.qml" << "defaultGrouped.errors.txt" << false;
+ QTest::newRow("emptySignal") << "emptySignal.qml" << "emptySignal.errors.txt" << false;
+ QTest::newRow("doubleSignal") << "doubleSignal.qml" << "doubleSignal.errors.txt" << false;
}
void tst_qmllanguage::errors()
@@ -371,6 +393,7 @@ void tst_qmllanguage::assignBasicTypes()
QCOMPARE(object->intProperty(), -19);
QCOMPARE((float)object->realProperty(), float(23.2));
QCOMPARE((float)object->doubleProperty(), float(-19.7));
+ QCOMPARE((float)object->floatProperty(), float(8.5));
QCOMPARE(object->colorProperty(), QColor("red"));
QCOMPARE(object->dateProperty(), QDate(1982, 11, 25));
QCOMPARE(object->timeProperty(), QTime(11, 11, 32));
@@ -383,6 +406,7 @@ void tst_qmllanguage::assignBasicTypes()
QCOMPARE(object->rectFProperty(), QRectF((float)1000.1, (float)-10.9, (float)400, (float)90.99));
QCOMPARE(object->boolProperty(), true);
QCOMPARE(object->variantProperty(), QVariant("Hello World!"));
+ QCOMPARE(object->vectorProperty(), QVector3D(10, 1, 2.2));
QVERIFY(object->objectProperty() != 0);
MyTypeObject *child = qobject_cast<MyTypeObject *>(object->objectProperty());
QVERIFY(child != 0);
@@ -615,9 +639,9 @@ void tst_qmllanguage::valueTypes()
p.write(13);
QCOMPARE(p.read(), QVariant(13));
- quint32 r = p.save();
+ quint32 r = QmlMetaPropertyPrivate::saveValueType(p.coreIndex(), p.valueTypeCoreIndex());
QmlMetaProperty p2;
- p2.restore(r, object);
+ QmlMetaPropertyPrivate::restore(p2, r, object);
QCOMPARE(p2.read(), QVariant(13));
}
diff --git a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
index 52c673f..7fbffdb 100644
--- a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
+++ b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
@@ -42,6 +42,8 @@
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
#include <QtDeclarative/qmlmetaproperty.h>
+#include <private/qguard_p.h>
+#include <QtDeclarative/qmlbinding.h>
#include <QtGui/QLineEdit>
class MyQmlObject : public QObject
@@ -73,13 +75,27 @@ private:
QML_DECLARE_TYPE(MyContainer);
QML_DEFINE_TYPE(Test,1,0,0,MyContainer,MyContainer);
-class tst_QmlMetaProperty : public QObject
+class tst_qmlmetaproperty : public QObject
{
Q_OBJECT
public:
- tst_QmlMetaProperty() {}
+ tst_qmlmetaproperty() {}
private slots:
+
+ // Constructors
+ void qmlmetaproperty();
+ void qmlmetaproperty_object();
+ void qmlmetaproperty_object_string();
+ void qmlmetaproperty_object_context();
+ void qmlmetaproperty_object_string_context();
+
+ // Methods
+ void name();
+ void read();
+ void write();
+
+ // Functionality
void writeObjectToList();
void writeListToList();
void writeObjectToQmlList();
@@ -90,7 +106,799 @@ private:
QmlEngine engine;
};
-void tst_QmlMetaProperty::writeObjectToList()
+void tst_qmlmetaproperty::qmlmetaproperty()
+{
+ QmlMetaProperty prop;
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString());
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Invalid);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), false);
+ QCOMPARE(prop.object(), (QObject *)0);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QVERIFY(prop.property().name() == 0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), -1);
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+}
+
+class PropertyObject : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(int defaultProperty READ defaultProperty);
+ Q_PROPERTY(QRect rectProperty READ rectProperty);
+ Q_PROPERTY(QRect wrectProperty READ wrectProperty WRITE setWRectProperty);
+ Q_PROPERTY(QUrl url READ url WRITE setUrl);
+
+ Q_CLASSINFO("DefaultProperty", "defaultProperty");
+public:
+ int defaultProperty() { return 10; }
+ QRect rectProperty() { return QRect(10, 10, 1, 209); }
+
+ QRect wrectProperty() { return m_rect; }
+ void setWRectProperty(const QRect &r) { m_rect = r; }
+
+ QUrl url() { return m_url; }
+ void setUrl(const QUrl &u) { m_url = u; }
+
+signals:
+ void clicked();
+
+private:
+ QRect m_rect;
+ QUrl m_url;
+};
+
+void tst_qmlmetaproperty::qmlmetaproperty_object()
+{
+ QObject object; // Has no default property
+ PropertyObject dobject; // Has default property
+
+ {
+ QmlMetaProperty prop(&object);
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString());
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Invalid);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), false);
+ QCOMPARE(prop.object(), (QObject *)0);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QVERIFY(prop.property().name() == 0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), -1);
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject);
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("defaultProperty"));
+ QCOMPARE(prop.read(), QVariant(10));
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), true);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), (QmlMetaProperty::Type)(QmlMetaProperty::Property | QmlMetaProperty::Default));
+ QCOMPARE(prop.isProperty(), true);
+ QCOMPARE(prop.isDefault(), true);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), true);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::Normal);
+ QCOMPARE(prop.propertyType(), (int)QVariant::Int);
+ QCOMPARE(prop.propertyTypeName(), "int");
+ QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
+ QVERIFY(prop.binding() == 0);
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding != 0);
+ QVERIFY(prop.binding() == binding);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfProperty("defaultProperty"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+}
+
+void tst_qmlmetaproperty::qmlmetaproperty_object_string()
+{
+ QObject object;
+ PropertyObject dobject;
+
+ {
+ QmlMetaProperty prop(&object, QString("defaultProperty"));
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString());
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Invalid);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), false);
+ QCOMPARE(prop.object(), (QObject *)0);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QVERIFY(prop.property().name() == 0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), -1);
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject, QString("defaultProperty"));
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("defaultProperty"));
+ QCOMPARE(prop.read(), QVariant(10));
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), true);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Property);
+ QCOMPARE(prop.isProperty(), true);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), true);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::Normal);
+ QCOMPARE(prop.propertyType(), (int)QVariant::Int);
+ QCOMPARE(prop.propertyTypeName(), "int");
+ QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
+ QVERIFY(prop.binding() == 0);
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding != 0);
+ QVERIFY(prop.binding() == binding);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfProperty("defaultProperty"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject, QString("onClicked"));
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("onClicked"));
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant("Hello")), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QCOMPARE(QString(prop.method().signature()), QString("clicked()"));
+ QCOMPARE(prop.type(), QmlMetaProperty::SignalProperty);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QCOMPARE(prop.property().name(), (const char *)0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression != 0);
+ QVERIFY(prop.signalExpression() == expression);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfMethod("clicked()"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+}
+
+void tst_qmlmetaproperty::qmlmetaproperty_object_context()
+{
+ QObject object; // Has no default property
+ PropertyObject dobject; // Has default property
+
+ {
+ QmlMetaProperty prop(&object, engine.rootContext());
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString());
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Invalid);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), false);
+ QCOMPARE(prop.object(), (QObject *)0);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QVERIFY(prop.property().name() == 0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), -1);
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject, engine.rootContext());
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("defaultProperty"));
+ QCOMPARE(prop.read(), QVariant(10));
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), true);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), (QmlMetaProperty::Type)(QmlMetaProperty::Property | QmlMetaProperty::Default));
+ QCOMPARE(prop.isProperty(), true);
+ QCOMPARE(prop.isDefault(), true);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), true);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::Normal);
+ QCOMPARE(prop.propertyType(), (int)QVariant::Int);
+ QCOMPARE(prop.propertyTypeName(), "int");
+ QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
+ QVERIFY(prop.binding() == 0);
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding != 0);
+ QVERIFY(prop.binding() == binding);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfProperty("defaultProperty"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+}
+
+void tst_qmlmetaproperty::qmlmetaproperty_object_string_context()
+{
+ QObject object;
+ PropertyObject dobject;
+
+ {
+ QmlMetaProperty prop(&object, QString("defaultProperty"), engine.rootContext());
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString());
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Invalid);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), false);
+ QCOMPARE(prop.object(), (QObject *)0);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QVERIFY(prop.property().name() == 0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), -1);
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject, QString("defaultProperty"), engine.rootContext());
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("defaultProperty"));
+ QCOMPARE(prop.read(), QVariant(10));
+ QCOMPARE(prop.write(QVariant()), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), true);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QVERIFY(prop.method().signature() == 0);
+ QCOMPARE(prop.type(), QmlMetaProperty::Property);
+ QCOMPARE(prop.isProperty(), true);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), true);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::Normal);
+ QCOMPARE(prop.propertyType(), (int)QVariant::Int);
+ QCOMPARE(prop.propertyTypeName(), "int");
+ QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
+ QVERIFY(prop.binding() == 0);
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding != 0);
+ QVERIFY(prop.binding() == binding);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression == 0);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfProperty("defaultProperty"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+
+ {
+ QmlMetaProperty prop(&dobject, QString("onClicked"), engine.rootContext());
+
+ QGuard<QmlBinding> binding(new QmlBinding(QString(), 0, 0));
+ binding->setTarget(prop);
+ QVERIFY(binding != 0);
+ QGuard<QmlExpression> expression(new QmlExpression());
+ QVERIFY(expression != 0);
+
+ QObject *obj = new QObject;
+
+ QCOMPARE(prop.name(), QString("onClicked"));
+ QCOMPARE(prop.read(), QVariant());
+ QCOMPARE(prop.write(QVariant("Hello")), false);
+ QCOMPARE(prop.hasChangedNotifier(), false);
+ QCOMPARE(prop.needsChangedNotifier(), false);
+ QCOMPARE(prop.connectNotifier(0, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, SLOT(deleteLater())), false);
+ QCOMPARE(prop.connectNotifier(obj, 0), false);
+ QCOMPARE(prop.connectNotifier(0, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, obj->metaObject()->indexOfMethod("deleteLater()")), false);
+ QCOMPARE(prop.connectNotifier(obj, -1), false);
+ QCOMPARE(QString(prop.method().signature()), QString("clicked()"));
+ QCOMPARE(prop.type(), QmlMetaProperty::SignalProperty);
+ QCOMPARE(prop.isProperty(), false);
+ QCOMPARE(prop.isDefault(), false);
+ QCOMPARE(prop.isWritable(), false);
+ QCOMPARE(prop.isDesignable(), false);
+ QCOMPARE(prop.isValid(), true);
+ QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.propertyCategory(), QmlMetaProperty::InvalidProperty);
+ QCOMPARE(prop.propertyType(), 0);
+ QCOMPARE(prop.propertyTypeName(), (const char *)0);
+ QCOMPARE(prop.property().name(), (const char *)0);
+ QVERIFY(prop.binding() == 0);
+ QVERIFY(prop.setBinding(binding) == 0);
+ QVERIFY(binding == 0);
+ QVERIFY(prop.signalExpression() == 0);
+ QVERIFY(prop.setSignalExpression(expression) == 0);
+ QVERIFY(expression != 0);
+ QVERIFY(prop.signalExpression() == expression);
+ QCOMPARE(prop.coreIndex(), dobject.metaObject()->indexOfMethod("clicked()"));
+ QCOMPARE(prop.valueTypeCoreIndex(), -1);
+
+ delete obj;
+ }
+}
+
+void tst_qmlmetaproperty::name()
+{
+ {
+ QmlMetaProperty p;
+ QCOMPARE(p.name(), QString());
+ }
+
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o);
+ QCOMPARE(p.name(), QString("defaultProperty"));
+ }
+
+ {
+ QObject o;
+ QmlMetaProperty p(&o, QString("objectName"));
+ QCOMPARE(p.name(), QString("objectName"));
+ }
+
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, "onClicked");
+ QCOMPARE(p.name(), QString("onClicked"));
+ }
+
+ {
+ QObject o;
+ QmlMetaProperty p(&o, "onClicked");
+ QCOMPARE(p.name(), QString());
+ }
+
+ {
+ QObject o;
+ QmlMetaProperty p(&o, "foo");
+ QCOMPARE(p.name(), QString());
+ }
+
+ {
+ QmlMetaProperty p(0, "foo");
+ QCOMPARE(p.name(), QString());
+ }
+
+ {
+ PropertyObject o;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(&o, "rectProperty");
+ QCOMPARE(p.name(), QString("rectProperty"));
+ }
+
+ {
+ PropertyObject o;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(&o, "rectProperty.x");
+ QCOMPARE(p.name(), QString("rectProperty.x"));
+ }
+
+ {
+ PropertyObject o;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(&o, "rectProperty.foo");
+ QCOMPARE(p.name(), QString());
+ }
+}
+
+void tst_qmlmetaproperty::read()
+{
+ // Invalid
+ {
+ QmlMetaProperty p;
+ QCOMPARE(p.read(), QVariant());
+ }
+
+ // Default prop
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o);
+ QCOMPARE(p.read(), QVariant(10));
+ }
+
+ // Invalid default prop
+ {
+ QObject o;
+ QmlMetaProperty p(&o);
+ QCOMPARE(p.read(), QVariant());
+ }
+
+ // Value prop by name
+ {
+ QObject o;
+
+ QmlMetaProperty p(&o, "objectName");
+ QCOMPARE(p.read(), QVariant(QString()));
+
+ o.setObjectName("myName");
+
+ QCOMPARE(p.read(), QVariant("myName"));
+ }
+
+ // Value-type prop
+ {
+ PropertyObject o;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(&o, "rectProperty.x");
+ QCOMPARE(p.read(), QVariant(10));
+ }
+
+ // Invalid value-type prop
+ {
+ PropertyObject o;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(&o, "rectProperty.foo");
+ QCOMPARE(p.read(), QVariant());
+ }
+
+ // Signal property
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, "onClicked");
+ QCOMPARE(p.read(), QVariant());
+
+ QVERIFY(0 == p.setSignalExpression(new QmlExpression()));
+ QVERIFY(0 != p.signalExpression());
+
+ QCOMPARE(p.read(), QVariant());
+ }
+
+ // Deleted object
+ {
+ PropertyObject *o = new PropertyObject;
+ QmlMetaProperty p = QmlMetaProperty::createProperty(o, "rectProperty.x");
+ QCOMPARE(p.read(), QVariant(10));
+ delete o;
+ QCOMPARE(p.read(), QVariant());
+ }
+}
+
+void tst_qmlmetaproperty::write()
+{
+ // Invalid
+ {
+ QmlMetaProperty p;
+ QCOMPARE(p.write(QVariant(10)), false);
+ }
+
+ // Read-only default prop
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o);
+ QCOMPARE(p.write(QVariant(10)), false);
+ }
+
+ // Invalid default prop
+ {
+ QObject o;
+ QmlMetaProperty p(&o);
+ QCOMPARE(p.write(QVariant(10)), false);
+ }
+
+ // Read-only prop by name
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, QString("defaultProperty"));
+ QCOMPARE(p.write(QVariant(10)), false);
+ }
+
+ // Writable prop by name
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, QString("objectName"));
+ QCOMPARE(o.objectName(), QString());
+ QCOMPARE(p.write(QVariant(QString("myName"))), true);
+ QCOMPARE(o.objectName(), QString("myName"));
+ }
+
+ // Deleted object
+ {
+ PropertyObject *o = new PropertyObject;
+ QmlMetaProperty p(o, QString("objectName"));
+ QCOMPARE(p.write(QVariant(QString("myName"))), true);
+ QCOMPARE(o->objectName(), QString("myName"));
+
+ delete o;
+
+ QCOMPARE(p.write(QVariant(QString("myName"))), false);
+ }
+
+ // Signal property
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, "onClicked");
+ QCOMPARE(p.write(QVariant("print(1921)")), false);
+
+ QVERIFY(0 == p.setSignalExpression(new QmlExpression()));
+ QVERIFY(0 != p.signalExpression());
+
+ QCOMPARE(p.write(QVariant("print(1921)")), false);
+
+ QVERIFY(0 != p.signalExpression());
+ }
+
+ // Value-type property
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, "wrectProperty");
+
+ QCOMPARE(o.wrectProperty(), QRect());
+ QCOMPARE(p.write(QRect(1, 13, 99, 8)), true);
+ QCOMPARE(o.wrectProperty(), QRect(1, 13, 99, 8));
+
+ QmlMetaProperty p2 = QmlMetaProperty::createProperty(&o, "wrectProperty.x");
+ QCOMPARE(p2.read(), QVariant(1));
+ QCOMPARE(p2.write(QVariant(6)), true);
+ QCOMPARE(p2.read(), QVariant(6));
+ QCOMPARE(o.wrectProperty(), QRect(6, 13, 99, 8));
+ }
+
+ // URL-property
+ {
+ PropertyObject o;
+ QmlMetaProperty p(&o, "url");
+
+ QCOMPARE(p.write(QUrl("main.qml")), true);
+ QCOMPARE(o.url(), QUrl("main.qml"));
+
+ QmlMetaProperty p2(&o, "url", engine.rootContext());
+
+ QUrl result = engine.baseUrl().resolved(QUrl("main.qml"));
+ QVERIFY(result != QUrl("main.qml"));
+
+ QCOMPARE(p2.write(QUrl("main.qml")), true);
+ QCOMPARE(o.url(), result);
+ }
+}
+
+void tst_qmlmetaproperty::writeObjectToList()
{
QmlComponent containerComponent(&engine, "import Test 1.0\nMyContainer { children: MyQmlObject {} }", QUrl());
MyContainer *container = qobject_cast<MyContainer*>(containerComponent.create());
@@ -105,7 +913,7 @@ void tst_QmlMetaProperty::writeObjectToList()
}
Q_DECLARE_METATYPE(QList<QObject *>);
-void tst_QmlMetaProperty::writeListToList()
+void tst_qmlmetaproperty::writeListToList()
{
QmlComponent containerComponent(&engine, "import Test 1.0\nMyContainer { children: MyQmlObject {} }", QUrl());
MyContainer *container = qobject_cast<MyContainer*>(containerComponent.create());
@@ -125,7 +933,7 @@ void tst_QmlMetaProperty::writeListToList()
QCOMPARE(container->children()->size(), 1);*/
}
-void tst_QmlMetaProperty::writeObjectToQmlList()
+void tst_qmlmetaproperty::writeObjectToQmlList()
{
QmlComponent containerComponent(&engine, "import Test 1.0\nMyContainer { qmlChildren: MyQmlObject {} }", QUrl());
MyContainer *container = qobject_cast<MyContainer*>(containerComponent.create());
@@ -139,6 +947,6 @@ void tst_QmlMetaProperty::writeObjectToQmlList()
QCOMPARE(container->qmlChildren()->at(1), object);
}
-QTEST_MAIN(tst_QmlMetaProperty)
+QTEST_MAIN(tst_qmlmetaproperty)
#include "tst_qmlmetaproperty.moc"
diff --git a/tests/auto/declarative/qfxpixmapcache/data/exists.png b/tests/auto/declarative/qmlpixmapcache/data/exists.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/qfxpixmapcache/data/exists.png
+++ b/tests/auto/declarative/qmlpixmapcache/data/exists.png
Binary files differ
diff --git a/tests/auto/declarative/qfxpixmapcache/data/exists1.png b/tests/auto/declarative/qmlpixmapcache/data/exists1.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/qfxpixmapcache/data/exists1.png
+++ b/tests/auto/declarative/qmlpixmapcache/data/exists1.png
Binary files differ
diff --git a/tests/auto/declarative/qfxpixmapcache/data/exists2.png b/tests/auto/declarative/qmlpixmapcache/data/exists2.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/qfxpixmapcache/data/exists2.png
+++ b/tests/auto/declarative/qmlpixmapcache/data/exists2.png
Binary files differ
diff --git a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro b/tests/auto/declarative/qmlpixmapcache/qmlpixmapcache.pro
index 218eeff..423fa2f 100644
--- a/tests/auto/declarative/qfxpixmapcache/qfxpixmapcache.pro
+++ b/tests/auto/declarative/qmlpixmapcache/qmlpixmapcache.pro
@@ -3,7 +3,7 @@ contains(QT_CONFIG,declarative): QT += declarative
QT += network
macx:CONFIG -= app_bundle
-SOURCES += tst_qfxpixmapcache.cpp
+SOURCES += tst_qmlpixmapcache.cpp
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
diff --git a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp b/tests/auto/declarative/qmlpixmapcache/tst_qmlpixmapcache.cpp
index 88fbdab..88d9df5 100644
--- a/tests/auto/declarative/qfxpixmapcache/tst_qfxpixmapcache.cpp
+++ b/tests/auto/declarative/qmlpixmapcache/tst_qmlpixmapcache.cpp
@@ -40,18 +40,18 @@
****************************************************************************/
#include <qtest.h>
#include <QtTest/QtTest>
-#include <private/qmlgraphicspixmapcache_p.h>
+#include <private/qmlpixmapcache_p.h>
#include <QtDeclarative/qmlengine.h>
#include <QNetworkReply>
// These don't let normal people run tests!
//#include "../network-settings.h"
-class tst_qfxpixmapcache : public QObject
+class tst_qmlpixmapcache : public QObject
{
Q_OBJECT
public:
- tst_qfxpixmapcache() :
+ tst_qmlpixmapcache() :
thisfile("file://" __FILE__)
{
}
@@ -97,9 +97,9 @@ static const bool localfile_optimized = true;
static const bool localfile_optimized = false;
#endif
-void tst_qfxpixmapcache::single_data()
+void tst_qmlpixmapcache::single_data()
{
- // Note, since QmlGraphicsPixmapCache is shared, tests affect each other!
+ // Note, since QmlPixmapCache is shared, tests affect each other!
// so use different files fore all test functions.
QTest::addColumn<QUrl>("target");
@@ -114,7 +114,7 @@ void tst_qfxpixmapcache::single_data()
QTest::newRow("remote") << QUrl("http://qt.nokia.com/thereisnologo.png") << false << false << true;
}
-void tst_qfxpixmapcache::single()
+void tst_qmlpixmapcache::single()
{
QFETCH(QUrl, target);
QFETCH(bool, incache);
@@ -130,7 +130,7 @@ void tst_qfxpixmapcache::single()
QPixmap pixmap;
QVERIFY(pixmap.width() <= 0); // Check Qt assumption
- QNetworkReply *reply= QmlGraphicsPixmapCache::get(&engine, target, &pixmap);
+ QNetworkReply *reply= QmlPixmapCache::get(&engine, target, &pixmap);
if (incache) {
QVERIFY(!reply);
@@ -148,20 +148,20 @@ void tst_qfxpixmapcache::single()
QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(getter.gotslot);
if (exists) {
- QVERIFY(QmlGraphicsPixmapCache::find(target, &pixmap));
+ QVERIFY(QmlPixmapCache::find(target, &pixmap));
QVERIFY(pixmap.width() > 0);
} else {
- QVERIFY(!QmlGraphicsPixmapCache::find(target, &pixmap));
+ QVERIFY(!QmlPixmapCache::find(target, &pixmap));
QVERIFY(pixmap.width() <= 0);
}
}
- QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), 0);
+ QCOMPARE(QmlPixmapCache::pendingRequests(), 0);
}
-void tst_qfxpixmapcache::parallel_data()
+void tst_qmlpixmapcache::parallel_data()
{
- // Note, since QmlGraphicsPixmapCache is shared, tests affect each other!
+ // Note, since QmlPixmapCache is shared, tests affect each other!
// so use different files fore all test functions.
QTest::addColumn<QUrl>("target1");
@@ -211,7 +211,7 @@ void tst_qfxpixmapcache::parallel_data()
;
}
-void tst_qfxpixmapcache::parallel()
+void tst_qmlpixmapcache::parallel()
{
QFETCH(QUrl, target1);
QFETCH(QUrl, target2);
@@ -227,7 +227,7 @@ void tst_qfxpixmapcache::parallel()
for (int i=0; i<targets.count(); ++i) {
QUrl target = targets.at(i);
QPixmap pixmap;
- QNetworkReply *reply = QmlGraphicsPixmapCache::get(&engine, target, &pixmap);
+ QNetworkReply *reply = QmlPixmapCache::get(&engine, target, &pixmap);
replies.append(reply);
if (!reply) {
QVERIFY(pixmap.width() > 0);
@@ -240,10 +240,10 @@ void tst_qfxpixmapcache::parallel()
}
QCOMPARE(incache+slotters, targets.count());
- QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), requests);
+ QCOMPARE(QmlPixmapCache::pendingRequests(), requests);
if (cancel >= 0) {
- QmlGraphicsPixmapCache::cancelGet(targets.at(cancel), getters[cancel]);
+ QmlPixmapCache::cancelGet(targets.at(cancel), getters[cancel]);
slotters--;
}
@@ -260,16 +260,16 @@ void tst_qfxpixmapcache::parallel()
} else {
QVERIFY(getters[i]->gotslot);
QPixmap pixmap;
- QVERIFY(QmlGraphicsPixmapCache::find(targets[i], &pixmap));
+ QVERIFY(QmlPixmapCache::find(targets[i], &pixmap));
QVERIFY(pixmap.width() > 0);
}
delete getters[i];
}
}
- QCOMPARE(QmlGraphicsPixmapCache::pendingRequests(), 0);
+ QCOMPARE(QmlPixmapCache::pendingRequests(), 0);
}
-QTEST_MAIN(tst_qfxpixmapcache)
+QTEST_MAIN(tst_qmlpixmapcache)
-#include "tst_qfxpixmapcache.moc"
+#include "tst_qmlpixmapcache.moc"
diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
index a7211bd..9be77e8 100644
--- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
+++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
@@ -55,6 +55,7 @@ public:
private slots:
void insert();
void operatorInsert();
+ void operatorValue();
void clear();
void changed();
void count();
@@ -66,6 +67,7 @@ void tst_QmlPropertyMap::insert()
map.insert(QLatin1String("key1"),100);
map.insert(QLatin1String("key2"),200);
QVERIFY(map.keys().count() == 2);
+ QVERIFY(map.contains(QLatin1String("key1")));
QCOMPARE(map.value(QLatin1String("key1")), QVariant(100));
QCOMPARE(map.value(QLatin1String("key2")), QVariant(200));
@@ -88,6 +90,20 @@ void tst_QmlPropertyMap::operatorInsert()
QCOMPARE(map.value(QLatin1String("key1")), QVariant("Hello World"));
}
+void tst_QmlPropertyMap::operatorValue()
+{
+ QmlPropertyMap map;
+ map.insert(QLatin1String("key1"),100);
+ map.insert(QLatin1String("key2"),200);
+ QVERIFY(map.keys().count() == 2);
+ QVERIFY(map.contains(QLatin1String("key1")));
+
+ QCOMPARE(map.value(QLatin1String("key1")), QVariant(100));
+ QCOMPARE(map.value(QLatin1String("key2")), QVariant(200));
+ QCOMPARE(map[QLatin1String("key1")], map.value(QLatin1String("key1")));
+ QCOMPARE(map[QLatin1String("key2")], map.value(QLatin1String("key2")));
+}
+
void tst_QmlPropertyMap::clear()
{
QmlPropertyMap map;
@@ -98,6 +114,7 @@ void tst_QmlPropertyMap::clear()
map.clear(QLatin1String("key1"));
QVERIFY(map.keys().count() == 1);
+ QVERIFY(map.contains(QLatin1String("key1")));
QCOMPARE(map.value(QLatin1String("key1")), QVariant());
}
@@ -143,6 +160,7 @@ void tst_QmlPropertyMap::count()
//clearing doesn't remove the key
map.clear(QLatin1String("key3"));
QCOMPARE(map.count(), 3);
+ QCOMPARE(map.size(), map.count());
}
QTEST_MAIN(tst_QmlPropertyMap)
diff --git a/tests/auto/declarative/qmlqt/data/closestangle.qml b/tests/auto/declarative/qmlqt/data/closestangle.qml
new file mode 100644
index 0000000..8f999e3
--- /dev/null
+++ b/tests/auto/declarative/qmlqt/data/closestangle.qml
@@ -0,0 +1,12 @@
+import Qt 4.6
+
+Object {
+ property var testSame: Qt.closestAngle(0,1)
+ property var testLess: Qt.closestAngle(0,-359)
+ property var testMore: Qt.closestAngle(0,361)
+ property var testFail: Qt.closestAngle(0)
+ property var test5: Qt.closestAngle(0,1,2)
+ property var test6: Qt.closestAngle(123.45465768,1.11)
+ property var test7: Qt.closestAngle(-3.1415,1.11)
+}
+
diff --git a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
index 10402ae..cc9b94d 100644
--- a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
+++ b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
@@ -64,6 +64,7 @@ private slots:
void lighter();
void darker();
void tint();
+ void closestAngle();
void playSound();
void openUrlExternally();
@@ -249,6 +250,23 @@ void tst_qmlqt::tint()
delete object;
}
+void tst_qmlqt::closestAngle()
+{
+ QmlComponent component(&engine, TEST_FILE("closestangle.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(qvariant_cast<qreal>(object->property("testSame")), 1.0);
+ QCOMPARE(qvariant_cast<qreal>(object->property("testLess")), 1.0);
+ QCOMPARE(qvariant_cast<qreal>(object->property("testMore")), 1.0);
+ QCOMPARE(qvariant_cast<qreal>(object->property("testFail")), 0.0);
+ QCOMPARE(qvariant_cast<qreal>(object->property("test5")), 1.0);
+ QCOMPARE(qvariant_cast<qreal>(object->property("test6")), 1.11);
+ QCOMPARE(qvariant_cast<qreal>(object->property("test7")), 1.11);
+
+ delete object;
+}
+
void tst_qmlqt::playSound()
{
QEXPECT_FAIL("", "How do we test this?", Abort);
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/model.qml b/tests/auto/declarative/qmlxmllistmodel/data/model.qml
new file mode 100644
index 0000000..2cbb027
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/model.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "model.xml"
+ query: "/Pets/Pet"
+ XmlRole { name: "name"; query: "name/string()" }
+ XmlRole { name: "type"; query: "type/string()" }
+ XmlRole { name: "age"; query: "age/number()" }
+ XmlRole { name: "size"; query: "size/string()" }
+}
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/model.xml b/tests/auto/declarative/qmlxmllistmodel/data/model.xml
new file mode 100644
index 0000000..40cd6d0
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/model.xml
@@ -0,0 +1,54 @@
+<Pets>
+ <Pet>
+ <name>Polly</name>
+ <type>Parrot</type>
+ <age>12</age>
+ <size>Small</size>
+ </Pet>
+ <Pet>
+ <name>Penny</name>
+ <type>Turtle</type>
+ <age>4</age>
+ <size>Small</size>
+ </Pet>
+ <Pet>
+ <name>Warren</name>
+ <type>Rabbit</type>
+ <age>2</age>
+ <size>Small</size>
+ </Pet>
+ <Pet>
+ <name>Spot</name>
+ <type>Dog</type>
+ <age>9</age>
+ <size>Medium</size>
+ </Pet>
+ <Pet>
+ <name>Whiskers</name>
+ <type>Cat</type>
+ <age>2</age>
+ <size>Medium</size>
+ </Pet>
+ <Pet>
+ <name>Joey</name>
+ <type>Kangaroo</type>
+ <age>1</age>
+ </Pet>
+ <Pet>
+ <name>Kimba</name>
+ <type>Bunny</type>
+ <age>65</age>
+ <size>Large</size>
+ </Pet>
+ <Pet>
+ <name>Rover</name>
+ <type>Dog</type>
+ <size>Large</size>
+ </Pet>
+ <Pet>
+ <name>Tiny</name>
+ <type>Elephant</type>
+ <age>15</age>
+ <size>Large</size>
+ </Pet>
+</Pets>
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/model2.qml b/tests/auto/declarative/qmlxmllistmodel/data/model2.qml
new file mode 100644
index 0000000..140e0ad
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/model2.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "model.xml"
+ query: "/Pets/Pet"
+ XmlRole { name: "name"; query: "name/string()" }
+ XmlRole { name: "type"; query: "type/string()" }
+ XmlRole { name: "age"; query: "age/number()" }
+ XmlRole { name: "size"; query: "size/string()" }
+ XmlRole { name: "tricks"; query: "tricks/string()" }
+}
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/recipes.qml b/tests/auto/declarative/qmlxmllistmodel/data/recipes.qml
new file mode 100644
index 0000000..13dea91
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/recipes.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "recipes.xml"
+ query: "/recipes/recipe"
+ XmlRole { name: "title"; query: "@title/string()" }
+ XmlRole { name: "picture"; query: "picture/string()" }
+ XmlRole { name: "ingredients"; query: "ingredients/string()" }
+ XmlRole { name: "preparation"; query: "method/string()" }
+}
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/recipes.xml b/tests/auto/declarative/qmlxmllistmodel/data/recipes.xml
new file mode 100644
index 0000000..d71de60
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/recipes.xml
@@ -0,0 +1,90 @@
+<recipes>
+ <recipe title="Pancakes">
+ <picture>content/pics/pancakes.jpg</picture>
+ <ingredients><![CDATA[<html>
+ <ul>
+ <li> 1 cup (150g) self-raising flour
+ <li> 1 tbs caster sugar
+ <li> 3/4 cup (185ml) milk
+ <li> 1 egg
+ </ul>
+ </html>
+ ]]></ingredients>
+ <method><![CDATA[<html>
+ <ol>
+ <li> Sift flour and sugar together into a bowl. Add a pinch of salt.
+ <li> Beat milk and egg together, then add to dry ingredients. Beat until smooth.
+ <li> Pour mixture into a pan on medium heat and cook until bubbles appear on the surface.
+ <li> Turn over and cook other side until golden.
+ </ol>
+ </html>
+ ]]></method>
+ </recipe>
+ <recipe title="Fruit Salad">
+ <picture>content/pics/fruit-salad.jpg</picture>
+ <ingredients><![CDATA[* Seasonal Fruit]]></ingredients>
+ <method><![CDATA[* Chop fruit and place in a bowl.]]></method>
+ </recipe>
+ <recipe title="Vegetable Soup">
+ <picture>content/pics/vegetable-soup.jpg</picture>
+ <ingredients><![CDATA[<html>
+ <ul>
+ <li> 1 onion
+ <li> 1 turnip
+ <li> 1 potato
+ <li> 1 carrot
+ <li> 1 head of celery
+ <li> 1 1/2 litres of water
+ </ul>
+ </html>
+ ]]></ingredients>
+ <method><![CDATA[<html>
+ <ol>
+ <li> Chop vegetables.
+ <li> Boil in water until vegetables soften.
+ <li> Season with salt and pepper to taste.
+ </ol>
+ </html>
+ ]]></method>
+ </recipe>
+ <recipe title="Hamburger">
+ <picture>content/pics/hamburger.jpg</picture>
+ <ingredients><![CDATA[<html>
+ <ul>
+ <li> 500g minced beef
+ <li> Seasoning
+ <li> lettuce, tomato, onion, cheese
+ <li> 1 hamburger bun for each burger
+ </ul>
+ </html>
+ ]]></ingredients>
+ <method><![CDATA[<html>
+ <ol>
+ <li> Mix the beef, together with seasoning, in a food processor.
+ <li> Shape the beef into burgers.
+ <li> Grill the burgers for about 5 mins on each side (until cooked through)
+ <li> Serve each burger on a bun with ketchup, cheese, lettuce, tomato and onion.
+ </ol>
+ </html>
+ ]]></method>
+ </recipe>
+ <recipe title="Lemonade">
+ <picture>content/pics/lemonade.jpg</picture>
+ <ingredients><![CDATA[<html>
+ <ul>
+ <li> 1 cup Lemon Juice
+ <li> 1 cup Sugar
+ <li> 6 Cups of Water (2 cups warm water, 4 cups cold water)
+ </ul>
+ </html>
+ ]]></ingredients>
+ <method><![CDATA[<html>
+ <ol>
+ <li> Pour 2 cups of warm water into a pitcher and stir in sugar until it dissolves.
+ <li> Pour in lemon juice, stir again, and add 4 cups of cold water.
+ <li> Chill or serve over ice cubes.
+ </ol>
+ </html>
+ ]]></method>
+ </recipe>
+</recipes>
diff --git a/tests/auto/declarative/qmlxmllistmodel/qmlxmllistmodel.pro b/tests/auto/declarative/qmlxmllistmodel/qmlxmllistmodel.pro
new file mode 100644
index 0000000..462723e
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/qmlxmllistmodel.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlxmllistmodel.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp
new file mode 100644
index 0000000..4898686
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** 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 <QtDeclarative/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmlxmllistmodel_p.h>
+#include "../../../shared/util.h"
+
+class tst_qmlxmllistmodel : public QObject
+
+{
+ Q_OBJECT
+public:
+ tst_qmlxmllistmodel() {}
+
+private slots:
+ void buildModel();
+ void missingFields();
+ void cdata();
+ void attributes();
+
+private:
+ QmlEngine engine;
+};
+
+void tst_qmlxmllistmodel::buildModel()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/model.qml"));
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 9);
+
+ QList<int> roles;
+ roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3;
+ QHash<int, QVariant> data = listModel->data(3, roles);
+ QVERIFY(data.count() == 4);
+ QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Spot"));
+ QCOMPARE(data.value(Qt::UserRole+1).toString(), QLatin1String("Dog"));
+ QCOMPARE(data.value(Qt::UserRole+2).toInt(), 9);
+ QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String("Medium"));
+}
+
+void tst_qmlxmllistmodel::missingFields()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/model2.qml"));
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 9);
+
+ QList<int> roles;
+ roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3 << Qt::UserRole + 4;
+ QHash<int, QVariant> data = listModel->data(5, roles);
+ QVERIFY(data.count() == 5);
+ QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String(""));
+ QCOMPARE(data.value(Qt::UserRole+4).toString(), QLatin1String(""));
+
+ data = listModel->data(7, roles);
+ QVERIFY(data.count() == 5);
+ QCOMPARE(data.value(Qt::UserRole+2).toString(), QLatin1String(""));
+}
+
+void tst_qmlxmllistmodel::cdata()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/recipes.qml"));
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 5);
+
+ QList<int> roles;
+ roles << Qt::UserRole + 2;
+ QHash<int, QVariant> data = listModel->data(2, roles);
+ QVERIFY(data.count() == 1);
+ QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String("<html>")));
+}
+
+void tst_qmlxmllistmodel::attributes()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/recipes.qml"));
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 5);
+
+ QList<int> roles;
+ roles << Qt::UserRole;
+ QHash<int, QVariant> data = listModel->data(2, roles);
+ QVERIFY(data.count() == 1);
+ QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Vegetable Soup"));
+}
+
+
+QTEST_MAIN(tst_qmlxmllistmodel)
+
+#include "tst_qmlxmllistmodel.moc"
diff --git a/tests/auto/declarative/states/data/anchorChanges.qml b/tests/auto/declarative/states/data/anchorChanges.qml
new file mode 100644
index 0000000..bb17840
--- /dev/null
+++ b/tests/auto/declarative/states/data/anchorChanges.qml
@@ -0,0 +1,22 @@
+import Qt 4.6
+
+Rectangle {
+ id: container
+ width: 200; height: 200
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ width: 50; height: 50
+ color: "green";
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+ }
+ states: State {
+ name: "right"
+ AnchorChanges {
+ target: myRect;
+ reset: "left"
+ right: container.right
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/anchorChanges2.qml b/tests/auto/declarative/states/data/anchorChanges2.qml
new file mode 100644
index 0000000..545345e
--- /dev/null
+++ b/tests/auto/declarative/states/data/anchorChanges2.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+Rectangle {
+ width: 200; height: 200
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ width: 50; height: 50
+ color: "green";
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+ }
+ states: State {
+ name: "right"
+ AnchorChanges {
+ target: myRect;
+ reset: "left"
+ right: parent.right
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/parentChange.qml b/tests/auto/declarative/states/data/parentChange.qml
new file mode 100644
index 0000000..94fbd69
--- /dev/null
+++ b/tests/auto/declarative/states/data/parentChange.qml
@@ -0,0 +1,36 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Item {
+ x: 10; y: 10
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5
+ width: 100; height: 100
+ color: "red"
+ }
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ x: -100; y: -50
+ Item {
+ id: newParent
+ x: 248; y: 360
+ }
+ }
+
+ states: State {
+ name: "reparented"
+ when: Clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/parentChange2.qml b/tests/auto/declarative/states/data/parentChange2.qml
new file mode 100644
index 0000000..d1c6d6a
--- /dev/null
+++ b/tests/auto/declarative/states/data/parentChange2.qml
@@ -0,0 +1,31 @@
+import Qt 4.6
+
+Rectangle {
+ id: newParent
+ width: 400; height: 400
+ Item {
+ scale: .5
+ rotation: 15
+ x: 10; y: 10
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5
+ width: 100; height: 100
+ color: "red"
+ }
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ states: State {
+ name: "reparented"
+ when: Clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/parentChange3.qml b/tests/auto/declarative/states/data/parentChange3.qml
new file mode 100644
index 0000000..c7b7bee
--- /dev/null
+++ b/tests/auto/declarative/states/data/parentChange3.qml
@@ -0,0 +1,42 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Item {
+ scale: .5
+ rotation: 15
+ transformOrigin: "Center"
+ x: 10; y: 10
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5
+ width: 100; height: 100
+ transformOrigin: "BottomLeft"
+ color: "red"
+ }
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ x: 200; y: 200
+ rotation: 52;
+ scale: 2
+ Item {
+ id: newParent
+ x: 100; y: 100
+ }
+ }
+
+ states: State {
+ name: "reparented"
+ when: Clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/script.qml b/tests/auto/declarative/states/data/script.qml
new file mode 100644
index 0000000..6983419
--- /dev/null
+++ b/tests/auto/declarative/states/data/script.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+Rectangle {
+ id: MyRectangle
+ width: 100; height: 100
+ color: "red"
+ states: State {
+ name: "blue"
+ StateChangeScript { script: MyRectangle.color = "blue"; }
+ }
+}
diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp
index 89e755e..a215ed8 100644
--- a/tests/auto/declarative/states/tst_states.cpp
+++ b/tests/auto/declarative/states/tst_states.cpp
@@ -54,6 +54,9 @@ private slots:
void basicExtension();
void basicBinding();
void signalOverride();
+ void parentChange();
+ void anchorChanges();
+ void script();
};
void tst_states::basicChanges()
@@ -353,6 +356,116 @@ void tst_states::signalOverride()
}
}
+void tst_states::parentChange()
+{
+ QmlEngine engine;
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/parentChange.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ rect->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(0));
+ QCOMPARE(innerRect->scale(), qreal(1));
+ QCOMPARE(innerRect->x(), qreal(-133));
+ QCOMPARE(innerRect->y(), qreal(-300));
+ }
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/parentChange2.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ rect->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(15));
+ QCOMPARE(innerRect->scale(), qreal(.5));
+ QCOMPARE(QString("%1").arg(innerRect->x()), QString("%1").arg(12.4148145657));
+ QCOMPARE(QString("%1").arg(innerRect->y()), QString("%1").arg(10.6470476128));
+ }
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/parentChange3.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ rect->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(-37));
+ QCOMPARE(innerRect->scale(), qreal(.25));
+ QCOMPARE(QString("%1").arg(innerRect->x()), QString("%1").arg(-217.305));
+ QCOMPARE(QString("%1").arg(innerRect->y()), QString("%1").arg(-164.413));
+
+ rect->setState("");
+ QCOMPARE(innerRect->rotation(), qreal(0));
+ QCOMPARE(innerRect->scale(), qreal(1));
+ QCOMPARE(innerRect->x(), qreal(5));
+ QCOMPARE(innerRect->y(), qreal(0));
+ }
+}
+
+void tst_states::anchorChanges()
+{
+ QmlEngine engine;
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/anchorChanges.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ rect->setState("right");
+ QCOMPARE(innerRect->x(), qreal(150));
+
+ rect->setState("");
+ QCOMPARE(innerRect->x(), qreal(5));
+ }
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/anchorChanges2.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ rect->setState("right");
+ QCOMPARE(innerRect->x(), qreal(150));
+
+ rect->setState("");
+ QCOMPARE(innerRect->x(), qreal(5));
+ }
+}
+
+void tst_states::script()
+{
+ QmlEngine engine;
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/script.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QCOMPARE(rect->color(),QColor("red"));
+
+ rect->setState("blue");
+ QCOMPARE(rect->color(),QColor("blue"));
+
+ rect->setState("");
+ QCOMPARE(rect->color(),QColor("blue")); // a script isn't reverted
+ }
+}
+
QTEST_MAIN(tst_states)
#include "tst_states.moc"
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.0.png b/tests/auto/declarative/visual/focusscope/data-X11/test.0.png
index d0fb8a0..f68f7dc 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.0.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.1.png b/tests/auto/declarative/visual/focusscope/data-X11/test.1.png
index d0fb8a0..f68f7dc 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.1.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.2.png b/tests/auto/declarative/visual/focusscope/data-X11/test.2.png
index f25f27c..e26c028 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.2.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.3.png b/tests/auto/declarative/visual/focusscope/data-X11/test.3.png
index 74a9b3f..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.3.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.4.png b/tests/auto/declarative/visual/focusscope/data-X11/test.4.png
index 74a9b3f..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.4.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.5.png b/tests/auto/declarative/visual/focusscope/data-X11/test.5.png
index 74a9b3f..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.5.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.qml b/tests/auto/declarative/visual/focusscope/data-X11/test.qml
index 5c66034..93189fa 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.qml
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test.qml
@@ -6,239 +6,239 @@ VisualTest {
}
Frame {
msec: 16
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 32
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 48
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 64
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 80
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 96
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 112
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 128
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 144
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 160
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 176
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 192
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 208
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 224
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 240
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 256
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 272
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 288
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 304
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 320
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 336
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 352
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 368
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 384
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 400
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 416
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 432
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 448
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 464
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 480
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 496
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 512
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 528
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 544
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 560
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 576
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 592
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 608
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 624
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 640
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 656
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 672
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 688
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 704
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 720
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 736
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 752
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 768
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 784
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 800
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 816
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 832
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 848
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 864
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 880
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 896
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 912
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 928
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 944
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 960
@@ -246,75 +246,75 @@ VisualTest {
}
Frame {
msec: 976
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 992
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1008
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1024
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1040
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1056
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1072
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1088
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1104
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1120
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1136
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1152
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1168
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1184
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1200
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1216
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1232
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1248
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Key {
type: 6
@@ -326,23 +326,23 @@ VisualTest {
}
Frame {
msec: 1264
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1280
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1296
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1312
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1328
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 7
@@ -354,123 +354,123 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1360
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1376
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1392
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1408
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1424
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1440
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1456
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1472
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1488
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1504
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1520
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1536
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1552
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1568
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1584
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1600
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1616
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1632
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1648
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1664
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1680
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1696
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1712
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1728
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1744
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1760
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1776
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1792
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 1808
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 6
@@ -482,27 +482,27 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1840
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1856
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1872
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1888
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1904
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1920
@@ -510,11 +510,11 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1952
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Key {
type: 7
@@ -526,103 +526,103 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 1984
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2000
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2016
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2032
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2048
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2064
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2080
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2096
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2112
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2128
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2144
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2160
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2176
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2192
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2208
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2224
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2240
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2256
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2272
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2288
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2304
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2320
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2336
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 2352
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Key {
type: 6
@@ -634,31 +634,31 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2384
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2400
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2416
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2432
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2448
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2464
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Key {
type: 7
@@ -670,103 +670,103 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2496
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2512
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2528
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2544
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2560
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2576
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2592
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2608
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2624
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2640
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2656
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2672
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2688
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2704
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2720
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2736
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2752
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2768
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2784
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2800
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2816
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2832
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2848
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2864
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2880
@@ -774,27 +774,27 @@ VisualTest {
}
Frame {
msec: 2896
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2912
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2928
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2944
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2960
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 2976
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Key {
type: 6
@@ -806,31 +806,31 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3008
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3024
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3040
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3056
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3072
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3088
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Key {
type: 7
@@ -842,115 +842,115 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3120
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3136
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3152
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3168
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3184
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3200
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3216
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3232
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3248
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3264
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3280
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3296
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3312
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3328
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3344
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3360
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3376
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3392
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3408
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3424
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3440
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3456
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3472
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3488
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3504
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3520
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Frame {
msec: 3536
- hash: "e608f3483071562580bf492da25a4104"
+ hash: "cd2aced96da9032ddd5e2cacf27d045d"
}
Key {
type: 6
@@ -962,31 +962,31 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3568
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3584
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3600
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3616
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3632
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3648
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 7
@@ -998,47 +998,47 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3680
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3696
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3712
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3728
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3744
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3760
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3776
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3792
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3808
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3824
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3840
@@ -1046,87 +1046,87 @@ VisualTest {
}
Frame {
msec: 3856
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3872
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3888
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3904
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3920
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3936
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3952
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3968
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 3984
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4000
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4016
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4032
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4048
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4064
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4080
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4096
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4112
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4128
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4144
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4160
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4176
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 6
@@ -1138,27 +1138,27 @@ VisualTest {
}
Frame {
msec: 4192
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4208
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4224
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4240
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4256
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4272
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Key {
type: 7
@@ -1170,131 +1170,131 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4304
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4320
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4336
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4352
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4368
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4384
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4400
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4416
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4432
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4448
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4464
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4480
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4496
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4512
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4528
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4544
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4560
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4576
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4592
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4608
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4624
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4640
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4656
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4672
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4688
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4704
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4720
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4736
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4752
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4768
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Frame {
msec: 4784
- hash: "231a20ad55d5ba3be9baf46a80ec86f4"
+ hash: "9157e592069482e801a091aa69758d26"
}
Key {
type: 6
@@ -1310,27 +1310,27 @@ VisualTest {
}
Frame {
msec: 4816
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4832
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4848
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4864
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4880
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4896
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 7
@@ -1342,215 +1342,215 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4928
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4944
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4960
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4976
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 4992
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5008
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5024
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5040
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5056
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5072
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5088
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5104
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5120
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5136
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5152
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5168
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5184
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5200
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5216
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5232
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5248
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5264
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5280
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5296
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5312
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5328
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5344
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5360
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5376
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5392
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5408
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5424
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5440
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5456
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5472
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5488
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5504
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5520
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5536
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5552
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5568
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5584
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5600
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5616
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5632
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5648
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5664
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5680
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5696
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5712
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5728
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5744
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5760
@@ -1558,42 +1558,42 @@ VisualTest {
}
Frame {
msec: 5776
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5792
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
}
Frame {
msec: 5808
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5824
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5840
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5856
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5872
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
Frame {
msec: 5888
- hash: "383edfe8be8621d456162cc1cd88ae1a"
+ hash: "0de58b2460574baf17912e90ba8a89b2"
}
}
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png
index 2821112..5f93c67 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png
index d3aeb93..3b4e0e6 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png
index d7b647f..54a3934 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png
index 551efc8..4f08fd2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png
index 5e59cbe..9aee1f8 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png
index 622c768..04eb05c 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png
index d7b647f..54a3934 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png
index d3aeb93..3b4e0e6 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png
index 891a10a..2df55df 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png b/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png
index c346260..91816fd 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.qml b/tests/auto/declarative/visual/focusscope/data-X11/test3.qml
index e7cb67c..b1f628f 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.qml
+++ b/tests/auto/declarative/visual/focusscope/data-X11/test3.qml
@@ -6,151 +6,151 @@ VisualTest {
}
Frame {
msec: 16
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 32
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 48
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 64
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 80
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 96
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 112
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 128
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 144
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 160
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 176
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 192
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 208
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 224
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 240
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 256
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 272
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 288
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 304
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 320
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 336
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 352
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 368
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 384
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 400
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 416
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 432
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 448
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 464
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 480
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 496
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 512
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 528
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 544
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 560
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 576
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 592
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Key {
type: 6
@@ -162,27 +162,27 @@ VisualTest {
}
Frame {
msec: 608
- hash: "70404a8e19cee8dad4a7dc16b3b018e2"
+ hash: "ed71dfbe146870d1a0869d60c35ff9d7"
}
Frame {
msec: 624
- hash: "70404a8e19cee8dad4a7dc16b3b018e2"
+ hash: "ed71dfbe146870d1a0869d60c35ff9d7"
}
Frame {
msec: 640
- hash: "42ede0774612c5ce72bcb17c1f8c53fb"
+ hash: "34796cef9feb92f7f0e2e8d837d87d34"
}
Frame {
msec: 656
- hash: "acbf5d05e87e456b49636a8e533b8819"
+ hash: "64fa8f195b57077aa03ca264fec9554a"
}
Frame {
msec: 672
- hash: "1c3adf6475d5bbf23c83dda77614834f"
+ hash: "ae33318904415e937363787273ecb566"
}
Frame {
msec: 688
- hash: "b047088d7d135614c7de5d6b1fe6447c"
+ hash: "67c3e1c8c728e7677a3554aadd9795c9"
}
Key {
type: 7
@@ -194,67 +194,67 @@ VisualTest {
}
Frame {
msec: 704
- hash: "59393e79f5571c1b0b54ceb96c570afd"
+ hash: "1857db7aa9eefe429d50e5b2ad87064b"
}
Frame {
msec: 720
- hash: "2657a9db93dab4180ddf5a3d928fa83c"
+ hash: "507883a03bef0bc20755da1474731fdf"
}
Frame {
msec: 736
- hash: "bd012a5b982553780ef81ea273381988"
+ hash: "dafe7464394460e04d482c1f7a1e9ad0"
}
Frame {
msec: 752
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 768
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 784
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 800
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 816
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 832
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 848
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 864
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 880
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 896
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 912
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 928
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 944
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 960
@@ -262,35 +262,35 @@ VisualTest {
}
Frame {
msec: 976
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 992
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1008
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1024
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1040
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1056
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1072
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 1088
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Key {
type: 6
@@ -302,35 +302,35 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "3ba7daa96383cc7fcd2f3e15b9b46bea"
+ hash: "7fb8cb07b6bca30912706cec43984d92"
}
Frame {
msec: 1120
- hash: "3ba7daa96383cc7fcd2f3e15b9b46bea"
+ hash: "7fb8cb07b6bca30912706cec43984d92"
}
Frame {
msec: 1136
- hash: "c097e88ae5cea1203735aba2de753b35"
+ hash: "c1915978cda982f6062790b2a583211b"
}
Frame {
msec: 1152
- hash: "309058119191341625c797e14b1d68fd"
+ hash: "afdb50d740b3dc7be44021d826be4302"
}
Frame {
msec: 1168
- hash: "d2d44135892d56e556b6343e0d2177df"
+ hash: "4682717b9375b4b02a70378ddca30885"
}
Frame {
msec: 1184
- hash: "8f77166dfb871d1ad3c4b21e9626dcf8"
+ hash: "aede0eebb3948a4a764e255b892b09be"
}
Frame {
msec: 1200
- hash: "b6bd7476decc62d295414eea18f21ffb"
+ hash: "b42a147daec14a3da2548fd4de3a9a44"
}
Frame {
msec: 1216
- hash: "8ca06a6b2787a3e684b6a0614baf057f"
+ hash: "2ff70f916f78fe3c199eb96ceb44ce4e"
}
Key {
type: 7
@@ -342,79 +342,79 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "119130d0bde37eb6038e4fbcea54d619"
+ hash: "707ac8e58d317b97113903b45a482f6b"
}
Frame {
msec: 1248
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1264
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1280
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1296
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1312
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1328
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1344
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1360
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1376
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1392
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1408
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1424
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1440
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1456
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1472
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1488
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1504
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 1520
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Key {
type: 6
@@ -426,35 +426,35 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "d36e8e689b999046f5671cce03ec98b9"
+ hash: "91525556fe23764f58b3a3f38a29cd76"
}
Frame {
msec: 1552
- hash: "d36e8e689b999046f5671cce03ec98b9"
+ hash: "91525556fe23764f58b3a3f38a29cd76"
}
Frame {
msec: 1568
- hash: "1ae470df65b1637dfed5ed330bf6f2cc"
+ hash: "d1dc625bbf46fc51aaf47969ad27a8a4"
}
Frame {
msec: 1584
- hash: "fd98bff5f8c97cf0644aca6d205720b3"
+ hash: "7d868176c7a8363a79ef8b8f4da56867"
}
Frame {
msec: 1600
- hash: "6c97607356ec22d77da6170de94ed1b8"
+ hash: "d239e0b0e118d351680c6b4b2bc5d3b2"
}
Frame {
msec: 1616
- hash: "ee49691989ffada50e3b82df960ec1cb"
+ hash: "8f6d1640dbc655eb3b326c66fcb97d3c"
}
Frame {
msec: 1632
- hash: "fba046a966f5ebdc17a73c33fb2fb1af"
+ hash: "d52b623b8449d71734f72c7bd661a1c4"
}
Frame {
msec: 1648
- hash: "5031c1c466e14e7daf39be6af1a9c402"
+ hash: "f7c0c77f3b5ed71321edd6bc7b605512"
}
Key {
type: 7
@@ -466,67 +466,67 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "508c31a76bbb9ae50ec44484ea889289"
+ hash: "8b26397ff1a83baa894f82594a12a190"
}
Frame {
msec: 1680
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1696
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1712
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1728
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1744
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1760
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1776
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1792
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1808
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1824
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1840
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1856
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1872
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1888
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1904
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1920
@@ -534,23 +534,23 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1952
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1968
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 1984
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 2000
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Key {
type: 6
@@ -562,35 +562,35 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "c79134dc4b03885c0c2139e9f1949968"
+ hash: "f63308a7cd48a8cb4d413d17120f5a26"
}
Frame {
msec: 2032
- hash: "c79134dc4b03885c0c2139e9f1949968"
+ hash: "f63308a7cd48a8cb4d413d17120f5a26"
}
Frame {
msec: 2048
- hash: "6f29381e25034bcb9177033fdaf1ee4c"
+ hash: "2e97db8ed93524dc197e76cc2d270999"
}
Frame {
msec: 2064
- hash: "e9668338280735ed6cf1e71f02d28f04"
+ hash: "2b135d90684c0f94b8219c4b835b6da9"
}
Frame {
msec: 2080
- hash: "ecd5a887981d564c6e40c215ebb867d2"
+ hash: "c700a76932bb3bf72868b9e95d095db2"
}
Frame {
msec: 2096
- hash: "0960f7192633036319aa3500dbf38d2b"
+ hash: "08136d3c3de44ddab23d2d136ba1f310"
}
Frame {
msec: 2112
- hash: "22ececdfdd7eb5a8999df153de47c2e6"
+ hash: "de701d641e004b61a3c0609556f52fe0"
}
Frame {
msec: 2128
- hash: "f77abe52bd76bca4b728415c4dfd52dc"
+ hash: "4f7acd87f4de119ad88a53d2c9881037"
}
Key {
type: 7
@@ -602,99 +602,99 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "6d19c9df56ed8037dd5a123945b6fea0"
+ hash: "deaf3c8a4680ef6f52cb4674a97e0767"
}
Frame {
msec: 2160
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2176
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2192
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2208
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2224
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2240
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2256
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2272
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2288
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2304
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2320
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2336
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2352
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2368
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2384
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2400
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2416
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2432
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2448
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2464
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2480
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2496
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 2512
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Key {
type: 6
@@ -706,27 +706,27 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "3e0fa3d0d36a4ea51e9e89933d91e58a"
+ hash: "fe67b3a48a8a074377be64f619d5922a"
}
Frame {
msec: 2544
- hash: "3e0fa3d0d36a4ea51e9e89933d91e58a"
+ hash: "fe67b3a48a8a074377be64f619d5922a"
}
Frame {
msec: 2560
- hash: "eea826901b19fb3c7aff8594d8030acb"
+ hash: "088691f4f46f7a8c9a3b8ea766d9a437"
}
Frame {
msec: 2576
- hash: "a673c5dbc0b1b7bf585319a923db6478"
+ hash: "bd747ea04c3b36378374f8ea1031458f"
}
Frame {
msec: 2592
- hash: "c9fa9bdb8c8ad8c1144feb4a7f9ae96e"
+ hash: "2ebd0e3373eb75a3ad986e203952f78a"
}
Frame {
msec: 2608
- hash: "646601d0aabe76467c3317fb12e785e5"
+ hash: "b4d89e4f3aef9f351facd13bd83f3022"
}
Key {
type: 7
@@ -738,67 +738,67 @@ VisualTest {
}
Frame {
msec: 2624
- hash: "a88500a959cd4127528a74af4979d83a"
+ hash: "091de1bd1719e1fa6d914cf9708f4ac6"
}
Frame {
msec: 2640
- hash: "ab288556e0bff85a48be364ee7a61b18"
+ hash: "0097d8ed156cb0c78c48dfacc557cba8"
}
Frame {
msec: 2656
- hash: "db5d053fd16f3bd6e3048f1d7f123027"
+ hash: "faeb379e01283cb21ea695e96727918d"
}
Frame {
msec: 2672
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2688
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2704
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2720
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2736
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2752
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2768
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2784
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2800
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2816
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2832
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2848
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2864
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2880
@@ -806,27 +806,27 @@ VisualTest {
}
Frame {
msec: 2896
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2912
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2928
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2944
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2960
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 2976
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Key {
type: 6
@@ -838,39 +838,39 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "dfc6df49c4340429529e88e877940158"
+ hash: "b00a29d67edc26e75f5298b2836d4e47"
}
Frame {
msec: 3008
- hash: "dfc6df49c4340429529e88e877940158"
+ hash: "b00a29d67edc26e75f5298b2836d4e47"
}
Frame {
msec: 3024
- hash: "e44644da7159bfde1a1cf6148d268c53"
+ hash: "6e47c87b5063877a609e8d23ddf2d314"
}
Frame {
msec: 3040
- hash: "f0045733c7f4e799c4ca49ec28c7c652"
+ hash: "06f147a69c3e903905376ef1229290bf"
}
Frame {
msec: 3056
- hash: "8b0ded24c343556849ea67d191c03a17"
+ hash: "5f02ff1a1207f17efd224ccc800b0057"
}
Frame {
msec: 3072
- hash: "0c50a579850c3eb43c4824bf7e8b1d12"
+ hash: "6c0860fdb216bb79fd2da4647792628d"
}
Frame {
msec: 3088
- hash: "747d2205db14cf72dc5989e92b8076ab"
+ hash: "eb579f67620adb762722428d44a1d841"
}
Frame {
msec: 3104
- hash: "a0a9196cb896eadf411cbcccaa069f10"
+ hash: "c579017a82e34a471a95f8a116a20b9e"
}
Frame {
msec: 3120
- hash: "c682ad7747f7245b4e213fc078d51e8f"
+ hash: "bb5c08ff104b230829579dfb8015bdcc"
}
Key {
type: 7
@@ -882,95 +882,95 @@ VisualTest {
}
Frame {
msec: 3136
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3152
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3168
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3184
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3200
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3216
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3232
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3248
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3264
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3280
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3296
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3312
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3328
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3344
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3360
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3376
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3392
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3408
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3424
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3440
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3456
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3472
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 3488
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Key {
type: 6
@@ -982,35 +982,35 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "115b81c715a58e66c3d1f09bb03fe97f"
+ hash: "5aa664f268433f2724a1ab2cea1d6d25"
}
Frame {
msec: 3520
- hash: "115b81c715a58e66c3d1f09bb03fe97f"
+ hash: "5aa664f268433f2724a1ab2cea1d6d25"
}
Frame {
msec: 3536
- hash: "a994e45c41afe0a4ab7d65c27139f3d8"
+ hash: "9e4854fd0c533efa75aec7d9a8bc41dd"
}
Frame {
msec: 3552
- hash: "b02ecf8c3413752aa1d2bfa6e08184ca"
+ hash: "c4eee4eca804007dca6e6d9379cbfb1b"
}
Frame {
msec: 3568
- hash: "85ef0bedcb66676ca658068561d8df8e"
+ hash: "c59774f00d54c0353b41202a39fc0dbd"
}
Frame {
msec: 3584
- hash: "435bce6119a6542ce9ad743baa70ceb0"
+ hash: "910e6b5b05530c60874eee00df0d62cf"
}
Frame {
msec: 3600
- hash: "5918c9c068ca62795d7b97ac818d79d5"
+ hash: "5b606a7a697c6d53fbe42e33333f96cc"
}
Frame {
msec: 3616
- hash: "ff3ebc0c6f7eb39bbc10fad07b671d82"
+ hash: "e1fce42312e8a31d74add4a447dd3df9"
}
Key {
type: 7
@@ -1022,55 +1022,55 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "0426b9666ccd84aa0d095e47a9379bd7"
+ hash: "6250cb9ea51309922cf0a6647593bfee"
}
Frame {
msec: 3648
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3664
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3680
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3696
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3712
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3728
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3744
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3760
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3776
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3792
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3808
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3824
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3840
@@ -1078,39 +1078,39 @@ VisualTest {
}
Frame {
msec: 3856
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3872
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3888
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3904
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3920
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3936
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3952
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3968
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 3984
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Key {
type: 6
@@ -1122,35 +1122,35 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "30901e72d40975b92c9d96c0f52b458c"
+ hash: "d6eecfb695deacae4bb2fe5adb2d5c3d"
}
Frame {
msec: 4016
- hash: "30901e72d40975b92c9d96c0f52b458c"
+ hash: "d6eecfb695deacae4bb2fe5adb2d5c3d"
}
Frame {
msec: 4032
- hash: "f4f84cb8e42e269b121b2ffa9204db38"
+ hash: "b48f481a8149c03139e29b619dbb3f3c"
}
Frame {
msec: 4048
- hash: "41e9198277d0d590d176fd9972bfbf58"
+ hash: "994ba7fc208bbf081d54384d82d0fc07"
}
Frame {
msec: 4064
- hash: "664bddf12068363afc89f8fc52d133c0"
+ hash: "05d30293c12eb6a3e21cebd42bb1f383"
}
Frame {
msec: 4080
- hash: "18a12504f09551bd6e3013ef1bbf40f9"
+ hash: "f2b4140a5d26f241a27e2a3027785559"
}
Frame {
msec: 4096
- hash: "95717e24255e442d955d3c64691576e0"
+ hash: "1189e519fd1611c5603e598fbcadca44"
}
Frame {
msec: 4112
- hash: "7cb9b9a71bfb1cd3061efde86e57ff34"
+ hash: "ee98893d95e55cb76966c0cfe29d237b"
}
Key {
type: 7
@@ -1162,171 +1162,171 @@ VisualTest {
}
Frame {
msec: 4128
- hash: "a090d2c37080361240769198f1032b7a"
+ hash: "9ff3010efeb8707c864def782405ad4c"
}
Frame {
msec: 4144
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4160
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4176
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4192
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4208
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4224
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4240
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4256
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4272
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4288
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4304
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4320
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4336
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4352
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4368
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4384
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4400
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4416
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4432
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4448
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4464
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4480
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4496
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4512
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4528
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4544
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4560
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4576
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4592
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4608
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4624
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4640
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4656
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4672
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4688
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4704
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4720
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4736
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4752
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4768
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4784
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4800
@@ -1334,79 +1334,79 @@ VisualTest {
}
Frame {
msec: 4816
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4832
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4848
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4864
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4880
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4896
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4912
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4928
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4944
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4960
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4976
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 4992
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5008
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5024
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5040
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5056
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5072
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5088
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Frame {
msec: 5104
- hash: "c37a8dc01901eb4a1fb0d6ac3c91fca0"
+ hash: "c842d544f87332bc133833e8966240ee"
}
Key {
type: 6
@@ -1418,35 +1418,35 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "0a524f53903aa1651152fd4a6068c14c"
+ hash: "a857238777462319fcedd4f359ce1a04"
}
Frame {
msec: 5136
- hash: "0a524f53903aa1651152fd4a6068c14c"
+ hash: "a857238777462319fcedd4f359ce1a04"
}
Frame {
msec: 5152
- hash: "bbef86b80161702653b88f6cfa88528c"
+ hash: "d9248d1257bf0232dcdf29fca7536ad1"
}
Frame {
msec: 5168
- hash: "26de302dde8fb22e509c0b3c8cb37abd"
+ hash: "0405e029cc4b2fa80761c06fb8898b0d"
}
Frame {
msec: 5184
- hash: "9f3ec01bf5ae12383a58a716d462d479"
+ hash: "a36fb7e32e6aafbb84b62ef56be3cf70"
}
Frame {
msec: 5200
- hash: "cbfa90ccd871ba1ab12f75e8e5f2e11e"
+ hash: "9846c73bbe57277bd36bbca1c489e644"
}
Frame {
msec: 5216
- hash: "c5ba4fd178429a1cb44ec96da8a1a404"
+ hash: "8f4840715082c48d520ddb55501cf8eb"
}
Frame {
msec: 5232
- hash: "fb87133ef012abe68491be1cc627d580"
+ hash: "478fde3a6fd8cecc222b8c16743d231f"
}
Key {
type: 7
@@ -1458,123 +1458,123 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "0f8147bf9cd92eec88ea6f8b9f2ad5eb"
+ hash: "b2bb760c93d26c6db21ce6beccd36b66"
}
Frame {
msec: 5264
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5280
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5296
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5312
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5328
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5344
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5360
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5376
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5392
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5408
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5424
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5440
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5456
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5472
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5488
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5504
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5520
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5536
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5552
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5568
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5584
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5600
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5616
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5632
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5648
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5664
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5680
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5696
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Frame {
msec: 5712
- hash: "f2ca9897c874faa97f2d959964da4bd1"
+ hash: "1ef605e1a68ff993f4f971a85a6bee97"
}
Key {
type: 6
@@ -1586,11 +1586,11 @@ VisualTest {
}
Frame {
msec: 5728
- hash: "f78a62f7143dbf86e0b153fe08a9bf6e"
+ hash: "4780d8094833831f27d1aff3e0f9689f"
}
Frame {
msec: 5744
- hash: "f78a62f7143dbf86e0b153fe08a9bf6e"
+ hash: "4780d8094833831f27d1aff3e0f9689f"
}
Frame {
msec: 5760
@@ -1598,27 +1598,27 @@ VisualTest {
}
Frame {
msec: 5776
- hash: "e89f6d4727cf92ce87e4c48eb34074a6"
+ hash: "93c8d7980de378a055b7ca824882ae4e"
}
Frame {
msec: 5792
- hash: "eb7761ac018dbb93b72acd3126a7eace"
+ hash: "e0abe402f89c5d84e5a02f0e4bcbd5e3"
}
Frame {
msec: 5808
- hash: "a70638789eeaada677afa68a7dcc1f97"
+ hash: "067ca20bcfab459a28af7e8dc2830032"
}
Frame {
msec: 5824
- hash: "bb709f17058d1f41b34831d1055195cc"
+ hash: "d27dc1a08c66cf5f4a84efe3be522ec3"
}
Frame {
msec: 5840
- hash: "3b459f10eb299712180fed277c75ca22"
+ hash: "639f7555adc7958e807c2e774694fe25"
}
Frame {
msec: 5856
- hash: "8f77a04a3690f7cbfae4858c8fff1a24"
+ hash: "b55f5fcbc2284736695049b2cdc9c8ce"
}
Key {
type: 7
@@ -1630,107 +1630,107 @@ VisualTest {
}
Frame {
msec: 5872
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5888
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5904
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5920
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5936
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5952
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5968
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 5984
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6000
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6016
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6032
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6048
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6064
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6080
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6096
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6112
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6128
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6144
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6160
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6176
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6192
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6208
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6224
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6240
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6256
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Frame {
msec: 6272
- hash: "0d20e56256c2aa305c487c7875249c45"
+ hash: "f209867bbf74dbe0385655a522e322f1"
}
Key {
type: 6
@@ -1742,39 +1742,39 @@ VisualTest {
}
Frame {
msec: 6288
- hash: "80a729efc25a86d09977f6abe4b96e77"
+ hash: "48910947dd160b33251c54ff45f6a0db"
}
Frame {
msec: 6304
- hash: "80a729efc25a86d09977f6abe4b96e77"
+ hash: "48910947dd160b33251c54ff45f6a0db"
}
Frame {
msec: 6320
- hash: "75e57461badc3fd9c38548c751a86b62"
+ hash: "20b0f988a1517d67a0d3c78ae8af4e5a"
}
Frame {
msec: 6336
- hash: "b0f49c8a67bdf1285334514d78a6b613"
+ hash: "355b5b161176c31bcbae198b1581f59b"
}
Frame {
msec: 6352
- hash: "564bca050cfc30f19b77989a1e3a26d8"
+ hash: "19cbb853a93bd062a53d7908df54bfbd"
}
Frame {
msec: 6368
- hash: "caca4855c581f42b26623bf717302884"
+ hash: "13fbe723f288cffd09f0a86b71457161"
}
Frame {
msec: 6384
- hash: "89db7709fcec729023c910608b504665"
+ hash: "0014ed3b1a868cf75bfffedb52674c5c"
}
Frame {
msec: 6400
- hash: "5501f75f4b8b3229a7db38df4e9cc938"
+ hash: "a1c444be02b90e69319096b8a508947d"
}
Frame {
msec: 6416
- hash: "505d12f5900fa920f47c650d24745ec5"
+ hash: "b88a3f2f3290e4262757b1f5741cb5ce"
}
Key {
type: 7
@@ -1786,75 +1786,75 @@ VisualTest {
}
Frame {
msec: 6432
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6448
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6464
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6480
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6496
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6512
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6528
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6544
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6560
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6576
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6592
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6608
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6624
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6640
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6656
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6672
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6688
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6704
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6720
@@ -1862,35 +1862,35 @@ VisualTest {
}
Frame {
msec: 6736
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6752
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6768
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6784
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6800
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6816
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6832
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Frame {
msec: 6848
- hash: "4e9b6719737e92ef409b76772a9d6b4a"
+ hash: "dc708a762ba7f1120eb14105571943f8"
}
Key {
type: 6
@@ -1902,39 +1902,39 @@ VisualTest {
}
Frame {
msec: 6864
- hash: "240f48d1c5aa1c23bf1c660a0a468283"
+ hash: "a44bb76233c69780c178dddd79cc1968"
}
Frame {
msec: 6880
- hash: "240f48d1c5aa1c23bf1c660a0a468283"
+ hash: "a44bb76233c69780c178dddd79cc1968"
}
Frame {
msec: 6896
- hash: "e1ba9a4edfd19acffdf25e51dbbc94a5"
+ hash: "154b11fd0468aa18d1ef1895f2e2923c"
}
Frame {
msec: 6912
- hash: "e40877ef6876be3f44db947af54287bc"
+ hash: "fe7ecb02e63fbb7584405e7162f0ee21"
}
Frame {
msec: 6928
- hash: "a72d66c4691d03e7b9a12df9df3d4b4d"
+ hash: "90b6fea69d106c628a9c7ff23a97e6c2"
}
Frame {
msec: 6944
- hash: "26cda82027725475f2be660a8e8b2463"
+ hash: "3e233e837e24976d441b6cabc3b74098"
}
Frame {
msec: 6960
- hash: "233e9b1c58cc338d22e3d3ca8669a33a"
+ hash: "7a490f7be5c4c0ae09421f884e9adadb"
}
Frame {
msec: 6976
- hash: "316788ce1340cb0e151d12d244a48068"
+ hash: "462d44603dd661ccf126c81197608056"
}
Frame {
msec: 6992
- hash: "6213c8fde998ae5b819f9e3f7f7ea857"
+ hash: "0b7ca73497c37255bccad6787d690236"
}
Key {
type: 7
@@ -1946,115 +1946,115 @@ VisualTest {
}
Frame {
msec: 7008
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7024
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7040
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7056
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7072
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7088
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7104
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7120
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7136
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7152
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7168
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7184
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7200
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7216
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7232
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7248
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7264
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7280
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7296
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7312
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7328
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7344
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7360
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7376
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7392
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7408
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7424
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Frame {
msec: 7440
- hash: "316d165df776e906015714372e67f452"
+ hash: "224ade5c942415100b5418a11d043611"
}
Key {
type: 6
@@ -2066,31 +2066,31 @@ VisualTest {
}
Frame {
msec: 7456
- hash: "37bfd610be786be852b78bdb933b9a01"
+ hash: "95ff2a535a13fcdded94229d53848f7c"
}
Frame {
msec: 7472
- hash: "37bfd610be786be852b78bdb933b9a01"
+ hash: "95ff2a535a13fcdded94229d53848f7c"
}
Frame {
msec: 7488
- hash: "05b41d669cdb7821d3db181c444f9667"
+ hash: "d2386e4137632f15aa5ba9dd1a138a67"
}
Frame {
msec: 7504
- hash: "2ddf3b590860a1db12d04ab4dde830a3"
+ hash: "9f2c40191c1a81f37543f5bfcb852bdf"
}
Frame {
msec: 7520
- hash: "ecc85633bf413d41da38b87d21c92653"
+ hash: "5facdbcc9d7ab0adfcb2ca9d1812a3f5"
}
Frame {
msec: 7536
- hash: "829b18a6568680d9fbf720926ec65954"
+ hash: "7bbb08470e4f3eeabe710e0ea327c467"
}
Frame {
msec: 7552
- hash: "04f844fe5b2f944d435a9c66d93d2907"
+ hash: "630abf60d09d3a685d79e6da627b3aa2"
}
Key {
type: 7
@@ -2102,31 +2102,31 @@ VisualTest {
}
Frame {
msec: 7568
- hash: "49680fff1a16c74de135a72c6b13d156"
+ hash: "d8aed706508814cdbd1ef0984f112b94"
}
Frame {
msec: 7584
- hash: "a4b4e3a49ce12e8a8a1a43a808555243"
+ hash: "d191c2dc3e2edd05bfd649dcfa51029e"
}
Frame {
msec: 7600
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7616
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7632
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7648
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7664
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7680
@@ -2134,75 +2134,75 @@ VisualTest {
}
Frame {
msec: 7696
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7712
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7728
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7744
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7760
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7776
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7792
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7808
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7824
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7840
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7856
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7872
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7888
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7904
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7920
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7936
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7952
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Frame {
msec: 7968
- hash: "aa35e3c7afbb686aca85da5f4d3dc17b"
+ hash: "7ee37281a3f5788305f779bdd33852e5"
}
Key {
type: 6
@@ -2214,39 +2214,39 @@ VisualTest {
}
Frame {
msec: 7984
- hash: "0211b4e4fe18757e34bec35eab5fde3b"
+ hash: "fb386abfd73a3feb05b573d16ffa93f9"
}
Frame {
msec: 8000
- hash: "0211b4e4fe18757e34bec35eab5fde3b"
+ hash: "fb386abfd73a3feb05b573d16ffa93f9"
}
Frame {
msec: 8016
- hash: "abbd3f1a519e8f667b2eebe75c9b4cb3"
+ hash: "fa1374155fc5427c72bd09ec5a315172"
}
Frame {
msec: 8032
- hash: "803607ec60ef51b54444a184462beb0f"
+ hash: "ee35a3edf91865e28b16b9fcab8b4c1c"
}
Frame {
msec: 8048
- hash: "e0b670a80137b3fa8ca9ae8fab5aa123"
+ hash: "10f2677f7c8efe9f64e401940dec3ef7"
}
Frame {
msec: 8064
- hash: "a291881f5d7a42973ac4a6054418259a"
+ hash: "b2c53bb14a8a6643e69cad2bbb4aacf4"
}
Frame {
msec: 8080
- hash: "c5ed7f0b91af1bf0eba6c149bccb72ab"
+ hash: "7b7c7d167aca55464d1874ed726ec646"
}
Frame {
msec: 8096
- hash: "25b094fc7f6e8442ae672439a5b10a79"
+ hash: "19a828ca70133801f1f470f6e348857b"
}
Frame {
msec: 8112
- hash: "9bc4a4dc68228a400b9e87d645e29828"
+ hash: "bc829873ea3cf8ca8484d990d4b80aa2"
}
Key {
type: 7
@@ -2258,99 +2258,99 @@ VisualTest {
}
Frame {
msec: 8128
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8144
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8160
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8176
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8192
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8208
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8224
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8240
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8256
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8272
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8288
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8304
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8320
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8336
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8352
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8368
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8384
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8400
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8416
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8432
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8448
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8464
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8480
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Frame {
msec: 8496
- hash: "4baf177df487bf872c7edd4ab4561120"
+ hash: "201b90bc27073e945bb00c85501f4dc8"
}
Key {
type: 6
@@ -2362,35 +2362,35 @@ VisualTest {
}
Frame {
msec: 8512
- hash: "2eabf99cadf1ded6a355bdf39715ad57"
+ hash: "d0d487fd66bcf4177188d4862bd74bc0"
}
Frame {
msec: 8528
- hash: "2eabf99cadf1ded6a355bdf39715ad57"
+ hash: "d0d487fd66bcf4177188d4862bd74bc0"
}
Frame {
msec: 8544
- hash: "7e70fd7a53929ef47f69c63273818ee1"
+ hash: "4a4c2e49e4852748916a4d68710e4ae6"
}
Frame {
msec: 8560
- hash: "e76066a86a120d7abf0d645c804c9e69"
+ hash: "0135092d8a296b7121495cc3994a0f9d"
}
Frame {
msec: 8576
- hash: "e79a0e6badc18ded04e07ce6b805b493"
+ hash: "7e004aae70236568d635ba929e085b2b"
}
Frame {
msec: 8592
- hash: "67891f5078a0c34a3fb17bbc325b9011"
+ hash: "3e6a4f60a57515a6bfe4d803c7c22da8"
}
Frame {
msec: 8608
- hash: "6533d214e86aa581da50d26cc1bcd34e"
+ hash: "142b866861f539837b0bdabaf48028e7"
}
Frame {
msec: 8624
- hash: "c649e873c3ce3fe5639e8d9b9912eafe"
+ hash: "32a4757602c923366566d9005c78f6cf"
}
Key {
type: 7
@@ -2406,107 +2406,107 @@ VisualTest {
}
Frame {
msec: 8656
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8672
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8688
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8704
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8720
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8736
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8752
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8768
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8784
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8800
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8816
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8832
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8848
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8864
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8880
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8896
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8912
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8928
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8944
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8960
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8976
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 8992
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 9008
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 9024
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 9040
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Frame {
msec: 9056
- hash: "3b0e8ae88404e6c12e7918bfc30dc49e"
+ hash: "358a3fbfa70526a40f2179cb2fd100d4"
}
Key {
type: 6
@@ -2518,39 +2518,39 @@ VisualTest {
}
Frame {
msec: 9072
- hash: "72494522826c29edd9a763342d8ee909"
+ hash: "b1dc330f31b064f1e3ff4e913773cde8"
}
Frame {
msec: 9088
- hash: "72494522826c29edd9a763342d8ee909"
+ hash: "b1dc330f31b064f1e3ff4e913773cde8"
}
Frame {
msec: 9104
- hash: "ecba7d108741a940d77920db52f6bc47"
+ hash: "a0419dede71451f36c93960c8ef8c00c"
}
Frame {
msec: 9120
- hash: "6aa456342c3bb8b6071c28c5d550929e"
+ hash: "b8141758fc93aa1b286fd60f91e6fa7e"
}
Frame {
msec: 9136
- hash: "bd94dbfa0651b9060cacdbe9a9adc38c"
+ hash: "8b0d786f239c545be3f51622c336f1e1"
}
Frame {
msec: 9152
- hash: "bb6e75073be7b1e9f3c66761b72611b2"
+ hash: "25ec52efac83de4f8cade8f257b93b8e"
}
Frame {
msec: 9168
- hash: "11bfc218dd57a9909b1fd7f021577cfa"
+ hash: "5a1476841b9aaa0e85c397c0447be352"
}
Frame {
msec: 9184
- hash: "d2fbc4d380862423ad2d3a33468b417d"
+ hash: "d648b0911e6ab78e53121fde8b66b50b"
}
Frame {
msec: 9200
- hash: "0ca09d4275b1c36575e484d79a7d8d2a"
+ hash: "f552863ff4b76286d03240409c0a928b"
}
Key {
type: 7
@@ -2562,99 +2562,99 @@ VisualTest {
}
Frame {
msec: 9216
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9232
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9248
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9264
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9280
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9296
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9312
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9328
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9344
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9360
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9376
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9392
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9408
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9424
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9440
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9456
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9472
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9488
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9504
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9520
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9536
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9552
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9568
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9584
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9600
@@ -2662,218 +2662,218 @@ VisualTest {
}
Frame {
msec: 9616
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9632
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9648
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9664
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9680
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9696
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9712
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9728
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9744
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9760
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9776
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9792
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9808
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9824
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9840
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9856
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9872
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9888
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9904
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9920
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9936
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9952
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9968
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 9984
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10000
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10016
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10032
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10048
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10064
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10080
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10096
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10112
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10128
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10144
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10160
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10176
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10192
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10208
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10224
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10240
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10256
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10272
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10288
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10304
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10320
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10336
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10352
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10368
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
}
Frame {
msec: 10384
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10400
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10416
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
Frame {
msec: 10432
- hash: "d157fdaf13170250e66768364e90e820"
+ hash: "f3b4cab7975190f756c923f16ce4c298"
}
}
diff --git a/tests/auto/declarative/visual/focusscope/test3.qml b/tests/auto/declarative/visual/focusscope/test3.qml
index af06469..b5feeb5 100644
--- a/tests/auto/declarative/visual/focusscope/test3.qml
+++ b/tests/auto/declarative/visual/focusscope/test3.qml
@@ -41,7 +41,7 @@ Rectangle {
delegate: VerticalDelegate
preferredHighlightBegin: 100
preferredHighlightEnd: 101
- strictlyEnforceHighlightRange: true
+ highlightRangeMode: ListView.StrictlyEnforceRange
}
diff --git a/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.0.png b/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.0.png
index b2734e4..5631a46 100644
--- a/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.0.png
+++ b/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.qml b/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.qml
index d5f1cff..cfd832e 100644
--- a/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.qml
+++ b/tests/auto/declarative/visual/qfxtext/elide/data-X11/elide.qml
@@ -6,239 +6,239 @@ VisualTest {
}
Frame {
msec: 16
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 32
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 48
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 64
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 80
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 96
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 112
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 128
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 144
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 160
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 176
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 192
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 208
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 224
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 240
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 256
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 272
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 288
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 304
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 320
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 336
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 352
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 368
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 384
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 400
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 416
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 432
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 448
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 464
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 480
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 496
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 512
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 528
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 544
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 560
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 576
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 592
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 608
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 624
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 640
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 656
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 672
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 688
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 704
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 720
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 736
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 752
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 768
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 784
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 800
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 816
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 832
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 848
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 864
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 880
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 896
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 912
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 928
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 944
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 960
@@ -246,34 +246,34 @@ VisualTest {
}
Frame {
msec: 976
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
}
Frame {
msec: 992
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 1008
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 1024
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 1040
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
Frame {
msec: 1056
- hash: "dd213807dd517c25972f0f6f42b01c17"
+ hash: "48e2da07fd229d9db6afc0eda494cd11"
}
}
diff --git a/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.0.png b/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.0.png
index 6d3931c..6e2b625 100644
--- a/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.0.png
+++ b/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.qml b/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.qml
index a43fcdd..0c06196 100644
--- a/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.qml
+++ b/tests/auto/declarative/visual/qfxtext/elide/data-X11/multilength.qml
@@ -6,239 +6,239 @@ VisualTest {
}
Frame {
msec: 16
- hash: "0d036aed3200afec73b1fc10cda324af"
+ hash: "873e914454b7a040b05649ebd1a2f8c5"
}
Frame {
msec: 32
- hash: "e117576c30a5bebb866ee8e0d596f510"
+ hash: "7682a4f1e361ca252da9713734a598e8"
}
Frame {
msec: 48
- hash: "2a00d57edee71da236ef9a041e7ed0d6"
+ hash: "fa8884b550c8df872f96b61557163bcf"
}
Frame {
msec: 64
- hash: "fa326ddfc21828d98dd38964c6e9b09b"
+ hash: "b84ecf9e38f126c3e32defee831d9462"
}
Frame {
msec: 80
- hash: "02d3d8f626f0a3afd57affce32f10cff"
+ hash: "21cc08f22d1f1fcb38b27a3a4259debe"
}
Frame {
msec: 96
- hash: "81abd357826e75917f5cb3758c0cdd4a"
+ hash: "93bdfeab813e25e85917f49c0d5f1314"
}
Frame {
msec: 112
- hash: "3c544d599c735224bda95a3a9cbf413f"
+ hash: "5f03c252602e60fe19879945fa77c203"
}
Frame {
msec: 128
- hash: "59ef105daf3d509ab17b618fc761b4dc"
+ hash: "f0b2079f6c512bf80989ebfdbec4cfd8"
}
Frame {
msec: 144
- hash: "f61d62a092cc1adf7576992d285eb60a"
+ hash: "9e7bb12d5b7605fc1d78ed9b2a549527"
}
Frame {
msec: 160
- hash: "8c0f2f793ea61df2dff38ac609365da1"
+ hash: "242bbbe6da87708c92fd47607ecb789d"
}
Frame {
msec: 176
- hash: "28f9372f9ecfd6c33e5578ea2b8bd202"
+ hash: "f1db5c3a230b4d3e2e1dfefe6bf032a1"
}
Frame {
msec: 192
- hash: "129757726f161c58ad52c8a2bb8ff54d"
+ hash: "a416e820efd8e173cc52372218513e33"
}
Frame {
msec: 208
- hash: "517aa84afac3efea0b21fff497951e69"
+ hash: "df711ab70c6087f8138fded16167f069"
}
Frame {
msec: 224
- hash: "fce8967bf12f6525b21c644aaca2fffd"
+ hash: "fb28eb2eeccfab28299640ef996c1115"
}
Frame {
msec: 240
- hash: "926108bca8cb3a21b29207e0dca29d9d"
+ hash: "c72c6d79a50dd7147f6b33784880eb36"
}
Frame {
msec: 256
- hash: "41c0d7a87ad0995c3343f9e2bee558a4"
+ hash: "4421027e65e95f98499ca53c57220ede"
}
Frame {
msec: 272
- hash: "7992a2eb7a561aa28a9a2f693dab0d5f"
+ hash: "b7fbfb90d8cc167809e8e846d9021b4b"
}
Frame {
msec: 288
- hash: "b2712c6162cea59cfd18966713252512"
+ hash: "004614b1bf18e9aa78e78509c4f289aa"
}
Frame {
msec: 304
- hash: "1fa71faa48d7f414a4a6b93214a39a44"
+ hash: "1792bbd8b69bae1d92fed2a6bcfe0187"
}
Frame {
msec: 320
- hash: "f1ffc3a012ae78f88a5f698944f605a2"
+ hash: "957a8b95d6e85885d854b8eb1db10b04"
}
Frame {
msec: 336
- hash: "62dfc0e3846e7641453f6bf077bb0671"
+ hash: "d00c3e4d6d8e8d04b949840c28d73a33"
}
Frame {
msec: 352
- hash: "167f30be62b60eb0e08af046fe18fbb7"
+ hash: "2b79feaa62d773d92d8a684685b2004c"
}
Frame {
msec: 368
- hash: "1e441db0c591642ce9c0457436708d13"
+ hash: "ef2f11b187028de0c56b23db3168fbc8"
}
Frame {
msec: 384
- hash: "f4400c089b8e4391c6827323333ef733"
+ hash: "3a489a96aaeca80355313198b935691d"
}
Frame {
msec: 400
- hash: "6b4e44cb73c62dd833cf52391e8b55a2"
+ hash: "389f1798f900795a8686c38ace755974"
}
Frame {
msec: 416
- hash: "12286364840fa446009a9005ca0b25fe"
+ hash: "34fc20be52fe3843420819b9adb90b22"
}
Frame {
msec: 432
- hash: "67971a61bfe3113dcf7404137d58cc65"
+ hash: "fa715c5b6640eafe204bf3b8095c74b9"
}
Frame {
msec: 448
- hash: "3ff170f552466fa3a0494fc489363f68"
+ hash: "8e8315edcf23167ac58228b8c28b43e6"
}
Frame {
msec: 464
- hash: "c946293a166077db9426757b2e393006"
+ hash: "c18e82038f57dd869112cb1be14e4cfe"
}
Frame {
msec: 480
- hash: "14d716e18c7fa7d27b69c93d815df9b9"
+ hash: "3f07e95b09e39f2e5d93216850f4a4d9"
}
Frame {
msec: 496
- hash: "7bc490a27378ab400658bff0334cb7dd"
+ hash: "20f0e6eaeac04d6f93565adfab485218"
}
Frame {
msec: 512
- hash: "2a3bd86f88aeb8f09f6feea8ba282942"
+ hash: "e3f66d1dfe88dd868a54a8493828ef5f"
}
Frame {
msec: 528
- hash: "1ad04b814df09f9a1c672da659ff7390"
+ hash: "d39d34f63e1b29c187249cb388552b38"
}
Frame {
msec: 544
- hash: "05a4b8bf3ceb70a01d33a5692467bd7e"
+ hash: "5d2e8df5003732f3b53fff4aaddea06c"
}
Frame {
msec: 560
- hash: "aca0effde610ed1c216b138a7dfe407f"
+ hash: "35c3aa2dae481a8f817d849b3f3151f2"
}
Frame {
msec: 576
- hash: "296b234ae49eaae3548c7d31447c0765"
+ hash: "966b78018879224948b4d85fe73d7985"
}
Frame {
msec: 592
- hash: "1254ac81bb961f210dd14cfa650da680"
+ hash: "0db067bf9debc3f36dd539cf83652fb8"
}
Frame {
msec: 608
- hash: "2b6a03813152cd87469b351339690736"
+ hash: "ea1c3249ffd2439533907ceaeaafbc56"
}
Frame {
msec: 624
- hash: "12080186fcdd5b9e73720f267cdf1065"
+ hash: "da85c0e14b95ca9a729984b67ebd52ad"
}
Frame {
msec: 640
- hash: "0cf99a1742df091f0715489d7a54bcd8"
+ hash: "5c26ae844ac52dbe131fed0638787aac"
}
Frame {
msec: 656
- hash: "bbbde5370000d3bec9872eab0d2c0bd0"
+ hash: "4b09c23ad624db80afcb2a6c1d5ddb96"
}
Frame {
msec: 672
- hash: "32cb6332b3028ef515ce328450769bd7"
+ hash: "9995deb3d22b418a19093b4b988b3fcc"
}
Frame {
msec: 688
- hash: "9696c6ea620e833cc1290710895d164f"
+ hash: "77e53358f2d4392d0ba988187e7e272c"
}
Frame {
msec: 704
- hash: "cce4fc1f40467d22a1a05ec005cad93a"
+ hash: "3fbbb73e790cf4a0583531fe1580f761"
}
Frame {
msec: 720
- hash: "5466c6bec6b3b0eee159ffcb5ad1130c"
+ hash: "9d562e141095a258ee61463e644d9889"
}
Frame {
msec: 736
- hash: "2d8ccdca543eb52b1f5f947490d284c5"
+ hash: "d05633ca49f96bf327bed5c9c0f6ac98"
}
Frame {
msec: 752
- hash: "a72cf61a2e5c70cbdb2b9e99d588ffe1"
+ hash: "34c38e40e831dbede8fa83de31ed76aa"
}
Frame {
msec: 768
- hash: "2885a4a60d231b8bed4f444f110cd735"
+ hash: "288e52c8be54f4914f687cef4ce1f24a"
}
Frame {
msec: 784
- hash: "4167cbe045e6f922797eeed9378e96b6"
+ hash: "0b8b744aaf67e8b17fa459bb0ffb6db5"
}
Frame {
msec: 800
- hash: "2a903361ed6c58659741274eac6c19f4"
+ hash: "273dbe3e8c21bfeafa516d07778928c8"
}
Frame {
msec: 816
- hash: "e98ad2f87ebb183832efba5954228bea"
+ hash: "ef94ee1885287c72fa78038547d98b96"
}
Frame {
msec: 832
- hash: "e875b1d4412fd8a86a6e71b08c078fe0"
+ hash: "965e6387672319ac04fdc42768e581f1"
}
Frame {
msec: 848
- hash: "6fb0d9e4237a74552b9067c288e0d5dd"
+ hash: "95553d8aaece94c7017e57b03cd46c9a"
}
Frame {
msec: 864
- hash: "a64b5a60fe0184b4e439b157409f7567"
+ hash: "bdaf35b920e5b08b8639d452afd2d51e"
}
Frame {
msec: 880
- hash: "102d5f88cf9ae13af9983936dbc2ecae"
+ hash: "0ed16f00e89327dc8679bec42179c4ce"
}
Frame {
msec: 896
- hash: "e1d58edd9cdc3902af02c263b9b357a1"
+ hash: "8c93e0ac399e09e98e34b90654e0e42a"
}
Frame {
msec: 912
- hash: "d8a934c488f1e80ed49108b360022576"
+ hash: "93798fbb33adb6c813018757cfa34017"
}
Frame {
msec: 928
- hash: "d918eae34d503a0c3669fa0b5fbd7dad"
+ hash: "db4d7581e9a1f082a2c29ef7482a7893"
}
Frame {
msec: 944
- hash: "bba616d8933bb054735e235782689c95"
+ hash: "67e074c1e083334de84a3549f4ee9ca4"
}
Frame {
msec: 960
@@ -246,58 +246,58 @@ VisualTest {
}
Frame {
msec: 976
- hash: "12b8f8889033ecddabf0b20585157a5e"
+ hash: "b1122c815a755c9988bcf03a3f7d7d6d"
}
Frame {
msec: 992
- hash: "afe7a8d6184f9ebef435e1857a7f08b2"
+ hash: "31148bae6653bdc3f1827d06de845663"
}
Frame {
msec: 1008
- hash: "d222b51d852e63a9e2401c57b86c17f7"
+ hash: "812428a944086ca46e102891964dac69"
}
Frame {
msec: 1024
- hash: "36196bcde10012a2e0624ae062da5fdb"
+ hash: "ee7bb66bd7e8623325200ac994f8b41a"
}
Frame {
msec: 1040
- hash: "e4cb79b57774c652c3bcf86b7e8cbce9"
+ hash: "6bd21a98e5c373a2c78334a0255e7750"
}
Frame {
msec: 1056
- hash: "79c040be179aa486c6a3e2a5198944af"
+ hash: "2e8e1eea14068b0e82464ed52ec1ab7a"
}
Frame {
msec: 1072
- hash: "4334a272bed3fdaa1e44bb81c55d3e3a"
+ hash: "6dca5756e20eeb778e31d7b602ce77d7"
}
Frame {
msec: 1088
- hash: "5aeebf849fb7101b87ec699c4590a348"
+ hash: "3cbb6700b9e30864a2b1e3d4d71d2a78"
}
Frame {
msec: 1104
- hash: "c18780619ee3069f2ba17d00b85d6941"
+ hash: "c4d0230d2c4f73191a514e5df4c0b083"
}
Frame {
msec: 1120
- hash: "ef17d1d1b566fc0e51cef54e3f460b91"
+ hash: "a33df967fe43151dfc503d2ac78f8ca8"
}
Frame {
msec: 1136
- hash: "2c76668596c354dadea513325b79d14e"
+ hash: "0c7ff101efe60b600cacaf8d04d79053"
}
Frame {
msec: 1152
- hash: "6055f676c9fa2a3333301e6dac958b34"
+ hash: "d246cfb75d89b9666877860aaf45ba60"
}
Frame {
msec: 1168
- hash: "3fc9e199eac26907d95381e064c0e5cd"
+ hash: "1130998aa2618a29ec6bc4b9219eedfa"
}
Frame {
msec: 1184
- hash: "60edfb3a25700ead1795e226015eb229"
+ hash: "741dd83003633bbf8d28c2d4ddd8a2d0"
}
}
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png b/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png
new file mode 100644
index 0000000..1f28b9a
--- /dev/null
+++ b/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml b/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml
new file mode 100644
index 0000000..d920a4c
--- /dev/null
+++ b/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml
@@ -0,0 +1,83 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 32
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 48
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 64
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 80
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 96
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 112
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 128
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 144
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 160
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 176
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 192
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 208
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 224
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 240
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 256
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 272
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 288
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+ Frame {
+ msec: 304
+ hash: "0c70d855adc847fe33d7959ccb98bb8b"
+ }
+}
diff --git a/tests/auto/declarative/visual/rect/GradientRect.qml b/tests/auto/declarative/visual/rect/GradientRect.qml
index ed56418..1d3ec98 100644
--- a/tests/auto/declarative/visual/rect/GradientRect.qml
+++ b/tests/auto/declarative/visual/rect/GradientRect.qml
@@ -2,8 +2,8 @@ import Qt 4.6
Item {
id: rect
- property string color
- property string border : ""
+ property color color
+ property color border : Qt.rgba(0,0,0,0)
property int rotation
property int radius
property int borderWidth
@@ -14,7 +14,7 @@ Item {
anchors.centerIn: parent; rotation: rect.rotation;
Rectangle {
anchors.centerIn: parent; width: 80; height: 80
- border.color: rect.border; border.width: rect.border != "" ? 2 : 0
+ border.color: rect.border; border.width: rect.border != Qt.rgba(0,0,0,0) ? 2 : 0
radius: rect.radius; smooth: rect.smooth
gradient: Gradient {
GradientStop { position: 0.0; color: rect.color }
diff --git a/tests/auto/declarative/visual/rect/MyRect.qml b/tests/auto/declarative/visual/rect/MyRect.qml
index 9b6c3ae..22e0948 100644
--- a/tests/auto/declarative/visual/rect/MyRect.qml
+++ b/tests/auto/declarative/visual/rect/MyRect.qml
@@ -2,8 +2,8 @@ import Qt 4.6
Item {
id: rect
- property string color
- property string border : ""
+ property color color
+ property color border : Qt.rgba(0,0,0,0)
property int rotation
property int radius
property int borderWidth
@@ -14,7 +14,7 @@ Item {
anchors.centerIn: parent; rotation: rect.rotation;
Rectangle {
anchors.centerIn: parent; width: 80; height: 80
- color: rect.color; border.color: rect.border; border.width: rect.border != "" ? 2 : 0
+ color: rect.color; border.color: rect.border; border.width: rect.border != Qt.rgba(0,0,0,0) ? 2 : 0
radius: rect.radius; smooth: rect.smooth
}
}
diff --git a/tests/auto/declarative/visual/rect/data-X11/rect-painting.0.png b/tests/auto/declarative/visual/rect/data-X11/rect-painting.0.png
new file mode 100644
index 0000000..9af5b68
--- /dev/null
+++ b/tests/auto/declarative/visual/rect/data-X11/rect-painting.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/rect/data-X11/rect-painting.qml b/tests/auto/declarative/visual/rect/data-X11/rect-painting.qml
new file mode 100644
index 0000000..8f780e1
--- /dev/null
+++ b/tests/auto/declarative/visual/rect/data-X11/rect-painting.qml
@@ -0,0 +1,355 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 32
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 48
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 64
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 80
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 96
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 112
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 128
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 144
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 160
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 176
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 192
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 208
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 224
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 240
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 256
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 272
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 288
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 304
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 320
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 336
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 352
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 368
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 384
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 400
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 416
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 432
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 448
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 464
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 480
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 496
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 512
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 528
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 544
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 560
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 576
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 592
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 608
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 624
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 640
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 656
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 672
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 688
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 704
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 720
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 736
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 752
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 768
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 784
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 800
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 816
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 832
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 848
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 864
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 880
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 896
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 912
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 928
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 944
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 960
+ image: "rect-painting.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 992
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1008
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1024
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1040
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1056
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1072
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1088
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1104
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1120
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1136
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1152
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1168
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1184
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1200
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1216
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1232
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1248
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1264
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1280
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1296
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1312
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1328
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1344
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+ Frame {
+ msec: 1360
+ hash: "8a4f7a3d55b1b19fb1b8c211c00a7ba7"
+ }
+}
diff --git a/tests/auto/declarative/visual/tst_visual.cpp b/tests/auto/declarative/visual/tst_visual.cpp
index 0cd712b..e40dec7 100644
--- a/tests/auto/declarative/visual/tst_visual.cpp
+++ b/tests/auto/declarative/visual/tst_visual.cpp
@@ -258,10 +258,39 @@ void usage()
fprintf(stderr, "\n");
fprintf(stderr, "QML related options\n");
fprintf(stderr, " -record file : record new test data for file\n");
+ fprintf(stderr, " -recordnovisuals file : record new test data for file, but ignore visuals\n");
fprintf(stderr, " -play file : playback test data for file, printing errors\n");
fprintf(stderr, " -testvisuals file : playback test data for file, without errors\n");
fprintf(stderr, " -updatevisuals file : playback test data for file, accept new visuals for file\n");
fprintf(stderr, " -updateplatformvisuals file : playback test data for file, accept new visuals for file only on current platform (MacOSX/Win32/X11/QWS/S60)\n");
+ fprintf(stderr, "\n"
+ "Visual tests are recordings of manual interactions with a QML test,\n"
+ "that can then be run automatically. To record a new test, run:\n"
+ "\n"
+ " tst_visuals -record yourtestdir/yourtest # Note, no .qml extension\n"
+ "\n"
+ "This records everything you do (try to keep it short).\n"
+ "To play back a test, run:\n"
+ "\n"
+ " tst_visuals -play yourtestdir/yourtest\n"
+ "\n"
+ "Your test may include QML code to test itself, reporting any error to an\n"
+ "'error' property on the root object - the test will fail if this property\n"
+ "gets set to anything non-empty.\n"
+ "\n"
+ "If your test changes slightly but is still correct (check with -play), you\n"
+ "can update the visuals by running:\n"
+ "\n"
+ " tst_visuals -updatevisuals yourtestdir/yourtest\n"
+ "\n"
+ "If your test includes platform-sensitive visuals (eg. text in system fonts),\n"
+ "you should create platform-specific visuals, using -updateplatformvisuals\n"
+ "instead.\n"
+ "\n"
+ "If you ONLY wish to use the 'error' property, you can record your test with\n"
+ "-recordnovisuals, or discard existing visuals with -removevisuals; the test\n"
+ "will then only fail on a syntax error, crash, or non-empty 'error' property.\n"
+ );
}
int main(int argc, char **argv)
@@ -303,7 +332,7 @@ int main(int argc, char **argv)
newArgv[newArgc++] = argv[ii];
}
- if (arg == "-help") {
+ if (arg == "-help" || arg == "-?") {
atexit(usage);
showHelp = true;
}
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 92f979f..02c8232 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -103,6 +103,8 @@ int CustomEvent::EventType = 0;
class CustomGestureRecognizer : public QGestureRecognizer
{
public:
+ static bool ConsumeEvents;
+
CustomGestureRecognizer()
{
if (!CustomEvent::EventType)
@@ -117,7 +119,9 @@ public:
QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event)
{
if (event->type() == CustomEvent::EventType) {
- QGestureRecognizer::Result result = QGestureRecognizer::ConsumeEventHint;
+ QGestureRecognizer::Result result = 0;
+ if (CustomGestureRecognizer::ConsumeEvents)
+ result |= QGestureRecognizer::ConsumeEventHint;
CustomGesture *g = static_cast<CustomGesture*>(state);
CustomEvent *e = static_cast<CustomEvent*>(event);
g->serial = e->serial;
@@ -143,6 +147,7 @@ public:
QGestureRecognizer::reset(state);
}
};
+bool CustomGestureRecognizer::ConsumeEvents = false;
// same as CustomGestureRecognizer but triggers early without the maybe state
class CustomContinuousGestureRecognizer : public QGestureRecognizer
@@ -280,6 +285,7 @@ protected:
}
};
+// TODO rename to sendGestureSequence
static void sendCustomGesture(CustomEvent *event, QObject *object, QGraphicsScene *scene = 0)
{
for (int i = CustomGesture::SerialMaybeThreshold;
@@ -322,6 +328,10 @@ private slots:
void multipleGesturesInTree();
void multipleGesturesInComplexTree();
void testMapToScene();
+ void ungrabGesture();
+ void consumeEventHint();
+ void unregisterRecognizer();
+ void autoCancelGestures();
};
tst_Gestures::tst_Gestures()
@@ -334,13 +344,14 @@ tst_Gestures::~tst_Gestures()
void tst_Gestures::initTestCase()
{
- CustomGesture::GestureType = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+ CustomGesture::GestureType = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
QVERIFY(CustomGesture::GestureType != Qt::GestureType(0));
QVERIFY(CustomGesture::GestureType != Qt::CustomGesture);
}
void tst_Gestures::cleanupTestCase()
{
+ QApplication::unregisterGestureRecognizer(CustomGesture::GestureType);
}
void tst_Gestures::init()
@@ -372,6 +383,19 @@ void tst_Gestures::customGesture()
QCOMPARE(widget.events.canceled.size(), 0);
}
+void tst_Gestures::consumeEventHint()
+{
+ GestureWidget widget;
+ widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+
+ CustomGestureRecognizer::ConsumeEvents = true;
+ CustomEvent event;
+ sendCustomGesture(&event, &widget);
+ CustomGestureRecognizer::ConsumeEvents = false;
+
+ QCOMPARE(widget.customEventsReceived, 0);
+}
+
void tst_Gestures::autoCancelingGestures()
{
GestureWidget widget;
@@ -534,7 +558,7 @@ void tst_Gestures::conflictingGestures()
parent.reset();
child->reset();
- Qt::GestureType ContinuousGesture = qApp->registerGestureRecognizer(new CustomContinuousGestureRecognizer);
+ Qt::GestureType ContinuousGesture = QApplication::registerGestureRecognizer(new CustomContinuousGestureRecognizer);
static const int ContinuousGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1;
child->grabGesture(ContinuousGesture);
// child accepts override. And it also receives another custom gesture.
@@ -547,6 +571,8 @@ void tst_Gestures::conflictingGestures()
QCOMPARE(child->events.all.count(), TotalGestureEventsCount + ContinuousGestureEventsCount);
QCOMPARE(parent.gestureOverrideEventsReceived, 0);
QCOMPARE(parent.gestureEventsReceived, 0);
+
+ QApplication::unregisterGestureRecognizer(ContinuousGesture);
}
void tst_Gestures::finishedWithoutStarted()
@@ -710,6 +736,7 @@ void tst_Gestures::graphicsItemGesture()
{
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureItem *item = new GestureItem("item");
scene.addItem(item);
@@ -772,6 +799,7 @@ void tst_Gestures::graphicsItemTreeGesture()
{
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureItem *item1 = new GestureItem("item1");
item1->setPos(100, 100);
@@ -829,6 +857,7 @@ void tst_Gestures::explicitGraphicsObjectTarget()
{
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureItem *item1 = new GestureItem("item1");
scene.addItem(item1);
@@ -882,6 +911,7 @@ void tst_Gestures::gestureOverChildGraphicsItem()
{
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureItem *item0 = new GestureItem("item0");
scene.addItem(item0);
@@ -951,7 +981,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
GestureWidget *child = new GestureWidget("child");
l->addWidget(child);
- Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
child->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture);
@@ -978,6 +1008,8 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
QCOMPARE(parent.events.all.size(), TotalGestureEventsCount);
for(int i = 0; i < child->events.all.size(); ++i)
QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType);
+
+ QApplication::unregisterGestureRecognizer(SecondGesture);
}
void tst_Gestures::multipleGesturesInTree()
@@ -989,8 +1021,8 @@ void tst_Gestures::multipleGesturesInTree()
GestureWidget *D = new GestureWidget("D", C);
Qt::GestureType FirstGesture = CustomGesture::GestureType;
- Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1 3]
A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // |
@@ -1046,6 +1078,9 @@ void tst_Gestures::multipleGesturesInTree()
QCOMPARE(A->events.all.count(FirstGesture), TotalGestureEventsCount);
QCOMPARE(A->events.all.count(SecondGesture), 0);
QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount);
+
+ QApplication::unregisterGestureRecognizer(SecondGesture);
+ QApplication::unregisterGestureRecognizer(ThirdGesture);
}
void tst_Gestures::multipleGesturesInComplexTree()
@@ -1057,12 +1092,12 @@ void tst_Gestures::multipleGesturesInComplexTree()
GestureWidget *D = new GestureWidget("D", C);
Qt::GestureType FirstGesture = CustomGesture::GestureType;
- Qt::GestureType SecondGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType ThirdGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType FourthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType FifthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType SixthGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType SeventhGesture = qApp->registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType FourthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType FifthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SixthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SeventhGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1,3,4]
A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // |
@@ -1139,6 +1174,13 @@ void tst_Gestures::multipleGesturesInComplexTree()
QCOMPARE(A->events.all.count(FifthGesture), 0);
QCOMPARE(A->events.all.count(SixthGesture), 0);
QCOMPARE(A->events.all.count(SeventhGesture), 0);
+
+ QApplication::unregisterGestureRecognizer(SecondGesture);
+ QApplication::unregisterGestureRecognizer(ThirdGesture);
+ QApplication::unregisterGestureRecognizer(FourthGesture);
+ QApplication::unregisterGestureRecognizer(FifthGesture);
+ QApplication::unregisterGestureRecognizer(SixthGesture);
+ QApplication::unregisterGestureRecognizer(SeventhGesture);
}
void tst_Gestures::testMapToScene()
@@ -1151,6 +1193,7 @@ void tst_Gestures::testMapToScene()
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureItem *item0 = new GestureItem;
scene.addItem(item0);
@@ -1166,5 +1209,150 @@ void tst_Gestures::testMapToScene()
QCOMPARE(event.mapToScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200)));
}
+void tst_Gestures::ungrabGesture() // a method on QWidget
+{
+ class MockGestureWidget : public GestureWidget {
+ public:
+ MockGestureWidget(const char *name = 0, QWidget *parent = 0)
+ : GestureWidget(name, parent) { }
+
+
+ QSet<QGesture*> gestures;
+ protected:
+ bool event(QEvent *event)
+ {
+ if (event->type() == QEvent::Gesture) {
+ QGestureEvent *gestureEvent = static_cast<QGestureEvent*>(event);
+ if (gestureEvent)
+ foreach (QGesture *g, gestureEvent->allGestures())
+ gestures.insert(g);
+ }
+ return GestureWidget::event(event);
+ }
+ };
+
+ MockGestureWidget parent("A");
+ MockGestureWidget *a = &parent;
+ MockGestureWidget *b = new MockGestureWidget("B", a);
+
+ a->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ b->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
+ b->ignoredGestures << CustomGesture::GestureType;
+
+ CustomEvent event;
+ // sending an event will cause the QGesture objects to be instantiated for the widgets
+ sendCustomGesture(&event, b);
+
+ QCOMPARE(a->gestures.count(), 1);
+ QPointer<QGesture> customGestureA;
+ customGestureA = *(a->gestures.begin());
+ QVERIFY(!customGestureA.isNull());
+ QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType);
+
+ QCOMPARE(b->gestures.count(), 1);
+ QPointer<QGesture> customGestureB;
+ customGestureB = *(b->gestures.begin());
+ QVERIFY(!customGestureB.isNull());
+ QVERIFY(customGestureA.data() == customGestureB.data());
+ QCOMPARE(customGestureB->gestureType(), CustomGesture::GestureType);
+
+ a->gestures.clear();
+ // sending an event will cause the QGesture objects to be instantiated for the widget
+ sendCustomGesture(&event, a);
+
+ QCOMPARE(a->gestures.count(), 1);
+ customGestureA = *(a->gestures.begin());
+ QVERIFY(!customGestureA.isNull());
+ QCOMPARE(customGestureA->gestureType(), CustomGesture::GestureType);
+ QVERIFY(customGestureA.data() != customGestureB.data());
+
+ a->ungrabGesture(CustomGesture::GestureType);
+ QVERIFY(customGestureA.isNull());
+ QVERIFY(!customGestureB.isNull());
+
+ a->gestures.clear();
+ a->reset();
+ // send again to 'b' and make sure a never gets it.
+ sendCustomGesture(&event, b);
+ QCOMPARE(a->gestureEventsReceived, 0);
+ QCOMPARE(a->gestureOverrideEventsReceived, 0);
+}
+
+void tst_Gestures::unregisterRecognizer() // a method on QApplication
+{
+ /*
+ The hardest usecase to get right is when we remove a recognizer while several
+ of the gestures it created are in active state and we immediately add a new recognizer
+ for the same type (thus replacing the old one).
+ The expected result is that all old gestures continue till they are finished/cancelled
+ and the new recognizer starts creating gestures immediately at registration.
+
+ This implies that deleting of the recognizer happens only when there are no more gestures
+ that it created. (since gestures might have a pointer to the recognizer)
+ */
+
+}
+
+void tst_Gestures::autoCancelGestures()
+{
+ class MockRecognizer : public QGestureRecognizer {
+ public:
+ QGestureRecognizer::Result filterEvent(QGesture *gesture, QObject *watched, QEvent *event)
+ {
+ Q_UNUSED(gesture);
+ Q_UNUSED(watched);
+ if (event->type() == QEvent::MouseButtonPress)
+ return QGestureRecognizer::GestureTriggered;
+ if (event->type() == QEvent::MouseButtonRelease)
+ return QGestureRecognizer::GestureFinished;
+ return QGestureRecognizer::Ignore;
+ }
+ };
+
+ class MockWidget : public GestureWidget {
+ public:
+ MockWidget(const char *name) : GestureWidget(name) { }
+
+ bool event(QEvent *event)
+ {
+ if (event->type() == QEvent::Gesture) {
+ QGestureEvent *ge = static_cast<QGestureEvent*>(event);
+ Q_ASSERT(ge->allGestures().count() == 1); // can't use QCOMPARE here...
+ ge->allGestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
+ }
+ return GestureWidget::event(event);
+ }
+ };
+
+ MockWidget parent("parent"); // this one sets the cancel policy to CancelAllInContext
+ parent.resize(300, 100);
+ GestureWidget *child = new GestureWidget("child", &parent);
+ child->setGeometry(10, 10, 100, 80);
+
+ Qt::GestureType type = QApplication::registerGestureRecognizer(new MockRecognizer());
+ parent.grabGesture(type, Qt::WidgetWithChildrenGesture);
+ child->grabGesture(type, Qt::WidgetWithChildrenGesture);
+
+ /*
+ An event is send to both the child and the parent, when the child gets it a gesture is triggered
+ and send to the child.
+ When the parent gets the event a new gesture is triggered and delivered to the parent. When the
+ parent gets it he accepts it and that causes the cancel policy to activate.
+ The cause of that is the gesture for the child is cancelled and send to the child as such.
+ */
+ QMouseEvent event(QEvent::MouseButtonPress, QPoint(20,20), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+ QApplication::sendEvent(child, &event);
+ QCOMPARE(child->events.started.count(), 1);
+ QCOMPARE(child->events.all.count(), 1);
+ QCOMPARE(parent.events.all.count(), 0);
+ child->reset();
+ QApplication::sendEvent(&parent, &event);
+ QCOMPARE(parent.events.all.count(), 1);
+ QCOMPARE(parent.events.started.count(), 1);
+ QCOMPARE(child->events.started.count(), 0);
+ QCOMPARE(child->events.all.count(), 1);
+ QCOMPARE(child->events.canceled.count(), 1);
+}
+
QTEST_MAIN(tst_Gestures)
#include "tst_gestures.moc"
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
index 8201add..e243e66 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
@@ -228,3 +228,22 @@ QT_TRID_NOOP("this_a_id")
//~ some thing
//% "This needs to be here. Really."
QString test = qtTrId("this_another_id", n);
+
+
+
+class YetAnotherTest : QObject {
+ Q_OBJECT
+
+ int function(void)
+ {
+ //
+ //:
+ //=
+ //~
+ //#
+ //=============
+ //~~~~~~~~~~~~~
+ //:::::::::::::
+ tr("nothing");
+ }
+};
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
index d63c7c3..26e5a65 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
@@ -278,6 +278,14 @@ backslashed \ stuff.</source>
</message>
</context>
<context>
+ <name>YetAnotherTest</name>
+ <message>
+ <location filename="main.cpp" line="247"/>
+ <source>nothing</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>scope</name>
<message numerus="yes">
<location filename="main.cpp" line="187"/>
diff --git a/tests/auto/qactiongroup/tst_qactiongroup.cpp b/tests/auto/qactiongroup/tst_qactiongroup.cpp
index 2d215a0..7259479 100644
--- a/tests/auto/qactiongroup/tst_qactiongroup.cpp
+++ b/tests/auto/qactiongroup/tst_qactiongroup.cpp
@@ -70,6 +70,7 @@ private slots:
void separators();
void testActionInTwoQActionGroup();
+ void unCheckCurrentAction();
};
tst_QActionGroup::tst_QActionGroup()
@@ -278,5 +279,25 @@ void tst_QActionGroup::testActionInTwoQActionGroup()
QCOMPARE(group1.actions().isEmpty(), true);
}
+void tst_QActionGroup::unCheckCurrentAction()
+{
+ QActionGroup group(0);
+ QAction action1(&group) ,action2(&group);
+ action1.setCheckable(true);
+ action2.setCheckable(true);
+ QVERIFY(!action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ action1.setChecked(true);
+ QVERIFY(action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ QAction *current = group.checkedAction();
+ QCOMPARE(current, &action1);
+ current->setChecked(false);
+ QVERIFY(!action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ QVERIFY(group.checkedAction() == 0);
+}
+
+
QTEST_MAIN(tst_QActionGroup)
#include "tst_qactiongroup.moc"
diff --git a/tests/auto/qapplication/tst_qapplication.cpp b/tests/auto/qapplication/tst_qapplication.cpp
index 675e559..5888866 100644
--- a/tests/auto/qapplication/tst_qapplication.cpp
+++ b/tests/auto/qapplication/tst_qapplication.cpp
@@ -129,6 +129,7 @@ private slots:
void style();
void allWidgets();
+ void topLevelWidgets();
void setAttribute();
@@ -1795,6 +1796,27 @@ void tst_QApplication::allWidgets()
QVERIFY(!app.allWidgets().contains(w)); // removal test
}
+void tst_QApplication::topLevelWidgets()
+{
+ int argc = 1;
+ QApplication app(argc, &argv0, QApplication::GuiServer);
+ QWidget *w = new QWidget;
+ w->show();
+#ifndef QT_NO_CLIPBOARD
+ QClipboard *clipboard = QApplication::clipboard();
+ QString originalText = clipboard->text();
+ clipboard->setText(QString("newText"));
+#endif
+ app.processEvents();
+ QVERIFY(QApplication::topLevelWidgets().contains(w));
+ QCOMPARE(QApplication::topLevelWidgets().count(), 1);
+ delete w;
+ w = 0;
+ app.processEvents();
+ QCOMPARE(QApplication::topLevelWidgets().count(), 0);
+}
+
+
void tst_QApplication::setAttribute()
{
diff --git a/tests/auto/qboxlayout/tst_qboxlayout.cpp b/tests/auto/qboxlayout/tst_qboxlayout.cpp
index 7ff444b..8887288 100644
--- a/tests/auto/qboxlayout/tst_qboxlayout.cpp
+++ b/tests/auto/qboxlayout/tst_qboxlayout.cpp
@@ -211,7 +211,6 @@ void tst_QBoxLayout::setGeometry()
QRect newGeom(0, 0, 70, 70);
lay2->setGeometry(newGeom);
- QApplication::processEvents();
QVERIFY2(newGeom.contains(dial->geometry()), "dial->geometry() should be smaller and within newGeom");
}
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 8acae7a..51a7ff8 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -153,6 +153,7 @@ private slots:
void task260974_menuItemRectangleForComboBoxPopup();
void removeItem();
void resetModel();
+ void keyBoardNavigationWithMouse();
protected slots:
void onEditTextChanged( const QString &newString );
@@ -2448,6 +2449,57 @@ void tst_QComboBox::resetModel()
}
+void tst_QComboBox::keyBoardNavigationWithMouse()
+{
+ QComboBox combo;
+ combo.setEditable(false);
+ for (int i = 0; i < 80; i++)
+ combo.addItem( QString::number(i));
+ combo.show();
+ QApplication::setActiveWindow(&combo);
+ QTest::qWaitForWindowShown(&combo);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo));
+
+ QCOMPARE(combo.currentText(), QLatin1String("0"));
+
+ combo.setFocus();
+ QTRY_VERIFY(combo.hasFocus());
+
+ QTest::keyClick(testWidget->lineEdit(), Qt::Key_Space);
+ QTest::qWait(30);
+ QTRY_VERIFY(combo.view());
+ QTRY_VERIFY(combo.view()->isVisible());
+ QTest::qWait(130);
+
+ QCOMPARE(combo.currentText(), QLatin1String("0"));
+
+ QCursor::setPos(combo.view()->mapToGlobal(combo.view()->rect().center()));
+ QTest::qWait(200);
+
+#define GET_SELECTION(SEL) \
+ QCOMPARE(combo.view()->selectionModel()->selection().count(), 1); \
+ QCOMPARE(combo.view()->selectionModel()->selection().indexes().count(), 1); \
+ SEL = combo.view()->selectionModel()->selection().indexes().first().row()
+
+ int selection;
+ GET_SELECTION(selection);
+
+ //since we moved the mouse is in the middle it should even be around 5;
+ QVERIFY(selection > 3);
+
+ static const int final = 40;
+ for (int i = selection + 1; i <= final; i++)
+ {
+ QTest::keyClick(combo.view(), Qt::Key_Down);
+ QTest::qWait(20);
+ GET_SELECTION(selection);
+ QCOMPARE(selection, i);
+ }
+
+ QTest::keyClick(combo.view(), Qt::Key_Enter);
+ QTRY_COMPARE(combo.currentText(), QString::number(final));
+}
+
QTEST_MAIN(tst_QComboBox)
#include "tst_qcombobox.moc"
diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp
index add0945..56fc53a 100644
--- a/tests/auto/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/qdatastream/tst_qdatastream.cpp
@@ -3100,22 +3100,6 @@ void tst_QDataStream::streamToAndFromQByteArray()
void tst_QDataStream::streamRealDataTypes()
{
-#if defined(Q_OS_WINCE)
- // Note: Probably actually same 'qreal being typedeffed as float instead of double' issue as in Symbian
- // instead of what CE skip message says.
- QSKIP("Skipped on CE as it demands too much memory and fragments", SkipAll);
-#elif defined(Q_OS_SYMBIAN)
- // qreal is typedeffed float in symbian instead of double like in most platforms, so reference stream
- // gets corrupted. Basically this test is flawed, as one shouldn't use naked typedeffed types in
- // streams that are meant to work cross-platform.
- // As this test also tests other floating point using classes, we do not simply skip it, but work around
- // the qreal issue by redefining qreal as double for the duration of this function.
- // Note that streaming classes works because they do explicitly use double instead of qreal when
- // writing/reading to/from stream.
-# define qreal double
- qWarning("Note: streamRealDataTypes test redefines qreal as double in symbian!!!");
-#endif
-
// Generate QPicture from SVG.
QSvgRenderer renderer(svgFile);
QVERIFY(renderer.isValid());
@@ -3163,7 +3147,6 @@ void tst_QDataStream::streamRealDataTypes()
file.close();
}
- qreal a, b, c, d, e, f;
QPointF point;
QRectF rect;
QPolygonF polygon;
@@ -3180,28 +3163,50 @@ void tst_QDataStream::streamRealDataTypes()
QDataStream stream(&file);
stream.setVersion(QDataStream::Qt_4_2);
- stream >> a >> b >> c >> d >> e >> f >> point
- >> rect >> polygon >> matrix >> p;
- if (i == 1)
- stream >> pict;
- stream >> textLength >> col >> rGrad >> cGrad
- >> pen;
-
- QCOMPARE(stream.status(), QDataStream::Ok);
-
- QCOMPARE(a, qreal(0));
- QCOMPARE(b, qreal(1.0));
- QCOMPARE(c, qreal(1.1));
- QCOMPARE(d, qreal(3.14));
- QCOMPARE(e, qreal(-3.14));
- QCOMPARE(f, qreal(-1));
+ if (i == 0) {
+ // the reference stream for 4.2 contains doubles,
+ // so we must read them out as doubles!
+ double a, b, c, d, e, f;
+ stream >> a;
+ QCOMPARE(a, 0.0);
+ stream >> b;
+ QCOMPARE(b, 1.0);
+ stream >> c;
+ QCOMPARE(c, 1.1);
+ stream >> d;
+ QCOMPARE(d, 3.14);
+ stream >> e;
+ QCOMPARE(e, -3.14);
+ stream >> f;
+ QCOMPARE(f, -1.0);
+ } else {
+ qreal a, b, c, d, e, f;
+ stream >> a;
+ QCOMPARE(a, qreal(0));
+ stream >> b;
+ QCOMPARE(b, qreal(1.0));
+ stream >> c;
+ QCOMPARE(c, qreal(1.1));
+ stream >> d;
+ QCOMPARE(d, qreal(3.14));
+ stream >> e;
+ QCOMPARE(e, qreal(-3.14));
+ stream >> f;
+ QCOMPARE(f, qreal(-1));
+ }
+ stream >> point;
QCOMPARE(point, QPointF(3, 5));
+ stream >> rect;
QCOMPARE(rect, QRectF(-1, -2, 3, 4));
+ stream >> polygon;
QCOMPARE((QVector<QPointF> &)polygon, (QPolygonF() << QPointF(0, 0) << QPointF(1, 2)));
+ stream >> matrix;
QCOMPARE(matrix, QMatrix().rotate(90).scale(2, 2));
+ stream >> p;
QCOMPARE(p, path);
+ if (i == 1) {
+ stream >> pict;
- if (i == 0) {
QByteArray pictA, pictB;
QBuffer bufA, bufB;
QVERIFY(bufA.open(QIODevice::ReadWrite));
@@ -3212,8 +3217,11 @@ void tst_QDataStream::streamRealDataTypes()
QCOMPARE(pictA, pictB);
}
+ stream >> textLength;
QCOMPARE(textLength, QTextLength(QTextLength::VariableLength, 1.5));
+ stream >> col;
QCOMPARE(col, color);
+ stream >> rGrad;
QCOMPARE(rGrad.style(), radialBrush.style());
QCOMPARE(rGrad.matrix(), radialBrush.matrix());
QCOMPARE(rGrad.gradient()->type(), radialBrush.gradient()->type());
@@ -3222,6 +3230,7 @@ void tst_QDataStream::streamRealDataTypes()
QCOMPARE(((QRadialGradient *)rGrad.gradient())->center(), ((QRadialGradient *)radialBrush.gradient())->center());
QCOMPARE(((QRadialGradient *)rGrad.gradient())->focalPoint(), ((QRadialGradient *)radialBrush.gradient())->focalPoint());
QCOMPARE(((QRadialGradient *)rGrad.gradient())->radius(), ((QRadialGradient *)radialBrush.gradient())->radius());
+ stream >> cGrad;
QCOMPARE(cGrad.style(), conicalBrush.style());
QCOMPARE(cGrad.matrix(), conicalBrush.matrix());
QCOMPARE(cGrad.gradient()->type(), conicalBrush.gradient()->type());
@@ -3231,11 +3240,11 @@ void tst_QDataStream::streamRealDataTypes()
QCOMPARE(((QConicalGradient *)cGrad.gradient())->angle(), ((QConicalGradient *)conicalBrush.gradient())->angle());
QCOMPARE(cGrad, conicalBrush);
+ stream >> pen;
QCOMPARE(pen.widthF(), qreal(1.5));
+
+ QCOMPARE(stream.status(), QDataStream::Ok);
}
-#if defined(Q_OS_SYMBIAN)
- #undef qreal
-#endif
}
#ifdef QT3_SUPPORT
diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp
index 8fb0c91..c53780e 100644
--- a/tests/auto/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp
@@ -447,7 +447,14 @@ void tst_QDateTime::toString_enumformat()
QCOMPARE(str2, QString("1995-05-20T12:34:56"));
QString str3 = dt1.toString(Qt::LocalDate);
+ qDebug() << str3;
QVERIFY(!str3.isEmpty());
+ //check for date/time components in any order
+ QVERIFY(str3.contains("1995"));
+ //day and month may be in numeric or word form
+ QVERIFY(str3.contains("12"));
+ QVERIFY(str3.contains("34"));
+ QVERIFY(str3.contains("56"));
}
void tst_QDateTime::addDays()
diff --git a/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp
index baf769f..91050f5 100644
--- a/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp
+++ b/tests/auto/qdbusabstractinterface/tst_qdbusabstractinterface.cpp
@@ -103,6 +103,8 @@ private slots:
void getComplexSignal_data();
void getComplexSignal();
+ void followSignal();
+
void createErrors_data();
void createErrors();
@@ -130,6 +132,9 @@ tst_QDBusAbstractInterface::tst_QDBusAbstractInterface()
void tst_QDBusAbstractInterface::initTestCase()
{
+ // enable debugging temporarily:
+ putenv("QDBUS_DEBUG=1");
+
// register the object
QDBusConnection con = QDBusConnection::sessionBus();
QVERIFY(con.isConnected());
@@ -432,6 +437,60 @@ void tst_QDBusAbstractInterface::getComplexSignal()
QCOMPARE(s[0][0].value<RegisteredType>(), expectedValue);
}
+void tst_QDBusAbstractInterface::followSignal()
+{
+ const QString serviceToFollow = "com.trolltech.tst_qdbusabstractinterface.FollowMe";
+ Pinger p = getPinger(serviceToFollow);
+ QVERIFY2(p, "Not connected to D-Bus");
+
+ QDBusConnection con = p->connection();
+ QVERIFY(!con.interface()->isServiceRegistered(serviceToFollow));
+ Pinger control = getPinger("");
+
+ // we need to connect the signal somewhere in order for D-Bus to enable the rules
+ QTestEventLoop::instance().connect(p.data(), SIGNAL(voidSignal()), SLOT(exitLoop()));
+ QTestEventLoop::instance().connect(control.data(), SIGNAL(voidSignal()), SLOT(exitLoop()));
+ QSignalSpy s(p.data(), SIGNAL(voidSignal()));
+
+ emit targetObj.voidSignal();
+ QTestEventLoop::instance().enterLoop(200);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ // signal must not have been received because the service isn't registered
+ QVERIFY(s.isEmpty());
+
+ // now register the service
+ QDBusReply<QDBusConnectionInterface::RegisterServiceReply> r =
+ con.interface()->registerService(serviceToFollow, QDBusConnectionInterface::DontQueueService,
+ QDBusConnectionInterface::DontAllowReplacement);
+ QVERIFY(r.isValid() && r.value() == QDBusConnectionInterface::ServiceRegistered);
+ QVERIFY(con.interface()->isServiceRegistered(serviceToFollow));
+
+ // emit the signal again:
+ emit targetObj.voidSignal();
+ QTestEventLoop::instance().enterLoop(2);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ // now the signal must have been received:
+ QCOMPARE(s.size(), 1);
+ QVERIFY(s.at(0).size() == 0);
+ s.clear();
+
+ // disconnect the signal
+ disconnect(p.data(), SIGNAL(voidSignal()), &QTestEventLoop::instance(), 0);
+
+ // emit the signal again:
+ emit targetObj.voidSignal();
+ QTestEventLoop::instance().enterLoop(2);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ // and now it mustn't have been received
+ QVERIFY(s.isEmpty());
+
+ // cleanup:
+ con.interface()->unregisterService(serviceToFollow);
+}
+
void tst_QDBusAbstractInterface::createErrors_data()
{
QTest::addColumn<QString>("service");
diff --git a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp
index e31a3a0..62d6342 100644
--- a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp
+++ b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp
@@ -171,6 +171,13 @@ class tst_QDBusInterface: public QObject
{
Q_OBJECT
MyObject obj;
+public slots:
+ void testServiceOwnerChanged(const QString &service)
+ {
+ if (service == "com.example.Test")
+ QTestEventLoop::instance().exitLoop();
+ }
+
private slots:
void initTestCase();
@@ -235,32 +242,13 @@ void tst_QDBusInterface::invalidAfterServiceOwnerChanged()
QDBusInterface invalidInterface("com.example.Test", "/");
QVERIFY(!invalidInterface.isValid());
+ QTestEventLoop::instance().connect(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString)),
+ SLOT(exitLoop()));
QVERIFY(connIface->registerService("com.example.Test") == QDBusConnectionInterface::ServiceRegistered);
- QSignalSpy serviceOwnerChangedSpy(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString)));
-
- QEventLoop loop;
- QObject::connect(connIface, SIGNAL(serviceOwnerChanged(QString, QString, QString)),
- &loop, SLOT(quit()));
- loop.exec();
-
- // at least once, but other services might have changed while running the test, too.
- QVERIFY(serviceOwnerChangedSpy.count() >= 1);
- bool foundOurService = false;
- for (int i = 0; i < serviceOwnerChangedSpy.count(); ++i) {
- QList<QVariant> args = serviceOwnerChangedSpy.at(i);
- QString name = args[0].toString();
- QString oldOwner = args[1].toString();
- QString newOwner = args[2].toString();
- if (name == QLatin1String("com.example.Test")) {
- if (newOwner == conn.baseService()) {
- foundOurService = true;
- break;
- }
- }
- }
- QVERIFY(foundOurService);
+ QTestEventLoop::instance().enterLoop(5);
+ QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(!invalidInterface.isValid());
}
diff --git a/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro b/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro
new file mode 100644
index 0000000..4970f16
--- /dev/null
+++ b/tests/auto/qdbusservicewatcher/qdbusservicewatcher.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+QT = core
+contains(QT_CONFIG,dbus): {
+ SOURCES += tst_qdbusservicewatcher.cpp
+ QT += dbus
+} else {
+ SOURCES += ../qdbusmarshall/dummy.cpp
+}
diff --git a/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp
new file mode 100644
index 0000000..10b43b1
--- /dev/null
+++ b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp
@@ -0,0 +1,273 @@
+/****************************************************************************
+**
+** 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 <QtDBus/QDBusServiceWatcher>
+#include <QtDBus>
+#include <QtTest>
+
+class tst_QDBusServiceWatcher: public QObject
+{
+ Q_OBJECT
+ QString serviceName;
+public:
+ tst_QDBusServiceWatcher();
+
+private slots:
+ void initTestCase();
+ void cleanup();
+
+ void watchForCreation();
+ void watchForDisappearance();
+ void watchForOwnerChange();
+ void modeChange();
+};
+
+tst_QDBusServiceWatcher::tst_QDBusServiceWatcher()
+ : serviceName("com.example.TestName")
+{
+}
+
+void tst_QDBusServiceWatcher::initTestCase()
+{
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+}
+
+void tst_QDBusServiceWatcher::cleanup()
+{
+ // ensure that the name isn't registered
+ QDBusConnection::sessionBus().unregisterService(serviceName);
+}
+
+void tst_QDBusServiceWatcher::watchForCreation()
+{
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+
+ QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForRegistration);
+
+ QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString)));
+ QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString)));
+ QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)));
+ QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop()));
+
+ // register a name
+ QVERIFY(con.registerService(serviceName));
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 1);
+ QCOMPARE(spyR.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyU.count(), 0);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QVERIFY(spyO.at(0).at(1).toString().isEmpty());
+ QCOMPARE(spyO.at(0).at(2).toString(), con.baseService());
+
+ spyR.clear();
+ spyU.clear();
+ spyO.clear();
+
+ // unregister it:
+ con.unregisterService(serviceName);
+
+ // and register again
+ QVERIFY(con.registerService(serviceName));
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 1);
+ QCOMPARE(spyR.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyU.count(), 0);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QVERIFY(spyO.at(0).at(1).toString().isEmpty());
+ QCOMPARE(spyO.at(0).at(2).toString(), con.baseService());
+}
+
+void tst_QDBusServiceWatcher::watchForDisappearance()
+{
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+
+ QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForUnregistration);
+
+ QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString)));
+ QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString)));
+ QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)));
+ QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceUnregistered(QString)), SLOT(exitLoop()));
+
+ // register a name
+ QVERIFY(con.registerService(serviceName));
+
+ // unregister it:
+ con.unregisterService(serviceName);
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 0);
+
+ QCOMPARE(spyU.count(), 1);
+ QCOMPARE(spyU.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QCOMPARE(spyO.at(0).at(1).toString(), con.baseService());
+ QVERIFY(spyO.at(0).at(2).toString().isEmpty());
+}
+
+void tst_QDBusServiceWatcher::watchForOwnerChange()
+{
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+
+ QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForOwnerChange);
+
+ QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString)));
+ QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString)));
+ QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)));
+ QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop()));
+
+ // register a name
+ QVERIFY(con.registerService(serviceName));
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 1);
+ QCOMPARE(spyR.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyU.count(), 0);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QVERIFY(spyO.at(0).at(1).toString().isEmpty());
+ QCOMPARE(spyO.at(0).at(2).toString(), con.baseService());
+
+ spyR.clear();
+ spyU.clear();
+ spyO.clear();
+
+ // unregister it:
+ con.unregisterService(serviceName);
+
+ // and register again
+ QVERIFY(con.registerService(serviceName));
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 1);
+ QCOMPARE(spyR.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyU.count(), 1);
+ QCOMPARE(spyU.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyO.count(), 2);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QCOMPARE(spyO.at(0).at(1).toString(), con.baseService());
+ QVERIFY(spyO.at(0).at(2).toString().isEmpty());
+ QCOMPARE(spyO.at(1).at(0).toString(), serviceName);
+ QVERIFY(spyO.at(1).at(1).toString().isEmpty());
+ QCOMPARE(spyO.at(1).at(2).toString(), con.baseService());
+}
+
+void tst_QDBusServiceWatcher::modeChange()
+{
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+
+ QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForRegistration);
+
+ QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString)));
+ QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString)));
+ QSignalSpy spyO(&watcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)));
+ QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceRegistered(QString)), SLOT(exitLoop()));
+
+ // register a name
+ QVERIFY(con.registerService(serviceName));
+
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 1);
+ QCOMPARE(spyR.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyU.count(), 0);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QVERIFY(spyO.at(0).at(1).toString().isEmpty());
+ QCOMPARE(spyO.at(0).at(2).toString(), con.baseService());
+
+ spyR.clear();
+ spyU.clear();
+ spyO.clear();
+
+ watcher.setWatchMode(QDBusServiceWatcher::WatchForUnregistration);
+
+ // unregister it:
+ con.unregisterService(serviceName);
+
+ QTestEventLoop::instance().connect(&watcher, SIGNAL(serviceUnregistered(QString)), SLOT(exitLoop()));
+ QTestEventLoop::instance().enterLoop(1);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ QCOMPARE(spyR.count(), 0);
+
+ QCOMPARE(spyU.count(), 1);
+ QCOMPARE(spyU.at(0).at(0).toString(), serviceName);
+
+ QCOMPARE(spyO.count(), 1);
+ QCOMPARE(spyO.at(0).at(0).toString(), serviceName);
+ QCOMPARE(spyO.at(0).at(1).toString(), con.baseService());
+ QVERIFY(spyO.at(0).at(2).toString().isEmpty());
+}
+
+QTEST_MAIN(tst_QDBusServiceWatcher)
+#include "tst_qdbusservicewatcher.moc"
diff --git a/tests/auto/qdom/tst_qdom.cpp b/tests/auto/qdom/tst_qdom.cpp
index 0d58554e..6637202 100644
--- a/tests/auto/qdom/tst_qdom.cpp
+++ b/tests/auto/qdom/tst_qdom.cpp
@@ -322,7 +322,6 @@ void tst_QDom::toString_01_data()
*/
void tst_QDom::toString_01()
{
- QFAIL("make test fail instead of timing out, will be fixed later (QT-2357)");
QFETCH(QString, fileName);
QFile f(fileName);
diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
index 0201bc4..b40cf43 100644
--- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
+++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
@@ -379,7 +379,8 @@ void tst_QGraphicsEffect::grayscale()
item->setPen(Qt::NoPen);
item->setBrush(QColor(122, 193, 66)); // Qt light green
- QGraphicsGrayscaleEffect *effect = new QGraphicsGrayscaleEffect;
+ QGraphicsColorizeEffect *effect = new QGraphicsColorizeEffect;
+ effect->setColor(Qt::black);
item->setGraphicsEffect(effect);
QPainter painter;
diff --git a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
index 855950b..fbeb425 100644
--- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
+++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
@@ -166,6 +166,9 @@ private slots:
void deviceRect();
void pixmap();
+ void pixmapPadding_data();
+ void pixmapPadding();
+
private:
QGraphicsView *view;
QGraphicsScene *scene;
@@ -318,6 +321,102 @@ void tst_QGraphicsEffectSource::pixmap()
QCOMPARE(pixmap1, pixmap2);
}
+class PaddingEffect : public QGraphicsEffect
+{
+public:
+ PaddingEffect(QObject *parent) : QGraphicsEffect(parent)
+ {
+ }
+
+ QRectF boundingRectFor(const QRectF &src) const {
+ return src.adjusted(-10, -10, 10, 10);
+ }
+
+ void draw(QPainter *, QGraphicsEffectSource *source) {
+ pix = source->pixmap(coordinateMode, &offset, padMode);
+ }
+
+ QPixmap pix;
+ QPoint offset;
+ QGraphicsEffectSource::PixmapPadMode padMode;
+ Qt::CoordinateSystem coordinateMode;
+};
+
+void tst_QGraphicsEffectSource::pixmapPadding_data()
+{
+ QTest::addColumn<int>("coordinateMode");
+ QTest::addColumn<int>("padMode");
+ QTest::addColumn<QSize>("size");
+ QTest::addColumn<QPoint>("offset");
+ QTest::addColumn<uint>("ulPixel");
+
+ QTest::newRow("log,nopad") << int(Qt::LogicalCoordinates)
+ << int(QGraphicsEffectSource::NoExpandPadMode)
+ << QSize(10, 10) << QPoint(0, 0)
+ << 0xffff0000u;
+
+ QTest::newRow("log,transparent") << int(Qt::LogicalCoordinates)
+ << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
+ << QSize(12, 12) << QPoint(-1, -1)
+ << 0x00000000u;
+
+ QTest::newRow("log,effectrect") << int(Qt::LogicalCoordinates)
+ << int(QGraphicsEffectSource::ExpandToEffectRectPadMode)
+ << QSize(30, 30) << QPoint(-10, -10)
+ << 0x00000000u;
+
+ QTest::newRow("dev,nopad") << int(Qt::DeviceCoordinates)
+ << int(QGraphicsEffectSource::NoExpandPadMode)
+ << QSize(20, 20) << QPoint(40, 40)
+ << 0xffff0000u;
+
+ QTest::newRow("dev,transparent") << int(Qt::DeviceCoordinates)
+ << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
+ << QSize(22, 22) << QPoint(39, 39)
+ << 0x00000000u;
+
+ QTest::newRow("dev,effectrect") << int(Qt::DeviceCoordinates)
+ << int(QGraphicsEffectSource::ExpandToEffectRectPadMode)
+ << QSize(40, 40) << QPoint(30, 30)
+ << 0x00000000u;
+
+}
+
+void tst_QGraphicsEffectSource::pixmapPadding()
+{
+ QPixmap dummyTarget(100, 100);
+ QPainter dummyPainter(&dummyTarget);
+ dummyPainter.translate(40, 40);
+ dummyPainter.scale(2, 2);
+
+ QPixmap pm(10, 10);
+ pm.fill(Qt::red);
+
+ QGraphicsScene *scene = new QGraphicsScene();
+ PaddingEffect *effect = new PaddingEffect(scene);
+ QGraphicsPixmapItem *pmItem = new QGraphicsPixmapItem(pm);
+ scene->addItem(pmItem);
+ pmItem->setGraphicsEffect(effect);
+
+ QFETCH(int, coordinateMode);
+ QFETCH(int, padMode);
+ QFETCH(QPoint, offset);
+ QFETCH(QSize, size);
+ QFETCH(uint, ulPixel);
+
+ effect->padMode = (QGraphicsEffectSource::PixmapPadMode) padMode;
+ effect->coordinateMode = (Qt::CoordinateSystem) coordinateMode;
+
+ scene->render(&dummyPainter, scene->itemsBoundingRect(), scene->itemsBoundingRect());
+
+ QCOMPARE(effect->pix.size(), size);
+ QCOMPARE(effect->offset, offset);
+ QCOMPARE(effect->pix.toImage().pixel(0, 0), ulPixel);
+
+ // ### Fix corruption in scene destruction, then enable...
+ // delete scene;
+}
+
QTEST_MAIN(tst_QGraphicsEffectSource)
#include "tst_qgraphicseffectsource.moc"
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 2c948cc..684ad4f 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -3111,7 +3111,7 @@ void tst_QGraphicsItem::boundingRects()
void tst_QGraphicsItem::boundingRects2()
{
QGraphicsPixmapItem pixmap(QPixmap::fromImage(QImage(100, 100, QImage::Format_ARGB32_Premultiplied)));
- QCOMPARE(pixmap.boundingRect(), QRectF(-0.5, -0.5, 101, 101));
+ QCOMPARE(pixmap.boundingRect(), QRectF(0, 0, 100, 100));
QGraphicsLineItem line(0, 0, 100, 0);
line.setPen(QPen(Qt::black, 1));
@@ -4041,7 +4041,7 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsPixmapItem()
item.setOffset(QPointF(-10, -10));
QCOMPARE(item.offset(), QPointF(-10, -10));
- QCOMPARE(item.boundingRect(), QRectF(-10.5, -10.5, 301, 201));
+ QCOMPARE(item.boundingRect(), QRectF(-10, -10, 300, 200));
}
void tst_QGraphicsItem::defaultItemTest_QGraphicsTextItem()
@@ -7463,7 +7463,7 @@ void tst_QGraphicsItem::moveLineItem()
// Make sure the calculated region is correct.
item->update();
QTest::qWait(10);
- QCOMPARE(view.paintedRegion, expectedRegion);
+ QTRY_COMPARE(view.paintedRegion, expectedRegion);
view.reset();
// Old position: (50, 50)
diff --git a/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp b/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp
index e25aef0..5a62dc0 100644
--- a/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp
+++ b/tests/auto/qgraphicspixmapitem/tst_qgraphicspixmapitem.cpp
@@ -165,7 +165,7 @@ void tst_QGraphicsPixmapItem::boundingRect_data()
QTest::addColumn<QPixmap>("pixmap");
QTest::addColumn<QRectF>("boundingRect");
QTest::newRow("null") << QPixmap() << QRectF();
- QTest::newRow("10x10") << QPixmap(10, 10) << QRectF(-0.5, -0.5, 11, 11);
+ QTest::newRow("10x10") << QPixmap(10, 10) << QRectF(0, 0, 10, 10);
}
// public QRectF boundingRect() const
diff --git a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
index 9dfd486..7d98748 100644
--- a/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
+++ b/tests/auto/qgraphicssceneindex/tst_qgraphicssceneindex.cpp
@@ -45,6 +45,8 @@
#include <private/qgraphicsscenebsptreeindex_p.h>
#include <private/qgraphicssceneindex_p.h>
#include <private/qgraphicsscenelinearindex_p.h>
+#include "../../shared/util.h"
+
//TESTED_CLASS=
//TESTED_FILES=
@@ -356,7 +358,7 @@ void tst_QGraphicsSceneIndex::clear()
MyItem *item = new MyItem;
scene.addItem(item);
qApp->processEvents();
- QCOMPARE(item->numPaints, 1);
+ QTRY_COMPARE(item->numPaints, 1);
}
QTEST_MAIN(tst_QGraphicsSceneIndex)
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 65ab12d..a5ff153 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -119,6 +119,8 @@ private slots:
void task262152_setModelColumnNavigate();
void taskQTBUG_2233_scrollHiddenItems_data();
void taskQTBUG_2233_scrollHiddenItems();
+ void taskQTBUG_633_changeModelData();
+ void taskQTBUG_435_deselectOnViewportClick();
};
// Testing get/set functions
@@ -1832,5 +1834,47 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems()
}
}
+void tst_QListView::taskQTBUG_633_changeModelData()
+{
+ QListView view;
+ view.setFlow(QListView::LeftToRight);
+ QStandardItemModel model(5,1);
+ for (int i = 0; i < model.rowCount(); ++i) {
+ model.setData( model.index(i, 0), QString::number(i));
+ }
+
+ view.setModel(&model);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ model.setData( model.index(1, 0), QLatin1String("long long text"));
+ QTest::qWait(100); //leave time for relayouting the items
+ QRect rectLongText = view.visualRect(model.index(1,0));
+ QRect rect2 = view.visualRect(model.index(2,0));
+ QVERIFY( ! rectLongText.intersects(rect2) );
+}
+
+void tst_QListView::taskQTBUG_435_deselectOnViewportClick()
+{
+ QListView view;
+ QStringListModel model( QStringList() << "1" << "2" << "3" << "4");
+ view.setModel(&model);
+ view.setSelectionMode(QAbstractItemView::ExtendedSelection);
+ view.selectAll();
+ QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount());
+
+
+ QPoint p = view.visualRect(model.index(model.rowCount() - 1)).center() + QPoint(0, 20);
+ //first the left button
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
+ QVERIFY(!view.selectionModel()->hasSelection());
+
+ view.selectAll();
+ QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount());
+
+ //and now the right button
+ QTest::mouseClick(view.viewport(), Qt::RightButton, 0, p);
+ QVERIFY(!view.selectionModel()->hasSelection());
+}
+
QTEST_MAIN(tst_QListView)
#include "tst_qlistview.moc"
diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
index be39d00..ab7b0ac 100644
--- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
@@ -976,7 +976,7 @@ void tst_QLocalSocket::writeOnlySocket()
#if defined(Q_OS_SYMBIAN)
QTest::qWait(250);
#endif
- QVERIFY(server.waitForNewConnection());
+ QVERIFY(server.waitForNewConnection(200));
QLocalSocket* serverSocket = server.nextPendingConnection();
QVERIFY(serverSocket);
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index 53b6230..8e02c74 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -1134,6 +1134,8 @@ void tst_QPixmap::fromSymbianCFbsBitmap_data()
QTest::newRow("EColor4K big") << EColor4K << largeWidth << largeHeight << QColor(Qt::red);
QTest::newRow("EColor64K small") << EColor64K << smallWidth << smallHeight << QColor(Qt::green);
QTest::newRow("EColor64K big") << EColor64K << largeWidth << largeHeight << QColor(Qt::green);
+ QTest::newRow("EColor16M small") << EColor16M << smallWidth << smallHeight << QColor(Qt::yellow);
+ QTest::newRow("EColor16M big") << EColor16M << largeWidth << largeHeight << QColor(Qt::yellow);
QTest::newRow("EColor16MU small") << EColor16MU << smallWidth << smallHeight << QColor(Qt::red);
QTest::newRow("EColor16MU big") << EColor16MU << largeWidth << largeHeight << QColor(Qt::red);
QTest::newRow("EColor16MA small opaque") << EColor16MA << smallWidth << smallHeight << QColor(255, 255, 0);
diff --git a/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp b/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp
index 5a9bad7..a80c787 100644
--- a/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp
+++ b/tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp
@@ -383,7 +383,7 @@ void tst_QPixmapFilter::dropShadowBoundingRectFor()
QPixmapDropShadowFilter filter;
filter.setBlurRadius(0);
- QCOMPARE(filter.blurRadius(), 0);
+ QCOMPARE(filter.blurRadius(), 0.);
const QRectF rect1(0, 0, 50, 50);
const QRectF rect2(30, 20, 10, 40);
diff --git a/tests/auto/qscriptstring/tst_qscriptstring.cpp b/tests/auto/qscriptstring/tst_qscriptstring.cpp
index e1a4bc1..1229f4a 100644
--- a/tests/auto/qscriptstring/tst_qscriptstring.cpp
+++ b/tests/auto/qscriptstring/tst_qscriptstring.cpp
@@ -59,6 +59,8 @@ public:
private slots:
void test();
void hash();
+ void toArrayIndex_data();
+ void toArrayIndex();
};
tst_QScriptString::tst_QScriptString()
@@ -155,5 +157,40 @@ void tst_QScriptString::hash()
QCOMPARE(stringToInt.value(foo), 123);
}
+void tst_QScriptString::toArrayIndex_data()
+{
+ QTest::addColumn<QString>("input");
+ QTest::addColumn<bool>("expectSuccess");
+ QTest::addColumn<quint32>("expectedIndex");
+ QTest::newRow("foo") << QString::fromLatin1("foo") << false << quint32(0xffffffff);
+ QTest::newRow("empty") << QString::fromLatin1("") << false << quint32(0xffffffff);
+ QTest::newRow("0") << QString::fromLatin1("0") << true << quint32(0);
+ QTest::newRow("00") << QString::fromLatin1("00") << false << quint32(0xffffffff);
+ QTest::newRow("1") << QString::fromLatin1("1") << true << quint32(1);
+ QTest::newRow("123") << QString::fromLatin1("123") << true << quint32(123);
+ QTest::newRow("-1") << QString::fromLatin1("-1") << false << quint32(0xffffffff);
+ QTest::newRow("0a") << QString::fromLatin1("0a") << false << quint32(0xffffffff);
+ QTest::newRow("0x1") << QString::fromLatin1("0x1") << false << quint32(0xffffffff);
+ QTest::newRow("01") << QString::fromLatin1("01") << false << quint32(0xffffffff);
+ QTest::newRow("4294967294") << QString::fromLatin1("4294967294") << true << quint32(0xfffffffe);
+ QTest::newRow("4294967295") << QString::fromLatin1("4294967295") << false << quint32(0xffffffff);
+}
+
+void tst_QScriptString::toArrayIndex()
+{
+ QFETCH(QString, input);
+ QFETCH(bool, expectSuccess);
+ QFETCH(quint32, expectedIndex);
+ QScriptEngine engine;
+ for (int x = 0; x < 2; ++x) {
+ bool isArrayIndex;
+ bool *ptr = (x == 0) ? &isArrayIndex : (bool*)0;
+ quint32 result = engine.toStringHandle(input).toArrayIndex(ptr);
+ if (x == 0)
+ QCOMPARE(isArrayIndex, expectSuccess);
+ QCOMPARE(result, expectedIndex);
+ }
+}
+
QTEST_MAIN(tst_QScriptString)
#include "tst_qscriptstring.moc"
diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
index 82b6066..fe7c3ea 100644
--- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
+++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
@@ -1234,6 +1234,7 @@ void tst_QSqlDatabase::recordSQLite()
FieldDef("integer", QVariant::Int, QVariant(13)),
FieldDef("int", QVariant::Int, QVariant(12)),
+ FieldDef("real", QVariant::String, QVariant(1.234567890123456)),
FieldDef()
};
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index 2bd1684..db46b66 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -1755,9 +1755,7 @@ void tst_QSslSocket::readFromClosedSocket()
socket->close();
QVERIFY(!socket->bytesAvailable());
QVERIFY(!socket->bytesToWrite());
- socket->waitForDisconnected();
- QVERIFY(!socket->bytesAvailable());
- QVERIFY(!socket->bytesToWrite());
+ QVERIFY(socket->state() == QAbstractSocket::UnconnectedState);
}
void tst_QSslSocket::writeBigChunk()
diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp
index 1516346..975b301 100644
--- a/tests/auto/qstatemachine/tst_qstatemachine.cpp
+++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp
@@ -117,6 +117,7 @@ private slots:
void cleanup();
void rootState();
+ void machineWithParent();
void addAndRemoveState();
void stateEntryAndExit();
void assignProperty();
@@ -124,6 +125,7 @@ private slots:
void postEvent();
void cancelDelayedEvent();
void postDelayedEventAndStop();
+ void stopAndPostEvent();
void stateFinished();
void parallelStates();
void parallelRootState();
@@ -205,6 +207,7 @@ private slots:
void goToState();
void task260403_clonedSignals();
+ void postEventFromOtherThread();
};
tst_QStateMachine::tst_QStateMachine()
@@ -1043,6 +1046,14 @@ void tst_QStateMachine::rootState()
QCOMPARE(s2->parentState(), static_cast<QState*>(&machine));
}
+void tst_QStateMachine::machineWithParent()
+{
+ QObject object;
+ QStateMachine *machine = new QStateMachine(&object);
+ QCOMPARE(machine->parent(), &object);
+ QCOMPARE(machine->parentState(), (QObject*)0);
+}
+
void tst_QStateMachine::addAndRemoveState()
{
#ifdef QT_BUILD_INTERNAL
@@ -1681,6 +1692,22 @@ void tst_QStateMachine::postDelayedEventAndStop()
QVERIFY(machine.configuration().contains(s1));
}
+void tst_QStateMachine::stopAndPostEvent()
+{
+ QStateMachine machine;
+ QState *s1 = new QState(&machine);
+ machine.setInitialState(s1);
+ QSignalSpy startedSpy(&machine, SIGNAL(started()));
+ machine.start();
+ QTRY_COMPARE(startedSpy.count(), 1);
+ QSignalSpy stoppedSpy(&machine, SIGNAL(stopped()));
+ machine.stop();
+ QCOMPARE(stoppedSpy.count(), 0);
+ machine.postEvent(new QEvent(QEvent::User));
+ QTRY_COMPARE(stoppedSpy.count(), 1);
+ QCoreApplication::processEvents();
+}
+
void tst_QStateMachine::stateFinished()
{
QStateMachine machine;
@@ -4188,5 +4215,52 @@ void tst_QStateMachine::task260403_clonedSignals()
QCOMPARE(t1->eventSignalIndex, emitter.metaObject()->indexOfSignal("signalWithDefaultArg()"));
}
+class EventPosterThread : public QThread
+{
+ Q_OBJECT
+public:
+ EventPosterThread(QStateMachine *machine, QObject *parent = 0)
+ : QThread(parent), m_machine(machine), m_count(0)
+ {
+ moveToThread(this);
+ QObject::connect(m_machine, SIGNAL(started()),
+ this, SLOT(postEvent()));
+ }
+protected:
+ virtual void run()
+ {
+ exec();
+ }
+private Q_SLOTS:
+ void postEvent()
+ {
+ m_machine->postEvent(new QEvent(QEvent::User));
+ if (++m_count < 10000)
+ QTimer::singleShot(0, this, SLOT(postEvent()));
+ else
+ quit();
+ }
+private:
+ QStateMachine *m_machine;
+ int m_count;
+};
+
+void tst_QStateMachine::postEventFromOtherThread()
+{
+ QStateMachine machine;
+ EventPosterThread poster(&machine);
+ StringEventPoster *s1 = new StringEventPoster("foo", &machine);
+ s1->addTransition(new EventTransition(QEvent::User, s1));
+ QFinalState *f = new QFinalState(&machine);
+ s1->addTransition(&poster, SIGNAL(finished()), f);
+ machine.setInitialState(s1);
+
+ poster.start();
+
+ QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
+ machine.start();
+ QTRY_COMPARE(finishedSpy.count(), 1);
+}
+
QTEST_MAIN(tst_QStateMachine)
#include "tst_qstatemachine.moc"
diff --git a/tests/auto/qstringbuilder1/qstringbuilder1.pro b/tests/auto/qstringbuilder1/qstringbuilder1.pro
index 1ca9d45..5bb14d4 100644
--- a/tests/auto/qstringbuilder1/qstringbuilder1.pro
+++ b/tests/auto/qstringbuilder1/qstringbuilder1.pro
@@ -3,7 +3,4 @@ load(qttest_p4)
QT = core
SOURCES += tst_qstringbuilder1.cpp
-HEADERS += ../qstringbuilder1/stringbuilder.h
-
-DEFINES += SCENARIO=1
diff --git a/tests/auto/qstringbuilder1/stringbuilder.cpp b/tests/auto/qstringbuilder1/stringbuilder.cpp
index 9fea137..f35d4d2 100644
--- a/tests/auto/qstringbuilder1/stringbuilder.cpp
+++ b/tests/auto/qstringbuilder1/stringbuilder.cpp
@@ -39,61 +39,9 @@
**
****************************************************************************/
-// This is included in various .cpp files as a compile test for various scenarios
-// depending on NO_CAST_* and QT_USE_FAST_OPERATOR_PLUS and QT_USE_FAST_CONCATENATION
-
-#if SCENARIO == 1
-// this is the "no harm done" version. Only operator% is active,
-// with NO_CAST * defined
-#define P %
-#undef QT_USE_FAST_OPERATOR_PLUS
-#undef QT_USE_FAST_CONCATENATION
-#define QT_NO_CAST_FROM_ASCII
-#define QT_NO_CAST_TO_ASCII
-#endif
-
-
-#if SCENARIO == 2
-// this is the "full" version. Operator+ is replaced by a QStringBuilder
-// based version
-// with NO_CAST * defined
-#define P +
-#define QT_USE_FAST_OPERATOR_PLUS
-#define QT_USE_FAST_CONCATENATION
-#define QT_NO_CAST_FROM_ASCII
-#define QT_NO_CAST_TO_ASCII
-#endif
-
-#if SCENARIO == 3
-// this is the "no harm done" version. Only operator% is active,
-// with NO_CAST * _not_ defined
-#define P %
-#undef QT_USE_FAST_OPERATOR_PLUS
-#undef QT_USE_FAST_CONCATENATION
-#undef QT_NO_CAST_FROM_ASCII
-#undef QT_NO_CAST_TO_ASCII
-#endif
-
-#if SCENARIO == 4
-// this is the "full" version. Operator+ is replaced by a QStringBuilder
-// based version
-// with NO_CAST * _not_ defined
-#define P +
-#define QT_USE_FAST_OPERATOR_PLUS
-#define QT_USE_FAST_CONCATENATION
-#undef QT_NO_CAST_FROM_ASCII
-#undef QT_NO_CAST_TO_ASCII
-#endif
-
-#include <QtTest/QtTest>
-#include "stringbuilder.h"
-
-//TESTED_CLASS=QStringBuilder
-//TESTED_FILES=qstringbuilder.cpp
-
#define LITERAL "some literal"
-void tst_QStringBuilder::scenario()
+void runScenario()
{
QLatin1Literal l1literal(LITERAL);
QLatin1String l1string(LITERAL);
@@ -129,5 +77,3 @@ void tst_QStringBuilder::scenario()
QCOMPARE(r, r2);
#endif
}
-
-QTEST_APPLESS_MAIN(tst_QStringBuilder)
diff --git a/tests/auto/qstringbuilder1/stringbuilder.h b/tests/auto/qstringbuilder1/stringbuilder.h
deleted file mode 100644
index 5ac9dbe..0000000
--- a/tests/auto/qstringbuilder1/stringbuilder.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** 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$
-**
-****************************************************************************/
-
-#ifndef TST_QSTRINGBUILDER_H
-#define TST_QSTRINGBUILDER_H
-
-#include <qobject.h>
-
-class tst_QStringBuilder : public QObject
-{
- Q_OBJECT
-
-private slots:
- void scenario();
-};
-
-#endif
diff --git a/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp b/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp
index bd2e4b0..d0a613c 100644
--- a/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp
+++ b/tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp
@@ -39,4 +39,35 @@
**
****************************************************************************/
-#include "../qstringbuilder1/stringbuilder.cpp"
+
+// SCENARIO 1
+// this is the "no harm done" version. Only operator% is active,
+// with NO_CAST * defined
+#define P %
+#undef QT_USE_FAST_OPERATOR_PLUS
+#undef QT_USE_FAST_CONCATENATION
+#define QT_NO_CAST_FROM_ASCII
+#define QT_NO_CAST_TO_ASCII
+
+
+#include <QtTest/QtTest>
+
+//TESTED_CLASS=QStringBuilder
+//TESTED_FILES=qstringbuilder.cpp
+
+#define LITERAL "some literal"
+
+void runScenario(); // Defined in stringbuilder.cpp #included below.
+
+class tst_QStringBuilder1 : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void scenario() { runScenario(); }
+};
+
+#include "stringbuilder.cpp"
+#include "tst_qstringbuilder1.moc"
+
+QTEST_APPLESS_MAIN(tst_QStringBuilder1)
diff --git a/tests/auto/qstringbuilder2/qstringbuilder2.pro b/tests/auto/qstringbuilder2/qstringbuilder2.pro
index c0b3ebc..4152dc3 100644
--- a/tests/auto/qstringbuilder2/qstringbuilder2.pro
+++ b/tests/auto/qstringbuilder2/qstringbuilder2.pro
@@ -3,6 +3,3 @@ load(qttest_p4)
QT = core
SOURCES += tst_qstringbuilder2.cpp
-HEADERS += ../qstringbuilder1/stringbuilder.h
-
-DEFINES += SCENARIO=2
diff --git a/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp b/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp
index bd2e4b0..4470928 100644
--- a/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp
+++ b/tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp
@@ -39,4 +39,36 @@
**
****************************************************************************/
+
+// SCENARIO 2
+// this is the "full" version. Operator+ is replaced by a QStringBuilder
+// based version
+// with NO_CAST * defined
+#define P +
+#define QT_USE_FAST_OPERATOR_PLUS
+#define QT_USE_FAST_CONCATENATION
+#define QT_NO_CAST_FROM_ASCII
+#define QT_NO_CAST_TO_ASCII
+
+
+#include <QtTest/QtTest>
+
+//TESTED_CLASS=QStringBuilder
+//TESTED_FILES=qstringbuilder.cpp
+
+#define LITERAL "some literal"
+
+void runScenario(); // Defined in stringbuilder.cpp #included below.
+
+class tst_QStringBuilder2 : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void scenario() { runScenario(); }
+};
+
#include "../qstringbuilder1/stringbuilder.cpp"
+#include "tst_qstringbuilder2.moc"
+
+QTEST_APPLESS_MAIN(tst_QStringBuilder2)
diff --git a/tests/auto/qstringbuilder3/qstringbuilder3.pro b/tests/auto/qstringbuilder3/qstringbuilder3.pro
index 93d1a39..b4d2225 100644
--- a/tests/auto/qstringbuilder3/qstringbuilder3.pro
+++ b/tests/auto/qstringbuilder3/qstringbuilder3.pro
@@ -3,6 +3,3 @@ load(qttest_p4)
QT = core
SOURCES += tst_qstringbuilder3.cpp
-HEADERS += ../qstringbuilder1/stringbuilder.h
-
-DEFINES += SCENARIO=3
diff --git a/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp b/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp
index bd2e4b0..30f0181 100644
--- a/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp
+++ b/tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp
@@ -39,4 +39,35 @@
**
****************************************************************************/
+
+// SCENARIO 3
+// this is the "no harm done" version. Only operator% is active,
+// with NO_CAST * _not_ defined
+#define P %
+#undef QT_USE_FAST_OPERATOR_PLUS
+#undef QT_USE_FAST_CONCATENATION
+#undef QT_NO_CAST_FROM_ASCII
+#undef QT_NO_CAST_TO_ASCII
+
+
+#include <QtTest/QtTest>
+
+//TESTED_CLASS=QStringBuilder
+//TESTED_FILES=qstringbuilder.cpp
+
+#define LITERAL "some literal"
+
+void runScenario(); // Defined in stringbuilder.cpp #included below.
+
+class tst_QStringBuilder3 : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void scenario() { runScenario(); }
+};
+
#include "../qstringbuilder1/stringbuilder.cpp"
+#include "tst_qstringbuilder3.moc"
+
+QTEST_APPLESS_MAIN(tst_QStringBuilder3)
diff --git a/tests/auto/qstringbuilder4/qstringbuilder4.pro b/tests/auto/qstringbuilder4/qstringbuilder4.pro
index eeec447..6ec5228 100644
--- a/tests/auto/qstringbuilder4/qstringbuilder4.pro
+++ b/tests/auto/qstringbuilder4/qstringbuilder4.pro
@@ -3,6 +3,3 @@ load(qttest_p4)
QT = core
SOURCES += tst_qstringbuilder4.cpp
-HEADERS += ../qstringbuilder1/stringbuilder.h
-
-DEFINES += SCENARIO=4
diff --git a/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp b/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp
index 2159283..95b4ec3 100644
--- a/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp
+++ b/tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp
@@ -4,7 +4,7 @@
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the QtXmlPatterns module of the Qt Toolkit.
+** This file is part of the test suite module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,4 +39,36 @@
**
****************************************************************************/
+
+// SCENARIO 4
+// this is the "full" version. Operator+ is replaced by a QStringBuilder
+// based version
+// with NO_CAST * _not_ defined
+#define P +
+#define QT_USE_FAST_OPERATOR_PLUS
+#define QT_USE_FAST_CONCATENATION
+#undef QT_NO_CAST_FROM_ASCII
+#undef QT_NO_CAST_TO_ASCII
+
+
+#include <QtTest/QtTest>
+
+//TESTED_CLASS=QStringBuilder
+//TESTED_FILES=qstringbuilder.cpp
+
+#define LITERAL "some literal"
+
+void runScenario(); // Defined in stringbuilder.cpp #included below.
+
+class tst_QStringBuilder4 : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void scenario() { runScenario(); }
+};
+
#include "../qstringbuilder1/stringbuilder.cpp"
+#include "tst_qstringbuilder4.moc"
+
+QTEST_APPLESS_MAIN(tst_QStringBuilder4)
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index fe2794f..227ca6f 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -203,6 +203,8 @@ private slots:
void addColumnWhileEditing();
void task234926_setHeaderSorting();
+
+ void changeHeaderData();
};
// Testing get/set functions
@@ -3883,5 +3885,24 @@ void tst_QTableView::taskQTBUG_5062_spansInconsistency()
VERIFY_SPANS_CONSISTENCY(&view);
}
+void tst_QTableView::changeHeaderData()
+{
+ QTableView view;
+ QStandardItemModel model(5,5);
+ view.setModel(&model);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QString text = "long long long text";
+ const int textWidth = view.fontMetrics().width(text);
+ QVERIFY(view.verticalHeader()->width() < textWidth);
+
+ model.setHeaderData(2, Qt::Vertical, text);
+ QTest::qWait(100); //leave time for layout
+
+ QVERIFY(view.verticalHeader()->width() > textWidth);
+}
+
+
QTEST_MAIN(tst_QTableView)
#include "tst_qtableview.moc"
diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png
index 7467478..ced6eb6 100644
--- a/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png
+++ b/tests/auto/qtextedit/fullWidthSelection/centered-fully-selected.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png
index 7a10e63..481b99c 100644
--- a/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png
+++ b/tests/auto/qtextedit/fullWidthSelection/centered-partly-selected.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png
index df5b92e..292d3f9 100644
--- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png
+++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-line.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png
index d58d4cc..69b72ed 100644
--- a/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png
+++ b/tests/auto/qtextedit/fullWidthSelection/last-char-on-parag.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png
index c5c3c22..467b91e 100644
--- a/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png
+++ b/tests/auto/qtextedit/fullWidthSelection/multiple-full-width-lines.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png
index 7ded254..cce921b 100644
--- a/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png
+++ b/tests/auto/qtextedit/fullWidthSelection/nowrap_long.png
Binary files differ
diff --git a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png
index d2fd629..937494a 100644
--- a/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png
+++ b/tests/auto/qtextedit/fullWidthSelection/single-full-width-line.png
Binary files differ
diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp
index 59abbd5..fee030c 100644
--- a/tests/auto/qtextedit/tst_qtextedit.cpp
+++ b/tests/auto/qtextedit/tst_qtextedit.cpp
@@ -1967,7 +1967,7 @@ void tst_QTextEdit::fullWidthSelection()
qt_setQtEnableTestFont(true);
QFont testFont;
testFont.setFamily("__Qt__Box__Engine__");
- testFont.setPixelSize(12);
+ testFont.setPixelSize(11);
testFont.setWeight(QFont::Normal);
QTextCharFormat cf;
cf.setFont(testFont);
@@ -2015,7 +2015,7 @@ void tst_QTextEdit::fullWidthSelection2()
qt_setQtEnableTestFont(true);
QFont testFont;
testFont.setFamily("__Qt__Box__Engine__");
- testFont.setPixelSize(12);
+ testFont.setPixelSize(11);
testFont.setWeight(QFont::Normal);
QTextCharFormat cf;
cf.setFont(testFont);
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 1429771..90e6c5c 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -2892,6 +2892,8 @@ void tst_QTreeView::styleOptionViewItem()
QVERIFY(!opt.text.isEmpty());
QCOMPARE(opt.index, index);
+ //qDebug() << index << opt.text;
+
if (allCollapsed)
QCOMPARE(!(opt.features & QStyleOptionViewItemV2::Alternate), !(index.row() % 2));
QCOMPARE(!(opt.features & QStyleOptionViewItemV2::HasCheckIndicator), !opt.text.contains("Checkable"));
@@ -2979,9 +2981,108 @@ void tst_QTreeView::styleOptionViewItem()
view.expandAll();
QApplication::processEvents();
QTRY_VERIFY(delegate.count >= 13);
+ delegate.count = 0;
view.collapse(par2->index());
QApplication::processEvents();
QTRY_VERIFY(delegate.count >= 4);
+
+
+ //test dynamic models
+ {
+ delegate.count = 0;
+ QStandardItemModel model2;
+ QStandardItem *item0 = new QStandardItem("OnlyOne Last");
+ model2.appendRow(QList<QStandardItem*>() << item0);
+ view.setModel(&model2);
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 1);
+ QApplication::processEvents();
+
+ QStandardItem *item00 = new QStandardItem("OnlyOne Last");
+ item0->appendRow(QList<QStandardItem*>() << item00);
+ item0->setText("OnlyOne Last HasChildren");
+ QApplication::processEvents();
+ delegate.count = 0;
+ view.expandAll();
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 2);
+ QApplication::processEvents();
+
+ QStandardItem *item1 = new QStandardItem("OnlyOne Last");
+ delegate.count = 0;
+ item0->setText("OnlyOne HasChildren");
+ model2.appendRow(QList<QStandardItem*>() << item1);
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 3);
+ QApplication::processEvents();
+
+ QStandardItem *item01 = new QStandardItem("OnlyOne Last");
+ delegate.count = 0;
+ item00->setText("OnlyOne");
+ item0->appendRow(QList<QStandardItem*>() << item01);
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 4);
+ QApplication::processEvents();
+
+ QStandardItem *item000 = new QStandardItem("OnlyOne Last");
+ delegate.count = 0;
+ item00->setText("OnlyOne HasChildren");
+ item00->appendRow(QList<QStandardItem*>() << item000);
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 5);
+ QApplication::processEvents();
+
+ delegate.count = 0;
+ item0->removeRow(0);
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 3);
+ QApplication::processEvents();
+
+ item00 = new QStandardItem("OnlyOne");
+ item0->insertRow(0, QList<QStandardItem*>() << item00);
+ QApplication::processEvents();
+ delegate.count = 0;
+ view.expandAll();
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 4);
+ QApplication::processEvents();
+
+ delegate.count = 0;
+ item0->removeRow(1);
+ item00->setText("OnlyOne Last");
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 3);
+ QApplication::processEvents();
+
+ delegate.count = 0;
+ item0->removeRow(0);
+ item0->setText("OnlyOne");
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 2);
+ QApplication::processEvents();
+
+ //with hidden items
+ item0->setText("OnlyOne HasChildren");
+ item00 = new QStandardItem("OnlyOne");
+ item0->appendRow(QList<QStandardItem*>() << item00);
+ item01 = new QStandardItem("Assert");
+ item0->appendRow(QList<QStandardItem*>() << item01);
+ view.setRowHidden(1, item0->index(), true);
+ view.expandAll();
+ QStandardItem *item02 = new QStandardItem("OnlyOne Last");
+ item0->appendRow(QList<QStandardItem*>() << item02);
+ delegate.count = 0;
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 4);
+ QApplication::processEvents();
+
+ item0->removeRow(2);
+ item00->setText("OnlyOne Last");
+ delegate.count = 0;
+ QApplication::processEvents();
+ QTRY_VERIFY(delegate.count >= 3);
+ QApplication::processEvents();
+ }
}
class task174627_TreeView : public QTreeView
@@ -3552,6 +3653,7 @@ void tst_QTreeView::doubleClickedWithSpans()
view.setModel(&model);
view.setFirstColumnSpanned(0, QModelIndex(), true);
view.show();
+ QTest::qWaitForWindowShown(&view);
QPoint p(10, 10);
QCOMPARE(view.indexAt(p), model.index(0, 0));
diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp
index 7ea2163..9418be0 100644
--- a/tests/auto/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp
@@ -719,6 +719,8 @@ void tst_QUdpSocket::outOfProcessConnectedClientServerTest()
QProcess serverProcess;
serverProcess.start(QLatin1String("clientserver/clientserver server 1 1"),
QIODevice::ReadWrite | QIODevice::Text);
+ QVERIFY2(serverProcess.waitForStarted(3000),
+ qPrintable("Failed to start subprocess: " + serverProcess.errorString()));
// Wait until the server has started and reports success.
while (!serverProcess.canReadLine())
@@ -732,6 +734,9 @@ void tst_QUdpSocket::outOfProcessConnectedClientServerTest()
clientProcess.start(QString::fromLatin1("clientserver/clientserver connectedclient %1 %2")
.arg(QLatin1String("127.0.0.1")).arg(serverPort),
QIODevice::ReadWrite | QIODevice::Text);
+ QVERIFY2(clientProcess.waitForStarted(3000),
+ qPrintable("Failed to start subprocess: " + clientProcess.errorString()));
+
// Wait until the server has started and reports success.
while (!clientProcess.canReadLine())
QVERIFY(clientProcess.waitForReadyRead(3000));
@@ -779,6 +784,8 @@ void tst_QUdpSocket::outOfProcessUnconnectedClientServerTest()
QProcess serverProcess;
serverProcess.start(QLatin1String("clientserver/clientserver server 1 1"),
QIODevice::ReadWrite | QIODevice::Text);
+ QVERIFY2(serverProcess.waitForStarted(3000),
+ qPrintable("Failed to start subprocess: " + serverProcess.errorString()));
// Wait until the server has started and reports success.
while (!serverProcess.canReadLine())
@@ -792,6 +799,9 @@ void tst_QUdpSocket::outOfProcessUnconnectedClientServerTest()
clientProcess.start(QString::fromLatin1("clientserver/clientserver unconnectedclient %1 %2")
.arg(QLatin1String("127.0.0.1")).arg(serverPort),
QIODevice::ReadWrite | QIODevice::Text);
+ QVERIFY2(clientProcess.waitForStarted(3000),
+ qPrintable("Failed to start subprocess: " + clientProcess.errorString()));
+
// Wait until the server has started and reports success.
while (!clientProcess.canReadLine())
QVERIFY(clientProcess.waitForReadyRead(3000));
diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp
index 72c13bf..c8fe4e5 100644
--- a/tests/auto/qurl/tst_qurl.cpp
+++ b/tests/auto/qurl/tst_qurl.cpp
@@ -3679,15 +3679,21 @@ void tst_QUrl::binaryData()
void tst_QUrl::fromUserInput_data()
{
+ //
+ // most of this test is:
+ // Copyright (C) Research In Motion Limited 2009. All rights reserved.
+ // Distributed under the BSD license.
+ // See qurl.cpp
+ //
+
QTest::addColumn<QString>("string");
- QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QUrl>("guessUrlFromString");
// Null
QTest::newRow("null") << QString() << QUrl();
// File
QDirIterator it(QDir::homePath());
- QString fileString;
int c = 0;
while (it.hasNext()) {
it.next();
@@ -3695,49 +3701,52 @@ void tst_QUrl::fromUserInput_data()
}
// basic latin1
- QTest::newRow("unicode-0") << QString::fromUtf8("\xC3\xA5.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xC3\xA5.com/").toUtf8(), QUrl::TolerantMode);
+ QTest::newRow("unicode-0") << QString::fromUtf8("\xc3\xa5.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xc3\xa5.com/").toUtf8(), QUrl::TolerantMode);
+ QTest::newRow("unicode-0b") << QString::fromUtf8("\xc3\xa5.com/") << QUrl::fromEncoded("http://%C3%A5.com/", QUrl::TolerantMode);
+ QTest::newRow("unicode-0c") << QString::fromUtf8("\xc3\xa5.com/") << QUrl::fromEncoded("http://xn--5ca.com/", QUrl::TolerantMode);
// unicode
- QTest::newRow("unicode-1") << QString::fromUtf8("\xCE\xBB.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xCE\xBB.com/").toUtf8(), QUrl::TolerantMode);
+ QTest::newRow("unicode-1") << QString::fromUtf8("\xce\xbb.com/") << QUrl::fromEncoded(QString::fromUtf8("http://\xce\xbb.com/").toUtf8(), QUrl::TolerantMode);
+ QTest::newRow("unicode-1b") << QString::fromUtf8("\xce\xbb.com/") << QUrl::fromEncoded("http://%CE%BB.com/", QUrl::TolerantMode);
+ QTest::newRow("unicode-1c") << QString::fromUtf8("\xce\xbb.com/") << QUrl::fromEncoded("http://xn--wxa.com/", QUrl::TolerantMode);
// no scheme
- QTest::newRow("add scheme-0") << "webkit.org" << QUrl("http://webkit.org");
- QTest::newRow("add scheme-1") << "www.webkit.org" << QUrl("http://www.webkit.org");
- QTest::newRow("add scheme-2") << "ftp.webkit.org" << QUrl("ftp://ftp.webkit.org");
+ QTest::newRow("add scheme-0") << "example.org" << QUrl("http://example.org");
+ QTest::newRow("add scheme-1") << "www.example.org" << QUrl("http://www.example.org");
+ QTest::newRow("add scheme-2") << "ftp.example.org" << QUrl("ftp://ftp.example.org");
QTest::newRow("add scheme-3") << "webkit" << QUrl("webkit");
// QUrl's tolerant parser should already handle this
- QTest::newRow("not-encoded-0") << "http://webkit.org/test page.html" << QUrl("http://webkit.org/test%20page.html");
+ QTest::newRow("not-encoded-0") << "http://example.org/test page.html" << QUrl::fromEncoded("http://example.org/test%20page.html");
// Make sure the :80, i.e. port doesn't screw anything up
- QUrl portUrl("http://webkit.org");
+ QUrl portUrl("http://example.org");
portUrl.setPort(80);
- QTest::newRow("port-0") << "webkit.org:80" << portUrl;
- QTest::newRow("port-1") << "http://webkit.org:80" << portUrl;
+ QTest::newRow("port-0") << "example.org:80" << portUrl;
+ QTest::newRow("port-1") << "http://example.org:80" << portUrl;
// mailto doesn't have a ://, but is valid
- QUrl mailto("somebody@somewhere.net");
+ QUrl mailto("ben@example.net");
mailto.setScheme("mailto");
- QTest::newRow("mailto") << "mailto:somebody@somewhere.net" << mailto;
+ QTest::newRow("mailto") << "mailto:ben@example.net" << mailto;
// misc
QTest::newRow("localhost-0") << "localhost" << QUrl("http://localhost");
QTest::newRow("localhost-1") << "localhost:80" << QUrl("http://localhost:80");
- QTest::newRow("spaces-0") << " http://webkit.org/test page.html " << QUrl("http://webkit.org/test%20page.html");
- QTest::newRow("trash-0") << "webkit.org/test?someData=42%&someOtherData=abcde#anchor" << QUrl::fromEncoded("http://webkit.org/test?someData=42%25&someOtherData=abcde#anchor");
+ QTest::newRow("spaces-0") << " http://example.org/test page.html " << QUrl("http://example.org/test%20page.html");
+ QTest::newRow("trash-0") << "example.org/test?someData=42%&someOtherData=abcde#anchor" << QUrl::fromEncoded("http://example.org/test?someData=42%25&someOtherData=abcde#anchor");
// FYI: The scheme in the resulting url user
QUrl authUrl("user:pass@domain.com");
QTest::newRow("misc-1") << "user:pass@domain.com" << authUrl;
}
-// public static QUrl guessUrlFromString(QString const& string)
void tst_QUrl::fromUserInput()
{
QFETCH(QString, string);
- QFETCH(QUrl, url);
+ QFETCH(QUrl, guessUrlFromString);
- QUrl guessedUrl = QUrl::fromUserInput(string);
- QCOMPARE(guessedUrl, url);
+ QUrl url = QUrl::fromUserInput(string);
+ QCOMPARE(url, guessUrlFromString);
}
void tst_QUrl::task_199967()
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index 61e9a4f..e2a606f 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -3380,6 +3380,10 @@ void tst_QVariant::variantInVariant()
QVariant var8 = qvariant_cast<QVariant>(QVariant::fromValue(QVariant::fromValue(str)));
QCOMPARE((int)var8.type(), (int)QVariant::String);
QCOMPARE(qvariant_cast<QString>(QVariant(qvariant_cast<QVariant>(var8))), str);
+
+ QVariant var9(qMetaTypeId<QVariant>(), &var1);
+ QCOMPARE(var9.userType(), qMetaTypeId<QVariant>());
+ QCOMPARE(qvariant_cast<QVariant>(var9), var1);
}
QTEST_MAIN(tst_QVariant)
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index bc8cece..3d801cc 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -6320,6 +6320,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
widget.show();
expected =
EventRecorder::EventList()
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
@@ -6405,6 +6406,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
widget.show();
expected =
EventRecorder::EventList()
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
#ifdef QT_HAS_QT3SUPPORT
<< qMakePair(&widget, QEvent::ChildInserted)
@@ -6502,6 +6504,7 @@ void tst_QWidget::compatibilityChildInsertedEvents()
widget.show();
expected =
EventRecorder::EventList()
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
#ifdef QT_HAS_QT3SUPPORT
<< qMakePair(&widget, QEvent::ChildInserted)