summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-11-27 00:09:00 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-11-27 00:09:00 (GMT)
commit1efae63bf7cba55526c91dcff3139d0a10885efc (patch)
treed07e1a5db7b2726bbc5d941da3ed97097820b8ca /tests
parent249bb31dc9fa12acff44ebf0effbdaedc43b5305 (diff)
parent41f1276392444b9e46b30f3537a8a63af6fffc9d (diff)
downloadQt-1efae63bf7cba55526c91dcff3139d0a10885efc.zip
Qt-1efae63bf7cba55526c91dcff3139d0a10885efc.tar.gz
Qt-1efae63bf7cba55526c91dcff3139d0a10885efc.tar.bz2
Merge branch '4.6' of git://scm.dev.nokia.troll.no/qt/qt into kinetic-declarativeui
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/auto.pro59
-rw-r--r--tests/auto/guiapplauncher/guiapplauncher.pro6
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result22
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp6
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result16
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp5
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result11
-rw-r--r--tests/auto/networkselftest/tst_networkselftest.cpp4
-rw-r--r--tests/auto/qalgorithms/tst_qalgorithms.cpp4
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp15
-rw-r--r--tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp44
-rw-r--r--tests/auto/qdbusconnection/tst_qdbusconnection.cpp66
-rw-r--r--tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp12
-rw-r--r--tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp60
-rw-r--r--tests/auto/qfontmetrics/tst_qfontmetrics.cpp14
-rw-r--r--tests/auto/qftp/tst_qftp.cpp21
-rw-r--r--tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp84
-rw-r--r--tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp2
-rw-r--r--tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp24
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp16
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp39
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp24
-rw-r--r--tests/auto/qheaderview/tst_qheaderview.cpp46
-rw-r--r--tests/auto/qhttp/tst_qhttp.cpp2
-rw-r--r--tests/auto/qiodevice/tst_qiodevice.cpp112
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp38
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp44
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp4
-rw-r--r--tests/auto/qmenu/tst_qmenu.cpp26
-rw-r--r--tests/auto/qmenubar/tst_qmenubar.cpp22
-rw-r--r--tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp23
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp4
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp13
-rw-r--r--tests/auto/qscriptable/tst_qscriptable.cpp2
-rw-r--r--tests/auto/qscriptcontext/tst_qscriptcontext.cpp2
-rw-r--r--tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp6
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp33
-rw-r--r--tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp88
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp1
-rw-r--r--tests/auto/qstatemachine/tst_qstatemachine.cpp8
-rw-r--r--tests/auto/qstatusbar/tst_qstatusbar.cpp14
-rw-r--r--tests/auto/qsysinfo/.gitignore1
-rw-r--r--tests/auto/qsysinfo/qsysinfo.pro5
-rw-r--r--tests/auto/qsysinfo/tst_qsysinfo.cpp52
-rw-r--r--tests/auto/qtabbar/tst_qtabbar.cpp6
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp35
-rw-r--r--tests/auto/qtcpserver/tst_qtcpserver.cpp2
-rw-r--r--tests/auto/qtcpsocket/tst_qtcpsocket.cpp17
-rw-r--r--tests/auto/qtextedit/tst_qtextedit.cpp19
-rw-r--r--tests/auto/qtextlayout/tst_qtextlayout.cpp6
-rw-r--r--tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp27
-rw-r--r--tests/auto/qtreewidget/tst_qtreewidget.cpp53
-rw-r--r--tests/auto/qudpsocket/tst_qudpsocket.cpp4
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp25
-rw-r--r--tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref7
-rw-r--r--tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml3
-rw-r--r--tests/auto/rcc/rcc.pro6
-rw-r--r--tests/auto/rcc/tst_rcc.cpp2
-rw-r--r--tests/auto/windowsmobile/test/test.pro2
-rw-r--r--tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro3
-rw-r--r--tests/manual/keypadnavigation/keypadnavigation.ui157
-rw-r--r--tests/manual/keypadnavigation/main.cpp8
64 files changed, 1210 insertions, 287 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index da1f7ca..d5d72a7 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -59,9 +59,15 @@ Q3SUBDIRS += \
q3toolbar \
q3urloperator \
q3valuelist \
- q3valuevector
+ q3valuevector \
+ q3combobox \
+ q3frame \
+ q3uridrag \
+ q3widgetstack
SUBDIRS += \
+# exceptionsafety_objects \ shouldn't enable it
+ languagechange \
collections \
exceptionsafety \
mediaobject \
@@ -403,8 +409,55 @@ SUBDIRS += \
symbols \
qrand \
utf8 \
- gestures
-
+ gestures \
+ qabstractnetworkcache \
+ qabstractproxymodel \
+ qbytearraymatcher \
+ qcalendarwidget \
+ qcolumnview \
+ qcommandlinkbutton \
+ qdbuscontext \
+ qdbusserver \
+ qdbusservicewatcher \
+ qdiriterator \
+ qeasingcurve \
+ qfileiconprovider \
+ qformlayout \
+ q_func_info \
+ qfuture \
+ qfuturewatcher \
+ qguard \
+ qhttpsocketengine \
+ qinputcontext \
+ qlocalsocket \
+ qmacstyle \
+ qmargins \
+ qnetworkaddressentry \
+ qnetworkcachemetadata \
+ qnetworkdiskcache \
+ qobjectperformance \
+ qpainterpathstroker \
+ qplugin \
+ qpluginloader \
+ qscrollbar \
+ qsharedmemory \
+ qsidebar \
+ qsizegrip \
+ qsoftkeymanager \
+ qsqldriver \
+ qsystemsemaphore \
+ qtconcurrentfilter \
+ qtconcurrentiteratekernel \
+ qtconcurrentmap \
+ qtconcurrentrun \
+ qtconcurrentthreadengine \
+ qthreadpool \
+ qtokenautomaton \
+ qtouchevent \
+ qwidget_window \
+ rcc \
+ windowsmobile
+
!wince*:SUBDIRS += $$Q3SUBDIRS
contains(QT_CONFIG, OdfWriter):SUBDIRS += qzip qtextodfwriter
diff --git a/tests/auto/guiapplauncher/guiapplauncher.pro b/tests/auto/guiapplauncher/guiapplauncher.pro
index 27c3553..2f81061 100644
--- a/tests/auto/guiapplauncher/guiapplauncher.pro
+++ b/tests/auto/guiapplauncher/guiapplauncher.pro
@@ -14,7 +14,5 @@ SOURCES += tst_guiapplauncher.cpp \
windowmanager.cpp
HEADERS += windowmanager.h
-win32 {
- # process enumeration,etc.
- LIBS+=user32.lib
-}
+# process enumeration,etc.
+win32:LIBS+=-luser32
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
index 158451a..d99723e 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/main.cpp
@@ -47,12 +47,21 @@
int main(int argc, char **argv)
{
QApplication a(argc, argv);
+ QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
+
QWidget w;
QLabel label1(QObject::tr("abc", "ascii"), &w);
QLabel label2(QObject::tr("æøå", "utf-8"), &w);
+ QLabel label2a(QObject::tr("\303\246\303\270\303\245", "utf-8 oct"), &w);
+ QLabel label3(QObject::trUtf8("Für Élise", "trUtf8"), &w);
+ QLabel label3a(QObject::trUtf8("F\303\274r \303\211lise", "trUtf8 oct"), &w);
-// I would expect the following to work !?
-// QLabel label3(QObject::trUtf8("F\374r \310lise", "trUtf8"), &w);
+ QBoxLayout *ly = new QVBoxLayout(&w);
+ ly->addWidget(&label1);
+ ly->addWidget(&label2);
+ ly->addWidget(&label2a);
+ ly->addWidget(&label3);
+ ly->addWidget(&label3a);
w.show();
return a.exec();
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
index bc0d9bb..711bf02 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.ts.result
@@ -5,16 +5,34 @@
<context>
<name>QObject</name>
<message>
- <location filename="main.cpp" line="51"/>
+ <location filename="main.cpp" line="53"/>
<source>abc</source>
<comment>ascii</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="main.cpp" line="52"/>
+ <location filename="main.cpp" line="54"/>
<source>æøå</source>
<comment>utf-8</comment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="main.cpp" line="55"/>
+ <source>æøå</source>
+ <comment>utf-8 oct</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="56"/>
+ <source>Für Élise</source>
+ <comment>trUtf8</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="57"/>
+ <source>Für Élise</source>
+ <comment>trUtf8 oct</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result
index 91da744..6ee369a 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr/project.ts.result
@@ -6,7 +6,7 @@
<name>QObject</name>
<message>
<location filename="main.cpp" line="61"/>
- <source>Á</source>
+ <source>Б</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp
index abb8b89..98b491c 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/main.cpp
@@ -49,9 +49,11 @@ public:
void doFoo()
{
tr("random ascii only");
- tr("this contains an umlaut &uuml;");
+ tr("this contains an umlaut &uuml; literally");
+ tr("this contains an umlaut \xfc &uuml; escaped");
trUtf8("random ascii only in utf8");
- trUtf8("umlaut \xfc &uuml; in utf8");
+ trUtf8("umlaut ü &uuml; in literal utf8");
+ trUtf8("umlaut \303\274 &uuml; in escaped utf8");
}
};
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result
index 26eb245..d548e24 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr1/project.ts.result
@@ -11,17 +11,27 @@
</message>
<message>
<location filename="main.cpp" line="52"/>
- <source>this contains an umlaut ü &amp;uuml;</source>
+ <source>this contains an umlaut ü &amp;uuml; literally</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cpp" line="53"/>
+ <source>this contains an umlaut ü &amp;uuml; escaped</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="54"/>
<source>random ascii only in utf8</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
- <location filename="main.cpp" line="54"/>
- <source>umlaut ü &amp;uuml; in utf8</source>
+ <location filename="main.cpp" line="55"/>
+ <source>umlaut ü &amp;uuml; in literal utf8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="main.cpp" line="56"/>
+ <source>umlaut ü &amp;uuml; in escaped utf8</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp
index abb8b89..cd93539 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/main.cpp
@@ -49,9 +49,10 @@ public:
void doFoo()
{
tr("random ascii only");
- tr("this contains an umlaut &uuml;");
+ tr("this contains an umlaut &uuml; literally");
+ tr("this contains an umlaut \303\274 &uuml; escaped, really in utf-8");
trUtf8("random ascii only in utf8");
- trUtf8("umlaut \xfc &uuml; in utf8");
+ trUtf8("umlaut \303\274 &uuml; in escaped utf8");
}
};
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result
index e27c157..6728a25 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/codecfortr2/project.ts.result
@@ -11,17 +11,22 @@
</message>
<message>
<location filename="main.cpp" line="52"/>
- <source>this contains an umlaut ü &amp;uuml;</source>
+ <source>this contains an umlaut ü &amp;uuml; literally</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cpp" line="53"/>
- <source>random ascii only in utf8</source>
+ <source>this contains an umlaut ü &amp;uuml; escaped, really in utf-8</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cpp" line="54"/>
- <source>umlaut ü &amp;uuml; in utf8</source>
+ <source>random ascii only in utf8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="55"/>
+ <source>umlaut ü &amp;uuml; in escaped utf8</source>
<translation type="unfinished"></translation>
</message>
</context>
diff --git a/tests/auto/networkselftest/tst_networkselftest.cpp b/tests/auto/networkselftest/tst_networkselftest.cpp
index f13bcad..b9be5cb 100644
--- a/tests/auto/networkselftest/tst_networkselftest.cpp
+++ b/tests/auto/networkselftest/tst_networkselftest.cpp
@@ -156,7 +156,7 @@ static QString prettyByteArray(const QByteArray &array)
return result;
}
-static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout = 2000)
+static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout = 4000)
{
QTime timer;
timer.start();
@@ -171,7 +171,7 @@ static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout
}
}
-static bool doSocketFlush(QTcpSocket *socket, int timeout = 2000)
+static bool doSocketFlush(QTcpSocket *socket, int timeout = 4000)
{
#ifndef QT_NO_OPENSSL
QSslSocket *sslSocket = qobject_cast<QSslSocket *>(socket);
diff --git a/tests/auto/qalgorithms/tst_qalgorithms.cpp b/tests/auto/qalgorithms/tst_qalgorithms.cpp
index 176a451..1e24efe 100644
--- a/tests/auto/qalgorithms/tst_qalgorithms.cpp
+++ b/tests/auto/qalgorithms/tst_qalgorithms.cpp
@@ -620,8 +620,8 @@ void tst_QAlgorithms::test_qBinaryFind()
//-42 means not found
if (resultValue == -42) {
- QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.end());
- QVERIFY(qBinaryFind(data, resultValue) == data.end());
+ QVERIFY(qBinaryFind(data.constBegin(), data.constEnd(), resultValue) == data.constEnd());
+ QVERIFY(qBinaryFind(data, resultValue) == data.constEnd());
QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue) == data.end());
QVERIFY(qBinaryFind(data.begin(), data.end(), resultValue, qLess<int>()) == data.end());
return;
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index e903ab5..af71961 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -2290,11 +2290,8 @@ void tst_QComboBox::setItemDelegate()
QComboBox comboBox;
QStyledItemDelegate *itemDelegate = new QStyledItemDelegate;
comboBox.setItemDelegate(itemDelegate);
-#ifdef Q_CC_MWERKS
+ // the cast is a workaround for the XLC and Metrowerks compilers
QCOMPARE(static_cast<QStyledItemDelegate *>(comboBox.itemDelegate()), itemDelegate);
-#else
- QCOMPARE(comboBox.itemDelegate(), itemDelegate);
-#endif
}
void tst_QComboBox::task253944_itemDelegateIsReset()
@@ -2303,19 +2300,13 @@ void tst_QComboBox::task253944_itemDelegateIsReset()
QStyledItemDelegate *itemDelegate = new QStyledItemDelegate;
comboBox.setItemDelegate(itemDelegate);
+ // the casts are workarounds for the XLC and Metrowerks compilers
+
comboBox.setEditable(true);
-#ifdef Q_CC_MWERKS
QCOMPARE(static_cast<QStyledItemDelegate *>(comboBox.itemDelegate()), itemDelegate);
-#else
- QCOMPARE(comboBox.itemDelegate(), itemDelegate);
-#endif
comboBox.setStyleSheet("QComboBox { border: 1px solid gray; }");
-#ifdef Q_CC_MWERKS
QCOMPARE(static_cast<QStyledItemDelegate *>(comboBox.itemDelegate()), itemDelegate);
-#else
- QCOMPARE(comboBox.itemDelegate(), itemDelegate);
-#endif
}
diff --git a/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp b/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
index 33226bf..f833196 100644
--- a/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
+++ b/tests/auto/qcommandlinkbutton/tst_qcommandlinkbutton.cpp
@@ -51,6 +51,7 @@
#include <qtimer.h>
#include <QDialog>
#include <QGridLayout>
+#include <QPainter>
Q_DECLARE_METATYPE(QCommandLinkButton*)
@@ -83,7 +84,8 @@ private slots:
void clicked();
void toggled();
void defaultAndAutoDefault();
- void setAutoRepeat();
+ void setAutoRepeat();
+ void heightForWithWithIcon();
protected slots:
void resetCounters();
@@ -106,17 +108,17 @@ private:
void tst_QCommandLinkButton::getSetCheck()
{
QCommandLinkButton obj1;
-
+
QString text("mytext");
QVERIFY(obj1.description().isEmpty());
obj1.setDescription(text);
QVERIFY(obj1.description() == text);
-
+
QVERIFY(obj1.text().isEmpty());
obj1.setText(text);
QVERIFY(obj1.text() == text);
-
-
+
+
QMenu *var1 = new QMenu;
obj1.setMenu(var1);
QCOMPARE(var1, obj1.menu());
@@ -393,8 +395,8 @@ void tst_QCommandLinkButton::setAccel()
QTest::qWait(100);
}
- QVERIFY(testWidget->isActiveWindow());
-
+ QVERIFY(testWidget->isActiveWindow());
+
QTest::keyClick( testWidget, 'A', Qt::AltModifier );
QTest::qWait( 500 );
QVERIFY( click_count == 1 );
@@ -556,5 +558,33 @@ void tst_QCommandLinkButton::defaultAndAutoDefault()
}
}
+void tst_QCommandLinkButton::heightForWithWithIcon()
+{
+ QWidget mainWin;
+
+ QPixmap pixmap(64, 64);
+ {
+ pixmap.fill(Qt::white);
+ QPainter painter(&pixmap);
+ painter.setBrush(Qt::black);
+ painter.drawEllipse(0, 0, 63, 63);
+ }
+
+ QCommandLinkButton *largeIconButton = new QCommandLinkButton(QString("Large Icon"),
+ QString("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris nibh lectus, adipiscing eu."),
+ &mainWin);
+ largeIconButton->setIconSize(QSize(64, 64));
+ largeIconButton->setIcon(pixmap);
+
+ QVBoxLayout *layout = new QVBoxLayout();
+ layout->addWidget(largeIconButton);
+ layout->addStretch();
+ mainWin.setLayout(layout);
+ mainWin.showMaximized();
+ QTest::qWaitForWindowShown(&mainWin);
+ QVERIFY(largeIconButton->height() > 68); //enough room for the icon
+
+}
+
QTEST_MAIN(tst_QCommandLinkButton)
#include "tst_qcommandlinkbutton.moc"
diff --git a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
index bb034a3..c1976c0 100644
--- a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
+++ b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
@@ -96,6 +96,8 @@ private slots:
void registerQObjectChildren();
void callSelf();
+ void callSelfByAnotherName_data();
+ void callSelfByAnotherName();
void multipleInterfacesInQObject();
void slotsWithLessParameters();
@@ -493,6 +495,70 @@ void tst_QDBusConnection::callSelf()
QCOMPARE(reply.arguments().value(0).toInt(), 45);
}
+void tst_QDBusConnection::callSelfByAnotherName_data()
+{
+ QTest::addColumn<int>("registerMethod");
+ QTest::newRow("connection") << 0;
+ QTest::newRow("connection-interface") << 1;
+ QTest::newRow("direct") << 2;
+}
+
+void tst_QDBusConnection::callSelfByAnotherName()
+{
+ static int counter = 0;
+ QString sname = serviceName() + QString::number(counter++);
+
+ QDBusConnection con = QDBusConnection::sessionBus();
+ QVERIFY(con.isConnected());
+
+ TestObject testObject;
+ QVERIFY(con.registerObject("/test", &testObject,
+ QDBusConnection::ExportAllContents));
+ con.connect("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged",
+ QStringList() << sname << "",
+ QString(), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ // register the name
+ QFETCH(int, registerMethod);
+ switch (registerMethod) {
+ case 0:
+ QVERIFY(con.registerService(sname));
+ break;
+
+ case 1:
+ QVERIFY(con.interface()->registerService(sname).value() == QDBusConnectionInterface::ServiceRegistered);
+ break;
+
+ case 2: {
+ // flag is DBUS_NAME_FLAG_DO_NOT_QUEUE = 0x04
+ // reply is DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER = 1
+ QDBusReply<uint> reply = con.interface()->call("RequestName", sname, 4u);
+ QVERIFY(reply.value() == 1);
+ }
+ }
+
+ struct Deregisterer {
+ QDBusConnection con;
+ QString sname;
+ Deregisterer(const QDBusConnection &con, const QString &sname) : con(con), sname(sname) {}
+ ~Deregisterer() { con.interface()->unregisterService(sname); }
+ } deregisterer(con, sname);
+
+ // give the connection a chance to find out that we're good to go
+ QTestEventLoop::instance().enterLoop(2);
+ con.disconnect("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", "NameOwnerChanged",
+ QStringList() << sname << "",
+ QString(), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ // make the call
+ QDBusMessage msg = QDBusMessage::createMethodCall(sname, "/test",
+ QString(), "test0");
+ QDBusMessage reply = con.call(msg, QDBus::Block, 1000);
+
+ QVERIFY(reply.type() == QDBusMessage::ReplyMessage);
+}
+
void tst_QDBusConnection::multipleInterfacesInQObject()
{
QDBusConnection con = QDBusConnection::sessionBus();
diff --git a/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp
index 10b43b1..ac0f806 100644
--- a/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp
+++ b/tests/auto/qdbusservicewatcher/tst_qdbusservicewatcher.cpp
@@ -47,12 +47,13 @@ class tst_QDBusServiceWatcher: public QObject
{
Q_OBJECT
QString serviceName;
+ int testCounter;
public:
tst_QDBusServiceWatcher();
private slots:
void initTestCase();
- void cleanup();
+ void init();
void watchForCreation();
void watchForDisappearance();
@@ -61,7 +62,7 @@ private slots:
};
tst_QDBusServiceWatcher::tst_QDBusServiceWatcher()
- : serviceName("com.example.TestName")
+ : testCounter(0)
{
}
@@ -71,10 +72,10 @@ void tst_QDBusServiceWatcher::initTestCase()
QVERIFY(con.isConnected());
}
-void tst_QDBusServiceWatcher::cleanup()
+void tst_QDBusServiceWatcher::init()
{
- // ensure that the name isn't registered
- QDBusConnection::sessionBus().unregisterService(serviceName);
+ // change the service name from test to test
+ serviceName = "com.example.TestService" + QString::number(testCounter++);
}
void tst_QDBusServiceWatcher::watchForCreation()
@@ -135,6 +136,7 @@ void tst_QDBusServiceWatcher::watchForDisappearance()
QVERIFY(con.isConnected());
QDBusServiceWatcher watcher(serviceName, con, QDBusServiceWatcher::WatchForUnregistration);
+ watcher.setObjectName("watcher for disappearance");
QSignalSpy spyR(&watcher, SIGNAL(serviceRegistered(QString)));
QSignalSpy spyU(&watcher, SIGNAL(serviceUnregistered(QString)));
diff --git a/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
index 936ebf7..2c49fc8 100644
--- a/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
+++ b/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
@@ -111,6 +111,9 @@ private slots:
void testDefaultButton_data();
void testDefaultButton();
void testS60SoftKeys();
+#ifdef QT_SOFTKEYS_ENABLED
+ void testSoftKeyReparenting();
+#endif
void task191642_default();
private:
@@ -715,6 +718,17 @@ void tst_QDialogButtonBox::testDefaultButton_data()
QTest::newRow("third accept explicit after add") << 0 << 2 << 2;
}
+static int softKeyCount(QWidget *widget)
+{
+ int softkeyCount = 0;
+ QList<QAction *> actions = widget->actions();
+ foreach (QAction *action, actions) {
+ if (action->softKeyRole() != QAction::NoSoftKey)
+ softkeyCount++;
+ }
+ return softkeyCount;
+}
+
void tst_QDialogButtonBox::testS60SoftKeys()
{
#ifdef Q_WS_S60
@@ -722,33 +736,47 @@ void tst_QDialogButtonBox::testS60SoftKeys()
QDialogButtonBox buttonBox(&dialog);
buttonBox.setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
dialog.show();
-
- int softkeyCount = 0;
- QList<QAction *> actions = dialog.actions();
- foreach (QAction *action, actions) {
- if (action->softKeyRole() != QAction::NoSoftKey)
- softkeyCount++;
- }
- QCOMPARE( softkeyCount, 2);
+
+ QCOMPARE( softKeyCount(&dialog), 2);
QDialog dialog2(0);
QDialogButtonBox buttonBox2(&dialog2);
buttonBox2.setStandardButtons(QDialogButtonBox::Cancel);
dialog2.show();
- int softkeyCount2 = 0;
- QList<QAction *> actions2 = dialog2.actions();
- foreach (QAction *action, actions2) {
- if (action->softKeyRole() != QAction::NoSoftKey)
- softkeyCount2++;
- }
- QCOMPARE( softkeyCount2, 1);
-
+ QCOMPARE( softKeyCount(&dialog2), 1);
+
#else
QSKIP("S60-specific test", SkipAll );
#endif
}
+#ifdef QT_SOFTKEYS_ENABLED
+void tst_QDialogButtonBox::testSoftKeyReparenting()
+{
+ QDialog dialog;
+ QDialogButtonBox *buttonBox = new QDialogButtonBox;
+ buttonBox->addButton(QDialogButtonBox::Ok);
+ buttonBox->addButton(QDialogButtonBox::Cancel);
+
+ QCOMPARE(softKeyCount(&dialog), 0);
+ QCOMPARE(softKeyCount(buttonBox), 2);
+
+ // Were the softkeys re-parented correctly?
+ dialog.setLayout(new QVBoxLayout);
+ dialog.layout()->addWidget(buttonBox);
+ QCOMPARE(softKeyCount(&dialog), 2);
+ QCOMPARE(softKeyCount(buttonBox), 0);
+
+ // Softkeys are only added to QDialog, not QWidget
+ QWidget *nested = new QWidget;
+ nested->setLayout(new QVBoxLayout);
+ nested->layout()->addWidget(buttonBox);
+ QCOMPARE(softKeyCount(nested), 0);
+ QCOMPARE(softKeyCount(buttonBox), 2);
+}
+#endif
+
void tst_QDialogButtonBox::testDefaultButton()
{
QFETCH(int, whenToSetDefault);
diff --git a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
index e80f8e0..efb1b56 100644
--- a/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/qfontmetrics/tst_qfontmetrics.cpp
@@ -72,6 +72,7 @@ private slots:
void veryNarrowElidedText();
void averageCharWidth();
void elidedMultiLength();
+ void elidedMultiLengthF();
void bearingIncludedInBoundingRect();
};
@@ -218,13 +219,13 @@ void tst_QFontMetrics::averageCharWidth()
QVERIFY(fmf.averageCharWidth() != 0);
}
-void tst_QFontMetrics::elidedMultiLength()
+template<class FontMetrics> void elidedMultiLength_helper()
{
QString text1 = "Long Text 1\x9cShorter\x9csmall";
QString text1_long = "Long Text 1";
QString text1_short = "Shorter";
QString text1_small = "small";
- QFontMetrics fm = QFontMetrics(QFont());
+ FontMetrics fm = FontMetrics(QFont());
int width_long = fm.size(0, text1_long).width();
QCOMPARE(fm.elidedText(text1,Qt::ElideRight, 8000), text1_long);
QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_long + 1), text1_long);
@@ -238,7 +239,16 @@ void tst_QFontMetrics::elidedMultiLength()
QString text1_el = QString::fromLatin1("s") + ellipsisChar;
int width_small = fm.width(text1_el);
QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_small + 1), text1_el);
+}
+void tst_QFontMetrics::elidedMultiLength()
+{
+ elidedMultiLength_helper<QFontMetrics>();
+}
+
+void tst_QFontMetrics::elidedMultiLengthF()
+{
+ elidedMultiLength_helper<QFontMetricsF>();
}
void tst_QFontMetrics::bearingIncludedInBoundingRect()
diff --git a/tests/auto/qftp/tst_qftp.cpp b/tests/auto/qftp/tst_qftp.cpp
index 1e7f424..27c2e13 100644
--- a/tests/auto/qftp/tst_qftp.cpp
+++ b/tests/auto/qftp/tst_qftp.cpp
@@ -618,7 +618,7 @@ void tst_QFtp::get()
}
addCommand( QFtp::Close, ftp->close() );
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 50 );
delete ftp;
if ( QTestEventLoop::instance().timeout() )
QFAIL( "Network operation timed out" );
@@ -1020,7 +1020,7 @@ void tst_QFtp::renameInit( const QString &host, const QString &user, const QStri
addCommand( QFtp::Put, ftp->put( QByteArray(), createFile ) );
addCommand( QFtp::Close, ftp->close() );
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 50 );
delete ftp;
if ( QTestEventLoop::instance().timeout() )
QFAIL( "Network operation timed out" );
@@ -1295,14 +1295,18 @@ void tst_QFtp::abort_data()
// Qt/CE and Symbian test environment has to less memory for this test
#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN)
QByteArray bigData( 10*1024*1024, 0 );
+#else
+ QByteArray bigData( 1*1024*1024, 0 );
+#endif
bigData.fill( 'B' );
-
QTest::newRow( "put_fluke01" ) << QtNetworkSettings::serverName() << (uint)21 << QString("qtest/upload/abort_put") << bigData;
-#endif
}
void tst_QFtp::abort()
{
+ // In case you wonder where the abort() actually happens, look into
+ // tst_QFtp::dataTransferProgress
+ //
QFETCH( QString, host );
QFETCH( uint, port );
QFETCH( QString, file );
@@ -1324,7 +1328,7 @@ void tst_QFtp::abort()
addCommand( QFtp::Close, ftp->close() );
for(int time = 0; time <= uploadData.length() / 30000; time += 30) {
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 50 );
if(ftp->currentCommand() == QFtp::None)
break;
}
@@ -1404,7 +1408,7 @@ void tst_QFtp::bytesAvailable()
if ( type != 0 )
addCommand( QFtp::Close, ftp->close() );
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 40 );
if ( QTestEventLoop::instance().timeout() )
QFAIL( "Network operation timed out" );
@@ -1493,7 +1497,7 @@ void tst_QFtp::proxy()
addCommand( QFtp::Cd, ftp->cd( dir ) );
addCommand( QFtp::List, ftp->list() );
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 50 );
delete ftp;
if ( QTestEventLoop::instance().timeout() ) {
@@ -1921,7 +1925,7 @@ bool tst_QFtp::fileExists( const QString &host, quint16 port, const QString &use
delete ftp;
if ( QTestEventLoop::instance().timeout() ) {
// ### make this test work
- qWarning("Network operation timed out");
+ qWarning("tst_QFtp::fileExists: Network operation timed out");
return FALSE;
}
inFileDirExistsFunction = FALSE;
@@ -1972,6 +1976,7 @@ bool tst_QFtp::dirExists( const QString &host, quint16 port, const QString &user
if ( QTestEventLoop::instance().timeout() ) {
// ### make this test work
// QFAIL( "Network operation timed out" );
+ qWarning("tst_QFtp::dirExists: Network operation timed out");
return FALSE;
}
inFileDirExistsFunction = FALSE;
diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index 2ad024f..e2f87b8 100644
--- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
@@ -86,6 +86,8 @@ private slots:
void parallelSimplificationOfCenter();
void simplificationVsRedundance();
void spacingPersistency();
+ void snakeParallelWithLayout();
+ void parallelToHalfLayout();
};
class RectWidget : public QGraphicsWidget
@@ -1892,5 +1894,87 @@ void tst_QGraphicsAnchorLayout::spacingPersistency()
QCOMPARE(anchor->spacing(), 30.0);
}
+/*
+ Test whether a correct preferred size is set when a "snake" sequence is in parallel with the
+ layout or half of the layout. The tricky thing here is that all items on the snake should
+ keep their preferred sizes.
+*/
+void tst_QGraphicsAnchorLayout::snakeParallelWithLayout()
+{
+ QSizeF min(10, 20);
+ QSizeF pref(50, 20);
+ QSizeF max(100, 20);
+
+ QGraphicsWidget *a = createItem(max, max, max, "A");
+ QGraphicsWidget *b = createItem(min, pref, max, "B");
+ QGraphicsWidget *c = createItem(max, max, max, "C");
+
+ QGraphicsWidget parent;
+ QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout(&parent);
+ l->setContentsMargins(0, 0, 0, 0);
+ l->setSpacing(0);
+
+ // First we'll do the case in parallel with the entire layout...
+ l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft);
+ l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorRight);
+ l->addAnchor(b, Qt::AnchorLeft, c, Qt::AnchorLeft);
+ l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorRight);
+
+ l->addAnchor(l, Qt::AnchorTop, a, Qt::AnchorTop);
+ l->addAnchor(a, Qt::AnchorBottom, b, Qt::AnchorTop);
+ l->addAnchor(b, Qt::AnchorBottom, c, Qt::AnchorTop);
+ l->addAnchor(c, Qt::AnchorBottom, l, Qt::AnchorBottom);
+
+ parent.resize(l->effectiveSizeHint(Qt::PreferredSize));
+
+ // Note that A and C are fixed in the maximum size
+ QCOMPARE(l->geometry(), QRectF(QPointF(0, 0), QSizeF(150, 60)));
+ QCOMPARE(a->geometry(), QRectF(QPointF(0, 0), max));
+ QCOMPARE(b->geometry(), QRectF(QPointF(50, 20), pref));
+ QCOMPARE(c->geometry(), QRectF(QPointF(50, 40), max));
+
+ // Then, we change the "snake" to be in parallel with half of the layout
+ delete l->anchor(c, Qt::AnchorRight, l, Qt::AnchorRight);
+ l->addAnchor(c, Qt::AnchorRight, l, Qt::AnchorHorizontalCenter);
+
+ parent.resize(l->effectiveSizeHint(Qt::PreferredSize));
+
+ QCOMPARE(l->geometry(), QRectF(QPointF(0, 0), QSizeF(300, 60)));
+ QCOMPARE(a->geometry(), QRectF(QPointF(0, 0), max));
+ QCOMPARE(b->geometry(), QRectF(QPointF(50, 20), pref));
+ QCOMPARE(c->geometry(), QRectF(QPointF(50, 40), max));
+}
+
+/*
+ Avoid regression where the sizeHint constraints would not be
+ created for a parallel anchor that included the first layout half
+*/
+void tst_QGraphicsAnchorLayout::parallelToHalfLayout()
+{
+ QGraphicsWidget *a = createItem();
+
+ QGraphicsWidget w;
+ QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout(&w);
+ l->setContentsMargins(10, 10, 10, 10);
+
+ l->addAnchors(l, a, Qt::Vertical);
+
+ QGraphicsAnchor *anchor;
+ anchor = l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft);
+ anchor->setSpacing(5);
+ anchor = l->addAnchor(l, Qt::AnchorHorizontalCenter, a, Qt::AnchorRight);
+ anchor->setSpacing(-5);
+
+ const QSizeF minimumSizeHint = w.effectiveSizeHint(Qt::MinimumSize);
+ const QSizeF preferredSizeHint = w.effectiveSizeHint(Qt::PreferredSize);
+ const QSizeF maximumSizeHint = w.effectiveSizeHint(Qt::MaximumSize);
+
+ const QSizeF overhead = QSizeF(10 + 5 + 5, 10) * 2;
+
+ QCOMPARE(minimumSizeHint, QSizeF(200, 100) + overhead);
+ QCOMPARE(preferredSizeHint, QSizeF(300, 100) + overhead);
+ QCOMPARE(maximumSizeHint, QSizeF(400, 100) + overhead);
+}
+
QTEST_MAIN(tst_QGraphicsAnchorLayout)
#include "tst_qgraphicsanchorlayout.moc"
diff --git a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
index bca59c3..baa1ba1 100644
--- a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
+++ b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
@@ -167,7 +167,7 @@ public:
{
setContentsMargins( 0,0,0,0 );
if (name.isEmpty())
- setData(0, QString::fromAscii("w%1").arg(int(this)));
+ setData(0, QString::fromAscii("w%1").arg(quintptr(this)));
else
setData(0, name);
}
diff --git a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index 36ee22c..42d5268 100644
--- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -181,6 +181,7 @@ private slots:
void updateAndDelete();
void inputMethod();
void clickFocus();
+ void windowFrameMargins();
};
// Subclass that exposes the protected functions.
@@ -3506,6 +3507,29 @@ void tst_QGraphicsProxyWidget::clickFocus()
QVERIFY(!proxy->widget()->hasFocus());
}
+void tst_QGraphicsProxyWidget::windowFrameMargins()
+{
+ // Make sure the top margin is non-zero when passing Qt::Window.
+ QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget(0, Qt::Window);
+
+ qreal left, top, right, bottom;
+ proxy->getWindowFrameMargins(&left, &top, &right, &bottom);
+ QVERIFY(top > 0);
+
+ proxy->setWidget(new QPushButton("testtest"));
+ proxy->getWindowFrameMargins(&left, &top, &right, &bottom);
+ QVERIFY(top > 0);
+
+ QGraphicsScene scene;
+ scene.addItem(proxy);
+ proxy->getWindowFrameMargins(&left, &top, &right, &bottom);
+ QVERIFY(top > 0);
+
+ proxy->unsetWindowFrameMargins();
+ proxy->getWindowFrameMargins(&left, &top, &right, &bottom);
+ QVERIFY(top > 0);
+}
+
QTEST_MAIN(tst_QGraphicsProxyWidget)
#include "tst_qgraphicsproxywidget.moc"
diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index a49c2c1..20d9eb8 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -276,6 +276,7 @@ private slots:
void task176178_itemIndexMethodBreaksSceneRect();
void task160653_selectionChanged();
void task250680_childClip();
+ void taskQTBUG_5904_crashWithDeviceCoordinateCache();
};
void tst_QGraphicsScene::initTestCase()
@@ -4180,5 +4181,20 @@ void tst_QGraphicsScene::isActive()
}
+void tst_QGraphicsScene::taskQTBUG_5904_crashWithDeviceCoordinateCache()
+{
+ QGraphicsScene scene;
+ QGraphicsRectItem *rectItem = scene.addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));
+
+ rectItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+
+ QPixmap pixmap(100,200);
+ QPainter painter(&pixmap);
+ painter.setRenderHint(QPainter::Antialiasing);
+ scene.render(&painter);
+ painter.end();
+ // No crash, then it passed!
+}
+
QTEST_MAIN(tst_QGraphicsScene)
#include "tst_qgraphicsscene.moc"
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index 1ff06c2..797e1fb 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -235,6 +235,7 @@ private slots:
void task259503_scrollingArtifacts();
void QTBUG_4151_clipAndIgnore_data();
void QTBUG_4151_clipAndIgnore();
+ void QTBUG_5859_exposedRect();
};
void tst_QGraphicsView::initTestCase()
@@ -3867,5 +3868,43 @@ void tst_QGraphicsView::QTBUG_4151_clipAndIgnore()
QCOMPARE(view.items(view.rect()).size(), numItems);
}
+void tst_QGraphicsView::QTBUG_5859_exposedRect()
+{
+ class CustomScene : public QGraphicsScene
+ {
+ public:
+ CustomScene(const QRectF &rect) : QGraphicsScene(rect) { }
+ void drawBackground(QPainter *painter, const QRectF &rect)
+ { lastBackgroundExposedRect = rect; }
+ QRectF lastBackgroundExposedRect;
+ };
+
+ class CustomRectItem : public QGraphicsRectItem
+ {
+ public:
+ CustomRectItem(const QRectF &rect) : QGraphicsRectItem(rect)
+ { setFlag(QGraphicsItem::ItemUsesExtendedStyleOption); }
+ void paint(QPainter * painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0)
+ { lastExposedRect = option->exposedRect; }
+ QRectF lastExposedRect;
+ };
+
+ CustomScene scene(QRectF(0,0,50,50));
+
+ CustomRectItem item(scene.sceneRect());
+
+ scene.addItem(&item);
+
+ QGraphicsView view(&scene);
+ view.scale(4.15, 4.15);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ view.viewport()->repaint(10,10,20,20);
+ QApplication::processEvents();
+
+ QCOMPARE(item.lastExposedRect, scene.lastBackgroundExposedRect);
+}
+
QTEST_MAIN(tst_QGraphicsView)
#include "tst_qgraphicsview.moc"
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index 829e55c..3b98c2f 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -161,6 +161,7 @@ private slots:
void respectHFW();
void addChildInpolishEvent();
void polishEvent();
+ void polishEvent2();
// Task fixes
void task236127_bspTreeIndexFails();
@@ -2796,6 +2797,29 @@ void tst_QGraphicsWidget::polishEvent()
QCOMPARE(widget->events.at(0), QEvent::Polish);
}
+void tst_QGraphicsWidget::polishEvent2()
+{
+ class MyGraphicsWidget : public QGraphicsWidget
+ { public:
+ void polishEvent()
+ { events << QEvent::Polish; }
+ QList<QEvent::Type> events;
+ };
+
+ QGraphicsScene scene;
+
+ MyGraphicsWidget *widget = new MyGraphicsWidget;
+ widget->hide();
+ scene.addItem(widget);
+
+ widget->events.clear();
+
+ QApplication::processEvents();
+
+ // Make sure the item got polish event.
+ QVERIFY(widget->events.contains(QEvent::Polish));
+}
+
QTEST_MAIN(tst_QGraphicsWidget)
#include "tst_qgraphicswidget.moc"
diff --git a/tests/auto/qheaderview/tst_qheaderview.cpp b/tests/auto/qheaderview/tst_qheaderview.cpp
index c13e829..a8e7461 100644
--- a/tests/auto/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/qheaderview/tst_qheaderview.cpp
@@ -43,6 +43,7 @@
#include <QtTest/QtTest>
#include <QStandardItemModel>
#include <QStringListModel>
+#include <QSortFilterProxyModel>
#include <qabstractitemmodel.h>
#include <qapplication.h>
@@ -188,6 +189,7 @@ private slots:
void task236450_hidden_data();
void task236450_hidden();
void task248050_hideRow();
+ void QTBUG6058_reset();
protected:
QHeaderView *view;
@@ -1947,5 +1949,49 @@ void tst_QHeaderView::task248050_hideRow()
}
+//returns 0 if everything is fine.
+static int checkHeaderViewOrder(QHeaderView *view, const QVector<int> &expected)
+{
+ if (view->count() != expected.count())
+ return 1;
+
+ for (int i = 0; i < expected.count(); i++) {
+ if (view->logicalIndex(i) != expected.at(i))
+ return i + 10;
+ if (view->visualIndex(expected.at(i)) != i)
+ return i + 100;
+ }
+ return 0;
+}
+
+
+void tst_QHeaderView::QTBUG6058_reset()
+{
+ QStringListModel model1( QStringList() << "0" << "1" << "2" << "3" << "4" << "5" );
+ QStringListModel model2( QStringList() << "a" << "b" << "c" );
+ QSortFilterProxyModel proxy;
+
+ QHeaderView view(Qt::Vertical);
+ view.setModel(&proxy);
+ view.show();
+ QTest::qWait(20);
+
+ proxy.setSourceModel(&model1);
+ QApplication::processEvents();
+ view.swapSections(0,2);
+ view.swapSections(1,4);
+ QApplication::processEvents();
+ QCOMPARE(checkHeaderViewOrder(&view, QVector<int>() << 2 << 4 << 0 << 3 << 1 << 5) , 0);
+
+ proxy.setSourceModel(&model2);
+ QApplication::processEvents();
+ QCOMPARE(checkHeaderViewOrder(&view, QVector<int>() << 2 << 0 << 1 ) , 0);
+
+ proxy.setSourceModel(&model1);
+ QApplication::processEvents();
+ QCOMPARE(checkHeaderViewOrder(&view, QVector<int>() << 2 << 0 << 1 << 3 << 4 << 5 ) , 0);
+}
+
+
QTEST_MAIN(tst_QHeaderView)
#include "tst_qheaderview.moc"
diff --git a/tests/auto/qhttp/tst_qhttp.cpp b/tests/auto/qhttp/tst_qhttp.cpp
index 0ea0d15..b4b6ceb 100644
--- a/tests/auto/qhttp/tst_qhttp.cpp
+++ b/tests/auto/qhttp/tst_qhttp.cpp
@@ -363,7 +363,7 @@ void tst_QHttp::get()
}
addRequest( QHttpRequestHeader(), getId );
- QTestEventLoop::instance().enterLoop( 30 );
+ QTestEventLoop::instance().enterLoop( 50 );
if ( QTestEventLoop::instance().timeout() )
QFAIL( "Network operation timed out" );
diff --git a/tests/auto/qiodevice/tst_qiodevice.cpp b/tests/auto/qiodevice/tst_qiodevice.cpp
index 056ad6a..84fd8ad 100644
--- a/tests/auto/qiodevice/tst_qiodevice.cpp
+++ b/tests/auto/qiodevice/tst_qiodevice.cpp
@@ -77,6 +77,9 @@ private slots:
void readLine_data();
void readLine();
+
+ void readLine2_data();
+ void readLine2();
};
// Testing get/set functions
@@ -453,5 +456,114 @@ void tst_QIODevice::readLine()
QCOMPARE(line.size(), linelen);
}
+void tst_QIODevice::readLine2_data()
+{
+ QTest::addColumn<QByteArray>("line");
+
+ QTest::newRow("1024 - 4") << QByteArray(1024 - 4, 'x');
+ QTest::newRow("1024 - 3") << QByteArray(1024 - 3, 'x');
+ QTest::newRow("1024 - 2") << QByteArray(1024 - 2, 'x');
+ QTest::newRow("1024 - 1") << QByteArray(1024 - 1, 'x');
+ QTest::newRow("1024" ) << QByteArray(1024 , 'x');
+ QTest::newRow("1024 + 1") << QByteArray(1024 + 1, 'x');
+ QTest::newRow("1024 + 2") << QByteArray(1024 + 2, 'x');
+
+ QTest::newRow("4096 - 4") << QByteArray(4096 - 4, 'x');
+ QTest::newRow("4096 - 3") << QByteArray(4096 - 3, 'x');
+ QTest::newRow("4096 - 2") << QByteArray(4096 - 2, 'x');
+ QTest::newRow("4096 - 1") << QByteArray(4096 - 1, 'x');
+ QTest::newRow("4096" ) << QByteArray(4096 , 'x');
+ QTest::newRow("4096 + 1") << QByteArray(4096 + 1, 'x');
+ QTest::newRow("4096 + 2") << QByteArray(4096 + 2, 'x');
+
+ QTest::newRow("8192 - 4") << QByteArray(8192 - 4, 'x');
+ QTest::newRow("8192 - 3") << QByteArray(8192 - 3, 'x');
+ QTest::newRow("8192 - 2") << QByteArray(8192 - 2, 'x');
+ QTest::newRow("8192 - 1") << QByteArray(8192 - 1, 'x');
+ QTest::newRow("8192" ) << QByteArray(8192 , 'x');
+ QTest::newRow("8192 + 1") << QByteArray(8192 + 1, 'x');
+ QTest::newRow("8192 + 2") << QByteArray(8192 + 2, 'x');
+
+ QTest::newRow("16384 - 4") << QByteArray(16384 - 4, 'x');
+ QTest::newRow("16384 - 3") << QByteArray(16384 - 3, 'x');
+ QTest::newRow("16384 - 2") << QByteArray(16384 - 2, 'x');
+ QTest::newRow("16384 - 1") << QByteArray(16384 - 1, 'x');
+ QTest::newRow("16384" ) << QByteArray(16384 , 'x');
+ QTest::newRow("16384 + 1") << QByteArray(16384 + 1, 'x');
+ QTest::newRow("16384 + 2") << QByteArray(16384 + 2, 'x');
+
+ QTest::newRow("20000") << QByteArray(20000, 'x');
+
+ QTest::newRow("32768 - 4") << QByteArray(32768 - 4, 'x');
+ QTest::newRow("32768 - 3") << QByteArray(32768 - 3, 'x');
+ QTest::newRow("32768 - 2") << QByteArray(32768 - 2, 'x');
+ QTest::newRow("32768 - 1") << QByteArray(32768 - 1, 'x');
+ QTest::newRow("32768" ) << QByteArray(32768 , 'x');
+ QTest::newRow("32768 + 1") << QByteArray(32768 + 1, 'x');
+ QTest::newRow("32768 + 2") << QByteArray(32768 + 2, 'x');
+
+ QTest::newRow("40000") << QByteArray(40000, 'x');
+}
+
+void tst_QIODevice::readLine2()
+{
+ QFETCH(QByteArray, line);
+
+ int length = line.size();
+
+ QByteArray data("First line.\r\n");
+ data.append(line);
+ data.append("\r\n");
+ data.append(line);
+ data.append("\r\n");
+ data.append("\r\n0123456789");
+
+ {
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ buffer.seek(0);
+ QByteArray temp;
+ temp.resize(64536);
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(13));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(length + 2));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(length + 2));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(2));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(10));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(-1));
+
+ buffer.seek(0);
+ QCOMPARE(buffer.readLine().size(), 13);
+ QCOMPARE(buffer.readLine().size(), length + 2);
+ QCOMPARE(buffer.readLine().size(), length + 2);
+ QCOMPARE(buffer.readLine().size(), 2);
+ QCOMPARE(buffer.readLine().size(), 10);
+ QVERIFY(buffer.readLine().isNull());
+ }
+
+ {
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly | QIODevice::Text);
+
+ buffer.seek(0);
+ QByteArray temp;
+ temp.resize(64536);
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(12));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(length + 1));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(length + 1));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(1));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(10));
+ QCOMPARE(buffer.readLine(temp.data(), temp.size()), qint64(-1));
+
+ buffer.seek(0);
+ QCOMPARE(buffer.readLine().size(), 12);
+ QCOMPARE(buffer.readLine().size(), length + 1);
+ QCOMPARE(buffer.readLine().size(), length + 1);
+ QCOMPARE(buffer.readLine().size(), 1);
+ QCOMPARE(buffer.readLine().size(), 10);
+ QVERIFY(buffer.readLine().isNull());
+ }
+}
+
QTEST_MAIN(tst_QIODevice)
#include "tst_qiodevice.moc"
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index b4dfbba..dd5bb29 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -51,6 +51,10 @@
#include "qcompleter.h"
#include "qstandarditemmodel.h"
+#ifndef QT_NO_CLIPBOARD
+#include "qclipboard.h"
+#endif
+
#ifdef Q_WS_MAC
#include <Carbon/Carbon.h> // For the random function.
#include <cstdlib> // For the random function.
@@ -157,6 +161,10 @@ private slots:
void undo_keypressevents_data();
void undo_keypressevents();
+#ifndef QT_NO_CLIPBOARD
+ void QTBUG5786_undoPaste();
+#endif
+
void clear();
void text_data();
@@ -1406,6 +1414,36 @@ void tst_QLineEdit::undo_keypressevents()
QVERIFY(testWidget->text().isEmpty());
}
+#ifndef QT_NO_CLIPBOARD
+void tst_QLineEdit::QTBUG5786_undoPaste()
+{
+ QString initial("initial");
+ QString string("test");
+ QString additional("add");
+ QApplication::clipboard()->setText(string);
+ QLineEdit edit(initial);
+ QCOMPARE(edit.text(), initial);
+ edit.paste();
+ QCOMPARE(edit.text(), initial + string);
+ edit.paste();
+ QCOMPARE(edit.text(), initial + string + string);
+ edit.insert(additional);
+ QCOMPARE(edit.text(), initial + string + string + additional);
+ edit.undo();
+ QCOMPARE(edit.text(), initial + string + string);
+ edit.undo();
+ QCOMPARE(edit.text(), initial + string);
+ edit.undo();
+ QCOMPARE(edit.text(), initial);
+ edit.selectAll();
+ QApplication::clipboard()->setText(QString());
+ edit.paste();
+ QVERIFY(edit.text().isEmpty());
+
+}
+#endif
+
+
void tst_QLineEdit::clear()
{
// checking that clear of empty/nullstring doesn't add to undo history
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index 1c8fecf..602da61 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -122,6 +122,7 @@ private slots:
void taskQTBUG_633_changeModelData();
void taskQTBUG_435_deselectOnViewportClick();
void taskQTBUG_2678_spacingAndWrappedText();
+ void taskQTBUG_5877_skippingItemInPageDownUp();
};
// Testing get/set functions
@@ -509,9 +510,7 @@ void tst_QListView::moveCursor2()
QModelIndex idx = vu.moveCursor(QMoveCursorListView::MoveHome, Qt::NoModifier);
QCOMPARE(idx, model.index(0,0));
idx = vu.moveCursor(QMoveCursorListView::MoveDown, Qt::NoModifier);
- QModelIndex p = model.index(8,0);
QCOMPARE(idx, model.index(8,0));
-
}
void tst_QListView::moveCursor3()
@@ -605,7 +604,6 @@ void tst_QListView::indexAt()
QVERIFY(view2.m_index.isValid());
QVERIFY(view2.m_index.row() != 0);
-
}
void tst_QListView::clicked()
@@ -703,7 +701,6 @@ void tst_QListView::modelColumn()
view.setModel(&model);
-
//
// Set and get with a valid model
//
@@ -743,7 +740,6 @@ void tst_QListView::modelColumn()
}
}
-
void tst_QListView::hideFirstRow()
{
QStringList items;
@@ -814,7 +810,6 @@ void tst_QListView::batchedMode()
ba.setBit(idx.row(), true);
}
QCOMPARE(ba.size(), 3);
-
}
void tst_QListView::setCurrentIndex()
@@ -1146,7 +1141,6 @@ void tst_QListView::selection()
for (int i = 0; i < selected.count(); ++i) {
QVERIFY(expectedItems.contains(selected.at(i).row()));
}
-
}
void tst_QListView::scrollTo()
@@ -1251,7 +1245,6 @@ void tst_QListView::scrollTo()
QTest::keyClick(lv.viewport(), Qt::Key_Up, Qt::NoModifier);
QCOMPARE(lv.visualRect(index).y(), 0);
-
}
@@ -1772,7 +1765,6 @@ void tst_QListView::clickOnViewportClearsSelection()
QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, point);
//now the selection should be cleared
QVERIFY(!view.selectionModel()->hasSelection());
-
}
void tst_QListView::task262152_setModelColumnNavigate()
@@ -1795,7 +1787,6 @@ void tst_QListView::task262152_setModelColumnNavigate()
QTest::keyClick(&view, Qt::Key_Down);
QTest::qWait(30);
QTRY_COMPARE(view.currentIndex(), model.index(2,1));
-
}
void tst_QListView::taskQTBUG_2233_scrollHiddenItems_data()
@@ -1891,5 +1882,38 @@ void tst_QListView::taskQTBUG_2678_spacingAndWrappedText()
QCOMPARE(w.horizontalScrollBar()->minimum(), w.horizontalScrollBar()->maximum());
}
+void tst_QListView::taskQTBUG_5877_skippingItemInPageDownUp()
+{
+ QList<int> currentItemIndexes;
+ QtTestModel model(0);
+ model.colCount = 1;
+ model.rCount = 100;
+
+ currentItemIndexes << 0 << 6 << 16 << 25 << 34 << 42 << 57 << 68 << 77
+ << 83 << 91 << 94;
+ QMoveCursorListView vu;
+ vu.setModel(&model);
+ vu.show();
+
+ QTest::qWaitForWindowShown(&vu);
+
+ int itemHeight = vu.visualRect(model.index(0, 0)).height();
+ int visibleRowCount = vu.viewport()->height() / itemHeight;
+ int scrolledRowCount = visibleRowCount - 1;
+
+ for (int i = 0; i < currentItemIndexes.size(); ++i) {
+ vu.selectionModel()->setCurrentIndex(model.index(currentItemIndexes[i], 0),
+ QItemSelectionModel::SelectCurrent);
+
+ QModelIndex idx = vu.moveCursor(QMoveCursorListView::MovePageDown, Qt::NoModifier);
+ int newCurrent = qMin(currentItemIndexes[i] + scrolledRowCount, 99);
+ QCOMPARE(idx, model.index(newCurrent, 0));
+
+ idx = vu.moveCursor(QMoveCursorListView::MovePageUp, Qt::NoModifier);
+ newCurrent = qMax(currentItemIndexes[i] - scrolledRowCount, 0);
+ QCOMPARE(idx, model.index(newCurrent, 0));
+ }
+}
+
QTEST_MAIN(tst_QListView)
#include "tst_qlistview.moc"
diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
index 5ead049..8cabadb 100644
--- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
@@ -695,7 +695,7 @@ public:
|| socket.error() == QLocalSocket::ConnectionRefusedError)
&& tries < 1000);
if (tries == 0 && socket.state() != QLocalSocket::ConnectedState) {
- QVERIFY(socket.waitForConnected(3000));
+ QVERIFY(socket.waitForConnected(7000));
QVERIFY(socket.state() == QLocalSocket::ConnectedState);
}
@@ -725,7 +725,7 @@ public:
int done = clients;
while (done > 0) {
bool timedOut = true;
- QVERIFY(server.waitForNewConnection(3000, &timedOut));
+ QVERIFY(server.waitForNewConnection(7000, &timedOut));
QVERIFY(!timedOut);
QLocalSocket *serverSocket = server.nextPendingConnection();
QVERIFY(serverSocket);
diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp
index f0f69a4..7cdfe46 100644
--- a/tests/auto/qmenu/tst_qmenu.cpp
+++ b/tests/auto/qmenu/tst_qmenu.cpp
@@ -87,6 +87,7 @@ private slots:
void widgetActionFocus();
void mouseActivation();
void tearOff();
+ void layoutDirection();
#if defined(QT3_SUPPORT)
void indexBasedInsertion_data();
@@ -596,6 +597,31 @@ void tst_QMenu::tearOff()
QVERIFY(!torn->isVisible());
}
+void tst_QMenu::layoutDirection()
+{
+ QMainWindow win;
+ win.setLayoutDirection(Qt::RightToLeft);
+
+ QMenu menu(&win);
+ menu.show();
+ QTest::qWaitForWindowShown(&menu);
+ QCOMPARE(menu.layoutDirection(), Qt::RightToLeft);
+ menu.close();
+
+ menu.setParent(0);
+ menu.show();
+ QTest::qWaitForWindowShown(&menu);
+ QCOMPARE(menu.layoutDirection(), QApplication::layoutDirection());
+ menu.close();
+
+ //now the menubar
+ QAction *action = win.menuBar()->addMenu(&menu);
+ win.menuBar()->setActiveAction(action);
+ QTest::qWaitForWindowShown(&menu);
+ QCOMPARE(menu.layoutDirection(), Qt::RightToLeft);
+}
+
+
#if defined(QT3_SUPPORT)
void tst_QMenu::indexBasedInsertion_data()
diff --git a/tests/auto/qmenubar/tst_qmenubar.cpp b/tests/auto/qmenubar/tst_qmenubar.cpp
index 4291c3e..320cd8d 100644
--- a/tests/auto/qmenubar/tst_qmenubar.cpp
+++ b/tests/auto/qmenubar/tst_qmenubar.cpp
@@ -167,6 +167,7 @@ private slots:
void task223138_triggered();
void task256322_highlight();
void menubarSizeHint();
+ void taskQTBUG4965_escapeEaten();
#if defined(QT3_SUPPORT)
void indexBasedInsertion_data();
@@ -1664,6 +1665,27 @@ void tst_QMenuBar::menubarSizeHint()
QCOMPARE(resSize, mb.sizeHint());
}
+void tst_QMenuBar::taskQTBUG4965_escapeEaten()
+{
+ QMenuBar menubar;
+ QMenu menu("menu1");
+ QAction *first = menubar.addMenu(&menu);
+ menu.addAction("quit", &menubar, SLOT(close()), QKeySequence("ESC"));
+ menubar.show();
+ menubar.setActiveWindow();
+ QTest::qWaitForWindowShown(&menubar);
+ menubar.setActiveAction(first);
+ QTRY_VERIFY(menu.isVisible());
+ QCOMPARE(menubar.activeAction(), first);
+ QTest::keyClick(0, Qt::Key_Escape);
+ QVERIFY(!menu.isVisible());
+ QTRY_VERIFY(menubar.hasFocus());
+ QCOMPARE(menubar.activeAction(), first);
+ QTest::keyClick(0, Qt::Key_Escape);
+ QVERIFY(!menubar.activeAction());
+ QTest::keyClick(0, Qt::Key_Escape); //now the action should be triggered
+ QTRY_VERIFY(!menubar.isVisible());
+}
#if defined(QT3_SUPPORT)
void tst_QMenuBar::indexBasedInsertion_data()
diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
index ff7e78e..b52c515 100644
--- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
+++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
@@ -168,13 +168,16 @@ void tst_QNetworkCookieJar::setCookiesFromUrl_data()
cookie.setDomain("something.completely.different");
QTest::newRow("security-domain-1") << preset << cookie << "http://www.foo.tld" << result << false;
- cookie.setDomain("www.foo.tld");
+ // we want the cookie to be accepted although the path does not match, see QTBUG-5815
+ cookie.setDomain(".foo.tld");
cookie.setPath("/something");
- QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << false;
+ result += cookie;
+ QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << true;
// setting the defaults:
finalCookie = cookie;
finalCookie.setPath("/something/");
+ finalCookie.setDomain("www.foo.tld");
cookie.setPath("");
cookie.setDomain("");
result.clear();
@@ -285,6 +288,22 @@ void tst_QNetworkCookieJar::cookiesForUrl_data()
QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web" << result;
QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web/" << result;
QTest::newRow("exp-match-6") << allCookies << "http://qt.nokia.com/web/content" << result;
+
+ // path matching
+ allCookies.clear();
+ QNetworkCookie anotherCookie;
+ anotherCookie.setName("a");
+ anotherCookie.setPath("/web");
+ anotherCookie.setDomain(".nokia.com");
+ allCookies += anotherCookie;
+ result.clear();
+ QTest::newRow("path-unmatch-1") << allCookies << "http://nokia.com/" << result;
+ QTest::newRow("path-unmatch-2") << allCookies << "http://nokia.com/something/else" << result;
+ result += anotherCookie;
+ QTest::newRow("path-match-1") << allCookies << "http://nokia.com/web" << result;
+ QTest::newRow("path-match-2") << allCookies << "http://nokia.com/web/" << result;
+ QTest::newRow("path-match-3") << allCookies << "http://nokia.com/web/content" << result;
+
}
void tst_QNetworkCookieJar::cookiesForUrl()
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index bd83c47..5fe716a 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -2212,7 +2212,7 @@ void tst_QNetworkReply::ioGetWithManyProxies()
connect(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
SLOT(sslErrors(QNetworkReply*,QList<QSslError>)));
#endif
- QTestEventLoop::instance().enterLoop(10);
+ QTestEventLoop::instance().enterLoop(15);
QVERIFY(!QTestEventLoop::instance().timeout());
manager.disconnect(SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
@@ -2622,7 +2622,7 @@ void tst_QNetworkReply::ioPostToHttpFromSocket()
QSignalSpy authenticationRequiredSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)));
QSignalSpy proxyAuthenticationRequiredSpy(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
- QTestEventLoop::instance().enterLoop(6);
+ QTestEventLoop::instance().enterLoop(12);
disconnect(&manager, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index d7f042e..0effd01 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -47,6 +47,7 @@
#include <qmatrix.h>
#include <qdesktopwidget.h>
#include <qpaintengine.h>
+#include <qsplashscreen.h>
#include <private/qpixmapdata_p.h>
@@ -169,6 +170,7 @@ private slots:
void loadFromDataNullValues();
void preserveDepth();
+ void splash_crash();
};
static bool lenientCompare(const QPixmap &actual, const QPixmap &expected)
@@ -1421,6 +1423,17 @@ void tst_QPixmap::fromImage_crash()
delete img;
}
+//This is testing QPixmapData::createCompatiblePixmapData - see QTBUG-5977
+void tst_QPixmap::splash_crash()
+{
+ QPixmap pix;
+ pix = QPixmap(":/images/designer.png");
+ QSplashScreen splash(pix);
+ splash.show();
+ QCoreApplication::processEvents();
+ splash.close();
+}
+
void tst_QPixmap::fromData()
{
unsigned char bits[] = { 0xaa, 0x55 };
diff --git a/tests/auto/qscriptable/tst_qscriptable.cpp b/tests/auto/qscriptable/tst_qscriptable.cpp
index 90f1db8..c0945d8 100644
--- a/tests/auto/qscriptable/tst_qscriptable.cpp
+++ b/tests/auto/qscriptable/tst_qscriptable.cpp
@@ -332,7 +332,7 @@ void tst_QScriptable::thisObject()
{
QVERIFY(!m_scriptable.oofThisObject().isValid());
m_engine.evaluate("o.oof = 123");
- QEXPECT_FAIL("", "Setter doesn't get called when it's in the prototype", Continue);
+ QEXPECT_FAIL("", "QTBUG-5749: Setter doesn't get called when it's in the prototype", Continue);
QVERIFY(m_scriptable.oofThisObject().strictlyEquals(m_engine.evaluate("o")));
}
{
diff --git a/tests/auto/qscriptcontext/tst_qscriptcontext.cpp b/tests/auto/qscriptcontext/tst_qscriptcontext.cpp
index a0af214..4ecd887 100644
--- a/tests/auto/qscriptcontext/tst_qscriptcontext.cpp
+++ b/tests/auto/qscriptcontext/tst_qscriptcontext.cpp
@@ -1114,7 +1114,7 @@ void tst_QScriptContext::calledAsConstructor()
QVERIFY(!fun3.property("calledAsConstructor").toBool());
eng.evaluate("new test();");
if (qt_script_isJITEnabled())
- QEXPECT_FAIL("", "calledAsConstructor is not correctly set for JS functions when JIT is enabled", Continue);
+ QEXPECT_FAIL("", "QTBUG-6132: calledAsConstructor is not correctly set for JS functions when JIT is enabled", Continue);
QVERIFY(fun3.property("calledAsConstructor").toBool());
}
diff --git a/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp b/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp
index fe69c07..09ef820 100644
--- a/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp
+++ b/tests/auto/qscriptcontextinfo/tst_qscriptcontextinfo.cpp
@@ -249,13 +249,13 @@ void tst_QScriptContextInfo::qtFunction()
QCOMPARE(info.functionEndLineNumber(), -1);
QCOMPARE(info.functionStartLineNumber(), -1);
if (x == 0)
- QEXPECT_FAIL("", "QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
+ QEXPECT_FAIL("", "QTBUG-6133: QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
QCOMPARE(info.functionParameterNames().size(), pnames.size());
if (x == 0)
- QEXPECT_FAIL("", "QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
+ QEXPECT_FAIL("", "QTBUG-6133: QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
QCOMPARE(info.functionParameterNames(), pnames);
if (x == 0)
- QEXPECT_FAIL("", "QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
+ QEXPECT_FAIL("", "QTBUG-6133: QScriptContextInfo doesn't pick the correct meta-index for overloaded slots", Continue);
QCOMPARE(info.functionMetaIndex(), metaObject()->indexOfMethod(sig));
}
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 8eaad78..3bc2443 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -1148,7 +1148,7 @@ void tst_QScriptEngine::globalObjectProperties()
QScriptValue::PropertyFlags flags = QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration;
global.setProperty(name, val, flags);
QVERIFY(global.property(name).equals(val));
- QEXPECT_FAIL("", "custom Global Object properties don't retain attributes", Continue);
+ QEXPECT_FAIL("", "QTBUG-6134: custom Global Object properties don't retain attributes", Continue);
QCOMPARE(global.propertyFlags(name), flags);
global.setProperty(name, QScriptValue());
QVERIFY(!global.property(name).isValid());
@@ -2033,7 +2033,7 @@ void tst_QScriptEngine::valueConversion()
QScriptValue val = qScriptValueFromValue(&eng, in);
QVERIFY(val.isRegExp());
QRegExp out = val.toRegExp();
- QEXPECT_FAIL("", "JSC-based back-end doesn't preserve QRegExp::patternSyntax (always uses RegExp2)", Continue);
+ QEXPECT_FAIL("", "QTBUG-6136: JSC-based back-end doesn't preserve QRegExp::patternSyntax (always uses RegExp2)", Continue);
QCOMPARE(out.patternSyntax(), in.patternSyntax());
QCOMPARE(out.pattern(), in.pattern());
QCOMPARE(out.caseSensitivity(), in.caseSensitivity());
@@ -2050,7 +2050,7 @@ void tst_QScriptEngine::valueConversion()
in.setMinimal(true);
QScriptValue val = qScriptValueFromValue(&eng, in);
QVERIFY(val.isRegExp());
- QEXPECT_FAIL("", "JSC-based back-end doesn't preserve QRegExp::minimal (always false)", Continue);
+ QEXPECT_FAIL("", "QTBUG-6136: JSC-based back-end doesn't preserve QRegExp::minimal (always false)", Continue);
QCOMPARE(val.toRegExp().isMinimal(), in.isMinimal());
}
}
@@ -2505,7 +2505,7 @@ void tst_QScriptEngine::stacktrace()
QVERIFY(eng.hasUncaughtException());
QVERIFY(result.isError());
- QEXPECT_FAIL("", "", Abort);
+ QEXPECT_FAIL("", "QTBUG-6139: uncaughtExceptionBacktrace() doesn't give the full backtrace", Abort);
QCOMPARE(eng.uncaughtExceptionBacktrace(), backtrace);
QVERIFY(eng.hasUncaughtException());
QVERIFY(result.strictlyEquals(eng.uncaughtException()));
@@ -3045,7 +3045,7 @@ void tst_QScriptEngine::errorConstructors()
eng.clearExceptions();
QVERIFY(ret.toString().startsWith(name));
if (x != 0)
- QEXPECT_FAIL("", "JSC doesn't assign lineNumber when errors are not thrown", Continue);
+ QEXPECT_FAIL("", "QTBUG-6138: JSC doesn't assign lineNumber when errors are not thrown", Continue);
QCOMPARE(ret.property("lineNumber").toInt32(), i+2);
}
}
@@ -3063,14 +3063,19 @@ void tst_QScriptEngine::argumentsProperty()
{
{
QScriptEngine eng;
- QEXPECT_FAIL("", "", Continue);
- QVERIFY(eng.evaluate("arguments").isUndefined());
+ {
+ QScriptValue ret = eng.evaluate("arguments");
+ QVERIFY(ret.isError());
+ QCOMPARE(ret.toString(), QString::fromLatin1("ReferenceError: Can't find variable: arguments"));
+ }
eng.evaluate("arguments = 10");
- QScriptValue ret = eng.evaluate("arguments");
- QVERIFY(ret.isNumber());
- QCOMPARE(ret.toInt32(), 10);
- QEXPECT_FAIL("", "", Continue);
- QVERIFY(!eng.evaluate("delete arguments").toBoolean());
+ {
+ QScriptValue ret = eng.evaluate("arguments");
+ QVERIFY(ret.isNumber());
+ QCOMPARE(ret.toInt32(), 10);
+ }
+ QVERIFY(eng.evaluate("delete arguments").toBoolean());
+ QVERIFY(!eng.globalObject().property("arguments").isValid());
}
{
QScriptEngine eng;
@@ -3081,11 +3086,11 @@ void tst_QScriptEngine::argumentsProperty()
}
{
QScriptEngine eng;
+ QVERIFY(!eng.globalObject().property("arguments").isValid());
QScriptValue ret = eng.evaluate("(function() { arguments = 456; return arguments; })()");
QVERIFY(ret.isNumber());
QCOMPARE(ret.toInt32(), 456);
- QEXPECT_FAIL("", "", Continue);
- QVERIFY(eng.evaluate("arguments").isUndefined());
+ QVERIFY(!eng.globalObject().property("arguments").isValid());
}
{
diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
index a761aac..835f0c6 100644
--- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
+++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
@@ -85,6 +85,7 @@ private slots:
void functionEntryAndExit_native();
void functionEntryAndExit_native2();
void functionEntryAndExit_nativeThrowing();
+ void functionEntryAndExit_builtin_data();
void functionEntryAndExit_builtin();
void functionEntryAndExit_objects();
void functionEntryAndExit_slots();
@@ -114,6 +115,7 @@ private slots:
void evaluateProgram();
void evaluateProgram_SyntaxError();
void evaluateNullProgram();
+ void QTBUG6108();
private:
double m_testProperty;
@@ -475,7 +477,7 @@ void tst_QScriptEngineAgent::scriptLoadAndUnload_eval()
spy->clear();
eng.evaluate("eval('function foo() { print(123); }')");
- QEXPECT_FAIL("","Eval is threaded in different way that in old backend", Abort);
+ QEXPECT_FAIL("","QTBUG-6140 Eval is threaded in different way that in old backend", Abort);
QCOMPARE(spy->count(), 3);
QCOMPARE(spy->at(0).type, ScriptEngineEvent::ScriptLoad);
@@ -810,18 +812,42 @@ void tst_QScriptEngineAgent::functionEntryAndExit_nativeThrowing()
delete spy;
}
+void tst_QScriptEngineAgent::functionEntryAndExit_builtin_data()
+{
+ QTest::addColumn<QString>("script");
+ QTest::addColumn<QString>("result");
+
+ QTest::newRow("string native") << "'ciao'.toString()" << "ciao";
+ QTest::newRow("string object") << "String('ciao').toString()" << "ciao";
+ QTest::newRow("number native") << "(123).toString()" << "123";
+ QTest::newRow("number object") << "Number(123).toString()" << "123";
+ QTest::newRow("array native") << "['s','a'].toString()" << "s, a";
+ QTest::newRow("array object") << "Array('s', 'a').toString()" << "s,a";
+ QTest::newRow("boolean native") << "false.toString()" << "false";
+ QTest::newRow("boolean object") << "Boolean(true).toString()" << "true";
+ QTest::newRow("regexp native") << "/a/.toString()" << "/a/";
+ QTest::newRow("regexp object") << "RegExp('a').toString()" << "/a/";
+}
+
/** check behaiviour of built-in function */
void tst_QScriptEngineAgent::functionEntryAndExit_builtin()
{
+ QFETCH(QString, script);
+ QFETCH(QString, result);
QScriptEngine eng;
ScriptEngineSpy *spy = new ScriptEngineSpy(&eng, ~(ScriptEngineSpy::IgnoreFunctionEntry
| ScriptEngineSpy::IgnoreFunctionExit));
{
spy->clear();
- eng.evaluate("'ciao'.toString()");
-
- if (qt_script_isJITEnabled())
- QEXPECT_FAIL("", "Some events are missing when JIT is enabled", Abort);
+ eng.evaluate(script);
+
+ if (qt_script_isJITEnabled()) {
+ QEXPECT_FAIL("string native", "QTBUG-6187 Some events are missing when JIT is enabled", Abort);
+ QEXPECT_FAIL("number native", "QTBUG-6187 Some events are missing when JIT is enabled", Abort);
+ QEXPECT_FAIL("array native", "QTBUG-6187 Some events are missing when JIT is enabled", Abort);
+ QEXPECT_FAIL("boolean native", "QTBUG-6187 Some events are missing when JIT is enabled", Abort);
+ QEXPECT_FAIL("regexp native", "QTBUG-6187 Some events are missing when JIT is enabled", Abort);
+ }
QCOMPARE(spy->count(), 4);
// evaluate() entry
@@ -834,14 +860,13 @@ void tst_QScriptEngineAgent::functionEntryAndExit_builtin()
// built-in native function exit
QCOMPARE(spy->at(2).type, ScriptEngineEvent::FunctionExit);
QCOMPARE(spy->at(2).scriptId, qint64(-1));
- QVERIFY(spy->at(2).value.isString());
- QCOMPARE(spy->at(2).value.toString(), QString("ciao"));
+ QCOMPARE(spy->at(2).value.toString(), QString(result));
// evaluate() exit
QCOMPARE(spy->at(3).type, ScriptEngineEvent::FunctionExit);
QCOMPARE(spy->at(3).scriptId, spy->at(0).scriptId);
QVERIFY(spy->at(3).value.isString());
- QCOMPARE(spy->at(3).value.toString(), QString("ciao"));
+ QCOMPARE(spy->at(3).value.toString(), QString(result));
}
delete spy;
}
@@ -1160,16 +1185,16 @@ void tst_QScriptEngineAgent::positionChange_1()
{
spy->clear();
eng.evaluate(";");
- QEXPECT_FAIL("","JSC do not evaluate ';' to statemant",Continue);
+ QEXPECT_FAIL("","QTBUG-6142 JSC do not evaluate ';' to statemant",Continue);
QCOMPARE(spy->count(), 1);
if (spy->count()) {
- QEXPECT_FAIL("","JSC do not evaluate ';' to statemant",Continue);
+ QEXPECT_FAIL("","QTBUG-6142 JSC do not evaluate ';' to statemant",Continue);
QCOMPARE(spy->at(0).type, ScriptEngineEvent::PositionChange);
- QEXPECT_FAIL("","JSC do not evaluate ';' to statemant",Continue);
+ QEXPECT_FAIL("","QTBUG-6142 JSC do not evaluate ';' to statemant",Continue);
QVERIFY(spy->at(0).scriptId != -1);
- QEXPECT_FAIL("","JSC do not evaluate ';' to statemant",Continue);
+ QEXPECT_FAIL("","QTBUG-6142 JSC do not evaluate ';' to statemant",Continue);
QCOMPARE(spy->at(0).lineNumber, 1);
- QEXPECT_FAIL("","JSC do not evaluate ';' to statemant",Continue);
+ QEXPECT_FAIL("","QTBUG-6142 JSC do not evaluate ';' to statemant",Continue);
QCOMPARE(spy->at(0).columnNumber, 1);
}
}
@@ -1551,7 +1576,7 @@ void tst_QScriptEngineAgent::positionChange_2()
}
{
- QEXPECT_FAIL("","I believe the test is wrong. Expressions shouldn't call positionChange "
+ QEXPECT_FAIL("","QTBUG-6142 I believe the test is wrong. Expressions shouldn't call positionChange "
"because statement '1+2' will call it at least twice, why debugger have to "
"stop here so many times?", Abort);
spy->clear();
@@ -2088,8 +2113,6 @@ void tst_QScriptEngineAgent::syntaxError()
i = 2;
QCOMPARE(spy->at(i).type, ScriptEngineEvent::ContextPush);
- QEXPECT_FAIL("","The test is broken, contextPush event do not provide scriptId", Continue);
- QVERIFY(spy->at(i).scriptId == -1);
i = 3;
QCOMPARE(spy->at(i).type, ScriptEngineEvent::FunctionEntry);
QVERIFY(spy->at(i).scriptId == -1);
@@ -2098,14 +2121,12 @@ void tst_QScriptEngineAgent::syntaxError()
QVERIFY(spy->at(i).scriptId == -1);
i = 5;
QCOMPARE(spy->at(i).type, ScriptEngineEvent::ContextPop);
- QEXPECT_FAIL("","The test is broken, contextPop event do not provide scriptId", Continue);
- QVERIFY(spy->at(i).scriptId == -1);
i = 6;
QCOMPARE(spy->at(i).type, ScriptEngineEvent::ExceptionThrow);
QCOMPARE(spy->at(i).scriptId, spy->at(0).scriptId);
QVERIFY(!spy->at(i).hasExceptionHandler);
QVERIFY(spy->at(i).value.isError());
- QEXPECT_FAIL("","There are other messages in JSC",Continue);
+ QEXPECT_FAIL("","QTBUG-6137 There are other messages in JSC",Continue);
QCOMPARE(spy->at(i).value.toString(), QString("SyntaxError: Expected `}'"));
QCOMPARE(spy->at(i).scriptId, spy->at(0).scriptId);
i = 7;
@@ -2138,7 +2159,7 @@ void tst_QScriptEngineAgent::extension_invoctaion()
QCOMPARE(spy->at(1).lineNumber, lineNumber);
QCOMPARE(spy->at(1).columnNumber, 1);
- QEXPECT_FAIL("","In JSC Eval('debugger') returns undefined",Abort);
+ QEXPECT_FAIL("","QTBUG-6135 In JSC Eval('debugger') returns undefined",Abort);
QVERIFY(ret.isString());
QCOMPARE(ret.toString(), QString::fromLatin1("extension(DebuggerInvocationRequest)"));
}
@@ -2389,5 +2410,32 @@ void tst_QScriptEngineAgent::evaluateNullProgram()
QCOMPARE(spy->count(), 0);
}
+void tst_QScriptEngineAgent::QTBUG6108()
+{
+ QScriptEngine eng;
+ ScriptEngineSpy *spy = new ScriptEngineSpy(&eng);
+ eng.evaluate("eval('a = 1')");
+ QCOMPARE(spy->count(), 5);
+
+ QCOMPARE(spy->at(0).type, ScriptEngineEvent::ScriptLoad);
+ QVERIFY(spy->at(0).scriptId != -1);
+
+ QCOMPARE(spy->at(1).type, ScriptEngineEvent::FunctionEntry);
+ QVERIFY(spy->at(1).scriptId != -1);
+ QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
+
+ QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
+ QVERIFY(spy->at(2).scriptId != -1);
+ QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
+ QCOMPARE(spy->at(2).lineNumber, 1);
+
+ QCOMPARE(spy->at(3).type, ScriptEngineEvent::FunctionExit);
+ QVERIFY(spy->at(3).scriptId != -1);
+ QCOMPARE(spy->at(3).scriptId, spy->at(0).scriptId);
+
+ QCOMPARE(spy->at(4).type, ScriptEngineEvent::ScriptUnload);
+ QCOMPARE(spy->at(4).scriptId, spy->at(0).scriptId);
+}
+
QTEST_MAIN(tst_QScriptEngineAgent)
#include "tst_qscriptengineagent.moc"
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index db46b66..169a688 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -347,7 +347,6 @@ void tst_QSslSocket::constructing()
QCOMPARE(socket.sslConfiguration(), QSslConfiguration::defaultConfiguration());
QCOMPARE(socket.errorString(), QString("Unknown error"));
char c = '\0';
- QTest::ignoreMessage(QtWarningMsg, "QIODevice::getChar: Closed device");
QVERIFY(!socket.getChar(&c));
QCOMPARE(c, '\0');
QVERIFY(!socket.isOpen());
diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp
index fd39515..a13bb0d 100644
--- a/tests/auto/qstatemachine/tst_qstatemachine.cpp
+++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp
@@ -209,6 +209,7 @@ private slots:
void task260403_clonedSignals();
void postEventFromOtherThread();
void eventFilterForApplication();
+ void eventClassesExported();
};
tst_QStateMachine::tst_QStateMachine()
@@ -4307,5 +4308,12 @@ void tst_QStateMachine::eventFilterForApplication()
QVERIFY(machine.configuration().contains(s2));
}
+void tst_QStateMachine::eventClassesExported()
+{
+ // make sure this links
+ QStateMachine::WrappedEvent *wrappedEvent = new QStateMachine::WrappedEvent(0, 0);
+ QStateMachine::SignalEvent *signalEvent = new QStateMachine::SignalEvent(0, 0, QList<QVariant>());
+}
+
QTEST_MAIN(tst_QStateMachine)
#include "tst_qstatemachine.moc"
diff --git a/tests/auto/qstatusbar/tst_qstatusbar.cpp b/tests/auto/qstatusbar/tst_qstatusbar.cpp
index 9774559..92d9185 100644
--- a/tests/auto/qstatusbar/tst_qstatusbar.cpp
+++ b/tests/auto/qstatusbar/tst_qstatusbar.cpp
@@ -77,6 +77,7 @@ private slots:
void insertPermanentWidget();
void setSizeGripEnabled();
void task194017_hiddenWidget();
+ void QTBUG4334_hiddenOnMaximizedWindow();
private:
QStatusBar *testWidget;
@@ -257,6 +258,19 @@ void tst_QStatusBar::task194017_hiddenWidget()
QVERIFY(!label->isVisible());
}
+void tst_QStatusBar::QTBUG4334_hiddenOnMaximizedWindow()
+{
+ QMainWindow main;
+ QStatusBar statusbar;
+ statusbar.setSizeGripEnabled(true);
+ main.setStatusBar(&statusbar);
+ main.showMaximized();
+ QTest::qWaitForWindowShown(&main);
+ QVERIFY(!statusbar.findChild<QSizeGrip*>()->isVisible());
+ main.showNormal();
+ QTest::qWaitForWindowShown(&main);
+ QVERIFY(statusbar.findChild<QSizeGrip*>()->isVisible());
+}
QTEST_MAIN(tst_QStatusBar)
#include "tst_qstatusbar.moc"
diff --git a/tests/auto/qsysinfo/.gitignore b/tests/auto/qsysinfo/.gitignore
deleted file mode 100644
index e50cae2..0000000
--- a/tests/auto/qsysinfo/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tst_qsysinfo
diff --git a/tests/auto/qsysinfo/qsysinfo.pro b/tests/auto/qsysinfo/qsysinfo.pro
deleted file mode 100644
index e822fec..0000000
--- a/tests/auto/qsysinfo/qsysinfo.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-load(qttest_p4)
-SOURCES += tst_qsysinfo.cpp
-QT = core
-
-
diff --git a/tests/auto/qsysinfo/tst_qsysinfo.cpp b/tests/auto/qsysinfo/tst_qsysinfo.cpp
deleted file mode 100644
index 8784863..0000000
--- a/tests/auto/qsysinfo/tst_qsysinfo.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-
-class tst_QSysInfo: public QObject
-{
- Q_OBJECT
-private slots:
-};
-
-QTEST_MAIN(tst_QSysInfo)
-#include "tst_qsysinfo.moc"
diff --git a/tests/auto/qtabbar/tst_qtabbar.cpp b/tests/auto/qtabbar/tst_qtabbar.cpp
index 2db72b9..e83312d 100644
--- a/tests/auto/qtabbar/tst_qtabbar.cpp
+++ b/tests/auto/qtabbar/tst_qtabbar.cpp
@@ -295,6 +295,10 @@ void tst_QTabBar::setUsesScrollButtons()
if (usesArrows != -128)
tabBar.setUsesScrollButtons(usesArrows);
QTEST(tabBar.usesScrollButtons(), "expectedArrows");
+
+ // Make sure style sheet does not override user set mode
+ tabBar.setStyleSheet("QWidget { background-color: #ABA8A6;}");
+ QTEST(tabBar.usesScrollButtons(), "expectedArrows");
}
void tst_QTabBar::removeLastTab()
@@ -532,7 +536,7 @@ void tst_QTabBar::task251184_removeTab()
QCOMPARE(bar.count(), 1);
QCOMPARE(bar.currentIndex(), 0);
- QCOMPARE(bar.tabText(bar.currentIndex()), QString("bar2"));
+ QCOMPARE(bar.tabText(bar.currentIndex()), QString("bar2"));
}
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index f571e8a..50d6c67 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -198,6 +198,7 @@ private slots:
void task191545_dragSelectRows();
void taskQTBUG_5062_spansInconsistency();
void taskQTBUG_4516_clickOnRichTextLabel();
+ void taskQTBUG_5237_wheelEventOnHeader();
void mouseWheel_data();
void mouseWheel();
@@ -3015,6 +3016,14 @@ void tst_QTableView::spans_data()
<< QPoint(2, 0)
<< 1
<< 2;
+
+ QTest::newRow("QTBUG-6004: No failing Q_ASSERT, then it passes.")
+ << 5 << 5
+ << (SpanList() << QRect(0, 0, 2, 2) << QRect(0, 0, 1, 1))
+ << false
+ << QPoint(0, 0)
+ << 1
+ << 1;
}
void tst_QTableView::spans()
@@ -3613,17 +3622,9 @@ void tst_QTableView::mouseWheel_data()
QTest::newRow("scroll down per item")
<< int(QAbstractItemView::ScrollPerItem) << -120
<< 10 + qApp->wheelScrollLines() << 10 + qApp->wheelScrollLines();
-#ifdef Q_WS_MAC
- // On Mac, we always scroll one pixel per 120 delta (rather than multiplying with
- // singleStep) since wheel events are accelerated by the OS.
- QTest::newRow("scroll down per pixel")
- << int(QAbstractItemView::ScrollPerPixel) << -120
- << 10 + qApp->wheelScrollLines() << 10 + qApp->wheelScrollLines();
-#else
QTest::newRow("scroll down per pixel")
<< int(QAbstractItemView::ScrollPerPixel) << -120
<< 10 + qApp->wheelScrollLines() * 89 << 10 + qApp->wheelScrollLines() * 28;
-#endif
}
void tst_QTableView::mouseWheel()
@@ -3913,7 +3914,7 @@ void tst_QTableView::changeHeaderData()
QTest::qWaitForWindowShown(&view);
QString text = "long long long text";
- const int textWidth = view.fontMetrics().width(text);
+ const int textWidth = view.verticalHeader()->fontMetrics().width(text);
QVERIFY(view.verticalHeader()->width() < textWidth);
model.setHeaderData(2, Qt::Vertical, text);
@@ -3922,6 +3923,22 @@ void tst_QTableView::changeHeaderData()
QVERIFY(view.verticalHeader()->width() > textWidth);
}
+void tst_QTableView::taskQTBUG_5237_wheelEventOnHeader()
+{
+ QTableView view;
+ QStandardItemModel model(500,5);
+ view.setModel(&model);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ int sbValueBefore = view.verticalScrollBar()->value();
+ QHeaderView *header = view.verticalHeader();
+ QTest::mouseMove(header);
+ QWheelEvent wheelEvent(header->geometry().center(), -720, 0, 0);
+ QApplication::sendEvent(header->viewport(), &wheelEvent);
+ int sbValueAfter = view.verticalScrollBar()->value();
+ QVERIFY(sbValueBefore != sbValueAfter);
+}
QTEST_MAIN(tst_QTableView)
#include "tst_qtableview.moc"
diff --git a/tests/auto/qtcpserver/tst_qtcpserver.cpp b/tests/auto/qtcpserver/tst_qtcpserver.cpp
index 2540096..8b86111 100644
--- a/tests/auto/qtcpserver/tst_qtcpserver.cpp
+++ b/tests/auto/qtcpserver/tst_qtcpserver.cpp
@@ -523,7 +523,7 @@ void tst_QTcpServer::waitForConnectionTest()
QTcpSocket findLocalIpSocket;
findLocalIpSocket.connectToHost(QtNetworkSettings::serverName(), 143);
- QVERIFY(findLocalIpSocket.waitForConnected(2000));
+ QVERIFY(findLocalIpSocket.waitForConnected(5000));
QTcpServer server;
bool timeout = false;
diff --git a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
index 4ed9fca..863b8f5 100644
--- a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
@@ -371,7 +371,6 @@ void tst_QTcpSocket::constructing()
QCOMPARE(socket->socketType(), QTcpSocket::TcpSocket);
char c;
- QTest::ignoreMessage(QtWarningMsg, "QIODevice::getChar: Closed device");
QCOMPARE(socket->getChar(&c), false);
QCOMPARE((int) socket->bytesAvailable(), 0);
QCOMPARE(socket->canReadLine(), false);
@@ -777,7 +776,7 @@ void tst_QTcpSocket::unget()
for (int i = 0; i < 10; i += 2) {
while (socket->bytesAvailable() < 2)
- QVERIFY(socket->waitForReadyRead(5000));
+ QVERIFY(socket->waitForReadyRead(10000));
int bA = socket->bytesAvailable();
QVERIFY(socket->read(buf, 2) == 2);
buf[2] = '\0';
@@ -830,7 +829,6 @@ void tst_QTcpSocket::openCloseOpenClose()
QVERIFY(socket->socketType() == QTcpSocket::TcpSocket);
char c;
- QTest::ignoreMessage(QtWarningMsg, "QIODevice::getChar: Closed device");
QCOMPARE(socket->getChar(&c), false);
QCOMPARE((int) socket->bytesAvailable(), 0);
QCOMPARE(socket->canReadLine(), false);
@@ -1959,7 +1957,6 @@ void tst_QTcpSocket::zeroAndMinusOneReturns()
QCOMPARE(socket->write("BLUBBER"), qint64(-1));
QCOMPARE(socket->read(c, 16), qint64(-1));
QCOMPARE(socket->readLine(c, 16), qint64(-1));
- QTest::ignoreMessage(QtWarningMsg, "QIODevice::getChar: Closed device");
QVERIFY(!socket->getChar(c));
QVERIFY(!socket->putChar('a'));
@@ -2118,7 +2115,7 @@ void tst_QTcpSocket::moveToThread0()
QTcpSocket *socket = newSocket();;
socket->connectToHost(QtNetworkSettings::serverName(), 143);
socket->moveToThread(0);
- QVERIFY(socket->waitForConnected(2000));
+ QVERIFY(socket->waitForConnected(5000));
socket->write("XXX LOGOUT\r\n");
QVERIFY(socket->waitForBytesWritten(5000));
QVERIFY(socket->waitForDisconnected());
@@ -2129,7 +2126,7 @@ void tst_QTcpSocket::moveToThread0()
QTcpSocket *socket = newSocket();
socket->moveToThread(0);
socket->connectToHost(QtNetworkSettings::serverName(), 143);
- QVERIFY(socket->waitForConnected(2000));
+ QVERIFY(socket->waitForConnected(5000));
socket->write("XXX LOGOUT\r\n");
QVERIFY(socket->waitForBytesWritten(5000));
QVERIFY(socket->waitForDisconnected());
@@ -2139,7 +2136,7 @@ void tst_QTcpSocket::moveToThread0()
// Case 3: Moved after writing, while waiting for bytes to be written.
QTcpSocket *socket = newSocket();
socket->connectToHost(QtNetworkSettings::serverName(), 143);
- QVERIFY(socket->waitForConnected(2000));
+ QVERIFY(socket->waitForConnected(5000));
socket->write("XXX LOGOUT\r\n");
socket->moveToThread(0);
QVERIFY(socket->waitForBytesWritten(5000));
@@ -2150,7 +2147,7 @@ void tst_QTcpSocket::moveToThread0()
// Case 4: Moved after writing, while waiting for response.
QTcpSocket *socket = newSocket();
socket->connectToHost(QtNetworkSettings::serverName(), 143);
- QVERIFY(socket->waitForConnected(2000));
+ QVERIFY(socket->waitForConnected(5000));
socket->write("XXX LOGOUT\r\n");
QVERIFY(socket->waitForBytesWritten(5000));
socket->moveToThread(0);
@@ -2306,7 +2303,7 @@ void tst_QTcpSocket::invalidProxy()
QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState);
} else {
QCOMPARE(socket->state(), QAbstractSocket::ConnectingState);
- QVERIFY(!socket->waitForConnected(2000));
+ QVERIFY(!socket->waitForConnected(5000));
}
QVERIFY(!socket->errorString().isEmpty());
@@ -2425,7 +2422,7 @@ void tst_QTcpSocket::proxyFactory()
QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState);
} else {
QCOMPARE(socket->state(), QAbstractSocket::ConnectingState);
- QVERIFY(socket->waitForConnected(2000));
+ QVERIFY(socket->waitForConnected(5000));
QCOMPARE(proxyAuthCalled, 1);
}
QVERIFY(!socket->errorString().isEmpty());
diff --git a/tests/auto/qtextedit/tst_qtextedit.cpp b/tests/auto/qtextedit/tst_qtextedit.cpp
index fee030c..bebc4bd 100644
--- a/tests/auto/qtextedit/tst_qtextedit.cpp
+++ b/tests/auto/qtextedit/tst_qtextedit.cpp
@@ -200,6 +200,7 @@ private slots:
void pasteFromQt3RichText();
void noWrapBackgrounds();
void preserveCharFormatAfterUnchangingSetPosition();
+ void twoSameInputMethodEvents();
private:
void createSelection();
@@ -2183,5 +2184,23 @@ void tst_QTextEdit::preserveCharFormatAfterUnchangingSetPosition()
QCOMPARE(edit.textColor(), color);
}
+// Regression test for QTBUG-4696
+void tst_QTextEdit::twoSameInputMethodEvents()
+{
+ ed->setText("testLine");
+ ed->show();
+ QList<QInputMethodEvent::Attribute> attributes;
+ attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor,
+ ed->textCursor().position(),
+ 0,
+ QVariant()));
+
+ QInputMethodEvent event("PreEditText", attributes);
+ QApplication::sendEvent(ed, &event);
+ QCOMPARE(ed->document()->firstBlock().layout()->lineCount(), 1);
+ QApplication::sendEvent(ed, &event);
+ QCOMPARE(ed->document()->firstBlock().layout()->lineCount(), 1);
+}
+
QTEST_MAIN(tst_QTextEdit)
#include "tst_qtextedit.moc"
diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp
index 7c3f4f2..1df26b8 100644
--- a/tests/auto/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp
@@ -1115,14 +1115,14 @@ void tst_QTextLayout::testTabDPIScale()
QTextOption option = layout.textOption();
QList<QTextOption::Tab> tabs;
QTextOption::Tab tab;
- tab.position = 200;
+ tab.position = 300;
tabs.append(tab);
- tab.position = 400;
+ tab.position = 600;
tab.type = QTextOption::RightTab;
tabs.append(tab);
- tab.position = 600;
+ tab.position = 800;
tab.type = QTextOption::CenterTab;
tabs.append(tab);
option.setTabs(tabs);
diff --git a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
index 78e0ce6..2f9cc04 100644
--- a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -858,6 +858,33 @@ void tst_QTextScriptEngine::malayalam()
QSKIP("couln't find AkrutiMal2", SkipAll);
}
}
+ {
+ if (QFontDatabase().families(QFontDatabase::Malayalam).contains("Rachana")) {
+ QFont f("Rachana");
+ const ShapeTable shape_table [] = {
+ { { 0xd37, 0xd4d, 0xd1f, 0xd4d, 0xd30, 0xd40, 0x0 },
+ { 0x385, 0xa3, 0x0 } },
+ { { 0xd2f, 0xd4d, 0xd15, 0xd4d, 0xd15, 0xd41, 0x0 },
+ { 0x2ff, 0x0 } },
+ { { 0xd33, 0xd4d, 0xd33, 0x0 },
+ { 0x3f8, 0x0 } },
+ { { 0xd2f, 0xd4d, 0xd15, 0xd4d, 0xd15, 0xd41, 0x0 },
+ { 0x2ff, 0x0 } },
+
+ { {0}, {0} }
+ };
+
+
+ const ShapeTable *s = shape_table;
+ while (s->unicode[0]) {
+ QVERIFY( shaping(f, s) );
+ ++s;
+ }
+ } else {
+ QSKIP("couln't find Rachana", SkipAll);
+ }
+ }
+
#else
QSKIP("X11 specific test", SkipAll);
#endif
diff --git a/tests/auto/qtreewidget/tst_qtreewidget.cpp b/tests/auto/qtreewidget/tst_qtreewidget.cpp
index 621072c..0c6df4f 100644
--- a/tests/auto/qtreewidget/tst_qtreewidget.cpp
+++ b/tests/auto/qtreewidget/tst_qtreewidget.cpp
@@ -168,6 +168,8 @@ private slots:
void task239150_editorWidth();
void setTextUpdate();
void taskQTBUG2844_visualItemRect();
+ void setChildIndicatorPolicy();
+
public slots:
void itemSelectionChanged();
@@ -3290,6 +3292,57 @@ void tst_QTreeWidget::taskQTBUG2844_visualItemRect()
QCOMPARE(tree.visualItemRect(&item), rectCol0 | rectCol1);
}
+void tst_QTreeWidget::setChildIndicatorPolicy()
+{
+ QTreeWidget treeWidget;
+ treeWidget.setColumnCount(1);
+
+ class MyItemDelegate : public QStyledItemDelegate
+ {
+ public:
+ MyItemDelegate() : numPaints(0), expectChildren(false) { }
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+ {
+ numPaints++;
+ QCOMPARE(!(option.state & QStyle::State_Children), !expectChildren);
+ QStyledItemDelegate::paint(painter, option, index);
+ }
+ mutable int numPaints;
+ bool expectChildren;
+ } delegate;
+
+ treeWidget.setItemDelegate(&delegate);
+ treeWidget.show();
+
+ QTreeWidgetItem *item = new QTreeWidgetItem(QStringList("Hello"));
+ treeWidget.insertTopLevelItem(0, item);
+ QTest::qWait(50);
+ QTRY_VERIFY(delegate.numPaints > 0);
+
+ delegate.numPaints = 0;
+ delegate.expectChildren = true;
+ item->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+ QApplication::processEvents();
+ QTRY_COMPARE(delegate.numPaints, 1);
+
+ delegate.numPaints = 0;
+ delegate.expectChildren = false;
+ item->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless);
+ QApplication::processEvents();
+ QTRY_COMPARE(delegate.numPaints, 1);
+
+ delegate.numPaints = 0;
+ delegate.expectChildren = true;
+ new QTreeWidgetItem(item);
+ QApplication::processEvents();
+ QTRY_COMPARE(delegate.numPaints, 1);
+
+ delegate.numPaints = 0;
+ delegate.expectChildren = false;
+ item->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicator);
+ QApplication::processEvents();
+ QTRY_COMPARE(delegate.numPaints, 1);
+}
diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp
index 9418be0..160d74c 100644
--- a/tests/auto/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp
@@ -295,8 +295,8 @@ void tst_QUdpSocket::loop()
QCOMPARE(paul.writeDatagram(paulMessage.data(), paulMessage.length(),
peterAddress, peter.localPort()), qint64(paulMessage.length()));
- QVERIFY(peter.waitForReadyRead(5000));
- QVERIFY(paul.waitForReadyRead(5000));
+ QVERIFY(peter.waitForReadyRead(9000));
+ QVERIFY(paul.waitForReadyRead(9000));
char peterBuffer[16*1024];
char paulBuffer[16*1024];
if (success) {
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 9692c6e..1e3f5f8 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -384,6 +384,8 @@ private slots:
void activateWindow();
+ void openModal_taskQTBUG_5804();
+
#ifdef Q_OS_SYMBIAN
void cbaVisibility();
#endif
@@ -9583,6 +9585,29 @@ void tst_QWidget::activateWindow()
QTRY_VERIFY(!mainwindow2->isActiveWindow());
}
+void tst_QWidget::openModal_taskQTBUG_5804()
+{
+ class Widget : public QWidget
+ {
+ public:
+ Widget(QWidget *parent) : QWidget(parent)
+ {
+ }
+ ~Widget()
+ {
+ QMessageBox msgbox;
+ QTimer::singleShot(10, &msgbox, SLOT(accept()));
+ msgbox.exec(); //open a modal dialog
+ }
+ };
+
+ QWidget *win = new QWidget;
+ new Widget(win);
+ win->show();
+ QTest::qWaitForWindowShown(win);
+ delete win;
+}
+
#ifdef Q_OS_SYMBIAN
void tst_QWidget::cbaVisibility()
{
diff --git a/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref
new file mode 100644
index 0000000..ea85e32
--- /dev/null
+++ b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.ref
@@ -0,0 +1,7 @@
+StartDocument( )
+Comment( text=" Empty markup declaration in a doctype. " )
+DTD( text="
+<!DOCTYPE doc []>" dtdName="doc" )
+StartElement( name="doc" qualifiedName="doc" )
+EndElement( name="doc" qualifiedName="doc" )
+EndDocument( )
diff --git a/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml
new file mode 100644
index 0000000..1c66c0c
--- /dev/null
+++ b/tests/auto/qxmlstream/data/doctypeEmptyMarkupDecl.xml
@@ -0,0 +1,3 @@
+<!-- Empty markup declaration in a doctype. -->
+<!DOCTYPE doc []>
+<doc></doc>
diff --git a/tests/auto/rcc/rcc.pro b/tests/auto/rcc/rcc.pro
index d6a2083..1759b48 100644
--- a/tests/auto/rcc/rcc.pro
+++ b/tests/auto/rcc/rcc.pro
@@ -4,3 +4,9 @@ TARGET = tst_rcc
SOURCES += tst_rcc.cpp
+wince* {
+ DEFINES += SRCDIR=\\\"\\\"
+} else {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+}
+
diff --git a/tests/auto/rcc/tst_rcc.cpp b/tests/auto/rcc/tst_rcc.cpp
index c9e3d76..2fe0dc4 100644
--- a/tests/auto/rcc/tst_rcc.cpp
+++ b/tests/auto/rcc/tst_rcc.cpp
@@ -102,7 +102,7 @@ void tst_rcc::rcc_data()
QTest::addColumn<QString>("qrcfile");
QTest::addColumn<QString>("expected");
- QTest::newRow("images") << "data" << "images.qrc" << "images.expected";
+ QTest::newRow("images") << SRCDIR "data" << "images.qrc" << "images.expected";
}
void tst_rcc::rcc()
diff --git a/tests/auto/windowsmobile/test/test.pro b/tests/auto/windowsmobile/test/test.pro
index b7f65a9..61e275d 100644
--- a/tests/auto/windowsmobile/test/test.pro
+++ b/tests/auto/windowsmobile/test/test.pro
@@ -5,7 +5,7 @@ HEADERS += ddhelper.h
SOURCES += tst_windowsmobile.cpp ddhelper.cpp
RESOURCES += windowsmobile.qrc
-TARGET = tst_windowsmobile
+TARGET = ../tst_windowsmobile
wincewm*: {
addFiles.sources = $$OUT_PWD/../testQMenuBar/*.exe
diff --git a/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro b/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro
index 6dd288b..87986e4 100644
--- a/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro
+++ b/tests/auto/windowsmobile/testQMenuBar/testQMenuBar.pro
@@ -1,2 +1,3 @@
SOURCES += main.cpp
-DESTDIR = ./
+TARGET = ../testQMenuBar
+
diff --git a/tests/manual/keypadnavigation/keypadnavigation.ui b/tests/manual/keypadnavigation/keypadnavigation.ui
index 039889b..8b456d9 100644
--- a/tests/manual/keypadnavigation/keypadnavigation.ui
+++ b/tests/manual/keypadnavigation/keypadnavigation.ui
@@ -1060,75 +1060,100 @@ As a reward you can try out the QDial, below.</string>
</widget>
<widget class="QWidget" name="m_pageDialogs">
<layout class="QVBoxLayout" name="verticalLayout_13">
+ <property name="margin">
+ <number>0</number>
+ </property>
<item>
- <widget class="QPushButton" name="m_buttonGetOpenFileName">
- <property name="text">
- <string>getOpenFileName()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonGetSaveFileName">
- <property name="text">
- <string>getSaveFileName()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonGetExistingDirectory">
- <property name="text">
- <string>getExistingDirectory()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonGetColor">
- <property name="text">
- <string>getColor()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonGetFont">
- <property name="text">
- <string>getFont()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonQuestion">
- <property name="text">
- <string>question()</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonAboutQt">
- <property name="text">
- <string>aboutQt()</string>
+ <widget class="QScrollArea" name="scrollArea_5">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="m_buttonGetItem">
- <property name="text">
- <string>getItem()</string>
+ <property name="widgetResizable">
+ <bool>true</bool>
</property>
+ <widget class="QWidget" name="scrollAreaWidgetContents_5">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>264</width>
+ <height>356</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_14">
+ <item>
+ <widget class="QPushButton" name="m_buttonGetOpenFileName">
+ <property name="text">
+ <string>getOpenFileName()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonGetSaveFileName">
+ <property name="text">
+ <string>getSaveFileName()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonGetExistingDirectory">
+ <property name="text">
+ <string>getExistingDirectory()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonGetColor">
+ <property name="text">
+ <string>getColor()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonGetFont">
+ <property name="text">
+ <string>getFont()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonQuestion">
+ <property name="text">
+ <string>question()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonAboutQt">
+ <property name="text">
+ <string>aboutQt()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_buttonGetItem">
+ <property name="text">
+ <string>getItem()</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>103</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
</widget>
</item>
- <item>
- <spacer name="verticalSpacer_3">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>104</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
</widget>
@@ -1155,7 +1180,7 @@ As a reward you can try out the QDial, below.</string>
<addaction name="m_actionLayoutChaos"/>
<addaction name="m_actionLayoutDialogs"/>
</widget>
- <widget class="QMenu" name="menuNavigation_mode">
+ <widget class="QMenu" name="m_menuNavigation_mode">
<property name="title">
<string>Navigation mode</string>
</property>
@@ -1166,7 +1191,7 @@ As a reward you can try out the QDial, below.</string>
<addaction name="m_actionModeCursorForceVisible"/>
</widget>
<addaction name="menuUi_layout"/>
- <addaction name="menuNavigation_mode"/>
+ <addaction name="m_menuNavigation_mode"/>
</widget>
<action name="m_actionLayoutVerticalSimple">
<property name="text">
diff --git a/tests/manual/keypadnavigation/main.cpp b/tests/manual/keypadnavigation/main.cpp
index d1cc8a7..84b3d78 100644
--- a/tests/manual/keypadnavigation/main.cpp
+++ b/tests/manual/keypadnavigation/main.cpp
@@ -70,6 +70,7 @@ public:
}
connect(&m_layoutSignalMapper, SIGNAL(mapped(QWidget*)), ui->m_stackWidget, SLOT(setCurrentWidget(QWidget*)));
+#ifdef QT_KEYPAD_NAVIGATION
const struct {
QObject *action;
Qt::NavigationMode mode;
@@ -85,6 +86,9 @@ public:
m_modeSignalMapper.setMapping(modeMappings[i].action, int(modeMappings[i].mode));
}
connect(&m_modeSignalMapper, SIGNAL(mapped(int)), SLOT(setNavigationMode(int)));
+#else // QT_KEYPAD_NAVIGATION
+ ui->m_menuNavigation_mode->deleteLater();
+#endif // QT_KEYPAD_NAVIGATION
const struct {
QObject *button;
@@ -112,10 +116,12 @@ public:
}
protected slots:
+#ifdef QT_KEYPAD_NAVIGATION
void setNavigationMode(int mode)
{
QApplication::setNavigationMode(Qt::NavigationMode(mode));
}
+#endif // QT_KEYPAD_NAVIGATION
void openDialog(int dialog)
{
@@ -163,7 +169,9 @@ private:
Ui_KeypadNavigation *ui;
QSignalMapper m_layoutSignalMapper;
+#ifdef QT_KEYPAD_NAVIGATION
QSignalMapper m_modeSignalMapper;
+#endif // QT_KEYPAD_NAVIGATION
QSignalMapper m_dialogSignalMapper;
};