summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-03-20 08:44:28 +0100
committerLiang Qi <liang.qi@qt.io>2017-03-20 09:00:44 +0100
commitae2695535a2f1abbd4c6596a22dd33319b9388dd (patch)
tree91df41df365a13ea71b1361d909535e5b7a7360a /tests/auto/widgets
parent8066ae49433ed7604e710eef7b15d15de171608e (diff)
parentc1a2f97a3b3a8c058b1760b57e5c83bf7815b84a (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/corelib/io/qfilesystemengine_win.cpp src/gui/text/qdistancefield.cpp src/plugins/platforms/xcb/qxcbconnection.h Change-Id: I1be4a6f440ccb7599991159e3cb9de60990e4b1e
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp16
-rw-r--r--tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp4
-rw-r--r--tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp2
-rw-r--r--tests/auto/widgets/util/qundostack/tst_qundostack.cpp2
-rw-r--r--tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp19
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp10
-rw-r--r--tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp62
-rw-r--r--tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp7
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp2
-rw-r--r--tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp2
10 files changed, 108 insertions, 18 deletions
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
index d6f3728663..49095b9625 100644
--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
+++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
@@ -35,7 +35,9 @@
#include <QtCore/QAbstractEventDispatcher>
#include <QtCore/QFileInfo>
#include <QtCore/QDir>
-#include <QtCore/QProcess>
+#if QT_CONFIG(process)
+# include <QtCore/QProcess>
+#endif
#include <QtCore/private/qeventloop_p.h>
#include <QtGui/QFontDatabase>
@@ -119,7 +121,7 @@ private slots:
void testDeleteLater();
void testDeleteLaterProcessEvents();
-#ifndef QT_NO_LIBRARY
+#if QT_CONFIG(library)
void libraryPaths();
void libraryPaths_qt_plugin_path();
void libraryPaths_qt_plugin_path_2();
@@ -883,7 +885,7 @@ bool isPathListIncluded(const QStringList &l, const QStringList &r)
return j == r.count();
}
-#ifndef QT_NO_LIBRARY
+#if QT_CONFIG(library)
#define QT_TST_QAPP_DEBUG
void tst_QApplication::libraryPaths()
{
@@ -1432,7 +1434,7 @@ void tst_QApplication::testDeleteLaterProcessEvents()
*/
void tst_QApplication::desktopSettingsAware()
{
-#ifndef QT_NO_PROCESS
+#if QT_CONFIG(process)
QString path;
{
// We need an application object for QFINDTESTDATA to work
@@ -2121,7 +2123,7 @@ void tst_QApplication::qtbug_12673()
QVERIFY2(!path.isEmpty(), "Cannot locate modal helper application");
path += "modal";
-#ifndef QT_NO_PROCESS
+#if QT_CONFIG(process)
QProcess testProcess;
QStringList arguments;
testProcess.start(path, arguments);
@@ -2254,7 +2256,7 @@ void tst_QApplication::settableStyleHints()
executed *after* the destruction of QApplication.
*/
Q_GLOBAL_STATIC(QLocale, tst_qapp_locale);
-#ifndef QT_NO_PROCESS
+#if QT_CONFIG(process)
Q_GLOBAL_STATIC(QProcess, tst_qapp_process);
#endif
#ifndef QT_NO_FILESYSTEMWATCHER
@@ -2279,7 +2281,7 @@ void tst_QApplication::globalStaticObjectDestruction()
int argc = 1;
QApplication app(argc, &argv0);
QVERIFY(tst_qapp_locale());
-#ifndef QT_NO_PROCESS
+#if QT_CONFIG(process)
QVERIFY(tst_qapp_process());
#endif
#ifndef QT_NO_FILESYSTEMWATCHER
diff --git a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp
index 62c75cadf3..9d0c939d84 100644
--- a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp
+++ b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp
@@ -701,14 +701,14 @@ void tst_QShortcut::disabledItems()
sendKeyEvents( Qt::CTRL+Qt::Key_M, 0 );
QCOMPARE( currentResult, NoResult );
if (over_330)
- QCOMPARE( sbText, QString::null );
+ QCOMPARE( sbText, QString() );
currentResult = NoResult;
sendKeyEvents( Qt::CTRL+Qt::Key_K, 0 );
sendKeyEvents( Qt::CTRL+Qt::Key_L, 0 );
QCOMPARE( currentResult, Slot1Triggered );
if (over_330)
- QCOMPARE( sbText, QString::null );
+ QCOMPARE( sbText, QString() );
#endif
clearAllShortcuts();
cut1 = 0;
diff --git a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp b/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp
index 7641ea6b68..62c3469447 100644
--- a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp
+++ b/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp
@@ -606,7 +606,7 @@ void tst_QUndoGroup::addStackAndDie()
void tst_QUndoGroup::commandTextFormat()
{
-#ifdef QT_NO_PROCESS
+#if !QT_CONFIG(process)
QSKIP("No QProcess available");
#else
QString binDir = QLibraryInfo::location(QLibraryInfo::BinariesPath);
diff --git a/tests/auto/widgets/util/qundostack/tst_qundostack.cpp b/tests/auto/widgets/util/qundostack/tst_qundostack.cpp
index 11a29b808c..f3185086b8 100644
--- a/tests/auto/widgets/util/qundostack/tst_qundostack.cpp
+++ b/tests/auto/widgets/util/qundostack/tst_qundostack.cpp
@@ -3853,7 +3853,7 @@ void tst_QUndoStack::undoLimit()
void tst_QUndoStack::commandTextFormat()
{
-#ifdef QT_NO_PROCESS
+#if !QT_CONFIG(process)
QSKIP("No QProcess available");
#else
QString binDir = QLibraryInfo::location(QLibraryInfo::BinariesPath);
diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
index a35ea8eb6e..f127fd98f7 100644
--- a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
+++ b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
@@ -97,6 +97,8 @@ private slots:
void testDefaultButton();
void task191642_default();
+ void testDeletedStandardButton();
+
private:
qint64 timeStamp;
qint64 buttonClicked1TimeStamp;
@@ -843,5 +845,22 @@ void tst_QDialogButtonBox::task191642_default()
QCOMPARE(clicked.count(), 1);
}
+void tst_QDialogButtonBox::testDeletedStandardButton()
+{
+ QDialogButtonBox buttonBox;
+ delete buttonBox.addButton(QDialogButtonBox::Ok);
+ QPointer<QPushButton> buttonC = buttonBox.addButton(QDialogButtonBox::Cancel);
+ delete buttonBox.addButton(QDialogButtonBox::Cancel);
+ QPointer<QPushButton> buttonA = buttonBox.addButton(QDialogButtonBox::Apply);
+ delete buttonBox.addButton(QDialogButtonBox::Help);
+ // A few button have been deleted, they should automatically be removed
+ QCOMPARE(buttonBox.standardButtons(), QDialogButtonBox::Apply | QDialogButtonBox::Cancel);
+
+ buttonBox.setStandardButtons(QDialogButtonBox::Reset | QDialogButtonBox::Cancel);
+ // setStanderdButton should delete previous buttons
+ QVERIFY(!buttonA);
+ QVERIFY(!buttonC);
+}
+
QTEST_MAIN(tst_QDialogButtonBox)
#include "tst_qdialogbuttonbox.moc"
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 4c0ffdc77c..330ce3a836 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -713,8 +713,8 @@ void tst_QLineEdit::clearInputMask()
{
QLineEdit *testWidget = ensureTestWidget();
testWidget->setInputMask("000.000.000.000");
- QVERIFY(testWidget->inputMask() != QString::null);
- testWidget->setInputMask(QString::null);
+ QVERIFY(!testWidget->inputMask().isNull());
+ testWidget->setInputMask(QString());
QCOMPARE(testWidget->inputMask(), QString());
}
@@ -2277,7 +2277,7 @@ void tst_QLineEdit::textChangedAndTextEdited()
changed_count = 0;
edited_count = 0;
- changed_string = QString::null;
+ changed_string.clear();
testWidget->setText("foo");
QCOMPARE(changed_count, 1);
@@ -2286,7 +2286,7 @@ void tst_QLineEdit::textChangedAndTextEdited()
changed_count = 0;
edited_count = 0;
- changed_string = QString::null;
+ changed_string.clear();
testWidget->setText("");
QCOMPARE(changed_count, 1);
@@ -3108,7 +3108,7 @@ void tst_QLineEdit::maxLengthAndInputMask()
QVERIFY(testWidget->inputMask().isNull());
testWidget->setMaxLength(10);
QCOMPARE(testWidget->maxLength(), 10);
- testWidget->setInputMask(QString::null);
+ testWidget->setInputMask(QString());
QVERIFY(testWidget->inputMask().isNull());
QCOMPARE(testWidget->maxLength(), 10);
}
diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
index 3218b8ac68..b037cc2141 100644
--- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
+++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp
@@ -42,6 +42,7 @@
#include <qmenu.h>
#include <qstyle.h>
+#include <QStyleHints>
#include <QTimer>
#include <qdebug.h>
@@ -110,6 +111,9 @@ private slots:
void QTBUG_37933_ampersands_data();
void QTBUG_37933_ampersands();
#endif
+ void QTBUG_56917_wideMenuSize();
+ void QTBUG_56917_wideMenuScreenNumber();
+ void QTBUG_56917_wideSubmenuScreenNumber();
protected slots:
void onActivated(QAction*);
void onHighlighted(QAction*);
@@ -1311,5 +1315,63 @@ void tst_QMenu::QTBUG_37933_ampersands()
}
#endif
+void tst_QMenu::QTBUG_56917_wideMenuSize()
+{
+ // menu shouldn't to take on full screen height when menu width is larger than screen width
+ QMenu menu;
+ QString longString;
+ longString.fill(QLatin1Char('Q'), 3000);
+ menu.addAction(longString);
+ QSize menuSizeHint = menu.sizeHint();
+ menu.popup(QPoint());
+ QTest::qWait(100);
+ QVERIFY(QTest::qWaitForWindowExposed(&menu));
+ QVERIFY(menu.isVisible());
+ QVERIFY(menu.height() <= menuSizeHint.height());
+}
+
+void tst_QMenu::QTBUG_56917_wideMenuScreenNumber()
+{
+ if (QApplication::styleHints()->showIsFullScreen())
+ QSKIP("The platform defaults to windows being fullscreen.");
+ // menu must appear on the same screen where show action is triggered
+ QString longString;
+ longString.fill(QLatin1Char('Q'), 3000);
+
+ for (int i = 0; i < QApplication::desktop()->screenCount(); i++) {
+ QMenu menu;
+ menu.addAction(longString);
+ menu.popup(QApplication::desktop()->screen(i)->geometry().center());
+ QTest::qWait(100);
+ QVERIFY(QTest::qWaitForWindowExposed(&menu));
+ QVERIFY(menu.isVisible());
+ QCOMPARE(QApplication::desktop()->screenNumber(&menu), i);
+ }
+}
+
+void tst_QMenu::QTBUG_56917_wideSubmenuScreenNumber()
+{
+ if (QApplication::styleHints()->showIsFullScreen())
+ QSKIP("The platform defaults to windows being fullscreen.");
+ // submenu must appear on the same screen where its parent menu is shown
+ QString longString;
+ longString.fill(QLatin1Char('Q'), 3000);
+
+ for (int i = 0; i < QApplication::desktop()->screenCount(); i++) {
+ QMenu menu;
+ QMenu submenu("Submenu");
+ submenu.addAction(longString);
+ QAction *action = menu.addMenu(&submenu);
+ menu.popup(QApplication::desktop()->screen(i)->geometry().center());
+ QVERIFY(QTest::qWaitForWindowExposed(&menu));
+ QVERIFY(menu.isVisible());
+ QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.actionGeometry(action).center());
+ QTest::qWait(100);
+ QVERIFY(QTest::qWaitForWindowExposed(&submenu));
+ QVERIFY(submenu.isVisible());
+ QCOMPARE(QApplication::desktop()->screenNumber(&submenu), i);
+ }
+}
+
QTEST_MAIN(tst_QMenu)
#include "tst_qmenu.moc"
diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
index a1b585d0d3..778ff1d932 100644
--- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
+++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
@@ -284,6 +284,13 @@ protected:
void CountingGraphicsView::drawForeground(QPainter *, const QRectF &)
{
++m_count;
+
+ // QTBUG-59318: verify that the context's internal default fbo redirection
+ // is active also when using the QOpenGLWidget as a viewport.
+ GLint currentFbo = -1;
+ QOpenGLContext::currentContext()->functions()->glGetIntegerv(GL_FRAMEBUFFER_BINDING, &currentFbo);
+ GLuint defFbo = QOpenGLContext::currentContext()->defaultFramebufferObject();
+ QCOMPARE(GLuint(currentFbo), defFbo);
}
void tst_QOpenGLWidget::asViewport()
diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
index 31bbcf9c7f..af0ad1a601 100644
--- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
+++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
@@ -362,7 +362,7 @@ void tst_QPlainTextEdit::emptyAppend()
{
ed->appendPlainText("Blah");
QCOMPARE(blockCount(), 1);
- ed->appendPlainText(QString::null);
+ ed->appendPlainText(QString());
QCOMPARE(blockCount(), 2);
ed->appendPlainText(QString(" "));
QCOMPARE(blockCount(), 3);
diff --git a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
index cecec48113..b9ea310d80 100644
--- a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
+++ b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
@@ -676,7 +676,7 @@ void tst_QTextEdit::emptyAppend()
{
ed->append("Blah");
QCOMPARE(blockCount(), 1);
- ed->append(QString::null);
+ ed->append(QString());
QCOMPARE(blockCount(), 2);
ed->append(QString(" "));
QCOMPARE(blockCount(), 3);