summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro2
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp90
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp4
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp5
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp62
-rw-r--r--tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp3
-rw-r--r--tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp13
7 files changed, 113 insertions, 66 deletions
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro b/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro
index 6e08e2d02b..166306757c 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro
@@ -5,5 +5,3 @@ QT += core-private gui testlib
SOURCES += tst_qfilesystemmodel.cpp
TARGET = tst_qfilesystemmodel
-
-win32:CONFIG += insignificant_test # QTBUG-24291
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
index 8724bf63c8..fe374b1e8d 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -51,6 +51,10 @@
#include <QTime>
#include <QStyle>
#include <QtGlobal>
+#include <QTemporaryDir>
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
+# include <qt_windows.h> // for SetFileAttributes
+#endif
#define WAITTIME 1000
@@ -69,13 +73,13 @@ class tst_QFileSystemModel : public QObject {
public:
tst_QFileSystemModel();
- virtual ~tst_QFileSystemModel();
public Q_SLOTS:
void init();
void cleanup();
private slots:
+ void initTestCase();
void indexPath();
void rootPath();
@@ -122,29 +126,17 @@ private slots:
void roleNames();
protected:
- bool createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount = 0, const QStringList &intial_dirs = QStringList(), const QString &baseDir = QDir::temp().absolutePath());
+ bool createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount = 0, const QStringList &intial_dirs = QStringList());
private:
QFileSystemModel *model;
QString flatDirTestPath;
+ QTemporaryDir m_tempDir;
};
tst_QFileSystemModel::tst_QFileSystemModel() : model(0)
{
qRegisterMetaType<QModelIndex>("QModelIndex");
-
- QTime midnight(0, 0, 0);
- qsrand(midnight.secsTo(QTime::currentTime()));
- // generating unique temporary directory name
- flatDirTestPath = QDir::temp().path() + '/' + QString("flatdirtest.") + QString::number(qrand());
-}
-
-tst_QFileSystemModel::~tst_QFileSystemModel()
-{
- QString tmp = flatDirTestPath;
- QDir dir(tmp);
- if (dir.exists() && !dir.rmdir(tmp))
- qWarning("failed to remove tmp dir %s", dir.dirName().toAscii().data());
}
void tst_QFileSystemModel::init()
@@ -178,6 +170,12 @@ void tst_QFileSystemModel::cleanup()
}
}
+void tst_QFileSystemModel::initTestCase()
+{
+ QVERIFY(m_tempDir.isValid());
+ flatDirTestPath = m_tempDir.path();
+}
+
void tst_QFileSystemModel::indexPath()
{
#if !defined(Q_OS_WIN)
@@ -367,15 +365,8 @@ void tst_QFileSystemModel::iconProvider()
delete custom;
}
-bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount, const QStringList &initial_dirs, const QString &dir)
+bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringList &initial_files, int existingFileCount, const QStringList &initial_dirs)
{
- QDir baseDir(dir);
- if (!baseDir.exists(test_path)) {
- if (!baseDir.mkdir(test_path) && false) {
- qDebug() << "failed to create dir" << test_path;
- return false;
- }
- }
//qDebug() << (model->rowCount(model->index(test_path))) << existingFileCount << initial_files;
TRY_WAIT((model->rowCount(model->index(test_path)) == existingFileCount));
for (int i = 0; i < initial_dirs.count(); ++i) {
@@ -406,8 +397,21 @@ bool tst_QFileSystemModel::createFiles(const QString &test_path, const QStringLi
}
file.close();
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
- if (initial_files.at(i)[0] == '.')
- QProcess::execute(QString("attrib +h %1").arg(file.fileName()));
+ if (initial_files.at(i)[0] == '.') {
+ QString hiddenFile = QDir::toNativeSeparators(file.fileName());
+ wchar_t nativeHiddenFile[MAX_PATH];
+ qMemSet(nativeHiddenFile, 0, sizeof(nativeHiddenFile));
+ hiddenFile.toWCharArray(nativeHiddenFile);
+ DWORD currentAttributes = ::GetFileAttributes(nativeHiddenFile);
+ if (currentAttributes == 0xFFFFFFFF) {
+ qErrnoWarning("failed to get file attributes: %s", qPrintable(hiddenFile));
+ return false;
+ }
+ if (!::SetFileAttributes(nativeHiddenFile, currentAttributes | FILE_ATTRIBUTE_HIDDEN)) {
+ qErrnoWarning("failed to set file hidden: %s", qPrintable(hiddenFile));
+ return false;
+ }
+ }
#endif
//qDebug() << test_path + '/' + initial_files.at(i) << (QFile::exists(test_path + '/' + initial_files.at(i)));
}
@@ -818,16 +822,8 @@ void tst_QFileSystemModel::sort()
myModel->d_func()->disableRecursiveSort = true;
#endif
- QDir dir(QDir::tempPath());
- //initialize the randomness
- qsrand(QDateTime::currentDateTime().toTime_t());
- QString tempName = QLatin1String("sortTemp.") + QString::number(qrand());
- dir.mkdir(tempName);
- dir.cd(tempName);
- QTRY_VERIFY(dir.exists());
-
+ QDir dir(flatDirTestPath);
const QString dirPath = dir.absolutePath();
- QVERIFY(dir.exists());
//Create a file that will be at the end when sorting by name (For Mac, the default)
//but if we sort by size descending it will be the first
@@ -889,14 +885,6 @@ void tst_QFileSystemModel::sort()
delete tree;
delete myModel;
-
- dir.setPath(QDir::tempPath());
- dir.cd(tempName);
- tempFile.remove();
- tempFile2.remove();
- dir.cdUp();
- dir.rmdir(tempName);
-
}
void tst_QFileSystemModel::mkdir()
@@ -978,29 +966,17 @@ void tst_QFileSystemModel::drives()
void tst_QFileSystemModel::dirsBeforeFiles()
{
- const QString dirPath = QString("%1/task221717_sortedOrder_test_dir").arg(QDir::tempPath());
- QDir dir(dirPath);
- // clean up from last time
- if (dir.exists()) {
- for (int i = 0; i < 3; ++i) {
- QLatin1Char c('a' + i);
- dir.rmdir(QString("%1-dir").arg(c));
- QFile::remove(dirPath + QString("/%1-file").arg(c));
- }
- dir.rmdir(dirPath);
- }
- QVERIFY(dir.mkpath(dirPath));
- QVERIFY(QDir(dirPath).exists());
+ QDir dir(flatDirTestPath);
for (int i = 0; i < 3; ++i) {
QLatin1Char c('a' + i);
dir.mkdir(QString("%1-dir").arg(c));
- QFile file(dirPath + QString("/%1-file").arg(c));
+ QFile file(flatDirTestPath + QString("/%1-file").arg(c));
file.open(QIODevice::ReadWrite);
file.close();
}
- QModelIndex root = model->setRootPath(dirPath);
+ QModelIndex root = model->setRootPath(flatDirTestPath);
QTest::qWait(1000); // allow model to be notified by the file system watcher
// ensure that no file occurs before a directory
diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
index 872c13216f..9d9b55cafd 100644
--- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
+++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
@@ -562,8 +562,8 @@ void tst_QWizard::setDefaultProperty()
// make sure the data structure is reasonable
for (int i = 0; i < 200000; ++i) {
- wizard.setDefaultProperty("QLineEdit", "x" + QByteArray::number(i), 0);
- wizard.setDefaultProperty("QLabel", "y" + QByteArray::number(i), 0);
+ wizard.setDefaultProperty("QLineEdit", QByteArray("x" + QByteArray::number(i)).constData(), 0);
+ wizard.setDefaultProperty("QLabel", QByteArray("y" + QByteArray::number(i)).constData(), 0);
}
}
diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index ca5b992012..843b584ce5 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -3379,10 +3379,11 @@ void tst_QGraphicsProxyWidget::updateAndDelete()
// Update and hide.
proxy->update();
proxy->hide();
- QTRY_COMPARE(view.npaints, 1);
#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "QTBUG-23700", Continue);
+ QEXPECT_FAIL("", "QTBUG-23700", Abort);
#endif
+
+ QTRY_COMPARE(view.npaints, 1);
QCOMPARE(view.paintEventRegion, expectedRegion);
proxy->show();
diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
index 84dea04c45..af76b1c3c1 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
@@ -69,6 +69,7 @@
#include <QtWidgets/QStyle>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QDesktopWidget>
+#include <private/qgraphicsscene_p.h>
#include <private/qgraphicsview_p.h>
#include "../../../platformquirks.h"
#include "../../../shared/platforminputcontext.h"
@@ -136,6 +137,14 @@ protected:
QEvent::Type spied;
};
+#if defined QT_BUILD_INTERNAL
+class FriendlyGraphicsScene : public QGraphicsScene
+{
+ friend class tst_QGraphicsView;
+ Q_DECLARE_PRIVATE(QGraphicsScene);
+};
+#endif
+
class tst_QGraphicsView : public QObject
{
Q_OBJECT
@@ -167,6 +176,10 @@ private slots:
void ensureVisibleRect();
void fitInView();
void itemsAtPoint();
+#if defined QT_BUILD_INTERNAL
+ void itemsAtPosition_data();
+ void itemsAtPosition();
+#endif
void itemsInRect();
void itemsInRect_cosmeticAdjust_data();
void itemsInRect_cosmeticAdjust();
@@ -1354,6 +1367,55 @@ void tst_QGraphicsView::itemsAtPoint()
QCOMPARE(items.takeFirst()->zValue(), qreal(-1));
}
+#if defined QT_BUILD_INTERNAL
+void tst_QGraphicsView::itemsAtPosition_data()
+{
+ QTest::addColumn<float>("rotation");
+ QTest::addColumn<float>("scale");
+ QTest::addColumn<QPoint>("viewPos");
+ QTest::addColumn<bool>("ignoreTransform");
+ QTest::addColumn<bool>("hit");
+ QTest::newRow("scaled + ignore transform, no hit") << 0.0f << 1000.0f << QPoint(0, 0) << true << false;
+ QTest::newRow("scaled + ignore transform, hit") << 0.0f << 1000.0f << QPoint(100, 100) << true << true;
+ QTest::newRow("rotated + scaled, no hit") << 45.0f << 2.0f << QPoint(90, 90) << false << false;
+ QTest::newRow("rotated + scaled, hit") << 45.0f << 2.0f << QPoint(100, 100) << false << true;
+}
+
+void tst_QGraphicsView::itemsAtPosition()
+{
+ QFETCH(float, rotation);
+ QFETCH(float, scale);
+ QFETCH(QPoint, viewPos);
+ QFETCH(bool, ignoreTransform);
+ QFETCH(bool, hit);
+
+ FriendlyGraphicsScene scene;
+ scene.setSceneRect(QRect(-100, -100, 200, 200));
+ QGraphicsItem *item = scene.addRect(-5, -5, 10, 10);
+
+ if (ignoreTransform)
+ item->setFlag(QGraphicsItem::ItemIgnoresTransformations);
+
+ QGraphicsView view;
+ view.setFrameStyle(QFrame::NoFrame);
+ view.resize(200, 200);
+ view.scale(scale, scale);
+ view.rotate(rotation);
+ view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view.setScene(&scene);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QPoint screenPos = view.viewport()->mapToGlobal(viewPos);
+ QPointF scenePos = view.mapToScene(viewPos);
+ QGraphicsScenePrivate *viewPrivate = scene.d_func();
+ QList<QGraphicsItem *> items;
+ items = viewPrivate->itemsAtPosition(screenPos, scenePos, view.viewport());
+ QCOMPARE(!items.empty(), hit);
+}
+#endif
+
void tst_QGraphicsView::itemsInRect()
{
QGraphicsScene scene;
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
index 98872cb2f6..9bbb6aa7f6 100644
--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
+++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
@@ -605,9 +605,6 @@ public slots:
void tst_QApplication::quitOnLastWindowClosed()
{
-#ifdef Q_OS_WIN32
- QSKIP("This test crashes on Windows. Remove skip once the issue causing the crash is fixed (QTBUG-24300).");
-#endif
#ifndef Q_OS_MAC
// Test hangs on Mac OS X, see QTBUG-24319
{
diff --git a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
index 6021f90ed4..cff847474c 100644
--- a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
+++ b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
@@ -93,6 +93,7 @@ private slots:
void setValue_data();
void setValue();
void setRepeatAction();
+ void connectedSliders();
private:
void waitUntilTimeElapsed(const QTime& t, int ms);
@@ -1259,5 +1260,17 @@ void tst_QAbstractSlider::setRepeatAction()
QCOMPARE(slider->value(), 115);
}
+void tst_QAbstractSlider::connectedSliders()
+{
+ Slider *slider2 = new Slider(topLevel);
+ connect(slider, SIGNAL(rangeChanged(int, int)), slider2, SLOT(setRange(int, int)));
+ const int sliderlow = 13;
+ const int sliderhigh = 1017;
+ slider->setRange(sliderlow, sliderhigh);
+ QCOMPARE(slider2->minimum(), sliderlow);
+ QCOMPARE(slider2->maximum(), sliderhigh);
+ delete slider2;
+}
+
QTEST_MAIN(tst_QAbstractSlider)
#include "tst_qabstractslider.moc"