summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/image/image.pro3
-rw-r--r--tests/auto/gui/image/qimagereader/tst_qimagereader.cpp21
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp21
-rw-r--r--tests/auto/gui/image/qpixmap/tst_qpixmap.cpp23
-rw-r--r--tests/auto/gui/kernel/kernel.pro1
-rw-r--r--tests/auto/gui/kernel/qsurfaceformat/qsurfaceformat.pro8
-rw-r--r--tests/auto/gui/kernel/qsurfaceformat/tst_qsurfaceformat.cpp102
-rw-r--r--tests/auto/gui/kernel/qwindow/tst_qwindow.cpp40
-rw-r--r--tests/auto/gui/painting/qpainter/qpainter.pro1
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp3
-rw-r--r--tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp2
-rw-r--r--tests/auto/gui/qopengl/tst_qopengl.cpp112
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp2
-rw-r--r--tests/auto/gui/util/qregularexpressionvalidator/.gitignore1
-rw-r--r--tests/auto/gui/util/qregularexpressionvalidator/qregularexpressionvalidator.pro4
-rw-r--r--tests/auto/gui/util/qregularexpressionvalidator/tst_qregularexpressionvalidator.cpp120
-rw-r--r--tests/auto/gui/util/util.pro1
17 files changed, 428 insertions, 37 deletions
diff --git a/tests/auto/gui/image/image.pro b/tests/auto/gui/image/image.pro
index 1ef52df4ba..9199763c40 100644
--- a/tests/auto/gui/image/image.pro
+++ b/tests/auto/gui/image/image.pro
@@ -11,6 +11,9 @@ SUBDIRS=\
qpicture \
qicon \
+!qtHaveModule(network): SUBDIRS -= \
+ qimagereader
+
!contains(QT_CONFIG, private_tests): SUBDIRS -= \
qpixmapcache \
diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
index 4b3db26685..b684231e10 100644
--- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
@@ -94,6 +94,7 @@ private slots:
void multiWordNamedColorXPM();
void supportedFormats();
+ void supportedMimeTypes();
void readFromDevice_data();
void readFromDevice();
@@ -571,6 +572,26 @@ void tst_QImageReader::supportedFormats()
QCOMPARE(formatSet.size(), formats.size());
}
+void tst_QImageReader::supportedMimeTypes()
+{
+ QList<QByteArray> mimeTypes = QImageReader::supportedMimeTypes();
+ QList<QByteArray> sortedMimeTypes = mimeTypes;
+ qSort(sortedMimeTypes);
+
+ // check that the list is sorted
+ QCOMPARE(mimeTypes, sortedMimeTypes);
+
+ QSet<QByteArray> mimeTypeSet;
+ foreach (QByteArray mimeType, mimeTypes)
+ mimeTypeSet << mimeType;
+
+ // check the list as a minimum contains image/bmp
+ QVERIFY(mimeTypeSet.contains("image/bmp"));
+
+ // check that the list does not contain duplicates
+ QCOMPARE(mimeTypeSet.size(), mimeTypes.size());
+}
+
void tst_QImageReader::setBackgroundColor_data()
{
QTest::addColumn<QString>("fileName");
diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
index 3c36482d62..f1d0e227f6 100644
--- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
+++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp
@@ -81,6 +81,7 @@ private slots:
void writeImage2_data();
void writeImage2();
void supportedFormats();
+ void supportedMimeTypes();
void writeToInvalidDevice();
@@ -352,6 +353,26 @@ void tst_QImageWriter::supportedFormats()
QCOMPARE(formatSet.size(), formats.size());
}
+void tst_QImageWriter::supportedMimeTypes()
+{
+ QList<QByteArray> mimeTypes = QImageWriter::supportedMimeTypes();
+ QList<QByteArray> sortedMimeTypes = mimeTypes;
+ qSort(sortedMimeTypes);
+
+ // check that the list is sorted
+ QCOMPARE(mimeTypes, sortedMimeTypes);
+
+ QSet<QByteArray> mimeTypeSet;
+ foreach (QByteArray mimeType, mimeTypes)
+ mimeTypeSet << mimeType;
+
+ // check the list as a minimum contains image/bmp
+ QVERIFY(mimeTypeSet.contains("image/bmp"));
+
+ // check that the list does not contain duplicates
+ QCOMPARE(mimeTypeSet.size(), mimeTypes.size());
+}
+
void tst_QImageWriter::writeToInvalidDevice()
{
QLatin1String fileName("/these/directories/do/not/exist/001.png");
diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
index f5298a1690..b9b61425da 100644
--- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
@@ -114,6 +114,7 @@ private slots:
void convertFromImageNoDetach();
void convertFromImageDetach();
+ void convertFromImageCacheKey();
#if defined(Q_OS_WIN)
void toWinHBITMAP_data();
@@ -780,6 +781,28 @@ void tst_QPixmap::convertFromImageDetach()
QVERIFY(copy.isDetached());
}
+void tst_QPixmap::convertFromImageCacheKey()
+{
+ QPixmap randomPixmap(10, 10);
+ if (randomPixmap.handle()->classId() != QPlatformPixmap::RasterClass)
+ QSKIP("Test only valid for raster pixmaps");
+
+ //first get the screen format
+ QImage::Format screenFormat = randomPixmap.toImage().format();
+ QVERIFY(screenFormat != QImage::Format_Invalid);
+
+ QImage orig(100,100, screenFormat);
+ orig.fill(0);
+
+ QPixmap pix = QPixmap::fromImage(orig);
+ QImage copy = pix.toImage();
+
+ QVERIFY(copy.format() == screenFormat);
+
+ QCOMPARE(orig.cacheKey(), pix.cacheKey());
+ QCOMPARE(copy.cacheKey(), pix.cacheKey());
+}
+
#if defined(Q_OS_WIN)
QT_BEGIN_NAMESPACE
diff --git a/tests/auto/gui/kernel/kernel.pro b/tests/auto/gui/kernel/kernel.pro
index 7e3f25d377..85a81de632 100644
--- a/tests/auto/gui/kernel/kernel.pro
+++ b/tests/auto/gui/kernel/kernel.pro
@@ -15,6 +15,7 @@ SUBDIRS=\
qmouseevent_modal \
qpalette \
qscreen \
+ qsurfaceformat \
qtouchevent \
qwindow \
qguiapplication \
diff --git a/tests/auto/gui/kernel/qsurfaceformat/qsurfaceformat.pro b/tests/auto/gui/kernel/qsurfaceformat/qsurfaceformat.pro
new file mode 100644
index 0000000000..dabffde77b
--- /dev/null
+++ b/tests/auto/gui/kernel/qsurfaceformat/qsurfaceformat.pro
@@ -0,0 +1,8 @@
+CONFIG += testcase
+CONFIG += parallel_test
+TARGET = tst_qsurfaceformat
+
+QT += core-private gui-private testlib
+
+SOURCES += tst_qsurfaceformat.cpp
+DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/gui/kernel/qsurfaceformat/tst_qsurfaceformat.cpp b/tests/auto/gui/kernel/qsurfaceformat/tst_qsurfaceformat.cpp
new file mode 100644
index 0000000000..bd4fc88b3c
--- /dev/null
+++ b/tests/auto/gui/kernel/qsurfaceformat/tst_qsurfaceformat.cpp
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt 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.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qsurfaceformat.h>
+
+#include <QtTest/QtTest>
+
+class tst_QSurfaceFormat: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void versionCheck_data();
+ void versionCheck();
+};
+
+void tst_QSurfaceFormat::versionCheck_data()
+{
+ QTest::addColumn<int>("formatMajor");
+ QTest::addColumn<int>("formatMinor");
+ QTest::addColumn<int>("compareMajor");
+ QTest::addColumn<int>("compareMinor");
+ QTest::addColumn<bool>("expected");
+
+ QTest::newRow("lower major, lower minor")
+ << 3 << 2 << 2 << 1 << true;
+ QTest::newRow("lower major, same minor")
+ << 3 << 2 << 2 << 2 << true;
+ QTest::newRow("lower major, greater minor")
+ << 3 << 2 << 2 << 3 << true;
+ QTest::newRow("same major, lower minor")
+ << 3 << 2 << 3 << 1 << true;
+ QTest::newRow("same major, same minor")
+ << 3 << 2 << 3 << 2 << true;
+ QTest::newRow("same major, greater minor")
+ << 3 << 2 << 3 << 3 << false;
+ QTest::newRow("greater major, lower minor")
+ << 3 << 2 << 4 << 1 << false;
+ QTest::newRow("greater major, same minor")
+ << 3 << 2 << 4 << 2 << false;
+ QTest::newRow("greater major, greater minor")
+ << 3 << 2 << 4 << 3 << false;
+}
+
+void tst_QSurfaceFormat::versionCheck()
+{
+ QFETCH( int, formatMajor );
+ QFETCH( int, formatMinor );
+ QFETCH( int, compareMajor );
+ QFETCH( int, compareMinor );
+ QFETCH( bool, expected );
+
+ QSurfaceFormat format;
+ format.setMinorVersion(formatMinor);
+ format.setMajorVersion(formatMajor);
+
+ QCOMPARE(format.version() >= qMakePair(compareMajor, compareMinor), expected);
+
+ format.setVersion(formatMajor, formatMinor);
+ QCOMPARE(format.version() >= qMakePair(compareMajor, compareMinor), expected);
+}
+
+#include <tst_qsurfaceformat.moc>
+QTEST_MAIN(tst_QSurfaceFormat);
diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
index 30666aaf2a..02f8584f72 100644
--- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
+++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
@@ -49,6 +49,7 @@
// For QSignalSpy slot connections.
Q_DECLARE_METATYPE(Qt::ScreenOrientation)
+Q_DECLARE_METATYPE(QWindow::Visibility)
class tst_QWindow: public QObject
{
@@ -75,6 +76,7 @@ private slots:
void inputReentrancy();
void tabletEvents();
void windowModality_QTBUG27039();
+ void visibility();
void initTestCase()
{
@@ -1079,6 +1081,44 @@ void tst_QWindow::windowModality_QTBUG27039()
QCOMPARE(modalA.mousePressedCount, 1);
}
+void tst_QWindow::visibility()
+{
+ qRegisterMetaType<Qt::WindowModality>("QWindow::Visibility");
+
+ QWindow window;
+ QSignalSpy spy(&window, SIGNAL(visibilityChanged(QWindow::Visibility)));
+
+ window.setVisibility(QWindow::AutomaticVisibility);
+ QVERIFY(window.isVisible());
+ QVERIFY(window.visibility() != QWindow::Hidden);
+ QVERIFY(window.visibility() != QWindow::AutomaticVisibility);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+
+ window.setVisibility(QWindow::Hidden);
+ QVERIFY(!window.isVisible());
+ QCOMPARE(window.visibility(), QWindow::Hidden);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+
+ window.setVisibility(QWindow::FullScreen);
+ QVERIFY(window.isVisible());
+ QCOMPARE(window.windowState(), Qt::WindowFullScreen);
+ QCOMPARE(window.visibility(), QWindow::FullScreen);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+
+ window.setWindowState(Qt::WindowNoState);
+ QCOMPARE(window.visibility(), QWindow::Windowed);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+
+ window.setVisible(false);
+ QCOMPARE(window.visibility(), QWindow::Hidden);
+ QCOMPARE(spy.count(), 1);
+ spy.clear();
+}
+
#include <tst_qwindow.moc>
QTEST_MAIN(tst_QWindow)
diff --git a/tests/auto/gui/painting/qpainter/qpainter.pro b/tests/auto/gui/painting/qpainter/qpainter.pro
index a30564cc50..752f9be1f4 100644
--- a/tests/auto/gui/painting/qpainter/qpainter.pro
+++ b/tests/auto/gui/painting/qpainter/qpainter.pro
@@ -4,7 +4,6 @@ TARGET = tst_qpainter
QT += testlib
qtHaveModule(widgets): QT += widgets widgets-private
-qtHaveModule(widgets):!wince*: QT += printsupport
SOURCES += tst_qpainter.cpp
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index cf520c06a9..2e5f43807a 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -53,9 +53,6 @@
#include <qthread.h>
#include <limits.h>
#if !defined(Q_OS_WINCE)
-#ifndef QT_NO_WIDGETS
-#include <qprinter.h>
-#endif
#include <math.h>
#endif
#include <qpaintengine.h>
diff --git a/tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp b/tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp
index cd4f808c4e..4c73676329 100644
--- a/tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp
+++ b/tests/auto/gui/painting/qwmatrix/tst_qwmatrix.cpp
@@ -154,7 +154,7 @@ void tst_QWMatrix::mapping_data()
<< QRect( 0, 0, 30, 40 )
<< QPolygon( QRect( -300, -400, 300, 400 ) );
-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
+#if (defined(Q_OS_WIN) || defined(Q_OS_WINCE)) && !defined(M_PI)
#define M_PI 3.14159265897932384626433832795f
#endif
diff --git a/tests/auto/gui/qopengl/tst_qopengl.cpp b/tests/auto/gui/qopengl/tst_qopengl.cpp
index 1d498773ae..97f3ec128d 100644
--- a/tests/auto/gui/qopengl/tst_qopengl.cpp
+++ b/tests/auto/gui/qopengl/tst_qopengl.cpp
@@ -47,6 +47,7 @@
#include <QtGui/QPainter>
#include <QtGui/QScreen>
#include <QtGui/QWindow>
+#include <QtGui/QOffscreenSurface>
#include <QtTest/QtTest>
@@ -57,12 +58,18 @@ class tst_QOpenGL : public QObject
Q_OBJECT
private slots:
+ void sharedResourceCleanup_data();
void sharedResourceCleanup();
+ void multiGroupSharedResourceCleanup_data();
void multiGroupSharedResourceCleanup();
+ void multiGroupSharedResourceCleanupCustom_data();
void multiGroupSharedResourceCleanupCustom();
+ void fboSimpleRendering_data();
void fboSimpleRendering();
+ void fboRendering_data();
void fboRendering();
void fboHandleNulledAfterContextDestroyed();
+ void openGLPaintDevice_data();
void openGLPaintDevice();
void aboutToBeDestroyed();
void QTBUG15621_triangulatingStrokerDivZero();
@@ -129,16 +136,43 @@ struct SharedResource : public QOpenGLSharedResource
SharedResourceTracker *tracker;
};
+static QSurface *createSurface(int surfaceClass)
+{
+ if (surfaceClass == int(QSurface::Window)) {
+ QWindow *window = new QWindow;
+ window->setSurfaceType(QWindow::OpenGLSurface);
+ window->setGeometry(0, 0, 10, 10);
+ window->create();
+ return window;
+ } else if (surfaceClass == int(QSurface::Offscreen)) {
+ QOffscreenSurface *offscreenSurface = new QOffscreenSurface;
+ offscreenSurface->create();
+ return offscreenSurface;
+ }
+ return 0;
+}
+
+static void common_data()
+{
+ QTest::addColumn<int>("surfaceClass");
+
+ QTest::newRow("Using QWindow") << int(QSurface::Window);
+ QTest::newRow("Using QOffscreenSurface") << int(QSurface::Offscreen);
+}
+
+void tst_QOpenGL::sharedResourceCleanup_data()
+{
+ common_data();
+}
+
void tst_QOpenGL::sharedResourceCleanup()
{
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 10, 10);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
QOpenGLContext *ctx = new QOpenGLContext;
ctx->create();
- ctx->makeCurrent(&window);
+ ctx->makeCurrent(surface.data());
SharedResourceTracker tracker;
SharedResource *resource = new SharedResource(&tracker);
@@ -165,7 +199,7 @@ void tst_QOpenGL::sharedResourceCleanup()
QCOMPARE(tracker.freeResourceCalls, 0);
QCOMPARE(tracker.destructorCalls, 0);
- ctx2->makeCurrent(&window);
+ ctx2->makeCurrent(surface.data());
// freeResource() should now have been called
QCOMPARE(tracker.invalidateResourceCalls, 0);
@@ -192,17 +226,20 @@ void tst_QOpenGL::sharedResourceCleanup()
QCOMPARE(tracker.destructorCalls, 1);
}
+void tst_QOpenGL::multiGroupSharedResourceCleanup_data()
+{
+ common_data();
+}
+
void tst_QOpenGL::multiGroupSharedResourceCleanup()
{
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 10, 10);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
for (int i = 0; i < 10; ++i) {
QOpenGLContext *gl = new QOpenGLContext();
gl->create();
- gl->makeCurrent(&window);
+ gl->makeCurrent(surface.data());
{
// Cause QOpenGLMultiGroupSharedResource instantiation.
QOpenGLFunctions func(gl);
@@ -214,16 +251,19 @@ void tst_QOpenGL::multiGroupSharedResourceCleanup()
// Shouldn't crash when application exits.
}
+void tst_QOpenGL::multiGroupSharedResourceCleanupCustom_data()
+{
+ common_data();
+}
+
void tst_QOpenGL::multiGroupSharedResourceCleanupCustom()
{
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 10, 10);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
QOpenGLContext *ctx = new QOpenGLContext();
ctx->create();
- ctx->makeCurrent(&window);
+ ctx->makeCurrent(surface.data());
QOpenGLMultiGroupSharedResource multiGroupSharedResource;
SharedResource *resource = multiGroupSharedResource.value<SharedResource>(ctx);
@@ -350,17 +390,20 @@ void qt_opengl_check_test_pattern(const QImage& img)
QFUZZY_COMPARE_PIXELS(img.pixel(192, 64), QColor(Qt::green).rgb());
}
+void tst_QOpenGL::fboSimpleRendering_data()
+{
+ common_data();
+}
void tst_QOpenGL::fboSimpleRendering()
{
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 10, 10);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
+
QOpenGLContext ctx;
ctx.create();
- ctx.makeCurrent(&window);
+ ctx.makeCurrent(surface.data());
if (!QOpenGLFramebufferObject::hasOpenGLFramebufferObjects())
QSKIP("QOpenGLFramebufferObject not supported on this platform");
@@ -386,6 +429,11 @@ void tst_QOpenGL::fboSimpleRendering()
delete fbo;
}
+void tst_QOpenGL::fboRendering_data()
+{
+ common_data();
+}
+
// NOTE: This tests that CombinedDepthStencil attachment works by assuming the
// GL2 engine is being used and is implemented the same way as it was when
// this autotest was written. If this is not the case, there may be some
@@ -397,14 +445,13 @@ void tst_QOpenGL::fboRendering()
QSKIP("QTBUG-22617");
#endif
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 10, 10);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
+
QOpenGLContext ctx;
ctx.create();
- ctx.makeCurrent(&window);
+ ctx.makeCurrent(surface.data());
if (!QOpenGLFramebufferObject::hasOpenGLFramebufferObjects())
QSKIP("QOpenGLFramebufferObject not supported on this platform");
@@ -461,16 +508,19 @@ void tst_QOpenGL::fboHandleNulledAfterContextDestroyed()
QCOMPARE(fbo->handle(), 0U);
}
+void tst_QOpenGL::openGLPaintDevice_data()
+{
+ common_data();
+}
+
void tst_QOpenGL::openGLPaintDevice()
{
#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(__x86_64__)
QSKIP("QTBUG-22617");
#endif
- QWindow window;
- window.setSurfaceType(QWindow::OpenGLSurface);
- window.setGeometry(0, 0, 128, 128);
- window.create();
+ QFETCH(int, surfaceClass);
+ QScopedPointer<QSurface> surface(createSurface(surfaceClass));
QOpenGLContext ctx;
ctx.create();
@@ -478,7 +528,7 @@ void tst_QOpenGL::openGLPaintDevice()
QSurfaceFormat format = ctx.format();
if (format.majorVersion() < 2)
QSKIP("This test requires at least OpenGL 2.0");
- ctx.makeCurrent(&window);
+ ctx.makeCurrent(surface.data());
QImage image(128, 128, QImage::Format_RGB32);
QPainter p(&image);
diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
index 15e8c2ee90..cddec5b6e7 100644
--- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
@@ -281,7 +281,7 @@ void tst_QFontMetrics::inFontUcs4()
}
{
- QFontEngine *engine = QFontPrivate::get(font)->engineForScript(QUnicodeTables::Common);
+ QFontEngine *engine = QFontPrivate::get(font)->engineForScript(QChar::Script_Common);
QGlyphLayout glyphs;
glyphs.numGlyphs = 3;
uint buf[3];
diff --git a/tests/auto/gui/util/qregularexpressionvalidator/.gitignore b/tests/auto/gui/util/qregularexpressionvalidator/.gitignore
new file mode 100644
index 0000000000..a4022144d5
--- /dev/null
+++ b/tests/auto/gui/util/qregularexpressionvalidator/.gitignore
@@ -0,0 +1 @@
+tst_qregularexpressionvalidator
diff --git a/tests/auto/gui/util/qregularexpressionvalidator/qregularexpressionvalidator.pro b/tests/auto/gui/util/qregularexpressionvalidator/qregularexpressionvalidator.pro
new file mode 100644
index 0000000000..1e8e50563e
--- /dev/null
+++ b/tests/auto/gui/util/qregularexpressionvalidator/qregularexpressionvalidator.pro
@@ -0,0 +1,4 @@
+CONFIG += testcase parallel_test
+TARGET = tst_qregularexpressionvalidator
+SOURCES += tst_qregularexpressionvalidator.cpp
+QT += testlib
diff --git a/tests/auto/gui/util/qregularexpressionvalidator/tst_qregularexpressionvalidator.cpp b/tests/auto/gui/util/qregularexpressionvalidator/tst_qregularexpressionvalidator.cpp
new file mode 100644
index 0000000000..61d26104bd
--- /dev/null
+++ b/tests/auto/gui/util/qregularexpressionvalidator/tst_qregularexpressionvalidator.cpp
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 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, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt 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.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QRegularExpressionValidator>
+#include <QtTest/QtTest>
+
+class tst_QRegularExpressionValidator : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void validate_data();
+ void validate();
+};
+
+Q_DECLARE_METATYPE(QValidator::State)
+
+void tst_QRegularExpressionValidator::validate_data()
+{
+ QTest::addColumn<QRegularExpression>("re");
+ QTest::addColumn<QString>("value");
+ QTest::addColumn<QValidator::State>("state");
+
+ QTest::newRow("data0") << QRegularExpression("[1-9]\\d{0,3}") << QString("0") << QValidator::Invalid;
+ QTest::newRow("data1") << QRegularExpression("[1-9]\\d{0,3}") << QString("12345") << QValidator::Invalid;
+ QTest::newRow("data2") << QRegularExpression("[1-9]\\d{0,3}") << QString("1") << QValidator::Acceptable;
+
+ QTest::newRow("data3") << QRegularExpression("\\S+") << QString("myfile.txt") << QValidator::Acceptable;
+ QTest::newRow("data4") << QRegularExpression("\\S+") << QString("my file.txt") << QValidator::Invalid;
+
+ QTest::newRow("data5") << QRegularExpression("[A-C]\\d{5}[W-Z]") << QString("a12345Z") << QValidator::Invalid;
+ QTest::newRow("data6") << QRegularExpression("[A-C]\\d{5}[W-Z]") << QString("A12345Z") << QValidator::Acceptable;
+ QTest::newRow("data7") << QRegularExpression("[A-C]\\d{5}[W-Z]") << QString("B12") << QValidator::Intermediate;
+
+ QTest::newRow("data8") << QRegularExpression("read\\S?me(\\.(txt|asc|1st))?") << QString("readme") << QValidator::Acceptable;
+ QTest::newRow("data9") << QRegularExpression("read\\S?me(\\.(txt|asc|1st))?") << QString("read me.txt") << QValidator::Invalid;
+ QTest::newRow("data10") << QRegularExpression("read\\S?me(\\.(txt|asc|1st))?") << QString("readm") << QValidator::Intermediate;
+
+ QTest::newRow("data11") << QRegularExpression("read\\S?me(\\.(txt|asc|1st))?") << QString("read me.txt") << QValidator::Invalid;
+ QTest::newRow("data12") << QRegularExpression("read\\S?me(\\.(txt|asc|1st))?") << QString("readm") << QValidator::Intermediate;
+
+ QTest::newRow("data13") << QRegularExpression("\\w\\d\\d") << QString("A57") << QValidator::Acceptable;
+ QTest::newRow("data14") << QRegularExpression("\\w\\d\\d") << QString("E5") << QValidator::Intermediate;
+ QTest::newRow("data15") << QRegularExpression("\\w\\d\\d") << QString("+9") << QValidator::Invalid;
+
+ QTest::newRow("empty01") << QRegularExpression() << QString() << QValidator::Acceptable;
+ QTest::newRow("empty02") << QRegularExpression() << QString("test") << QValidator::Acceptable;
+}
+
+void tst_QRegularExpressionValidator::validate()
+{
+ QFETCH(QRegularExpression, re);
+ QFETCH(QString, value);
+
+ QRegularExpressionValidator rv;
+
+ // setting the same regexp won't emit signals
+ const int signalCount = (rv.regularExpression() == re) ? 0 : 1;
+
+ QSignalSpy spy(&rv, SIGNAL(regularExpressionChanged(QRegularExpression)));
+ QSignalSpy changedSpy(&rv, SIGNAL(changed()));
+
+ rv.setRegularExpression(re);
+ QCOMPARE(rv.regularExpression(), re);
+
+ int pos = -1;
+ QValidator::State result = rv.validate(value, pos);
+
+ QTEST(result, "state");
+ if (result == QValidator::Invalid)
+ QCOMPARE(pos, value.length());
+ else
+ QCOMPARE(pos, -1); // ensure pos is not modified if validate returned Acceptable or Intermediate
+
+ QCOMPARE(spy.count(), signalCount);
+ QCOMPARE(changedSpy.count(), signalCount);
+}
+
+QTEST_GUILESS_MAIN(tst_QRegularExpressionValidator)
+
+#include "tst_qregularexpressionvalidator.moc"
diff --git a/tests/auto/gui/util/util.pro b/tests/auto/gui/util/util.pro
index a0963980c9..f2c4515dc2 100644
--- a/tests/auto/gui/util/util.pro
+++ b/tests/auto/gui/util/util.pro
@@ -4,4 +4,5 @@ SUBDIRS= \
qdoublevalidator \
qintvalidator \
qregexpvalidator \
+ qregularexpressionvalidator \