summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-02-16 01:32:35 (GMT)
committerMartin Jones <martin.jones@nokia.com>2010-02-16 01:32:35 (GMT)
commit6f3649260d157584361112a94733b92f10c01b84 (patch)
tree13197132bd1f3854572728ff1699fa6780021365 /tests/auto
parentb77e592cf9709c31f61c3e1d229b2a6c446ab8bc (diff)
parente7041de4d51a3166948924fc8640c8c6bc8daa7b (diff)
downloadQt-6f3649260d157584361112a94733b92f10c01b84.zip
Qt-6f3649260d157584361112a94733b92f10c01b84.tar.gz
Qt-6f3649260d157584361112a94733b92f10c01b84.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-qml
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/declarative/declarative.pro5
-rw-r--r--tests/auto/declarative/qmlanimations/tst_qmlanimations.cpp40
-rw-r--r--tests/auto/declarative/qmlbehaviors/tst_qmlbehaviors.cpp30
-rw-r--r--tests/auto/declarative/qmldatetimeformatter/tst_qmldatetimeformatter.cpp12
-rw-r--r--tests/auto/declarative/qmldebug/tst_qmldebug.cpp40
-rw-r--r--tests/auto/declarative/qmldebugservice/tst_qmldebugservice.cpp1
-rw-r--r--tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp9
-rw-r--r--tests/auto/declarative/qmlengine/qmlengine.pro2
-rw-r--r--tests/auto/declarative/qmlgraphicsanchors/tst_qmlgraphicsanchors.cpp34
-rw-r--r--tests/auto/declarative/qmlgraphicsanimatedimage/tst_qmlgraphicsanimatedimage.cpp22
-rw-r--r--tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp117
-rw-r--r--tests/auto/declarative/qmlgraphicstextinput/data/navigation.qml1
-rw-r--r--tests/auto/declarative/qmlgraphicstextinput/data/validators.qml2
-rw-r--r--tests/auto/declarative/qmlgraphicstextinput/tst_qmlgraphicstextinput.cpp13
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml1
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp3
-rw-r--r--tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp9
-rw-r--r--tests/auto/declarative/qmlnumberformatter/tst_qmlnumberformatter.cpp14
-rw-r--r--tests/auto/declarative/qmlstates/tst_qmlstates.cpp54
-rw-r--r--tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp46
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/abort.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/getAllResponseHeaders.qml2
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/getResponseHeader.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/open_network.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/send_data.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/send_ignoreData.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/setRequestHeader.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/status.200.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/data/status.404.reply1
-rw-r--r--tests/auto/declarative/qmlxmlhttprequest/tst_qmlxmlhttprequest.cpp92
-rwxr-xr-xtests/auto/declarative/runall.sh8
-rw-r--r--tests/auto/declarative/shared/debugutil.cpp21
-rw-r--r--tests/auto/declarative/shared/debugutil_p.h25
-rw-r--r--tests/auto/declarative/shared/testhttpserver.cpp11
-rw-r--r--tests/auto/qabstractitemview/tst_qabstractitemview.cpp11
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp2
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp29
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp28
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp86
-rw-r--r--tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp1
-rw-r--r--tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp64
-rw-r--r--tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp14
-rw-r--r--tests/auto/qscriptvalue/testgen/data.txt4
-rwxr-xr-xtests/auto/qscriptvalue/testgen/gen.py2
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp127
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp20
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp46
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp11
48 files changed, 736 insertions, 331 deletions
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index fba63d5..9ef10b0 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -35,7 +35,6 @@ SUBDIRS += \
qmlgraphicstext \ # Cover
qmlgraphicstextedit \ # Cover
qmlgraphicstextinput \ # Cover
- qmlgraphicswebview \ # Cover
qmlinfo \ # Cover
qmlinstruction \ # Cover
qmllanguage \ # Cover
@@ -60,6 +59,10 @@ SUBDIRS += \
qmlimageprovider \ # Cover
sql # Cover
+contains(QT_CONFIG, webkit) {
+ SUBDIRS += \
+ qmlgraphicswebview # Cover
+}
# Tests which should run in Pulse
PULSE_TESTS = $$SUBDIRS
diff --git a/tests/auto/declarative/qmlanimations/tst_qmlanimations.cpp b/tests/auto/declarative/qmlanimations/tst_qmlanimations.cpp
index 17a1453..b2653df 100644
--- a/tests/auto/declarative/qmlanimations/tst_qmlanimations.cpp
+++ b/tests/auto/declarative/qmlanimations/tst_qmlanimations.cpp
@@ -46,13 +46,15 @@
#include <private/qmlanimation_p.h>
#include <QVariantAnimation>
-class tst_animations : public QObject
+class tst_qmlanimations : public QObject
{
Q_OBJECT
public:
- tst_animations() {}
+ tst_qmlanimations() {}
private slots:
+ void initTestCase() { QmlEngine engine; } // ensure types are registered
+
void simpleProperty();
void simpleNumber();
void simpleColor();
@@ -80,7 +82,7 @@ private slots:
QCOMPARE(lhs, rhs); \
} while (false)
-void tst_animations::simpleProperty()
+void tst_qmlanimations::simpleProperty()
{
QmlGraphicsRectangle rect;
QmlPropertyAnimation animation;
@@ -105,7 +107,7 @@ void tst_animations::simpleProperty()
QCOMPARE(rect.pos(), QPointF(100,100));
}
-void tst_animations::simpleNumber()
+void tst_qmlanimations::simpleNumber()
{
QmlGraphicsRectangle rect;
QmlNumberAnimation animation;
@@ -130,7 +132,7 @@ void tst_animations::simpleNumber()
QCOMPARE(rect.x(), qreal(100));
}
-void tst_animations::simpleColor()
+void tst_qmlanimations::simpleColor()
{
QmlGraphicsRectangle rect;
QmlColorAnimation animation;
@@ -164,7 +166,7 @@ void tst_animations::simpleColor()
QCOMPARE(rect.color(), QColor::fromRgbF(0.498039, 0, 0.498039, 1));
}
-void tst_animations::alwaysRunToEnd()
+void tst_qmlanimations::alwaysRunToEnd()
{
QmlGraphicsRectangle rect;
QmlPropertyAnimation animation;
@@ -184,7 +186,7 @@ void tst_animations::alwaysRunToEnd()
QTIMED_COMPARE(rect.x(), qreal(200));
}
-void tst_animations::complete()
+void tst_qmlanimations::complete()
{
QmlGraphicsRectangle rect;
QmlPropertyAnimation animation;
@@ -205,7 +207,7 @@ void tst_animations::complete()
QCOMPARE(rect.x(), qreal(200));
}
-void tst_animations::resume()
+void tst_qmlanimations::resume()
{
QmlGraphicsRectangle rect;
QmlPropertyAnimation animation;
@@ -232,7 +234,7 @@ void tst_animations::resume()
QVERIFY(rect.x() > x);
}
-void tst_animations::dotProperty()
+void tst_qmlanimations::dotProperty()
{
QmlGraphicsRectangle rect;
QmlNumberAnimation animation;
@@ -251,7 +253,7 @@ void tst_animations::dotProperty()
QCOMPARE(rect.border()->width(), 5);
}
-void tst_animations::badTypes()
+void tst_qmlanimations::badTypes()
{
//don't crash
{
@@ -301,7 +303,7 @@ void tst_animations::badTypes()
}
}
-void tst_animations::badProperties()
+void tst_qmlanimations::badProperties()
{
//make sure we get a runtime error
{
@@ -328,7 +330,7 @@ void tst_animations::badProperties()
//test animating mixed types with property animation in a transition
//for example, int + real; color + real; etc
-void tst_animations::mixedTypes()
+void tst_qmlanimations::mixedTypes()
{
//assumes border.width stats a real -- not real robust
{
@@ -364,7 +366,7 @@ void tst_animations::mixedTypes()
}
}
-void tst_animations::properties()
+void tst_qmlanimations::properties()
{
const int waitDuration = 300;
{
@@ -431,7 +433,7 @@ void tst_animations::properties()
}
}
-void tst_animations::propertiesTransition()
+void tst_qmlanimations::propertiesTransition()
{
const int waitDuration = 300;
{
@@ -502,7 +504,7 @@ void tst_animations::propertiesTransition()
}
}
-void tst_animations::easingStringConversion()
+void tst_qmlanimations::easingStringConversion()
{
QmlNumberAnimation *animation = new QmlNumberAnimation;
animation->setEasing("easeInOutQuad");
@@ -553,7 +555,7 @@ void tst_animations::easingStringConversion()
delete animation;
}
-void tst_animations::invalidDuration()
+void tst_qmlanimations::invalidDuration()
{
QmlPropertyAnimation *animation = new QmlPropertyAnimation;
QTest::ignoreMessage(QtWarningMsg, "QML PropertyAnimation (unknown location) Cannot set a duration of < 0");
@@ -566,7 +568,7 @@ void tst_animations::invalidDuration()
QCOMPARE(pauseAnimation->duration(), 250);
}
-void tst_animations::attached()
+void tst_qmlanimations::attached()
{
QmlEngine engine;
@@ -577,7 +579,7 @@ void tst_animations::attached()
QVERIFY(rect);
}
-void tst_animations::propertyValueSourceDefaultStart()
+void tst_qmlanimations::propertyValueSourceDefaultStart()
{
{
QmlEngine engine;
@@ -606,6 +608,6 @@ void tst_animations::propertyValueSourceDefaultStart()
}
}
-QTEST_MAIN(tst_animations)
+QTEST_MAIN(tst_qmlanimations)
#include "tst_qmlanimations.moc"
diff --git a/tests/auto/declarative/qmlbehaviors/tst_qmlbehaviors.cpp b/tests/auto/declarative/qmlbehaviors/tst_qmlbehaviors.cpp
index 61023a2..5663237 100644
--- a/tests/auto/declarative/qmlbehaviors/tst_qmlbehaviors.cpp
+++ b/tests/auto/declarative/qmlbehaviors/tst_qmlbehaviors.cpp
@@ -46,11 +46,11 @@
#include <private/qmlbehavior_p.h>
#include <private/qmlanimation_p.h>
-class tst_behaviors : public QObject
+class tst_qmlbehaviors : public QObject
{
Q_OBJECT
public:
- tst_behaviors() {}
+ tst_qmlbehaviors() {}
private slots:
void simpleBehavior();
@@ -68,7 +68,7 @@ private slots:
void disabled();
};
-void tst_behaviors::simpleBehavior()
+void tst_qmlbehaviors::simpleBehavior()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/simple.qml"));
@@ -82,7 +82,7 @@ void tst_behaviors::simpleBehavior()
QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
}
-void tst_behaviors::scriptTriggered()
+void tst_qmlbehaviors::scriptTriggered()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/scripttrigger.qml"));
@@ -95,7 +95,7 @@ void tst_behaviors::scriptTriggered()
QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
}
-void tst_behaviors::cppTriggered()
+void tst_qmlbehaviors::cppTriggered()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/cpptrigger.qml"));
@@ -111,7 +111,7 @@ void tst_behaviors::cppTriggered()
QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
}
-void tst_behaviors::loop()
+void tst_qmlbehaviors::loop()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/loop.qml"));
@@ -122,7 +122,7 @@ void tst_behaviors::loop()
rect->setState("moved");
}
-void tst_behaviors::colorBehavior()
+void tst_qmlbehaviors::colorBehavior()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/color.qml"));
@@ -135,7 +135,7 @@ void tst_behaviors::colorBehavior()
QVERIFY(color != QColor("red") && color != QColor("green")); //i.e. the behavior has been triggered
}
-void tst_behaviors::parentBehavior()
+void tst_qmlbehaviors::parentBehavior()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/parent.qml"));
@@ -152,7 +152,7 @@ void tst_behaviors::parentBehavior()
QVERIFY(parent == newParent);
}
-void tst_behaviors::replaceBinding()
+void tst_qmlbehaviors::replaceBinding()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/binding.qml"));
@@ -186,7 +186,7 @@ void tst_behaviors::replaceBinding()
QCOMPARE(innerRect->x(), (qreal)20);
}
-void tst_behaviors::group()
+void tst_qmlbehaviors::group()
{
{
QmlEngine engine;
@@ -213,7 +213,7 @@ void tst_behaviors::group()
}
}
-void tst_behaviors::emptyBehavior()
+void tst_qmlbehaviors::emptyBehavior()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/empty.qml"));
@@ -225,7 +225,7 @@ void tst_behaviors::emptyBehavior()
QCOMPARE(x, qreal(200)); //should change immediately
}
-void tst_behaviors::nonSelectingBehavior()
+void tst_qmlbehaviors::nonSelectingBehavior()
{
{
QmlEngine engine;
@@ -250,7 +250,7 @@ void tst_behaviors::nonSelectingBehavior()
}
}
-void tst_behaviors::reassignedAnimation()
+void tst_qmlbehaviors::reassignedAnimation()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml"));
@@ -262,7 +262,7 @@ void tst_behaviors::reassignedAnimation()
rect->findChild<QmlBehavior*>("MyBehavior"))->animation())->duration(), 200);
}
-void tst_behaviors::disabled()
+void tst_qmlbehaviors::disabled()
{
QmlEngine engine;
QmlComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/disabled.qml"));
@@ -276,6 +276,6 @@ void tst_behaviors::disabled()
}
-QTEST_MAIN(tst_behaviors)
+QTEST_MAIN(tst_qmlbehaviors)
#include "tst_qmlbehaviors.moc"
diff --git a/tests/auto/declarative/qmldatetimeformatter/tst_qmldatetimeformatter.cpp b/tests/auto/declarative/qmldatetimeformatter/tst_qmldatetimeformatter.cpp
index 2ce6186..b21a4f0 100644
--- a/tests/auto/declarative/qmldatetimeformatter/tst_qmldatetimeformatter.cpp
+++ b/tests/auto/declarative/qmldatetimeformatter/tst_qmldatetimeformatter.cpp
@@ -44,11 +44,11 @@
#include <private/qmldatetimeformatter_p.h>
#include <QDebug>
-class tst_datetimeformatter : public QObject
+class tst_qmldatetimeformatter : public QObject
{
Q_OBJECT
public:
- tst_datetimeformatter() {}
+ tst_qmldatetimeformatter() {}
private slots:
void date();
@@ -56,7 +56,7 @@ private slots:
void dateTime();
};
-void tst_datetimeformatter::date()
+void tst_qmldatetimeformatter::date()
{
QmlEngine engine;
QmlComponent formatterComponent(&engine);
@@ -86,7 +86,7 @@ void tst_datetimeformatter::date()
delete formatter;
}
-void tst_datetimeformatter::time()
+void tst_qmldatetimeformatter::time()
{
QmlEngine engine;
QmlComponent formatterComponent(&engine);
@@ -119,7 +119,7 @@ void tst_datetimeformatter::time()
delete formatter;
}
-void tst_datetimeformatter::dateTime()
+void tst_qmldatetimeformatter::dateTime()
{
QmlEngine engine;
QmlComponent formatterComponent(&engine);
@@ -145,6 +145,6 @@ void tst_datetimeformatter::dateTime()
delete formatter;
}
-QTEST_MAIN(tst_datetimeformatter)
+QTEST_MAIN(tst_qmldatetimeformatter)
#include "tst_qmldatetimeformatter.moc"
diff --git a/tests/auto/declarative/qmldebug/tst_qmldebug.cpp b/tests/auto/declarative/qmldebug/tst_qmldebug.cpp
index 82e74ce..a51fd29 100644
--- a/tests/auto/declarative/qmldebug/tst_qmldebug.cpp
+++ b/tests/auto/declarative/qmldebug/tst_qmldebug.cpp
@@ -288,10 +288,11 @@ void tst_QmlDebug::watch_property()
QmlDebugPropertyWatch *watch;
- QmlEngineDebug unconnected(0);
- watch = unconnected.addWatch(prop, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ watch = unconnected->addWatch(prop, this);
QCOMPARE(watch->state(), QmlDebugWatch::Dead);
delete watch;
+ delete unconnected;
watch = m_dbg->addWatch(QmlDebugPropertyReference(), this);
QVERIFY(QmlDebugTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State))));
@@ -346,10 +347,11 @@ void tst_QmlDebug::watch_object()
QmlDebugWatch *watch;
- QmlEngineDebug unconnected(0);
- watch = unconnected.addWatch(obj, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ watch = unconnected->addWatch(obj, this);
QCOMPARE(watch->state(), QmlDebugWatch::Dead);
delete watch;
+ delete unconnected;
watch = m_dbg->addWatch(QmlDebugObjectReference(), this);
QVERIFY(QmlDebugTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State))));
@@ -409,10 +411,11 @@ void tst_QmlDebug::watch_expression()
QmlDebugObjectExpressionWatch *watch;
- QmlEngineDebug unconnected(0);
- watch = unconnected.addWatch(obj, expr, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ watch = unconnected->addWatch(obj, expr, this);
QCOMPARE(watch->state(), QmlDebugWatch::Dead);
delete watch;
+ delete unconnected;
watch = m_dbg->addWatch(QmlDebugObjectReference(), expr, this);
QVERIFY(QmlDebugTest::waitForSignal(watch, SIGNAL(stateChanged(QmlDebugWatch::State))));
@@ -487,10 +490,11 @@ void tst_QmlDebug::queryAvailableEngines()
{
QmlDebugEnginesQuery *q_engines;
- QmlEngineDebug unconnected(0);
- q_engines = unconnected.queryAvailableEngines(0);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ q_engines = unconnected->queryAvailableEngines(0);
QCOMPARE(q_engines->state(), QmlDebugQuery::Error);
delete q_engines;
+ delete unconnected;
q_engines = m_dbg->queryAvailableEngines(this);
delete q_engines;
@@ -519,10 +523,11 @@ void tst_QmlDebug::queryRootContexts()
QmlDebugRootContextQuery *q_context;
- QmlEngineDebug unconnected(0);
- q_context = unconnected.queryRootContexts(engineId, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ q_context = unconnected->queryRootContexts(engineId, this);
QCOMPARE(q_context->state(), QmlDebugQuery::Error);
delete q_context;
+ delete unconnected;
q_context = m_dbg->queryRootContexts(engineId, this);
delete q_context;
@@ -563,10 +568,11 @@ void tst_QmlDebug::queryObject()
QmlDebugObjectQuery *q_obj = 0;
- QmlEngineDebug unconnected(0);
- q_obj = recursive ? unconnected.queryObjectRecursive(rootObject, this) : unconnected.queryObject(rootObject, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ q_obj = recursive ? unconnected->queryObjectRecursive(rootObject, this) : unconnected->queryObject(rootObject, this);
QCOMPARE(q_obj->state(), QmlDebugQuery::Error);
delete q_obj;
+ delete unconnected;
q_obj = recursive ? m_dbg->queryObjectRecursive(rootObject, this) : m_dbg->queryObject(rootObject, this);
delete q_obj;
@@ -637,10 +643,11 @@ void tst_QmlDebug::queryExpressionResult()
QmlDebugExpressionQuery *q_expr;
- QmlEngineDebug unconnected(0);
- q_expr = unconnected.queryExpressionResult(objectId, expr, this);
+ QmlEngineDebug *unconnected = new QmlEngineDebug(0);
+ q_expr = unconnected->queryExpressionResult(objectId, expr, this);
QCOMPARE(q_expr->state(), QmlDebugQuery::Error);
delete q_expr;
+ delete unconnected;
q_expr = m_dbg->queryExpressionResult(objectId, expr, this);
delete q_expr;
@@ -801,9 +808,10 @@ class tst_QmlDebug_Factory : public QmlTestFactory
public:
QObject *createTest(QmlDebugTestData *data)
{
- QmlContext *c = new QmlContext(data->engine->rootContext());
+ tst_QmlDebug *test = new tst_QmlDebug(data);
+ QmlContext *c = new QmlContext(data->engine->rootContext(), test);
c->setObjectName("tst_QmlDebug_childContext");
- return new tst_QmlDebug(data);
+ return test;
}
};
diff --git a/tests/auto/declarative/qmldebugservice/tst_qmldebugservice.cpp b/tests/auto/declarative/qmldebugservice/tst_qmldebugservice.cpp
index 4e7bc27..9abc5a5 100644
--- a/tests/auto/declarative/qmldebugservice/tst_qmldebugservice.cpp
+++ b/tests/auto/declarative/qmldebugservice/tst_qmldebugservice.cpp
@@ -167,6 +167,7 @@ void tst_QmlDebugService::objectToString()
obj->setObjectName("Hello");
QCOMPARE(QmlDebugService::objectToString(obj), QString("QObject: Hello"));
+ delete obj;
}
diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
index e5472bb..4edca69 100644
--- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
+++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
@@ -45,7 +45,7 @@
#include <QtDeclarative/qmlcontext.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qdebug.h>
-#include <QtCore/private/qguard_p.h>
+#include <QtDeclarative/private/qmlguard_p.h>
#include <QtCore/qdir.h>
#include <QtCore/qnumeric.h>
#include <private/qmlengine_p.h>
@@ -835,9 +835,9 @@ void tst_qmlecmascript::dynamicCreation()
void tst_qmlecmascript::dynamicDestruction()
{
QmlComponent component(&engine, TEST_FILE("dynamicDeletion.qml"));
- QGuard<MyQmlObject> object = qobject_cast<MyQmlObject*>(component.create());
+ QmlGuard<MyQmlObject> object = qobject_cast<MyQmlObject*>(component.create());
QVERIFY(object != 0);
- QGuard<QObject> createdQmlObject = 0;
+ QmlGuard<QObject> createdQmlObject = 0;
QMetaObject::invokeMethod(object, "create");
createdQmlObject = object->objectProperty();
@@ -846,10 +846,9 @@ void tst_qmlecmascript::dynamicDestruction()
QMetaObject::invokeMethod(object, "killOther");
QVERIFY(createdQmlObject);
- QTest::qWait(0);
QCoreApplication::instance()->processEvents(QEventLoop::DeferredDeletion);
QVERIFY(createdQmlObject);
- for (int ii = 0; createdQmlObject && ii < 10; ++ii) {
+ for (int ii = 0; createdQmlObject && ii < 50; ++ii) { // After 5 seconds we should give up
if (createdQmlObject) {
QTest::qWait(100);
QCoreApplication::instance()->processEvents(QEventLoop::DeferredDeletion);
diff --git a/tests/auto/declarative/qmlengine/qmlengine.pro b/tests/auto/declarative/qmlengine/qmlengine.pro
index 21d55a4..1a0e5f4 100644
--- a/tests/auto/declarative/qmlengine/qmlengine.pro
+++ b/tests/auto/declarative/qmlengine/qmlengine.pro
@@ -1,5 +1,5 @@
load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative webkit network
+contains(QT_CONFIG,declarative): QT += declarative network
macx:CONFIG -= app_bundle
SOURCES += tst_qmlengine.cpp
diff --git a/tests/auto/declarative/qmlgraphicsanchors/tst_qmlgraphicsanchors.cpp b/tests/auto/declarative/qmlgraphicsanchors/tst_qmlgraphicsanchors.cpp
index 5850cf0..1187038 100644
--- a/tests/auto/declarative/qmlgraphicsanchors/tst_qmlgraphicsanchors.cpp
+++ b/tests/auto/declarative/qmlgraphicsanchors/tst_qmlgraphicsanchors.cpp
@@ -51,11 +51,11 @@ Q_DECLARE_METATYPE(QmlGraphicsAnchors::UsedAnchor)
Q_DECLARE_METATYPE(QmlGraphicsAnchorLine::AnchorLine)
-class tst_anchors : public QObject
+class tst_qmlgraphicsanchors : public QObject
{
Q_OBJECT
public:
- tst_anchors() {}
+ tst_qmlgraphicsanchors() {}
template<typename T>
T *findItem(QmlGraphicsItem *parent, const QString &id);
@@ -80,7 +80,7 @@ private slots:
Find an item with the specified id.
*/
template<typename T>
-T *tst_anchors::findItem(QmlGraphicsItem *parent, const QString &objectName)
+T *tst_qmlgraphicsanchors::findItem(QmlGraphicsItem *parent, const QString &objectName)
{
const QMetaObject &mo = T::staticMetaObject;
QList<QGraphicsItem *> children = parent->childItems();
@@ -99,7 +99,7 @@ T *tst_anchors::findItem(QmlGraphicsItem *parent, const QString &objectName)
return 0;
}
-void tst_anchors::basicAnchors()
+void tst_qmlgraphicsanchors::basicAnchors()
{
QmlView *view = new QmlView;
view->setUrl(QUrl::fromLocalFile(SRCDIR "/data/anchors.qml"));
@@ -168,7 +168,7 @@ void tst_anchors::basicAnchors()
}
// mostly testing that we don't crash
-void tst_anchors::loops()
+void tst_qmlgraphicsanchors::loops()
{
{
QmlView *view = new QmlView;
@@ -199,7 +199,7 @@ void tst_anchors::loops()
}
}
-void tst_anchors::illegalSets()
+void tst_qmlgraphicsanchors::illegalSets()
{
QFETCH(QString, qml);
QFETCH(QString, warning);
@@ -216,7 +216,7 @@ void tst_anchors::illegalSets()
delete o;
}
-void tst_anchors::illegalSets_data()
+void tst_qmlgraphicsanchors::illegalSets_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("warning");
@@ -274,7 +274,7 @@ void tst_anchors::illegalSets_data()
<< "QML Rectangle (file::2:45) Can't anchor to an item that isn't a parent or sibling.";
}
-void tst_anchors::reset()
+void tst_qmlgraphicsanchors::reset()
{
QFETCH(QString, side);
QFETCH(QmlGraphicsAnchorLine::AnchorLine, anchorLine);
@@ -301,7 +301,7 @@ void tst_anchors::reset()
delete baseItem;
}
-void tst_anchors::reset_data()
+void tst_qmlgraphicsanchors::reset_data()
{
QTest::addColumn<QString>("side");
QTest::addColumn<QmlGraphicsAnchorLine::AnchorLine>("anchorLine");
@@ -317,7 +317,7 @@ void tst_anchors::reset_data()
QTest::newRow("baseline") << "baseline" << QmlGraphicsAnchorLine::Baseline << QmlGraphicsAnchors::HasBaselineAnchor;
}
-void tst_anchors::resetConvenience()
+void tst_qmlgraphicsanchors::resetConvenience()
{
QmlGraphicsItem *baseItem = new QmlGraphicsItem;
QmlGraphicsItem *item = new QmlGraphicsItem;
@@ -338,7 +338,7 @@ void tst_anchors::resetConvenience()
delete baseItem;
}
-void tst_anchors::nullItem()
+void tst_qmlgraphicsanchors::nullItem()
{
QFETCH(QString, side);
@@ -354,7 +354,7 @@ void tst_anchors::nullItem()
delete item;
}
-void tst_anchors::nullItem_data()
+void tst_qmlgraphicsanchors::nullItem_data()
{
QTest::addColumn<QString>("side");
@@ -368,7 +368,7 @@ void tst_anchors::nullItem_data()
QTest::newRow("baseline") << "baseline";
}
-void tst_anchors::crash1()
+void tst_qmlgraphicsanchors::crash1()
{
QmlView *view = new QmlView;
@@ -383,7 +383,7 @@ void tst_anchors::crash1()
delete view;
}
-void tst_anchors::fill()
+void tst_qmlgraphicsanchors::fill()
{
QmlView *view = new QmlView;
@@ -409,7 +409,7 @@ void tst_anchors::fill()
delete view;
}
-void tst_anchors::centerIn()
+void tst_qmlgraphicsanchors::centerIn()
{
QmlView *view = new QmlView;
@@ -429,7 +429,7 @@ void tst_anchors::centerIn()
delete view;
}
-void tst_anchors::margins()
+void tst_qmlgraphicsanchors::margins()
{
QmlView *view = new QmlView;
@@ -454,6 +454,6 @@ void tst_anchors::margins()
delete view;
}
-QTEST_MAIN(tst_anchors)
+QTEST_MAIN(tst_qmlgraphicsanchors)
#include "tst_qmlgraphicsanchors.moc"
diff --git a/tests/auto/declarative/qmlgraphicsanimatedimage/tst_qmlgraphicsanimatedimage.cpp b/tests/auto/declarative/qmlgraphicsanimatedimage/tst_qmlgraphicsanimatedimage.cpp
index bc10e30..1703c01 100644
--- a/tests/auto/declarative/qmlgraphicsanimatedimage/tst_qmlgraphicsanimatedimage.cpp
+++ b/tests/auto/declarative/qmlgraphicsanimatedimage/tst_qmlgraphicsanimatedimage.cpp
@@ -58,11 +58,11 @@
} while (false)
-class tst_animatedimage : public QObject
+class tst_qmlgraphicsanimatedimage : public QObject
{
Q_OBJECT
public:
- tst_animatedimage() {}
+ tst_qmlgraphicsanimatedimage() {}
private slots:
void play();
@@ -75,7 +75,7 @@ private slots:
void invalidSource();
};
-void tst_animatedimage::play()
+void tst_qmlgraphicsanimatedimage::play()
{
QmlEngine engine;
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickman.qml"));
@@ -86,7 +86,7 @@ void tst_animatedimage::play()
delete anim;
}
-void tst_animatedimage::pause()
+void tst_qmlgraphicsanimatedimage::pause()
{
QmlEngine engine;
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickmanpause.qml"));
@@ -98,7 +98,7 @@ void tst_animatedimage::pause()
delete anim;
}
-void tst_animatedimage::stopped()
+void tst_qmlgraphicsanimatedimage::stopped()
{
QmlEngine engine;
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickmanstopped.qml"));
@@ -110,7 +110,7 @@ void tst_animatedimage::stopped()
delete anim;
}
-void tst_animatedimage::setFrame()
+void tst_qmlgraphicsanimatedimage::setFrame()
{
QmlEngine engine;
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickmanpause.qml"));
@@ -122,7 +122,7 @@ void tst_animatedimage::setFrame()
delete anim;
}
-void tst_animatedimage::frameCount()
+void tst_qmlgraphicsanimatedimage::frameCount()
{
QmlEngine engine;
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/colors.qml"));
@@ -134,7 +134,7 @@ void tst_animatedimage::frameCount()
delete anim;
}
-void tst_animatedimage::remote()
+void tst_qmlgraphicsanimatedimage::remote()
{
QFETCH(QString, fileName);
QFETCH(bool, paused);
@@ -159,7 +159,7 @@ void tst_animatedimage::remote()
delete anim;
}
-void tst_animatedimage::remote_data()
+void tst_qmlgraphicsanimatedimage::remote_data()
{
QTest::addColumn<QString>("fileName");
QTest::addColumn<bool>("paused");
@@ -168,7 +168,7 @@ void tst_animatedimage::remote_data()
QTest::newRow("paused") << "stickmanpause.qml" << true;
}
-void tst_animatedimage::invalidSource()
+void tst_qmlgraphicsanimatedimage::invalidSource()
{
QmlEngine engine;
QmlComponent component(&engine);
@@ -186,6 +186,6 @@ void tst_animatedimage::invalidSource()
QCOMPARE(anim->frameCount(), 0);
}
-QTEST_MAIN(tst_animatedimage)
+QTEST_MAIN(tst_qmlgraphicsanimatedimage)
#include "tst_qmlgraphicsanimatedimage.moc"
diff --git a/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
index da541c8..42d6da9 100644
--- a/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
+++ b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
@@ -43,6 +43,7 @@
#include <qmlview.h>
#include <private/qmlgraphicsrectangle_p.h>
#include <qmlexpression.h>
+#include "../../../shared/util.h"
class tst_QmlGraphicsPositioners : public QObject
{
@@ -75,7 +76,6 @@ void tst_QmlGraphicsPositioners::test_horizontal()
QmlView *canvas = createView(SRCDIR "/data/horizontal.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -99,7 +99,6 @@ void tst_QmlGraphicsPositioners::test_horizontal_spacing()
QmlView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -123,30 +122,31 @@ void tst_QmlGraphicsPositioners::test_horizontal_animated()
QmlView *canvas = createView(SRCDIR "/data/horizontal-animated.qml");
canvas->execute();
- qApp->processEvents();
- //Note that they animate in
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
- QCOMPARE(one->x(), -100.0);
QmlGraphicsRectangle *two = canvas->root()->findChild<QmlGraphicsRectangle*>("two");
QVERIFY(two != 0);
- QCOMPARE(two->x(), -100.0);
QmlGraphicsRectangle *three = canvas->root()->findChild<QmlGraphicsRectangle*>("three");
QVERIFY(three != 0);
+
+ //Note that they animate in
+ QCOMPARE(one->x(), -100.0);
+ QCOMPARE(two->x(), -100.0);
QCOMPARE(three->x(), -100.0);
- QTest::qWait(300);//Let the animation complete
+ //QTRY_COMPARE used instead of waiting for the expected time of animation completion
+ //Note that this means the duration of the animation is NOT tested
- QCOMPARE(one->x(), 0.0);
- QCOMPARE(one->y(), 0.0);
- QCOMPARE(two->opacity(), 0.0);
- QCOMPARE(two->x(), -100.0);//Not 'in' yet
- QCOMPARE(two->y(), 0.0);
- QCOMPARE(three->x(), 50.0);
- QCOMPARE(three->y(), 0.0);
+ QTRY_COMPARE(one->x(), 0.0);
+ QTRY_COMPARE(one->y(), 0.0);
+ QTRY_COMPARE(two->opacity(), 0.0);
+ QTRY_COMPARE(two->x(), -100.0);//Not 'in' yet
+ QTRY_COMPARE(two->y(), 0.0);
+ QTRY_COMPARE(three->x(), 50.0);
+ QTRY_COMPARE(three->y(), 0.0);
//Add 'two'
two->setOpacity(1.0);
@@ -154,9 +154,9 @@ void tst_QmlGraphicsPositioners::test_horizontal_animated()
QTest::qWait(0);//Let the animation start
QCOMPARE(two->x(), -100.0);
QCOMPARE(three->x(), 50.0);
- QTest::qWait(300);//Let the animation complete
- QCOMPARE(two->x(), 50.0);
- QCOMPARE(three->x(), 100.0);
+
+ QTRY_COMPARE(two->x(), 50.0);
+ QTRY_COMPARE(three->x(), 100.0);
}
void tst_QmlGraphicsPositioners::test_vertical()
@@ -164,7 +164,6 @@ void tst_QmlGraphicsPositioners::test_vertical()
QmlView *canvas = createView(SRCDIR "/data/vertical.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -188,7 +187,6 @@ void tst_QmlGraphicsPositioners::test_vertical_spacing()
QmlView *canvas = createView(SRCDIR "/data/vertical-spacing.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -212,9 +210,7 @@ void tst_QmlGraphicsPositioners::test_vertical_animated()
QmlView *canvas = createView(SRCDIR "/data/vertical-animated.qml");
canvas->execute();
- qApp->processEvents();
- QTest::qWait(0);//Let the animation start
//Note that they animate in
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -228,25 +224,26 @@ void tst_QmlGraphicsPositioners::test_vertical_animated()
QVERIFY(three != 0);
QCOMPARE(three->y(), -100.0);
- QTest::qWait(300);//Let the animation complete
+ //QTRY_COMPARE used instead of waiting for the expected time of animation completion
+ //Note that this means the duration of the animation is NOT tested
- QCOMPARE(one->y(), 0.0);
- QCOMPARE(one->x(), 0.0);
- QCOMPARE(two->opacity(), 0.0);
- QCOMPARE(two->y(), -100.0);//Not 'in' yet
- QCOMPARE(two->x(), 0.0);
- QCOMPARE(three->y(), 50.0);
- QCOMPARE(three->x(), 0.0);
+ QTRY_COMPARE(one->y(), 0.0);
+ QTRY_COMPARE(one->x(), 0.0);
+ QTRY_COMPARE(two->opacity(), 0.0);
+ QTRY_COMPARE(two->y(), -100.0);//Not 'in' yet
+ QTRY_COMPARE(two->x(), 0.0);
+ QTRY_COMPARE(three->y(), 50.0);
+ QTRY_COMPARE(three->x(), 0.0);
//Add 'two'
two->setOpacity(1.0);
- QCOMPARE(two->opacity(), 1.0);
+ QTRY_COMPARE(two->opacity(), 1.0);
QTest::qWait(0);//Let the animation start
QCOMPARE(two->y(), -100.0);
QCOMPARE(three->y(), 50.0);
- QTest::qWait(300);//Let the animation complete
- QCOMPARE(two->y(), 50.0);
- QCOMPARE(three->y(), 100.0);
+
+ QTRY_COMPARE(two->y(), 50.0);
+ QTRY_COMPARE(three->y(), 100.0);
}
@@ -255,7 +252,6 @@ void tst_QmlGraphicsPositioners::test_grid()
QmlView *canvas = createView("data/grid.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -285,7 +281,6 @@ void tst_QmlGraphicsPositioners::test_grid_spacing()
QmlView *canvas = createView("data/grid-spacing.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -314,9 +309,7 @@ void tst_QmlGraphicsPositioners::test_grid_animated()
{
QmlView *canvas = createView(SRCDIR "/data/grid-animated.qml");
canvas->execute();
- qApp->processEvents();
- QTest::qWait(0);//Let the animation start
//Note that all animate in
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -343,19 +336,20 @@ void tst_QmlGraphicsPositioners::test_grid_animated()
QCOMPARE(five->x(), -100.0);
QCOMPARE(five->y(), -100.0);
- QTest::qWait(300);//Let the animation complete
-
- QCOMPARE(one->y(), 0.0);
- QCOMPARE(one->x(), 0.0);
- QCOMPARE(two->opacity(), 0.0);
- QCOMPARE(two->y(), -100.0);
- QCOMPARE(two->x(), -100.0);
- QCOMPARE(three->y(), 0.0);
- QCOMPARE(three->x(), 50.0);
- QCOMPARE(four->y(), 0.0);
- QCOMPARE(four->x(), 100.0);
- QCOMPARE(five->y(), 50.0);
- QCOMPARE(five->x(), 0.0);
+ //QTRY_COMPARE used instead of waiting for the expected time of animation completion
+ //Note that this means the duration of the animation is NOT tested
+
+ QTRY_COMPARE(one->y(), 0.0);
+ QTRY_COMPARE(one->x(), 0.0);
+ QTRY_COMPARE(two->opacity(), 0.0);
+ QTRY_COMPARE(two->y(), -100.0);
+ QTRY_COMPARE(two->x(), -100.0);
+ QTRY_COMPARE(three->y(), 0.0);
+ QTRY_COMPARE(three->x(), 50.0);
+ QTRY_COMPARE(four->y(), 0.0);
+ QTRY_COMPARE(four->x(), 100.0);
+ QTRY_COMPARE(five->y(), 50.0);
+ QTRY_COMPARE(five->x(), 0.0);
//Add 'two'
two->setOpacity(1.0);
@@ -371,17 +365,17 @@ void tst_QmlGraphicsPositioners::test_grid_animated()
QCOMPARE(four->y(), 0.0);
QCOMPARE(five->x(), 0.0);
QCOMPARE(five->y(), 50.0);
- QTest::qWait(300);//Let the animation complete
- QCOMPARE(two->x(), 50.0);
- QCOMPARE(two->y(), 0.0);
- QCOMPARE(one->x(), 0.0);
- QCOMPARE(one->y(), 0.0);
- QCOMPARE(three->x(), 100.0);
- QCOMPARE(three->y(), 0.0);
- QCOMPARE(four->x(), 0.0);
- QCOMPARE(four->y(), 50.0);
- QCOMPARE(five->x(), 50.0);
- QCOMPARE(five->y(), 50.0);
+ //Let the animation complete
+ QTRY_COMPARE(two->x(), 50.0);
+ QTRY_COMPARE(two->y(), 0.0);
+ QTRY_COMPARE(one->x(), 0.0);
+ QTRY_COMPARE(one->y(), 0.0);
+ QTRY_COMPARE(three->x(), 100.0);
+ QTRY_COMPARE(three->y(), 0.0);
+ QTRY_COMPARE(four->x(), 0.0);
+ QTRY_COMPARE(four->y(), 50.0);
+ QTRY_COMPARE(five->x(), 50.0);
+ QTRY_COMPARE(five->y(), 50.0);
}
@@ -390,7 +384,6 @@ void tst_QmlGraphicsPositioners::test_repeater()
QmlView *canvas = createView("data/repeater.qml");
canvas->execute();
- qApp->processEvents();
QmlGraphicsRectangle *one = canvas->root()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
diff --git a/tests/auto/declarative/qmlgraphicstextinput/data/navigation.qml b/tests/auto/declarative/qmlgraphicstextinput/data/navigation.qml
index 7a2e914..493db5b 100644
--- a/tests/auto/declarative/qmlgraphicstextinput/data/navigation.qml
+++ b/tests/auto/declarative/qmlgraphicstextinput/data/navigation.qml
@@ -11,6 +11,7 @@ Rectangle {
}
TextInput { id: input; focus: true
+ text: "Needs some text"
KeyNavigation.left: firstItem
KeyNavigation.right: lastItem
KeyNavigation.up: firstItem
diff --git a/tests/auto/declarative/qmlgraphicstextinput/data/validators.qml b/tests/auto/declarative/qmlgraphicstextinput/data/validators.qml
index 673790d..0c81548 100644
--- a/tests/auto/declarative/qmlgraphicstextinput/data/validators.qml
+++ b/tests/auto/declarative/qmlgraphicstextinput/data/validators.qml
@@ -1,4 +1,4 @@
-import Qt 4.6
+import Qt 4.7
Item {
property var intInput: intInput
diff --git a/tests/auto/declarative/qmlgraphicstextinput/tst_qmlgraphicstextinput.cpp b/tests/auto/declarative/qmlgraphicstextinput/tst_qmlgraphicstextinput.cpp
index 906dbc2..b7ae4a2 100644
--- a/tests/auto/declarative/qmlgraphicstextinput/tst_qmlgraphicstextinput.cpp
+++ b/tests/auto/declarative/qmlgraphicstextinput/tst_qmlgraphicstextinput.cpp
@@ -508,6 +508,7 @@ void tst_qmlgraphicstextinput::inputMethodHints()
/*
TextInput element should only handle left/right keys until the cursor reaches
the extent of the text, then they should ignore the keys.
+
*/
void tst_qmlgraphicstextinput::navigation()
{
@@ -518,14 +519,24 @@ void tst_qmlgraphicstextinput::navigation()
QVERIFY(canvas->root() != 0);
- QmlGraphicsItem *input = qobject_cast<QmlGraphicsItem *>(qvariant_cast<QObject *>(canvas->root()->property("myInput")));
+ QmlGraphicsTextInput *input = qobject_cast<QmlGraphicsTextInput *>(qvariant_cast<QObject *>(canvas->root()->property("myInput")));
QVERIFY(input != 0);
+ input->setCursorPosition(0);
QTRY_VERIFY(input->hasFocus() == true);
simulateKey(canvas, Qt::Key_Left);
QVERIFY(input->hasFocus() == false);
simulateKey(canvas, Qt::Key_Right);
QVERIFY(input->hasFocus() == true);
+ //QT-2944: If text is selected, then we should deselect first.
+ input->setCursorPosition(input->text().length());
+ input->setSelectionStart(0);
+ input->setSelectionEnd(input->text().length());
+ QVERIFY(input->selectionStart() != input->selectionEnd());
+ simulateKey(canvas, Qt::Key_Right);
+ QVERIFY(input->selectionStart() == input->selectionEnd());
+ QVERIFY(input->selectionStart() == input->text().length());
+ QVERIFY(input->hasFocus() == true);
simulateKey(canvas, Qt::Key_Right);
QVERIFY(input->hasFocus() == false);
simulateKey(canvas, Qt::Key_Left);
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml
index b8524af..0bc8263 100644
--- a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml
+++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml
@@ -17,6 +17,7 @@ Grid {
WebView {
id: webView
+ width: 150 // force predictable for test
newWindowComponent: webViewPage
newWindowParent: pages
url: "newwindows.html"
diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
index 6996a6c..d48f11d 100644
--- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
+++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
@@ -304,6 +304,9 @@ void tst_qmlgraphicswebview::multipleWindows()
QmlGraphicsGrid *grid = qobject_cast<QmlGraphicsGrid*>(component.create());
QVERIFY(grid != 0);
QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews
+ QmlGraphicsItem* popup = qobject_cast<QmlGraphicsItem*>(grid->children().at(3)); // first popup after Component, Loaded, original.
+ QVERIFY(popup != 0);
+ QTRY_COMPARE(popup->x(), 150.0);
}
void tst_qmlgraphicswebview::loadError()
diff --git a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
index ccb8f30..c336226 100644
--- a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
+++ b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
@@ -157,9 +157,12 @@ void tst_qmlmetatype::copy()
QT_COPY_TEST(QStringList, QStringList() << "QML" << "Rocks");
QT_COPY_TEST(QByteArray, QByteArray("0x1102DDD"));
QT_COPY_TEST(QBitArray, QBitArray(102, true));
- QT_COPY_TEST(QDate, QDate::currentDate());
- QT_COPY_TEST(QTime, QTime::currentTime());
- QT_COPY_TEST(QDateTime, QDateTime::currentDateTime());
+ QDate cd = QDate::currentDate();
+ QT_COPY_TEST(QDate, cd);
+ QTime ct = QTime::currentTime();
+ QT_COPY_TEST(QTime, ct);
+ QDateTime cdt = QDateTime::currentDateTime();
+ QT_COPY_TEST(QDateTime, cdt);
QT_COPY_TEST(QUrl, QUrl("http://www.nokia.com"));
QT_COPY_TEST(QLocale, QLocale(QLocale::English, QLocale::Australia));
QT_COPY_TEST(QRect, QRect(-10, 10, 102, 99));
diff --git a/tests/auto/declarative/qmlnumberformatter/tst_qmlnumberformatter.cpp b/tests/auto/declarative/qmlnumberformatter/tst_qmlnumberformatter.cpp
index bf71625..f8ac76c 100644
--- a/tests/auto/declarative/qmlnumberformatter/tst_qmlnumberformatter.cpp
+++ b/tests/auto/declarative/qmlnumberformatter/tst_qmlnumberformatter.cpp
@@ -45,12 +45,12 @@
#include <private/qnumberformat_p.h>
#include <private/qmlnumberformatter_p.h>
-class tst_numberformat : public QObject
+class tst_qmlnumberformatter : public QObject
{
Q_OBJECT
public:
- tst_numberformat();
-
+ tst_qmlnumberformatter();
+
void init() {}
void initTestCase() {}
@@ -67,7 +67,7 @@ private:
QStringList texts;
};
-tst_numberformat::tst_numberformat()
+tst_qmlnumberformatter::tst_qmlnumberformatter()
{
strings << "100.0"
<< "12345"
@@ -177,7 +177,7 @@ tst_numberformat::tst_numberformat()
<< "texts.size()" << texts.size();
}
-void tst_numberformat::text_data()
+void tst_qmlnumberformatter::text_data()
{
QTest::addColumn<QString>("string");
QTest::addColumn<QString>("format");
@@ -194,7 +194,7 @@ void tst_numberformat::text_data()
}
-void tst_numberformat::text()
+void tst_qmlnumberformatter::text()
{
QFETCH(QString, string);
QFETCH(QString, format);
@@ -217,6 +217,6 @@ void tst_numberformat::text()
delete formatter;
}
-QTEST_MAIN(tst_numberformat)
+QTEST_MAIN(tst_qmlnumberformatter)
#include "tst_qmlnumberformatter.moc"
diff --git a/tests/auto/declarative/qmlstates/tst_qmlstates.cpp b/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
index fc348a5..2274889 100644
--- a/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
+++ b/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
@@ -46,11 +46,11 @@
#include <private/qmlpropertychanges_p.h>
#include <private/qmlstategroup_p.h>
-class tst_states : public QObject
+class tst_qmlstates : public QObject
{
Q_OBJECT
public:
- tst_states() {}
+ tst_qmlstates() {}
private:
static QByteArray fullDataPath(const QString &path);
@@ -81,12 +81,12 @@ private slots:
void nonExistantProperty();
};
-QByteArray tst_states::fullDataPath(const QString &path)
+QByteArray tst_qmlstates::fullDataPath(const QString &path)
{
return QUrl::fromLocalFile(SRCDIR + path).toString().toUtf8();
}
-void tst_states::basicChanges()
+void tst_qmlstates::basicChanges()
{
QmlEngine engine;
@@ -156,7 +156,7 @@ void tst_states::basicChanges()
}
}
-void tst_states::basicExtension()
+void tst_qmlstates::basicExtension()
{
QmlEngine engine;
@@ -220,7 +220,7 @@ void tst_states::basicExtension()
}
}
-void tst_states::basicBinding()
+void tst_qmlstates::basicBinding()
{
QmlEngine engine;
@@ -346,7 +346,7 @@ Q_SIGNALS:
QML_DECLARE_TYPE(MyRect)
QML_DEFINE_TYPE(Qt.test, 1, 0, MyRectangle,MyRect);
-void tst_states::signalOverride()
+void tst_qmlstates::signalOverride()
{
QmlEngine engine;
@@ -383,7 +383,7 @@ void tst_states::signalOverride()
}
}
-void tst_states::signalOverrideCrash()
+void tst_qmlstates::signalOverrideCrash()
{
QmlEngine engine;
@@ -395,7 +395,7 @@ void tst_states::signalOverrideCrash()
rect->doSomething();
}
-void tst_states::parentChange()
+void tst_qmlstates::parentChange()
{
QmlEngine engine;
@@ -462,7 +462,7 @@ void tst_states::parentChange()
}
}
-void tst_states::parentChangeErrors()
+void tst_qmlstates::parentChangeErrors()
{
QmlEngine engine;
@@ -499,7 +499,7 @@ void tst_states::parentChangeErrors()
}
}
-void tst_states::anchorChanges()
+void tst_qmlstates::anchorChanges()
{
QmlEngine engine;
@@ -527,7 +527,7 @@ void tst_states::anchorChanges()
delete rect;
}
-void tst_states::anchorChanges2()
+void tst_qmlstates::anchorChanges2()
{
QmlEngine engine;
@@ -548,7 +548,7 @@ void tst_states::anchorChanges2()
delete rect;
}
-void tst_states::anchorChanges3()
+void tst_qmlstates::anchorChanges3()
{
QmlEngine engine;
@@ -594,7 +594,7 @@ void tst_states::anchorChanges3()
delete rect;
}
-void tst_states::anchorChanges4()
+void tst_qmlstates::anchorChanges4()
{
QmlEngine engine;
@@ -625,7 +625,7 @@ void tst_states::anchorChanges4()
delete rect;
}
-void tst_states::anchorChanges5()
+void tst_qmlstates::anchorChanges5()
{
QmlEngine engine;
@@ -656,7 +656,7 @@ void tst_states::anchorChanges5()
delete rect;
}
-void tst_states::script()
+void tst_qmlstates::script()
{
QmlEngine engine;
@@ -675,7 +675,7 @@ void tst_states::script()
}
}
-void tst_states::restoreEntryValues()
+void tst_qmlstates::restoreEntryValues()
{
QmlEngine engine;
@@ -692,7 +692,7 @@ void tst_states::restoreEntryValues()
QCOMPARE(rect->color(),QColor("blue"));
}
-void tst_states::explicitChanges()
+void tst_qmlstates::explicitChanges()
{
QmlEngine engine;
@@ -722,7 +722,7 @@ void tst_states::explicitChanges()
QCOMPARE(rect->color(),QColor("yellow"));
}
-void tst_states::propertyErrors()
+void tst_qmlstates::propertyErrors()
{
QmlEngine engine;
QmlComponent rectComponent(&engine, SRCDIR "/data/propertyErrors.qml");
@@ -736,7 +736,7 @@ void tst_states::propertyErrors()
rect->setState("blue");
}
-void tst_states::incorrectRestoreBug()
+void tst_qmlstates::incorrectRestoreBug()
{
QmlEngine engine;
@@ -762,7 +762,7 @@ void tst_states::incorrectRestoreBug()
QCOMPARE(rect->color(),QColor("green"));
}
-void tst_states::autoStateAtStartupRestoreBug()
+void tst_qmlstates::autoStateAtStartupRestoreBug()
{
QmlEngine engine;
@@ -779,7 +779,7 @@ void tst_states::autoStateAtStartupRestoreBug()
delete obj;
}
-void tst_states::deletingChange()
+void tst_qmlstates::deletingChange()
{
QmlEngine engine;
@@ -811,7 +811,7 @@ void tst_states::deletingChange()
delete rect;
}
-void tst_states::deletingState()
+void tst_qmlstates::deletingState()
{
QmlEngine engine;
@@ -842,7 +842,7 @@ void tst_states::deletingState()
delete rect;
}
-void tst_states::tempState()
+void tst_qmlstates::tempState()
{
QmlEngine engine;
@@ -856,7 +856,7 @@ void tst_states::tempState()
QCOMPARE(rect->state(), QLatin1String("idle"));
}
-void tst_states::illegalTempState()
+void tst_qmlstates::illegalTempState()
{
QmlEngine engine;
@@ -869,7 +869,7 @@ void tst_states::illegalTempState()
QCOMPARE(rect->state(), QLatin1String("placed"));
}
-void tst_states::nonExistantProperty()
+void tst_qmlstates::nonExistantProperty()
{
QmlEngine engine;
@@ -882,6 +882,6 @@ void tst_states::nonExistantProperty()
QCOMPARE(rect->state(), QLatin1String("blue"));
}
-QTEST_MAIN(tst_states)
+QTEST_MAIN(tst_qmlstates)
#include "tst_qmlstates.moc"
diff --git a/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp b/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
index 49655db..61ac93d 100644
--- a/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
+++ b/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
@@ -46,11 +46,11 @@
#include <private/qmlvaluetype_p.h>
#include "testtypes.h"
-class tst_valuetypes : public QObject
+class tst_qmlvaluetypes : public QObject
{
Q_OBJECT
public:
- tst_valuetypes() {}
+ tst_qmlvaluetypes() {}
private slots:
void point();
@@ -84,7 +84,7 @@ inline QUrl TEST_FILE(const QString &filename)
return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
}
-void tst_valuetypes::point()
+void tst_qmlvaluetypes::point()
{
{
QmlComponent component(&engine, TEST_FILE("point_read.qml"));
@@ -109,7 +109,7 @@ void tst_valuetypes::point()
}
}
-void tst_valuetypes::pointf()
+void tst_qmlvaluetypes::pointf()
{
{
QmlComponent component(&engine, TEST_FILE("pointf_read.qml"));
@@ -134,7 +134,7 @@ void tst_valuetypes::pointf()
}
}
-void tst_valuetypes::size()
+void tst_qmlvaluetypes::size()
{
{
QmlComponent component(&engine, TEST_FILE("size_read.qml"));
@@ -159,7 +159,7 @@ void tst_valuetypes::size()
}
}
-void tst_valuetypes::sizef()
+void tst_qmlvaluetypes::sizef()
{
{
QmlComponent component(&engine, TEST_FILE("sizef_read.qml"));
@@ -184,7 +184,7 @@ void tst_valuetypes::sizef()
}
}
-void tst_valuetypes::rect()
+void tst_qmlvaluetypes::rect()
{
{
QmlComponent component(&engine, TEST_FILE("rect_read.qml"));
@@ -211,7 +211,7 @@ void tst_valuetypes::rect()
}
}
-void tst_valuetypes::rectf()
+void tst_qmlvaluetypes::rectf()
{
{
QmlComponent component(&engine, TEST_FILE("rectf_read.qml"));
@@ -238,7 +238,7 @@ void tst_valuetypes::rectf()
}
}
-void tst_valuetypes::vector3d()
+void tst_qmlvaluetypes::vector3d()
{
{
QmlComponent component(&engine, TEST_FILE("vector3d_read.qml"));
@@ -264,7 +264,7 @@ void tst_valuetypes::vector3d()
}
}
-void tst_valuetypes::font()
+void tst_qmlvaluetypes::font()
{
{
QmlComponent component(&engine, TEST_FILE("font_read.qml"));
@@ -337,7 +337,7 @@ void tst_valuetypes::font()
}
// Test bindings can write to value types
-void tst_valuetypes::bindingAssignment()
+void tst_qmlvaluetypes::bindingAssignment()
{
QmlComponent component(&engine, TEST_FILE("bindingAssignment.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -353,7 +353,7 @@ void tst_valuetypes::bindingAssignment()
}
// Test bindings can read from value types
-void tst_valuetypes::bindingRead()
+void tst_qmlvaluetypes::bindingRead()
{
QmlComponent component(&engine, TEST_FILE("bindingRead.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -369,7 +369,7 @@ void tst_valuetypes::bindingRead()
}
// Test static values can assign to value types
-void tst_valuetypes::staticAssignment()
+void tst_qmlvaluetypes::staticAssignment()
{
QmlComponent component(&engine, TEST_FILE("staticAssignment.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -381,7 +381,7 @@ void tst_valuetypes::staticAssignment()
}
// Test scripts can read/write value types
-void tst_valuetypes::scriptAccess()
+void tst_qmlvaluetypes::scriptAccess()
{
QmlComponent component(&engine, TEST_FILE("scriptAccess.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -395,7 +395,7 @@ void tst_valuetypes::scriptAccess()
}
// Test that assigning a constant from script removes any binding
-void tst_valuetypes::autoBindingRemoval()
+void tst_qmlvaluetypes::autoBindingRemoval()
{
{
QmlComponent component(&engine, TEST_FILE("autoBindingRemoval.qml"));
@@ -466,7 +466,7 @@ void tst_valuetypes::autoBindingRemoval()
}
// Test that property value sources assign to value types
-void tst_valuetypes::valueSources()
+void tst_qmlvaluetypes::valueSources()
{
QmlComponent component(&engine, TEST_FILE("valueSources.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -489,7 +489,7 @@ static void checkNoErrors(QmlComponent& component)
}
// Test that property value interceptors can be applied to value types
-void tst_valuetypes::valueInterceptors()
+void tst_qmlvaluetypes::valueInterceptors()
{
QmlComponent component(&engine, TEST_FILE("valueInterceptors.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -507,7 +507,7 @@ void tst_valuetypes::valueInterceptors()
}
// Test that you can't assign a binding to the "root" value type, and a sub-property
-void tst_valuetypes::bindingConflict()
+void tst_qmlvaluetypes::bindingConflict()
{
QmlComponent component(&engine, TEST_FILE("bindingConflict.qml"));
QCOMPARE(component.isError(), true);
@@ -524,7 +524,7 @@ void tst_valuetypes::bindingConflict()
// Test that accessing a reference to a valuetype after the owning object is deleted
// doesn't crash
-void tst_valuetypes::deletedObject()
+void tst_qmlvaluetypes::deletedObject()
{
QmlComponent component(&engine, TEST_FILE("deletedObject.qml"));
QTest::ignoreMessage(QtDebugMsg, "Test: 2");
@@ -542,7 +542,7 @@ void tst_valuetypes::deletedObject()
}
// Test that value types can be assigned to another value type property in a binding
-void tst_valuetypes::bindingVariantCopy()
+void tst_qmlvaluetypes::bindingVariantCopy()
{
QmlComponent component(&engine, TEST_FILE("bindingVariantCopy.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -554,7 +554,7 @@ void tst_valuetypes::bindingVariantCopy()
}
// Test that value types can be assigned to another value type property in script
-void tst_valuetypes::scriptVariantCopy()
+void tst_qmlvaluetypes::scriptVariantCopy()
{
QmlComponent component(&engine, TEST_FILE("scriptVariantCopy.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -571,7 +571,7 @@ void tst_valuetypes::scriptVariantCopy()
// Test that the value type classes can be used manually
-void tst_valuetypes::cppClasses()
+void tst_qmlvaluetypes::cppClasses()
{
CPP_TEST(QmlPointValueType, QPoint(19, 33));
CPP_TEST(QmlPointFValueType, QPointF(33.6, -23));
@@ -583,6 +583,6 @@ void tst_valuetypes::cppClasses()
CPP_TEST(QmlFontValueType, QFont("Helvetica"));
}
-QTEST_MAIN(tst_valuetypes)
+QTEST_MAIN(tst_qmlvaluetypes)
#include "tst_qmlvaluetypes.moc"
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/abort.reply b/tests/auto/declarative/qmlxmlhttprequest/data/abort.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/abort.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/abort.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/getAllResponseHeaders.qml b/tests/auto/declarative/qmlxmlhttprequest/data/getAllResponseHeaders.qml
index 02a8083..8d67fad 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/getAllResponseHeaders.qml
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/getAllResponseHeaders.qml
@@ -42,7 +42,7 @@ QtObject {
openedException = true;
}
- var headers = "content-type: text/html; charset=UTF-8\r\ntest-header: TestValue\r\nmultitest-header: TestValue, SecondTestValue\r\ncontent-length: 11";
+ var headers = "connection: close\r\ncontent-type: text/html; charset=UTF-8\r\ntest-header: TestValue\r\nmultitest-header: TestValue, SecondTestValue\r\ncontent-length: 11";
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/getResponseHeader.reply b/tests/auto/declarative/qmlxmlhttprequest/data/getResponseHeader.reply
index 62ec67b..c4b4bb2 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/getResponseHeader.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/getResponseHeader.reply
@@ -1,4 +1,5 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
Test-Header: TestValue
MultiTest-Header: TestValue
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/open_network.reply b/tests/auto/declarative/qmlxmlhttprequest/data/open_network.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/open_network.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/open_network.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/send_data.reply b/tests/auto/declarative/qmlxmlhttprequest/data/send_data.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/send_data.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/send_data.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/send_ignoreData.reply b/tests/auto/declarative/qmlxmlhttprequest/data/send_ignoreData.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/send_ignoreData.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/send_ignoreData.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/setRequestHeader.reply b/tests/auto/declarative/qmlxmlhttprequest/data/setRequestHeader.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/setRequestHeader.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/setRequestHeader.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/status.200.reply b/tests/auto/declarative/qmlxmlhttprequest/data/status.200.reply
index 35b11f4..7ae6951 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/status.200.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/status.200.reply
@@ -1,2 +1,3 @@
HTTP/1.0 200 OK
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/data/status.404.reply b/tests/auto/declarative/qmlxmlhttprequest/data/status.404.reply
index 964a7a8..2e29f56 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/data/status.404.reply
+++ b/tests/auto/declarative/qmlxmlhttprequest/data/status.404.reply
@@ -1,2 +1,3 @@
HTTP/1.0 404 Document not found
+Connection: close
Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/qmlxmlhttprequest/tst_qmlxmlhttprequest.cpp b/tests/auto/declarative/qmlxmlhttprequest/tst_qmlxmlhttprequest.cpp
index df5442c..96f9ec6 100644
--- a/tests/auto/declarative/qmlxmlhttprequest/tst_qmlxmlhttprequest.cpp
+++ b/tests/auto/declarative/qmlxmlhttprequest/tst_qmlxmlhttprequest.cpp
@@ -48,11 +48,11 @@
#define SERVER_PORT 14445
-class tst_xmlhttprequest : public QObject
+class tst_qmlxmlhttprequest : public QObject
{
Q_OBJECT
public:
- tst_xmlhttprequest() {}
+ tst_qmlxmlhttprequest() {}
private slots:
void initTestCase() {
@@ -123,7 +123,7 @@ inline QUrl TEST_FILE(const QString &filename)
}
// Test that the dom exception codes are correct
-void tst_xmlhttprequest::domExceptionCodes()
+void tst_qmlxmlhttprequest::domExceptionCodes()
{
QmlComponent component(&engine, TEST_FILE("domExceptionCodes.qml"));
QObject *object = component.create();
@@ -160,7 +160,7 @@ void tst_xmlhttprequest::domExceptionCodes()
} while (false)
-void tst_xmlhttprequest::callbackException_data()
+void tst_qmlxmlhttprequest::callbackException_data()
{
QTest::addColumn<QString>("which");
QTest::addColumn<int>("line");
@@ -170,7 +170,7 @@ void tst_xmlhttprequest::callbackException_data()
QTest::newRow("on-done") << "4" << 15;
}
-void tst_xmlhttprequest::callbackException()
+void tst_qmlxmlhttprequest::callbackException()
{
// Test exception reporting for exceptions thrown at various points.
@@ -194,7 +194,7 @@ void tst_xmlhttprequest::callbackException()
// Test that the state value properties on the XMLHttpRequest constructor have the correct values.
// ### WebKit does not do this, but it seems to fit the standard and QML better
-void tst_xmlhttprequest::staticStateValues()
+void tst_qmlxmlhttprequest::staticStateValues()
{
QmlComponent component(&engine, TEST_FILE("staticStateValues.qml"));
QObject *object = component.create();
@@ -210,7 +210,7 @@ void tst_xmlhttprequest::staticStateValues()
}
// Test that the state value properties on instances have the correct values.
-void tst_xmlhttprequest::instanceStateValues()
+void tst_qmlxmlhttprequest::instanceStateValues()
{
QmlComponent component(&engine, TEST_FILE("instanceStateValues.qml"));
QObject *object = component.create();
@@ -226,7 +226,7 @@ void tst_xmlhttprequest::instanceStateValues()
}
// Test calling constructor
-void tst_xmlhttprequest::constructor()
+void tst_qmlxmlhttprequest::constructor()
{
QmlComponent component(&engine, TEST_FILE("constructor.qml"));
QObject *object = component.create();
@@ -239,7 +239,7 @@ void tst_xmlhttprequest::constructor()
}
// Test that all the properties are set correctly before any request is sent
-void tst_xmlhttprequest::defaultState()
+void tst_qmlxmlhttprequest::defaultState()
{
QmlComponent component(&engine, TEST_FILE("defaultState.qml"));
QObject *object = component.create();
@@ -255,7 +255,7 @@ void tst_xmlhttprequest::defaultState()
}
// Test valid XMLHttpRequest.open() calls
-void tst_xmlhttprequest::open()
+void tst_qmlxmlhttprequest::open()
{
// Relative url
{
@@ -353,7 +353,7 @@ void tst_xmlhttprequest::open()
}
// Test that calling XMLHttpRequest.open() with an invalid method raises an exception
-void tst_xmlhttprequest::open_invalid_method()
+void tst_qmlxmlhttprequest::open_invalid_method()
{
QmlComponent component(&engine, TEST_FILE("open_invalid_method.qml"));
QObject *object = component.create();
@@ -365,7 +365,7 @@ void tst_xmlhttprequest::open_invalid_method()
}
// Test that calling XMLHttpRequest.open() with sync raises an exception
-void tst_xmlhttprequest::open_sync()
+void tst_qmlxmlhttprequest::open_sync()
{
QmlComponent component(&engine, TEST_FILE("open_sync.qml"));
QObject *object = component.create();
@@ -377,7 +377,7 @@ void tst_xmlhttprequest::open_sync()
}
// Calling with incorrect arg count raises an exception
-void tst_xmlhttprequest::open_arg_count()
+void tst_qmlxmlhttprequest::open_arg_count()
{
{
QmlComponent component(&engine, TEST_FILE("open_arg_count.1.qml"));
@@ -401,7 +401,7 @@ void tst_xmlhttprequest::open_arg_count()
}
// Test valid setRequestHeader() calls
-void tst_xmlhttprequest::setRequestHeader()
+void tst_qmlxmlhttprequest::setRequestHeader()
{
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
@@ -421,7 +421,7 @@ void tst_xmlhttprequest::setRequestHeader()
}
// Test setting headers before open() throws exception
-void tst_xmlhttprequest::setRequestHeader_unsent()
+void tst_qmlxmlhttprequest::setRequestHeader_unsent()
{
QmlComponent component(&engine, TEST_FILE("setRequestHeader_unsent.qml"));
QObject *object = component.create();
@@ -432,7 +432,7 @@ void tst_xmlhttprequest::setRequestHeader_unsent()
delete object;
}
-void tst_xmlhttprequest::setRequestHeader_illegalName_data()
+void tst_qmlxmlhttprequest::setRequestHeader_illegalName_data()
{
QTest::addColumn<QString>("name");
@@ -461,7 +461,7 @@ void tst_xmlhttprequest::setRequestHeader_illegalName_data()
}
// Tests that using illegal header names has no effect
-void tst_xmlhttprequest::setRequestHeader_illegalName()
+void tst_qmlxmlhttprequest::setRequestHeader_illegalName()
{
QFETCH(QString, name);
@@ -491,7 +491,7 @@ void tst_xmlhttprequest::setRequestHeader_illegalName()
}
// Test that attempting to set a header after a request is sent throws an exception
-void tst_xmlhttprequest::setRequestHeader_sent()
+void tst_qmlxmlhttprequest::setRequestHeader_sent()
{
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
@@ -513,7 +513,7 @@ void tst_xmlhttprequest::setRequestHeader_sent()
}
// Invalid arg count throws exception
-void tst_xmlhttprequest::setRequestHeader_args()
+void tst_qmlxmlhttprequest::setRequestHeader_args()
{
QmlComponent component(&engine, TEST_FILE("setRequestHeader_args.qml"));
QObject *object = component.create();
@@ -525,7 +525,7 @@ void tst_xmlhttprequest::setRequestHeader_args()
}
// Test that calling send() in UNSENT state throws an exception
-void tst_xmlhttprequest::send_unsent()
+void tst_qmlxmlhttprequest::send_unsent()
{
QmlComponent component(&engine, TEST_FILE("send_unsent.qml"));
QObject *object = component.create();
@@ -537,7 +537,7 @@ void tst_xmlhttprequest::send_unsent()
}
// Test attempting to resend a sent request throws an exception
-void tst_xmlhttprequest::send_alreadySent()
+void tst_qmlxmlhttprequest::send_alreadySent()
{
QmlComponent component(&engine, TEST_FILE("send_alreadySent.qml"));
QObject *object = component.create();
@@ -550,7 +550,7 @@ void tst_xmlhttprequest::send_alreadySent()
}
// Test that send for a GET or HEAD ignores data
-void tst_xmlhttprequest::send_ignoreData()
+void tst_qmlxmlhttprequest::send_ignoreData()
{
{
TestHTTPServer server(SERVER_PORT);
@@ -592,7 +592,7 @@ void tst_xmlhttprequest::send_ignoreData()
}
// Test that send()'ing data works
-void tst_xmlhttprequest::send_withdata()
+void tst_qmlxmlhttprequest::send_withdata()
{
// No content-type
{
@@ -729,7 +729,7 @@ void tst_xmlhttprequest::send_withdata()
}
// Test abort() has no effect in unsent state
-void tst_xmlhttprequest::abort_unsent()
+void tst_qmlxmlhttprequest::abort_unsent()
{
QmlComponent component(&engine, TEST_FILE("abort_unsent.qml"));
QObject *object = component.beginCreate(engine.rootContext());
@@ -750,7 +750,7 @@ void tst_xmlhttprequest::abort_unsent()
}
// Test abort() cancels an open (but unsent) request
-void tst_xmlhttprequest::abort_opened()
+void tst_qmlxmlhttprequest::abort_opened()
{
QmlComponent component(&engine, TEST_FILE("abort_opened.qml"));
QObject *object = component.beginCreate(engine.rootContext());
@@ -771,7 +771,7 @@ void tst_xmlhttprequest::abort_opened()
}
// Test abort() aborts in progress send
-void tst_xmlhttprequest::abort()
+void tst_qmlxmlhttprequest::abort()
{
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
@@ -795,7 +795,7 @@ void tst_xmlhttprequest::abort()
delete object;
}
-void tst_xmlhttprequest::getResponseHeader()
+void tst_qmlxmlhttprequest::getResponseHeader()
{
QmlEngine engine; // Avoid cookie contamination
@@ -835,7 +835,7 @@ void tst_xmlhttprequest::getResponseHeader()
}
// Test getResponseHeader throws an exception in an invalid state
-void tst_xmlhttprequest::getResponseHeader_unsent()
+void tst_qmlxmlhttprequest::getResponseHeader_unsent()
{
QmlComponent component(&engine, TEST_FILE("getResponseHeader_unsent.qml"));
QObject *object = component.create();
@@ -847,7 +847,7 @@ void tst_xmlhttprequest::getResponseHeader_unsent()
}
// Test getResponseHeader throws an exception in an invalid state
-void tst_xmlhttprequest::getResponseHeader_sent()
+void tst_qmlxmlhttprequest::getResponseHeader_sent()
{
QmlComponent component(&engine, TEST_FILE("getResponseHeader_sent.qml"));
QObject *object = component.create();
@@ -859,7 +859,7 @@ void tst_xmlhttprequest::getResponseHeader_sent()
}
// Invalid arg count throws exception
-void tst_xmlhttprequest::getResponseHeader_args()
+void tst_qmlxmlhttprequest::getResponseHeader_args()
{
QmlComponent component(&engine, TEST_FILE("getResponseHeader_args.qml"));
QObject *object = component.create();
@@ -870,7 +870,7 @@ void tst_xmlhttprequest::getResponseHeader_args()
delete object;
}
-void tst_xmlhttprequest::getAllResponseHeaders()
+void tst_qmlxmlhttprequest::getAllResponseHeaders()
{
QmlEngine engine; // Avoid cookie contamination
@@ -903,7 +903,7 @@ void tst_xmlhttprequest::getAllResponseHeaders()
}
// Test getAllResponseHeaders throws an exception in an invalid state
-void tst_xmlhttprequest::getAllResponseHeaders_unsent()
+void tst_qmlxmlhttprequest::getAllResponseHeaders_unsent()
{
QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_unsent.qml"));
QObject *object = component.create();
@@ -915,7 +915,7 @@ void tst_xmlhttprequest::getAllResponseHeaders_unsent()
}
// Test getAllResponseHeaders throws an exception in an invalid state
-void tst_xmlhttprequest::getAllResponseHeaders_sent()
+void tst_qmlxmlhttprequest::getAllResponseHeaders_sent()
{
QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_sent.qml"));
QObject *object = component.create();
@@ -927,7 +927,7 @@ void tst_xmlhttprequest::getAllResponseHeaders_sent()
}
// Invalid arg count throws exception
-void tst_xmlhttprequest::getAllResponseHeaders_args()
+void tst_qmlxmlhttprequest::getAllResponseHeaders_args()
{
QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_args.qml"));
QObject *object = component.create();
@@ -938,7 +938,7 @@ void tst_xmlhttprequest::getAllResponseHeaders_args()
delete object;
}
-void tst_xmlhttprequest::status()
+void tst_qmlxmlhttprequest::status()
{
{
TestHTTPServer server(SERVER_PORT);
@@ -995,7 +995,7 @@ void tst_xmlhttprequest::status()
}
}
-void tst_xmlhttprequest::statusText()
+void tst_qmlxmlhttprequest::statusText()
{
{
TestHTTPServer server(SERVER_PORT);
@@ -1052,7 +1052,7 @@ void tst_xmlhttprequest::statusText()
}
}
-void tst_xmlhttprequest::responseText()
+void tst_qmlxmlhttprequest::responseText()
{
{
TestHTTPServer server(SERVER_PORT);
@@ -1138,7 +1138,7 @@ void tst_xmlhttprequest::responseText()
// Test that calling hte XMLHttpRequest methods on a non-XMLHttpRequest object
// throws an exception
-void tst_xmlhttprequest::invalidMethodUsage()
+void tst_qmlxmlhttprequest::invalidMethodUsage()
{
QmlComponent component(&engine, TEST_FILE("invalidMethodUsage.qml"));
QObject *object = component.create();
@@ -1162,7 +1162,7 @@ void tst_xmlhttprequest::invalidMethodUsage()
}
// Test that XMLHttpRequest transparently redirects
-void tst_xmlhttprequest::redirects()
+void tst_qmlxmlhttprequest::redirects()
{
{
TestHTTPServer server(SERVER_PORT);
@@ -1227,7 +1227,7 @@ void tst_xmlhttprequest::redirects()
}
}
-void tst_xmlhttprequest::responseXML_invalid()
+void tst_qmlxmlhttprequest::responseXML_invalid()
{
QmlComponent component(&engine, TEST_FILE("responseXML_invalid.qml"));
QObject *object = component.create();
@@ -1241,7 +1241,7 @@ void tst_xmlhttprequest::responseXML_invalid()
}
// Test the Document DOM element
-void tst_xmlhttprequest::document()
+void tst_qmlxmlhttprequest::document()
{
QmlComponent component(&engine, TEST_FILE("document.qml"));
QObject *object = component.create();
@@ -1255,7 +1255,7 @@ void tst_xmlhttprequest::document()
}
// Test the Element DOM element
-void tst_xmlhttprequest::element()
+void tst_qmlxmlhttprequest::element()
{
QmlComponent component(&engine, TEST_FILE("element.qml"));
QObject *object = component.create();
@@ -1269,7 +1269,7 @@ void tst_xmlhttprequest::element()
}
// Test the Attr DOM element
-void tst_xmlhttprequest::attr()
+void tst_qmlxmlhttprequest::attr()
{
QmlComponent component(&engine, TEST_FILE("attr.qml"));
QObject *object = component.create();
@@ -1283,7 +1283,7 @@ void tst_xmlhttprequest::attr()
}
// Test the Text DOM element
-void tst_xmlhttprequest::text()
+void tst_qmlxmlhttprequest::text()
{
QmlComponent component(&engine, TEST_FILE("text.qml"));
QObject *object = component.create();
@@ -1297,7 +1297,7 @@ void tst_xmlhttprequest::text()
}
// Test the CDataSection DOM element
-void tst_xmlhttprequest::cdata()
+void tst_qmlxmlhttprequest::cdata()
{
QmlComponent component(&engine, TEST_FILE("cdata.qml"));
QObject *object = component.create();
@@ -1310,6 +1310,6 @@ void tst_xmlhttprequest::cdata()
delete object;
}
-QTEST_MAIN(tst_xmlhttprequest)
+QTEST_MAIN(tst_qmlxmlhttprequest)
#include "tst_qmlxmlhttprequest.moc"
diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh
index 33087a1..d9eddf9 100755
--- a/tests/auto/declarative/runall.sh
+++ b/tests/auto/declarative/runall.sh
@@ -5,13 +5,19 @@ sleep 1
trap "kill $!" EXIT
export DISPLAY=:7
-make -k -j1 install 2>&1 |
+( make -k -j1 install 2>&1;
+ for exe in $(make install | sed -n 's/^install .* "\([^"]*qt4\/tst_[^"]*\)".*/\1/p')
+ do
+ $exe
+ done
+) |
while read line
do
case "$line" in
make*Error) echo "$line";;
make*Stop) echo "$line";;
make*) ;;
+ install*) ;;
*/qmake*) ;;
*/bin/moc*) ;;
*targ.debug*) ;;
diff --git a/tests/auto/declarative/shared/debugutil.cpp b/tests/auto/declarative/shared/debugutil.cpp
index aa0cd31..0010508 100644
--- a/tests/auto/declarative/shared/debugutil.cpp
+++ b/tests/auto/declarative/shared/debugutil.cpp
@@ -47,6 +47,8 @@
#include "debugutil_p.h"
+#include <iostream>
+
bool QmlDebugTest::waitForSignal(QObject *receiver, const char *member, int timeout) {
QEventLoop loop;
QTimer timer;
@@ -117,21 +119,22 @@ void QmlDebugTestClient::messageReceived(const QByteArray &ba)
tst_QmlDebug_Thread::tst_QmlDebug_Thread(QmlDebugTestData *data, QmlTestFactory *factory)
- : m_ready(false), m_data(data), m_factory(factory)
+ : m_data(data), m_factory(factory)
{
}
void tst_QmlDebug_Thread::run()
{
- QTest::qWait(1000);
+ bool ok = false;
QmlDebugConnection conn;
conn.connectToHost("127.0.0.1", 3768);
- bool ok = conn.waitForConnected(5000);
+ ok = conn.waitForConnected();
Q_ASSERT(ok);
- while (!m_ready)
- QTest::qWait(100);
+ QEventLoop loop;
+ connect(m_data, SIGNAL(engineCreated()), &loop, SLOT(quit()));
+ loop.exec();
m_data->conn = &conn;
@@ -139,10 +142,10 @@ void tst_QmlDebug_Thread::run()
QObject *test = m_factory->createTest(m_data);
Q_ASSERT(test);
int code = QTest::qExec(test, QCoreApplication::arguments());
+ delete test;
emit testsFinished(code);
}
-
int QmlDebugTest::runTests(QmlTestFactory *factory, const QList<QByteArray> &qml)
{
qputenv("QML_DEBUG_SERVER_PORT", "3768");
@@ -152,7 +155,8 @@ int QmlDebugTest::runTests(QmlTestFactory *factory, const QList<QByteArray> &qml
tst_QmlDebug_Thread thread(&data, factory);
QObject::connect(&thread, SIGNAL(testsFinished(int)), &data, SLOT(testsFinished(int)));
- thread.start();
+
+ QmlDebugService::notifyOnServerStart(&thread, "start");
QmlEngine engine; // blocks until client connects
@@ -165,7 +169,7 @@ int QmlDebugTest::runTests(QmlTestFactory *factory, const QList<QByteArray> &qml
// start the test
data.engine = &engine;
- thread.m_ready = true;
+ emit data.engineCreated();
loop.exec();
thread.wait();
@@ -173,4 +177,3 @@ int QmlDebugTest::runTests(QmlTestFactory *factory, const QList<QByteArray> &qml
return data.exitCode;
}
-
diff --git a/tests/auto/declarative/shared/debugutil_p.h b/tests/auto/declarative/shared/debugutil_p.h
index 313d16c..6f23899 100644
--- a/tests/auto/declarative/shared/debugutil_p.h
+++ b/tests/auto/declarative/shared/debugutil_p.h
@@ -51,6 +51,15 @@
#include <private/qmldebugservice_p.h>
#include <private/qmlgraphicsitem_p.h>
+class QmlTestFactory;
+
+class QmlDebugTest
+{
+public:
+ static bool waitForSignal(QObject *receiver, const char *member, int timeout = 5000);
+
+ static int runTests(QmlTestFactory *factory, const QList<QByteArray> &qml = QList<QByteArray>());
+};
class QmlDebugTestData : public QObject
{
@@ -68,8 +77,14 @@ public:
QList<QmlGraphicsItem *> items;
+signals:
+ void engineCreated();
+
public slots:
void testsFinished(int code);
+
+private:
+ friend class QmlDebugTest;
};
@@ -82,14 +97,6 @@ public:
virtual QObject *createTest(QmlDebugTestData *data) = 0;
};
-
-namespace QmlDebugTest {
-
- bool waitForSignal(QObject *receiver, const char *member, int timeout = 5000);
-
- int runTests(QmlTestFactory *factory, const QList<QByteArray> &qml = QList<QByteArray>());
-}
-
class QmlDebugTestService : public QmlDebugService
{
Q_OBJECT
@@ -132,8 +139,6 @@ public:
void run();
- bool m_ready;
-
signals:
void testsFinished(int);
diff --git a/tests/auto/declarative/shared/testhttpserver.cpp b/tests/auto/declarative/shared/testhttpserver.cpp
index 490fc95..5740925 100644
--- a/tests/auto/declarative/shared/testhttpserver.cpp
+++ b/tests/auto/declarative/shared/testhttpserver.cpp
@@ -190,13 +190,14 @@ void TestHTTPServer::disconnected()
--ii;
}
}
+ socket->disconnect();
socket->deleteLater();
}
void TestHTTPServer::readyRead()
{
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
- if (!socket) return;
+ if (!socket || socket->state() == QTcpSocket::ClosingState) return;
QByteArray ba = socket->readAll();
@@ -222,14 +223,14 @@ void TestHTTPServer::readyRead()
QByteArray data = ba.mid(ii);
qWarning() << "TestHTTPServer: Unexpected data" << data << "\nExpected: " << waitData;
m_hasFailed = true;
- socket->disconnect();
+ socket->disconnectFromHost();
return;
}
}
if (waitData.isEmpty()) {
socket->write(replyData);
- socket->disconnect();
+ socket->disconnectFromHost();
}
}
@@ -316,8 +317,8 @@ void TestHTTPServer::serveGET(QTcpSocket *socket, const QByteArray &data)
}
dataCache.remove(socket);
- if (close)
- socket->close();
+ if (close)
+ socket->disconnectFromHost();
}
}
diff --git a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
index 504ceac..ea86c16 100644
--- a/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
+++ b/tests/auto/qabstractitemview/tst_qabstractitemview.cpp
@@ -1213,14 +1213,14 @@ void tst_QAbstractItemView::task250754_fontChange()
tree.setModel(m);
w.show();
- w.resize(150,150);
+ w.resize(150,240);
QTest::qWait(30);
QFont font = tree.font();
- font.setPointSize(5);
+ font.setPixelSize(10);
tree.setFont(font);
QTRY_VERIFY(!tree.verticalScrollBar()->isVisible());
- font.setPointSize(45);
+ font.setPixelSize(60);
tree.setFont(font);
//now with the huge items, the scrollbar must be visible
QTRY_VERIFY(tree.verticalScrollBar()->isVisible());
@@ -1444,7 +1444,10 @@ void tst_QAbstractItemView::QTBUG6407_extendedSelection()
for(int i = 0; i < 50; ++i)
view.addItem(QString::number(i));
- view.resize(200,200);
+ QFont font = view.font();
+ font.setPixelSize(10);
+ view.setFont(font);
+ view.resize(200,240);
view.show();
QApplication::setActiveWindow(&view);
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 7b54a3b..7c1b97e 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -90,6 +90,8 @@ Q_DECLARE_METATYPE(QRectF)
#define COMPARE_REGIONS QTRY_COMPARE
#endif
+static QGraphicsRectItem staticItem; //QTBUG-7629, we should not crash at exit.
+
static void sendMousePress(QGraphicsScene *scene, const QPointF &point, Qt::MouseButton button = Qt::LeftButton)
{
QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 121a8fa..99244c2 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -1633,6 +1633,35 @@ void tst_QImageReader::autoDetectImageFormat()
QVERIFY(reader.canRead());
QVERIFY(!reader.read().isNull());
}
+
+#ifdef QTEST_HAVE_JPEG
+ {
+ QImageReader io(prefix + "YCbCr_rgb.jpg");
+ io.setAutoDetectImageFormat(false);
+ // This should fail since no format string is given
+ QImage image;
+ QVERIFY(!io.read(&image));
+ }
+ {
+ QImageReader io(prefix + "YCbCr_rgb.jpg", "jpg");
+ io.setAutoDetectImageFormat(false);
+ QImage image;
+ QVERIFY(io.read(&image));
+ }
+#endif
+ {
+ QImageReader io(prefix + "tst7.png");
+ io.setAutoDetectImageFormat(false);
+ // This should fail since no format string is given
+ QImage image;
+ QVERIFY(!io.read(&image));
+ }
+ {
+ QImageReader io(prefix + "tst7.png", "png");
+ io.setAutoDetectImageFormat(false);
+ QImage image;
+ QVERIFY(io.read(&image));
+ }
}
void tst_QImageReader::fileNameProbing()
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index fcca58a..3b6400a 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -274,6 +274,7 @@ private slots:
#ifndef QT_NO_CONTEXTMENU
void taskQTBUG_7902_contextMenuCrash();
#endif
+ void taskQTBUG_7395_readOnlyShortcut();
protected slots:
#ifdef QT3_SUPPORT
@@ -3457,10 +3458,8 @@ void tst_QLineEdit::task210502_caseInsensitiveInlineCompletion()
completer.setCompletionMode(QCompleter::InlineCompletion);
lineEdit.setCompleter(&completer);
lineEdit.show();
-#ifdef Q_WS_X11
- // to be safe and avoid failing setFocus with window managers
- qt_x11_wait_for_window_manager(&lineEdit);
-#endif
+ QTest::qWaitForWindowShown(&lineEdit);
+ QApplication::setActiveWindow(&lineEdit);
lineEdit.setFocus();
QTRY_VERIFY(lineEdit.hasFocus());
QTest::keyPress(&lineEdit, 'a');
@@ -3641,6 +3640,27 @@ void tst_QLineEdit::taskQTBUG_4679_selectToStartEndOfBlock()
#endif // Q_OS_MAC
}
+void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut()
+{
+ //ReadOnly QLineEdit should not intercept shortcut.
+ QLineEdit le;
+ le.setReadOnly(true);
+
+ QAction action(QString::fromLatin1("hello"), &le);
+ action.setShortcut(QString::fromLatin1("p"));
+ QSignalSpy spy(&action, SIGNAL(triggered()));
+ le.addAction(&action);
+
+ le.show();
+ QTest::qWaitForWindowShown(&le);
+ QApplication::setActiveWindow(&le);
+ le.setFocus();
+ QTRY_VERIFY(le.hasFocus());
+
+ QTest::keyClick(0, Qt::Key_P);
+ QCOMPARE(spy.count(), 1);
+}
+
#ifndef QT_NO_CONTEXTMENU
void tst_QLineEdit::taskQTBUG_7902_contextMenuCrash()
{
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 7109213..d2181f8 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -606,9 +606,8 @@ void tst_QListView::indexAt()
view2.setWrapping(true);
// We really want to make sure it is shown, because the layout won't be known until it is shown
view2.show();
- for (int i = 0; i < 5 && !view2.m_shown; ++i) {
- QTest::qWait(500);
- }
+ QTest::qWaitForWindowShown(&view2);
+ QTRY_VERIFY(view2.m_shown);
QVERIFY(view2.m_index.isValid());
QVERIFY(view2.m_index.row() != 0);
@@ -760,7 +759,8 @@ void tst_QListView::hideFirstRow()
view.setUniformItemSizes(true);
view.setRowHidden(0,true);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
+ QTest::qWait(10);
}
void tst_QListView::batchedMode()
@@ -778,10 +778,10 @@ void tst_QListView::batchedMode()
view.setBatchSize(2);
view.resize(200,400);
view.show();
-
-#if !defined(Q_OS_WINCE)
+ QTest::qWaitForWindowShown(&view);
QTest::qWait(100);
-#else
+
+#if defined(Q_OS_WINCE)
QTest::qWait(2000);
#endif
QBitArray ba;
@@ -1203,9 +1203,9 @@ void tst_QListView::scrollTo()
//we click the item
QPoint p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).y(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).y(),0);
//we scroll down. As the item is to tall for the view, it will disappear
QTest::keyClick(lv.viewport(), Qt::Key_Down, Qt::NoModifier);
@@ -1222,9 +1222,9 @@ void tst_QListView::scrollTo()
//we click the item
p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).x(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).x(),0);
//we scroll right. As the item is too wide for the view, it will disappear
QTest::keyClick(lv.viewport(), Qt::Key_Right, Qt::NoModifier);
@@ -1243,9 +1243,9 @@ void tst_QListView::scrollTo()
//we click the item
p = lv.visualRect(index).center();
QTest::mouseClick(lv.viewport(), Qt::LeftButton, Qt::NoModifier, p);
- //let's wait 1 second because the scrolling is delayed
- QTest::qWait(1000);
- QCOMPARE(lv.visualRect(index).y(),0);
+ //let's wait because the scrolling is delayed
+ QTest::qWait(QApplication::doubleClickInterval() + 150);
+ QTRY_COMPARE(lv.visualRect(index).y(),0);
//we scroll down. As the item is too tall for the view, it will partially disappear
QTest::keyClick(lv.viewport(), Qt::Key_Down, Qt::NoModifier);
@@ -1277,7 +1277,7 @@ void tst_QListView::scrollBarRanges()
for (int h = 30; h <= 210; ++h) {
lv.resize(250, h);
- QTest::qWait(100); // wait for the layout to be done
+ QApplication::processEvents(); // wait for the layout to be done
int visibleRowCount = lv.viewport()->size().height() / rowHeight;
int invisibleRowCount = rowCount - visibleRowCount;
QCOMPARE(lv.verticalScrollBar()->maximum(), invisibleRowCount);
@@ -1366,7 +1366,7 @@ void tst_QListView::scrollBarAsNeeded()
model.setStringList(list);
QApplication::processEvents();
- QTest::qWait(100);
+ QTest::qWait(50);
QStringList replacement;
for (i = 0; i < itemCount; ++i) {
@@ -1375,10 +1375,9 @@ void tst_QListView::scrollBarAsNeeded()
model.setStringList(replacement);
QApplication::processEvents();
- QTest::qWait(100);
- QCOMPARE(lv.horizontalScrollBar()->isVisible(), horizontalScrollBarVisible);
- QCOMPARE(lv.verticalScrollBar()->isVisible(), verticalScrollBarVisible);
+ QTRY_COMPARE(lv.horizontalScrollBar()->isVisible(), horizontalScrollBarVisible);
+ QTRY_COMPARE(lv.verticalScrollBar()->isVisible(), verticalScrollBarVisible);
}
}
@@ -1433,10 +1432,9 @@ void tst_QListView::wordWrap()
lv.setFixedSize(150, 150);
lv.show();
QApplication::processEvents();
- QTest::qWait(100);
- QCOMPARE(lv.horizontalScrollBar()->isVisible(), false);
- QCOMPARE(lv.verticalScrollBar()->isVisible(), true);
+ QTRY_COMPARE(lv.horizontalScrollBar()->isVisible(), false);
+ QTRY_COMPARE(lv.verticalScrollBar()->isVisible(), true);
}
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
@@ -1557,7 +1555,8 @@ void tst_QListView::task248430_crashWith0SizedItem()
QStringListModel model(QStringList() << QLatin1String("item1") << QString());
view.setModel(&model);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
+ QTest::qWait(20);
}
void tst_QListView::task250446_scrollChanged()
@@ -1569,21 +1568,21 @@ void tst_QListView::task250446_scrollChanged()
QVERIFY(index.isValid());
view.setCurrentIndex(index);
view.show();
- QTest::qWait(100);
+ QTest::qWaitForWindowShown(&view);
const int scrollValue = view.verticalScrollBar()->maximum();
view.verticalScrollBar()->setValue(scrollValue);
QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
QCOMPARE(view.currentIndex(), index);
view.showMinimized();
- QTest::qWait(100);
- QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
- QCOMPARE(view.currentIndex(), index);
+ QTest::qWait(50);
+ QTRY_COMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QTRY_COMPARE(view.currentIndex(), index);
view.showNormal();
- QTest::qWait(100);
- QCOMPARE(view.verticalScrollBar()->value(), scrollValue);
- QCOMPARE(view.currentIndex(), index);
+ QTest::qWait(50);
+ QTRY_COMPARE(view.verticalScrollBar()->value(), scrollValue);
+ QTRY_COMPARE(view.currentIndex(), index);
}
void tst_QListView::task196118_visualRegionForSelection()
@@ -1699,7 +1698,7 @@ void tst_QListView::shiftSelectionWithNonUniformItemSizes()
view.setViewMode(QListView::IconMode);
view.setModel(&model);
view.show();
- QTest::qWait(30);
+ QTest::qWaitForWindowShown(&view);
// Verfify that item sizes are non-uniform
QVERIFY(view.sizeHintForIndex(model.index(0, 0)).height() > view.sizeHintForIndex(model.index(1, 0)).height());
@@ -1729,7 +1728,7 @@ void tst_QListView::shiftSelectionWithNonUniformItemSizes()
view.setViewMode(QListView::IconMode);
view.setModel(&model);
view.show();
- QTest::qWait(30);
+ QTest::qWaitForWindowShown(&view);
// Verfify that item sizes are non-uniform
QVERIFY(view.sizeHintForIndex(model.index(0, 0)).width() > view.sizeHintForIndex(model.index(1, 0)).width());
@@ -1789,7 +1788,6 @@ void tst_QListView::task262152_setModelColumnNavigate()
view.show();
QApplication::setActiveWindow(&view);
QTest::qWaitForWindowShown(&view);
- QTest::qWait(30);
QTRY_COMPARE(static_cast<QWidget *>(&view), QApplication::activeWindow());
QTest::keyClick(&view, Qt::Key_Down);
QTest::qWait(30);
@@ -1834,6 +1832,24 @@ void tst_QListView::taskQTBUG_2233_scrollHiddenItems()
QVERIFY(index.isValid());
QCOMPARE(index.row(), 2 * i + 1);
}
+
+ //QTBUG-7929 should not crash
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QScrollBar *bar = view.flow() == QListView::TopToBottom
+ ? view.verticalScrollBar() : view.horizontalScrollBar();
+
+ int nbVisibleItem = rowCount / 2 - bar->maximum();
+
+ bar->setValue(bar->maximum());
+ QApplication::processEvents();
+ for (int i = rowCount; i > rowCount / 2; i--) {
+ view.setRowHidden(i, true);
+ }
+ QApplication::processEvents();
+ QTest::qWait(50);
+ QCOMPARE(bar->value(), bar->maximum());
+ QCOMPARE(bar->maximum(), rowCount/4 - nbVisibleItem);
}
void tst_QListView::taskQTBUG_633_changeModelData()
diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
index 8e26696..ac9ca46 100644
--- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
+++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
@@ -832,6 +832,7 @@ void tst_QScriptEngineAgent::functionEntryAndExit_builtin_data()
/** check behaiviour of built-in function */
void tst_QScriptEngineAgent::functionEntryAndExit_builtin()
{
+ QSKIP("The test fails on platforms others than Linux. The issue will be fixed with next JSC update", SkipAll);
QFETCH(QString, script);
QFETCH(QString, result);
QScriptEngine eng;
diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
index b2a85d7..41df98c 100644
--- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
+++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
@@ -683,8 +683,72 @@ tst_Suite::tst_Suite()
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 7", willFixInNextReleaseMessage);
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 26", willFixInNextReleaseMessage);
+#ifndef Q_CC_MINGW
addExpectedFailure("ecma/Expressions/11.4.7-02.js", "-(-2147483648) == 2147483648", willFixInNextReleaseMessage);
addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "- -\"0x80000000\"", willFixInNextReleaseMessage);
+#endif
+
+#ifdef Q_OS_WIN
+ addExpectedFailure("ecma_3/Expressions/11.7.3-01.js", "11.7.3 - >>> should evaluate operands in order: order", "QTBUG-8056");
+ addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.7.3 >>>", "QTBUG-8056");
+ addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.13.2 >>>=", "QTBUG-8056");
+#endif
+
+#ifdef Q_CC_MINGW
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(Infinity, Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(Infinity, -Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-Infinity, Infinity)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-Infinity, -Infinity)", willFixInNextReleaseMessage);
+#endif
+
+#ifdef Q_OS_SOLARIS
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -0; VAR2= Infinity; VAR2 /= VAR1", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -0; VAR2= -Infinity; VAR2 /= VAR1", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = 1; VAR2= -0; VAR1 /= VAR2", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.13.2-2.js", "VAR1 = -1; VAR2= -0; VAR1 /= VAR2", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "Number.POSITIVE_INFINITY / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "Number.NEGATIVE_INFINITY / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "1 / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Expressions/11.5.2.js", "-1 / -0", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.10.js", "Math.log(-0.0000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.10.js", "Math.log(-1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.11.js", "Infinity/Math.max(-0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.12.js", "Infinity/Math.min(0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.12.js", "Infinity/Math.min(-0,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(NaN,-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-Infinity, -1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -0.5)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(0, -1000)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-0, 1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Infinity/Math.pow(-0, 3)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(-0, -2)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0.49)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.15.js", "Infinity/Math.round(-0.5)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.17.js", "Infinity/Math.sqrt(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.18.js", "Infinity/Math.tan(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.2.js", "Math.acos(1.00000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.2.js", "Math.acos(11.00000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Math.asin(1.000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Math.asin(-1.000001)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.3.js", "Infinity/Math.asin(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.4.js", "Infinity/Math.atan(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(0, -0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Infinity/Math.atan2(-0, 1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-0,\t-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.5.js", "Math.atan2(-0,\t-1)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil('-0')", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-Number.MIN_VALUE)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.6.js", "Infinity/Math.ceil(-0.9)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/Math/15.8.2.9.js", "Infinity/Math.floor(-0)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "var z = 0; print(1/-z)", willFixInNextReleaseMessage);
+ addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "1/-1e-2000", willFixInNextReleaseMessage);
+#endif
static const char klass[] = "tst_QScriptJsTestSuite";
diff --git a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
index 147896e..a3dfd6c 100644
--- a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
+++ b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
@@ -236,6 +236,16 @@ tst_Suite::tst_Suite()
addExpectedFailure("global-const-var-conflicts", "false", "true", willFixInNextReleaseMessage);
addExpectedFailure("string-lastindexof", "0", "-1", "test is wrong?");
+#ifndef Q_OS_LINUX
+ addExpectedFailure("to-precision", "1.235e+27", "1.234e+27", "QTBUG-8053: toPrecision(4) gives wrong result on Mac");
+#endif
+
+#ifdef Q_OS_SOLARIS
+ addExpectedFailure("math-min-max", "Infinity", "-Infinity", willFixInNextReleaseMessage);
+ addExpectedFailure("negate-zero", "false", "true", willFixInNextReleaseMessage);
+ addExpectedFailure("str-to-num", "Infinity", "-Infinity", willFixInNextReleaseMessage);
+#endif
+
addTestExclusion("debug-*", "not applicable");
addTestExclusion("mirror-*", "not applicable");
@@ -245,6 +255,10 @@ tst_Suite::tst_Suite()
addTestExclusion("string-case", "V8-specific behavior? (Doesn't pass on SpiderMonkey either)");
+#ifdef Q_CC_MINGW
+ addTestExclusion("date$", "QTBUG-7698: Date.prototype.setMonth() crashes on win32-g++");
+#endif
+
#ifdef Q_OS_WINCE
addTestExclusion("deep-recursion", "Demands too much memory on WinCE");
addTestExclusion("nested-repetition-count-overflow", "Demands too much memory on WinCE");
diff --git a/tests/auto/qscriptvalue/testgen/data.txt b/tests/auto/qscriptvalue/testgen/data.txt
index 8e7026e..a041c9b 100644
--- a/tests/auto/qscriptvalue/testgen/data.txt
+++ b/tests/auto/qscriptvalue/testgen/data.txt
@@ -114,3 +114,7 @@ engine->evaluate("/foo/")
engine->evaluate("new Object()")
engine->evaluate("new Array()")
engine->evaluate("new Error()")
+
+#other
+engine->nullValue()
+engine->undefinedValue() \ No newline at end of file
diff --git a/tests/auto/qscriptvalue/testgen/gen.py b/tests/auto/qscriptvalue/testgen/gen.py
index 7161e6b..b3c81b9 100755
--- a/tests/auto/qscriptvalue/testgen/gen.py
+++ b/tests/auto/qscriptvalue/testgen/gen.py
@@ -231,7 +231,7 @@ if __name__ == '__main__':
row_esc = escape(row)
out.append(qsvTempl.substitute(expr = row, expr_esc = row_esc))
- result = mainTempl.substitute(dump= "".join(out) \
+ result = mainTempl.safe_substitute(dump= "".join(out) \
, values = (11 * ' ' + '<< ').join(qsv) \
, count = len(qsv) \
, dataTags = (11 * ' ' + '<< ').join(map(lambda w: '"' + escape(w.replace('\n','')) + '"\n', qsv)))
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
index 1d105b4..4e621b3 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue_generated.cpp
@@ -152,6 +152,8 @@ void tst_QScriptValue::initScriptValues()
DEFINE_TEST_VALUE(engine->evaluate("new Object()"));
DEFINE_TEST_VALUE(engine->evaluate("new Array()"));
DEFINE_TEST_VALUE(engine->evaluate("new Error()"));
+ DEFINE_TEST_VALUE(engine->nullValue());
+ DEFINE_TEST_VALUE(engine->undefinedValue());
}
@@ -267,6 +269,8 @@ void tst_QScriptValue::isValid_makeData(const char* expr)
<< "engine->evaluate(\"new Object()\")"
<< "engine->evaluate(\"new Array()\")"
<< "engine->evaluate(\"new Error()\")"
+ << "engine->nullValue()"
+ << "engine->undefinedValue()"
;
}
newRow(expr) << isValid.contains(expr);
@@ -453,6 +457,7 @@ void tst_QScriptValue::isNull_makeData(const char* expr)
isNull << "QScriptValue(QScriptValue::NullValue)"
<< "QScriptValue(0, QScriptValue::NullValue)"
<< "QScriptValue(engine, QScriptValue::NullValue)"
+ << "engine->nullValue()"
;
}
newRow(expr) << isNull.contains(expr);
@@ -535,6 +540,7 @@ void tst_QScriptValue::isUndefined_makeData(const char* expr)
<< "QScriptValue(0, QScriptValue::UndefinedValue)"
<< "QScriptValue(engine, QScriptValue::UndefinedValue)"
<< "engine->evaluate(\"{}\")"
+ << "engine->undefinedValue()"
;
}
newRow(expr) << isUndefined.contains(expr);
@@ -810,6 +816,8 @@ void tst_QScriptValue::toString_makeData(const char* expr)
toString.insert("engine->evaluate(\"new Object()\")", "[object Object]");
toString.insert("engine->evaluate(\"new Array()\")", "");
toString.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ toString.insert("engine->nullValue()", "null");
+ toString.insert("engine->undefinedValue()", "undefined");
}
newRow(expr) << toString.value(expr);
}
@@ -936,6 +944,8 @@ void tst_QScriptValue::toNumber_makeData(const char* expr)
toNumber.insert("engine->evaluate(\"new Object()\")", qQNaN());
toNumber.insert("engine->evaluate(\"new Array()\")", 0);
toNumber.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ toNumber.insert("engine->nullValue()", 0);
+ toNumber.insert("engine->undefinedValue()", qQNaN());
}
newRow(expr) << toNumber.value(expr);
}
@@ -1070,6 +1080,8 @@ void tst_QScriptValue::toBool_makeData(const char* expr)
toBool.insert("engine->evaluate(\"new Object()\")", true);
toBool.insert("engine->evaluate(\"new Array()\")", true);
toBool.insert("engine->evaluate(\"new Error()\")", true);
+ toBool.insert("engine->nullValue()", false);
+ toBool.insert("engine->undefinedValue()", false);
}
newRow(expr) << toBool.value(expr);
}
@@ -1196,6 +1208,8 @@ void tst_QScriptValue::toBoolean_makeData(const char* expr)
toBoolean.insert("engine->evaluate(\"new Object()\")", true);
toBoolean.insert("engine->evaluate(\"new Array()\")", true);
toBoolean.insert("engine->evaluate(\"new Error()\")", true);
+ toBoolean.insert("engine->nullValue()", false);
+ toBoolean.insert("engine->undefinedValue()", false);
}
newRow(expr) << toBoolean.value(expr);
}
@@ -1322,6 +1336,8 @@ void tst_QScriptValue::toInteger_makeData(const char* expr)
toInteger.insert("engine->evaluate(\"new Object()\")", 0);
toInteger.insert("engine->evaluate(\"new Array()\")", 0);
toInteger.insert("engine->evaluate(\"new Error()\")", 0);
+ toInteger.insert("engine->nullValue()", 0);
+ toInteger.insert("engine->undefinedValue()", 0);
}
newRow(expr) << toInteger.value(expr);
}
@@ -1452,6 +1468,8 @@ void tst_QScriptValue::toInt32_makeData(const char* expr)
toInt32.insert("engine->evaluate(\"new Object()\")", 0);
toInt32.insert("engine->evaluate(\"new Array()\")", 0);
toInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ toInt32.insert("engine->nullValue()", 0);
+ toInt32.insert("engine->undefinedValue()", 0);
}
newRow(expr) << toInt32.value(expr);
}
@@ -1578,6 +1596,8 @@ void tst_QScriptValue::toUInt32_makeData(const char* expr)
toUInt32.insert("engine->evaluate(\"new Object()\")", 0);
toUInt32.insert("engine->evaluate(\"new Array()\")", 0);
toUInt32.insert("engine->evaluate(\"new Error()\")", 0);
+ toUInt32.insert("engine->nullValue()", 0);
+ toUInt32.insert("engine->undefinedValue()", 0);
}
newRow(expr) << toUInt32.value(expr);
}
@@ -1704,6 +1724,8 @@ void tst_QScriptValue::toUInt16_makeData(const char* expr)
toUInt16.insert("engine->evaluate(\"new Object()\")", 0);
toUInt16.insert("engine->evaluate(\"new Array()\")", 0);
toUInt16.insert("engine->evaluate(\"new Error()\")", 0);
+ toUInt16.insert("engine->nullValue()", 0);
+ toUInt16.insert("engine->undefinedValue()", 0);
}
newRow(expr) << toUInt16.value(expr);
}
@@ -1736,6 +1758,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -1743,6 +1767,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(true) <=> QScriptValue(true)");
equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
@@ -1937,6 +1963,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -1944,6 +1972,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
@@ -2138,6 +2168,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
@@ -2145,6 +2177,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->nullValue()");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
@@ -2355,6 +2389,8 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::NullValue)");
equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->nullValue()");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->undefinedValue()");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
equals.insert("engine->evaluate(\"Array.prototype\") <=> QScriptValue(false)");
@@ -2401,6 +2437,24 @@ void tst_QScriptValue::equals_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Array()\") <=> QScriptValue(engine, QString())");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->nullValue() <=> engine->nullValue()");
+ equals.insert("engine->nullValue() <=> engine->undefinedValue()");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->undefinedValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->undefinedValue() <=> engine->nullValue()");
+ equals.insert("engine->undefinedValue() <=> engine->undefinedValue()");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -2435,9 +2489,11 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(true) <=> QScriptValue(true)");
equals.insert("QScriptValue(true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(true) <=> QScriptValue(engine, true)");
@@ -2530,9 +2586,11 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(0, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(0, QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(0, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(0, true) <=> QScriptValue(engine, true)");
@@ -2625,9 +2683,11 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->evaluate(\"{}\")");
+ equals.insert("QScriptValue(engine, QScriptValue::UndefinedValue) <=> engine->undefinedValue()");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(0, QScriptValue::NullValue)");
equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("QScriptValue(engine, QScriptValue::NullValue) <=> engine->nullValue()");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(0, true)");
equals.insert("QScriptValue(engine, true) <=> QScriptValue(engine, true)");
@@ -2721,6 +2781,7 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(0, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
equals.insert("engine->evaluate(\"{}\") <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->evaluate(\"{}\") <=> engine->undefinedValue()");
equals.insert("engine->evaluate(\"Object.prototype\") <=> engine->evaluate(\"Object.prototype\")");
equals.insert("engine->evaluate(\"Date.prototype\") <=> engine->evaluate(\"Date.prototype\")");
equals.insert("engine->evaluate(\"Array.prototype\") <=> engine->evaluate(\"Array.prototype\")");
@@ -2737,6 +2798,15 @@ void tst_QScriptValue::strictlyEquals_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Object()\") <=> engine->evaluate(\"new Object()\")");
equals.insert("engine->evaluate(\"new Array()\") <=> engine->evaluate(\"new Array()\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, QScriptValue::NullValue)");
+ equals.insert("engine->nullValue() <=> engine->nullValue()");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(0, QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> QScriptValue(engine, QScriptValue::UndefinedValue)");
+ equals.insert("engine->undefinedValue() <=> engine->evaluate(\"{}\")");
+ equals.insert("engine->undefinedValue() <=> engine->undefinedValue()");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -3090,6 +3160,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(-6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(-6.37e-8) <=> engine->nullValue()");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(0x43211234) <=> QScriptValue(0, qInf())");
@@ -3180,6 +3251,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(-qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(-qInf()) <=> engine->nullValue()");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(\"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -3291,6 +3363,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(\"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(\"-Infinity\") <=> engine->nullValue()");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(\"ciao\") <=> engine->evaluate(\"Array\")");
@@ -3903,6 +3976,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, -6.37e-8) <=> engine->nullValue()");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(0, 0x43211234) <=> QScriptValue(0, qInf())");
@@ -3993,6 +4067,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(0, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(0, -qInf()) <=> engine->nullValue()");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(0, \"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -4104,6 +4179,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(0, \"-Infinity\") <=> engine->nullValue()");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(0, \"ciao\") <=> engine->evaluate(\"Array\")");
@@ -4717,6 +4793,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, -6.37e-8) <=> engine->nullValue()");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(qInf())");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(\"Infinity\")");
equals.insert("QScriptValue(engine, 0x43211234) <=> QScriptValue(0, qInf())");
@@ -4807,6 +4884,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"[]\")");
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"Array.prototype\")");
equals.insert("QScriptValue(engine, -qInf()) <=> engine->evaluate(\"new Array()\")");
+ equals.insert("QScriptValue(engine, -qInf()) <=> engine->nullValue()");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(\"ciao\")");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(QString::fromLatin1(\"ciao\"))");
equals.insert("QScriptValue(engine, \"NaN\") <=> QScriptValue(0, \"ciao\")");
@@ -4918,6 +4996,7 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"/foo/\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Object()\")");
equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->evaluate(\"new Error()\")");
+ equals.insert("QScriptValue(engine, \"-Infinity\") <=> engine->nullValue()");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Function.prototype\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Object\")");
equals.insert("QScriptValue(engine, \"ciao\") <=> engine->evaluate(\"Array\")");
@@ -5533,6 +5612,42 @@ void tst_QScriptValue::lessThan_makeData(const char *expr)
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { return 'ciao'; })\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"(function() { throw new Error('foo'); })\")");
equals.insert("engine->evaluate(\"new Error()\") <=> engine->evaluate(\"new Object()\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(true)");
+ equals.insert("engine->nullValue() <=> QScriptValue(int(122))");
+ equals.insert("engine->nullValue() <=> QScriptValue(uint(124))");
+ equals.insert("engine->nullValue() <=> QScriptValue(123.0)");
+ equals.insert("engine->nullValue() <=> QScriptValue(6.37e-8)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0x43211234)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0x10000)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0x10001)");
+ equals.insert("engine->nullValue() <=> QScriptValue(qInf())");
+ equals.insert("engine->nullValue() <=> QScriptValue(\"Infinity\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(QString(\"123\"))");
+ equals.insert("engine->nullValue() <=> QScriptValue(QString(\"12.4\"))");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, true)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, int(122))");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, uint(124))");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, 123.0)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, 6.37e-8)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, 0x43211234)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, 0x10000)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, 0x10001)");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, qInf())");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, \"Infinity\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, QString(\"123\"))");
+ equals.insert("engine->nullValue() <=> QScriptValue(0, QString(\"12.3\"))");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, true)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, int(122))");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, uint(124))");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, 123.0)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, 6.37e-8)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, 0x43211234)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, 0x10000)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, 0x10001)");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, qInf())");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, \"Infinity\")");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, QString(\"123\"))");
+ equals.insert("engine->nullValue() <=> QScriptValue(engine, QString(\"1.23\"))");
}
QHash<QString, QScriptValue>::const_iterator it;
for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {
@@ -5718,6 +5833,8 @@ void tst_QScriptValue::qscriptvalue_castQString_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", "[object Object]");
value.insert("engine->evaluate(\"new Array()\")", "");
value.insert("engine->evaluate(\"new Error()\")", "Error: Unknown error");
+ value.insert("engine->nullValue()", "");
+ value.insert("engine->undefinedValue()", "");
}
newRow(expr) << value.value(expr);
}
@@ -5844,6 +5961,8 @@ void tst_QScriptValue::qscriptvalue_castqsreal_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", qQNaN());
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", qQNaN());
+ value.insert("engine->nullValue()", 0);
+ value.insert("engine->undefinedValue()", qQNaN());
}
newRow(expr) << value.value(expr);
}
@@ -5978,6 +6097,8 @@ void tst_QScriptValue::qscriptvalue_castbool_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", true);
value.insert("engine->evaluate(\"new Array()\")", true);
value.insert("engine->evaluate(\"new Error()\")", true);
+ value.insert("engine->nullValue()", false);
+ value.insert("engine->undefinedValue()", false);
}
newRow(expr) << value.value(expr);
}
@@ -6104,6 +6225,8 @@ void tst_QScriptValue::qscriptvalue_castqint32_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->nullValue()", 0);
+ value.insert("engine->undefinedValue()", 0);
}
newRow(expr) << value.value(expr);
}
@@ -6230,6 +6353,8 @@ void tst_QScriptValue::qscriptvalue_castquint32_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->nullValue()", 0);
+ value.insert("engine->undefinedValue()", 0);
}
newRow(expr) << value.value(expr);
}
@@ -6356,6 +6481,8 @@ void tst_QScriptValue::qscriptvalue_castquint16_makeData(const char* expr)
value.insert("engine->evaluate(\"new Object()\")", 0);
value.insert("engine->evaluate(\"new Array()\")", 0);
value.insert("engine->evaluate(\"new Error()\")", 0);
+ value.insert("engine->nullValue()", 0);
+ value.insert("engine->undefinedValue()", 0);
}
newRow(expr) << value.value(expr);
}
diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
index 5b61da2..fe084fa 100644
--- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
+++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
@@ -202,6 +202,8 @@ private slots:
void sqlStatementUseIsNull_189093_data() { generic_data(); }
void sqlStatementUseIsNull_189093();
+ void sqlite_enable_cache_mode_data() { generic_data("QSQLITE"); }
+ void sqlite_enable_cache_mode();
private:
void createTestTables(QSqlDatabase db);
@@ -2485,5 +2487,23 @@ void tst_QSqlDatabase::oci_tables()
QVERIFY(db.tables(QSql::SystemTables).contains(systemTableName.toUpper()));
}
+void tst_QSqlDatabase::sqlite_enable_cache_mode()
+{
+ QFETCH(QString, dbName);
+ if(dbName.endsWith(":memory:"))
+ QSKIP( "cache mode is meaningless for :memory: databases", SkipSingle );
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+ db.close();
+ db.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE");
+ QVERIFY_SQL(db, open());
+ QSqlDatabase db2 = QSqlDatabase::cloneDatabase(db, dbName+":cachemodeconn2");
+ db2.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE");
+ QVERIFY_SQL(db2, open());
+ QSqlQuery q(db), q2(db2);
+ QVERIFY_SQL(q, exec("select * from "+qTableName("qtest")));
+ QVERIFY_SQL(q2, exec("select * from "+qTableName("qtest")));
+}
+
QTEST_MAIN(tst_QSqlDatabase)
#include "tst_qsqldatabase.moc"
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index eb348fb..65b0448 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -47,6 +47,8 @@
#include <qtextdocument.h>
#include <time.h>
#include <qprocess.h>
+#include <QtConcurrentMap>
+#include <QThreadPool>
#ifdef Q_OS_SYMBIAN
#define SRCDIR ""
@@ -58,6 +60,9 @@ class tst_QTextCodec : public QObject
Q_OBJECT
private slots:
+
+ void threadSafety();
+
void toUnicode_data();
void toUnicode();
void codecForName_data();
@@ -1904,5 +1909,46 @@ void tst_QTextCodec::toLocal8Bit()
}
#endif
+static QByteArray loadAndConvert(const QByteArray &codecName)
+{
+ QTextCodec *c = QTextCodec::codecForName(codecName);
+ if (!c) {
+ qDebug() << "WARNING " << codecName << " not found? ";
+ return QByteArray();
+ }
+ QString str = QString::fromLatin1(codecName);
+ QByteArray b = c->fromUnicode(str);
+ c->toUnicode(b);
+ return codecName;
+}
+
+static int loadAndConvertMIB(int mib)
+{
+ QTextCodec *c = QTextCodec::codecForMib(mib);
+ if (!c) {
+ qDebug() << "WARNING " << mib << " not found? ";
+ return 0;
+ }
+ QString str = QString::number(mib);
+ QByteArray b = c->fromUnicode(str);
+ c->toUnicode(b);
+ return mib;
+}
+
+
+void tst_QTextCodec::threadSafety()
+{
+ QThreadPool::globalInstance()->setMaxThreadCount(12);
+
+ QList<QByteArray> codecList = QTextCodec::availableCodecs();
+ QFuture<QByteArray> res = QtConcurrent::mapped(codecList, loadAndConvert);
+
+ QList<int> mibList = QTextCodec::availableMibs();
+ QFuture<int> res2 = QtConcurrent::mapped(mibList, loadAndConvertMIB);
+
+ QCOMPARE(res.results(), codecList);
+ QCOMPARE(res2.results(), mibList);
+}
+
QTEST_MAIN(tst_QTextCodec)
#include "tst_qtextcodec.moc"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 03eddee..b59017b 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -250,6 +250,7 @@ private slots:
#else
void persistentWinId();
#endif
+ void showNativeChild();
void qobject_castInDestroyedSlot();
void showHideEvent_data();
@@ -4586,6 +4587,16 @@ void tst_QWidget::persistentWinId()
}
#endif // Q_OS_SYMBIAN
+void tst_QWidget::showNativeChild()
+{
+ QWidget topLevel;
+ topLevel.setGeometry(0, 0, 100, 100);
+ QWidget child(&topLevel);
+ child.winId();
+ topLevel.show();
+ QTest::qWaitForWindowShown(&topLevel);
+}
+
class ShowHideEventWidget : public QWidget
{
public: