summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp')
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp132
1 files changed, 55 insertions, 77 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
index b457558879..82934982c4 100644
--- a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
@@ -1,31 +1,26 @@
/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
-** 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 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
@@ -70,17 +65,6 @@ Q_GUI_EXPORT void qt_test_resetFetchedRoot();
QT_END_NAMESPACE
#endif
-class QNonNativeFileDialog : public QFileDialog
-{
- Q_OBJECT
-public:
- QNonNativeFileDialog(QWidget *parent = 0, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())
- : QFileDialog(parent, caption, directory, filter)
- {
- setOption(QFileDialog::DontUseNativeDialog, true);
- }
-};
-
static QByteArray msgDoesNotExist(const QString &name)
{
return (QLatin1Char('"') + QDir::toNativeSeparators(name)
@@ -93,14 +77,12 @@ Q_OBJECT
public:
tst_QFileDialog2();
- virtual ~tst_QFileDialog2();
-public slots:
+private slots:
void initTestCase();
void init();
void cleanup();
-private slots:
#ifdef QT_BUILD_INTERNAL
void deleteDirAndFiles();
void listRoot();
@@ -155,15 +137,12 @@ private:
tst_QFileDialog2::tst_QFileDialog2()
: tempDir(QDir::tempPath() + "/tst_qfiledialog2.XXXXXX")
{
+ QCoreApplication::setAttribute(Qt::AA_DontUseNativeDialogs);
#if defined(Q_OS_WINCE)
qApp->setAutoMaximizeThreshold(-1);
#endif
}
-tst_QFileDialog2::~tst_QFileDialog2()
-{
-}
-
void tst_QFileDialog2::cleanupSettingsFile()
{
// clean up the sidebar between each test
@@ -187,7 +166,7 @@ void tst_QFileDialog2::init()
{
QFileDialogPrivate::setLastVisitedDirectory(QUrl());
// populate the sidebar with some default settings
- QNonNativeFileDialog fd;
+ QFileDialog fd;
#if defined(Q_OS_WINCE)
QTest::qWait(1000);
#endif
@@ -206,7 +185,7 @@ void tst_QFileDialog2::listRoot()
QTest::qWait(1500);
qt_test_resetFetchedRoot();
QString dir(QDir::currentPath());
- QNonNativeFileDialog fd(0, QString(), dir);
+ QFileDialog fd(0, QString(), dir);
fd.show();
QCOMPARE(qt_test_isFetchedRoot(),false);
fd.setDirectory("");
@@ -221,15 +200,15 @@ void tst_QFileDialog2::listRoot()
void tst_QFileDialog2::heapCorruption()
{
- QVector<QNonNativeFileDialog*> dialogs;
+ QVector<QFileDialog*> dialogs;
for (int i=0; i < 10; i++) {
- QNonNativeFileDialog *f = new QNonNativeFileDialog(NULL);
+ QFileDialog *f = new QFileDialog(NULL);
dialogs << f;
}
qDeleteAll(dialogs);
}
-struct FriendlyQFileDialog : public QNonNativeFileDialog
+struct FriendlyQFileDialog : public QFileDialog
{
friend class tst_QFileDialog2;
Q_DECLARE_PRIVATE(QFileDialog)
@@ -260,7 +239,6 @@ void tst_QFileDialog2::deleteDirAndFiles()
t->close();
delete t;
FriendlyQFileDialog fd;
- fd.setOption(QFileDialog::DontUseNativeDialog);
fd.d_func()->removeDirectory(tempPath);
QFileInfo info(tempPath);
QTest::qWait(2000);
@@ -270,7 +248,7 @@ void tst_QFileDialog2::deleteDirAndFiles()
void tst_QFileDialog2::filter()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QAction *hiddenAction = fd.findChild<QAction*>("qt_show_hidden_action");
QVERIFY(hiddenAction);
QVERIFY(hiddenAction->isEnabled());
@@ -283,7 +261,7 @@ void tst_QFileDialog2::filter()
void tst_QFileDialog2::showNameFilterDetails()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QComboBox *filters = fd.findChild<QComboBox*>("fileTypeCombo");
QVERIFY(filters);
QVERIFY(fd.isNameFilterDetailsVisible());
@@ -315,7 +293,7 @@ void tst_QFileDialog2::unc()
QString dir(QDir::currentPath());
#endif
QVERIFY2(QFile::exists(dir), msgDoesNotExist(dir).constData());
- QNonNativeFileDialog fd(0, QString(), dir);
+ QFileDialog fd(0, QString(), dir);
QFileSystemModel *model = fd.findChild<QFileSystemModel*>("qt_filesystem_model");
QVERIFY(model);
QCOMPARE(model->index(fd.directory().absolutePath()), model->index(dir));
@@ -323,7 +301,7 @@ void tst_QFileDialog2::unc()
void tst_QFileDialog2::emptyUncPath()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.show();
QLineEdit *lineEdit = fd.findChild<QLineEdit*>("fileNameEdit");
QVERIFY(lineEdit);
@@ -392,7 +370,7 @@ void tst_QFileDialog2::task143519_deleteAndRenameActionBehavior()
QVERIFY(ctx.file.permissions() & QFile::WriteUser);
ctx.file.close();
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setViewMode(QFileDialog::List);
fd.setDirectory(ctx.test.absolutePath());
fd.show();
@@ -433,7 +411,7 @@ void tst_QFileDialog2::task143519_deleteAndRenameActionBehavior()
void tst_QFileDialog2::task178897_minimumSize()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QSize oldMs = fd.layout()->minimumSize();
QStringList history = fd.history();
history << QDir::toNativeSeparators("/verylongdirectory/"
@@ -473,7 +451,7 @@ void tst_QFileDialog2::task180459_lastDirectory()
if (!QGuiApplication::platformName().compare(QLatin1String("cocoa"), Qt::CaseInsensitive))
QSKIP("Insignificant on OSX"); //QTBUG-39183
//first visit the temp directory and close the dialog
- QNonNativeFileDialog *dlg = new QNonNativeFileDialog(0, "", tempDir.path());
+ QFileDialog *dlg = new QFileDialog(0, "", tempDir.path());
QFileSystemModel *model = dlg->findChild<QFileSystemModel*>("qt_filesystem_model");
QVERIFY(model);
QCOMPARE(model->index(tempDir.path()), model->index(dlg->directory().absolutePath()));
@@ -484,7 +462,7 @@ void tst_QFileDialog2::task180459_lastDirectory()
QFETCH(bool, isEnabled);
QFETCH(QString, result);
- dlg = new QNonNativeFileDialog(0, "", path);
+ dlg = new QFileDialog(0, "", path);
model = dlg->findChild<QFileSystemModel*>("qt_filesystem_model");
QVERIFY(model);
dlg->setAcceptMode(QFileDialog::AcceptSave);
@@ -521,7 +499,7 @@ protected:
path = parentIndex.child(source_row,0).data(Qt::DisplayRole).toString();
do {
- path = parentIndex.data(Qt::DisplayRole).toString() + "/" + path;
+ path = parentIndex.data(Qt::DisplayRole).toString() + QLatin1Char('/') + path;
parentIndex = parentIndex.parent();
} while(parentIndex.isValid());
@@ -560,14 +538,14 @@ protected:
}
};
-class CrashDialog : public QNonNativeFileDialog
+class CrashDialog : public QFileDialog
{
Q_OBJECT
public:
CrashDialog(QWidget *parent, const QString &caption, const
QString &dir, const QString &filter)
- : QNonNativeFileDialog(parent, caption, dir, filter)
+ : QFileDialog(parent, caption, dir, filter)
{
sortProxy *proxyModel = new sortProxy(this);
setProxyModel(proxyModel);
@@ -577,7 +555,7 @@ QString &dir, const QString &filter)
#ifdef QT_BUILD_INTERNAL
void tst_QFileDialog2::task227304_proxyOnFileDialog()
{
- QNonNativeFileDialog fd(0, "", QDir::currentPath(), 0);
+ QFileDialog fd(0, "", QDir::currentPath(), 0);
fd.setProxyModel(new FilterDirModel(QDir::currentPath()));
fd.show();
QLineEdit *edit = fd.findChild<QLineEdit*>("fileNameEdit");
@@ -600,7 +578,7 @@ void tst_QFileDialog2::task227304_proxyOnFileDialog()
dialog->close();
fd.close();
- QNonNativeFileDialog fd2(0, "I should not crash with a proxy", tempDir.path(), 0);
+ QFileDialog fd2(0, "I should not crash with a proxy", tempDir.path(), 0);
QSortFilterProxyModel *pm = new QSortFilterProxyModel;
fd2.setProxyModel(pm);
fd2.show();
@@ -628,7 +606,7 @@ void tst_QFileDialog2::task227930_correctNavigationKeyboardBehavior()
QVERIFY(file2.open(QIODevice::WriteOnly | QIODevice::Text));
current.cdUp();
current.mkdir("test2");
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setViewMode(QFileDialog::List);
fd.setDirectory(current.absolutePath());
fd.show();
@@ -659,7 +637,7 @@ void tst_QFileDialog2::task227930_correctNavigationKeyboardBehavior()
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
void tst_QFileDialog2::task226366_lowerCaseHardDriveWindows()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setDirectory(QDir::root().path());
fd.show();
QLineEdit *edit = fd.findChild<QLineEdit*>("fileNameEdit");
@@ -685,7 +663,7 @@ void tst_QFileDialog2::task226366_lowerCaseHardDriveWindows()
void tst_QFileDialog2::completionOnLevelAfterRoot()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
fd.setDirectory("C:/");
QDir current = fd.directory();
@@ -752,7 +730,7 @@ void tst_QFileDialog2::task233037_selectingDirectory()
{
QDir current = QDir::currentPath();
current.mkdir("test");
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setViewMode(QFileDialog::List);
fd.setDirectory(current.absolutePath());
fd.setAcceptMode( QFileDialog::AcceptSave);
@@ -786,7 +764,7 @@ void tst_QFileDialog2::task235069_hideOnEscape()
QFETCH(QFileDialog::ViewMode, viewMode);
QDir current = QDir::currentPath();
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QSignalSpy spyFinished(&fd, &QDialog::finished);
QVERIFY(spyFinished.isValid());
QSignalSpy spyRejected(&fd, &QDialog::rejected);
@@ -834,7 +812,7 @@ void tst_QFileDialog2::task203703_returnProperSeparator()
{
QDir current = QDir::currentPath();
current.mkdir("aaaaaaaaaaaaaaaaaa");
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setDirectory(current.absolutePath());
fd.setViewMode(QFileDialog::List);
fd.setFileMode(QFileDialog::Directory);
@@ -871,7 +849,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
QVERIFY2(tempFile->open(), qPrintable(tempFile->errorString()));
current.cdUp();
- QNonNativeFileDialog fd;
+ QFileDialog fd;
fd.setDirectory(current.absolutePath());
fd.setViewMode(QFileDialog::Detail);
fd.show();
@@ -891,7 +869,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
#else
QTest::qWait(500);
#endif
- QNonNativeFileDialog fd2;
+ QFileDialog fd2;
fd2.setFileMode(QFileDialog::Directory);
fd2.restoreState(fd.saveState());
current.cd("aaaaaaaaaaaaaaaaaa");
@@ -916,9 +894,9 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
#else
QTest::qWait(500);
#endif
- QCOMPARE(fd2.selectedFiles().first(), current.absolutePath() + QChar('/') + QLatin1String("g"));
+ QCOMPARE(fd2.selectedFiles().first(), current.absolutePath() + QLatin1String("/g"));
- QNonNativeFileDialog fd3(0, "This is a third file dialog", tempFile->fileName());
+ QFileDialog fd3(0, "This is a third file dialog", tempFile->fileName());
fd3.restoreState(fd.saveState());
fd3.setFileMode(QFileDialog::Directory);
fd3.show();
@@ -959,7 +937,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
void tst_QFileDialog2::task239706_editableFilterCombo()
{
- QNonNativeFileDialog d;
+ QFileDialog d;
d.setNameFilter("*.cpp *.h");
d.show();
@@ -984,7 +962,7 @@ void tst_QFileDialog2::task218353_relativePaths()
{
QDir appDir = QDir::current();
QVERIFY(appDir.cdUp() != false);
- QNonNativeFileDialog d(0, "TestDialog", "..");
+ QFileDialog d(0, "TestDialog", "..");
QCOMPARE(d.directory().absolutePath(), appDir.absolutePath());
d.setDirectory(appDir.absolutePath() + QLatin1String("/non-existing-directory/../another-non-existing-dir/../"));
@@ -1000,7 +978,7 @@ void tst_QFileDialog2::task218353_relativePaths()
#ifdef QT_BUILD_INTERNAL
void tst_QFileDialog2::task251321_sideBarHiddenEntries()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QDir current = QDir::currentPath();
current.mkdir(".hidden");
@@ -1060,7 +1038,7 @@ public :
#ifdef QT_BUILD_INTERNAL
void tst_QFileDialog2::task251341_sideBarRemoveEntries()
{
- QNonNativeFileDialog fd;
+ QFileDialog fd;
QDir current = QDir::currentPath();
current.mkdir("testDir");
@@ -1129,7 +1107,7 @@ void tst_QFileDialog2::task254490_selectFileMultipleTimes()
t = new QTemporaryFile;
QVERIFY2(t->open(), qPrintable(t->errorString()));
t->open();
- QNonNativeFileDialog fd(0, "TestFileDialog");
+ QFileDialog fd(0, "TestFileDialog");
fd.setDirectory(tempPath);
fd.setViewMode(QFileDialog::List);
@@ -1162,8 +1140,8 @@ void tst_QFileDialog2::task257579_sideBarWithNonCleanUrls()
QLatin1String dirname("autotest_task257579");
dir.rmdir(dirname); //makes sure it doesn't exist any more
QVERIFY(dir.mkdir(dirname));
- QString url = QString::fromLatin1("%1/%2/..").arg(dir.absolutePath()).arg(dirname);
- QNonNativeFileDialog fd;
+ QString url = dir.absolutePath() + QLatin1Char('/') + dirname + QLatin1String("/..");
+ QFileDialog fd;
fd.setSidebarUrls(QList<QUrl>() << QUrl::fromLocalFile(url));
QSidebar *sidebar = fd.findChild<QSidebar*>("sidebar");
QCOMPARE(sidebar->urls().count(), 1);
@@ -1183,7 +1161,7 @@ void tst_QFileDialog2::task257579_sideBarWithNonCleanUrls()
void tst_QFileDialog2::task259105_filtersCornerCases()
{
- QNonNativeFileDialog fd(0, "TestFileDialog");
+ QFileDialog fd(0, "TestFileDialog");
fd.setNameFilter(QLatin1String("All Files! (*);;Text Files (*.txt)"));
fd.setOption(QFileDialog::HideNameFilterDetails, true);
fd.show();
@@ -1230,7 +1208,7 @@ void tst_QFileDialog2::QTBUG4419_lineEditSelectAll()
QString tempPath = tempDir.path();
QTemporaryFile temporaryFile(tempPath + "/tst_qfiledialog2_lineEditSelectAll.XXXXXX");
QVERIFY2(temporaryFile.open(), qPrintable(temporaryFile.errorString()));
- QNonNativeFileDialog fd(0, "TestFileDialog", temporaryFile.fileName());
+ QFileDialog fd(0, "TestFileDialog", temporaryFile.fileName());
fd.setDirectory(tempPath);
fd.setViewMode(QFileDialog::List);
@@ -1273,7 +1251,7 @@ void tst_QFileDialog2::QTBUG6558_showDirsOnly()
out << "The magic number is: " << 49 << "\n";
tempFile.close();
- QNonNativeFileDialog fd(0, "TestFileDialog");
+ QFileDialog fd(0, "TestFileDialog");
fd.setDirectory(dir.absolutePath());
fd.setViewMode(QFileDialog::List);
@@ -1322,7 +1300,7 @@ void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
filtersStr << "Images (*.png *.xpm *.jpg)" << "Text files (*.txt)" << "XML files (*.xml)";
QString chosenFilterString("Text files (*.txt)");
- QNonNativeFileDialog fd(0, "TestFileDialog");
+ QFileDialog fd(0, "TestFileDialog");
fd.setAcceptMode(QFileDialog::AcceptSave);
fd.setOption(QFileDialog::HideNameFilterDetails, true);
fd.setNameFilters(filtersStr);
@@ -1338,7 +1316,7 @@ void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
//We compare the current combobox text with the stripped version
QCOMPARE(filters->currentText(), QString("Text files"));
- QNonNativeFileDialog fd2(0, "TestFileDialog");
+ QFileDialog fd2(0, "TestFileDialog");
fd2.setAcceptMode(QFileDialog::AcceptSave);
fd2.setOption(QFileDialog::HideNameFilterDetails, false);
fd2.setNameFilters(filtersStr);
@@ -1358,7 +1336,7 @@ void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
void tst_QFileDialog2::dontShowCompleterOnRoot()
{
- QNonNativeFileDialog fd(0, "TestFileDialog");
+ QFileDialog fd(0, "TestFileDialog");
fd.setAcceptMode(QFileDialog::AcceptSave);
fd.show();