summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/image/qpixmap/tst_qpixmap.cpp7
-rw-r--r--tests/auto/gui/itemmodels/qstandarditem/tst_qstandarditem.cpp44
-rw-r--r--tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp69
-rw-r--r--tests/auto/gui/kernel/qwindow/tst_qwindow.cpp53
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp8
-rw-r--r--tests/auto/gui/text/qfontmetrics/qfontmetrics.pro2
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp34
7 files changed, 181 insertions, 36 deletions
diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
index 1918841d24..6a7ce66bd7 100644
--- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
@@ -439,12 +439,7 @@ void tst_QPixmap::fill_data()
QTest::newRow(QString("syscolor_%1").arg(color).toLatin1())
<< uint(color) << true << false;
-#ifdef Q_WS_QWS
- if (QScreen::instance()->depth() >= 24) {
-#elif defined (Q_WS_X11)
- QPixmap pm(1, 1);
- if (pm.x11PictureHandle()) {
-#elif defined (Q_OS_WINCE)
+#if defined (Q_OS_WINCE)
QPixmap pixmap(1,1);
if (QApplication::desktop()->grab().depth() >= 24) {
#else
diff --git a/tests/auto/gui/itemmodels/qstandarditem/tst_qstandarditem.cpp b/tests/auto/gui/itemmodels/qstandarditem/tst_qstandarditem.cpp
index ca6d2b0585..7949e13a71 100644
--- a/tests/auto/gui/itemmodels/qstandarditem/tst_qstandarditem.cpp
+++ b/tests/auto/gui/itemmodels/qstandarditem/tst_qstandarditem.cpp
@@ -150,59 +150,59 @@ void tst_QStandardItem::getSetData()
QString text = QString("text %0").arg(i);
item.setText(text);
QCOMPARE(item.text(), text);
-
+
QPixmap pixmap(32, 32);
pixmap.fill((i == 1) ? Qt::red : Qt::green);
QIcon icon(pixmap);
item.setIcon(icon);
QCOMPARE(item.icon(), icon);
-
+
QString toolTip = QString("toolTip %0").arg(i);
item.setToolTip(toolTip);
QCOMPARE(item.toolTip(), toolTip);
-
+
QString statusTip = QString("statusTip %0").arg(i);
item.setStatusTip(statusTip);
QCOMPARE(item.statusTip(), statusTip);
-
+
QString whatsThis = QString("whatsThis %0").arg(i);
item.setWhatsThis(whatsThis);
QCOMPARE(item.whatsThis(), whatsThis);
-
+
QSize sizeHint(64*i, 48*i);
item.setSizeHint(sizeHint);
QCOMPARE(item.sizeHint(), sizeHint);
-
+
QFont font;
item.setFont(font);
QCOMPARE(item.font(), font);
-
+
Qt::Alignment textAlignment((i == 1)
? Qt::AlignLeft|Qt::AlignVCenter
: Qt::AlignRight);
item.setTextAlignment(textAlignment);
QCOMPARE(item.textAlignment(), textAlignment);
-
+
QColor backgroundColor((i == 1) ? Qt::blue : Qt::yellow);
item.setBackground(backgroundColor);
QCOMPARE(item.background().color(), backgroundColor);
-
+
QColor textColor((i == i) ? Qt::green : Qt::cyan);
item.setForeground(textColor);
QCOMPARE(item.foreground().color(), textColor);
-
+
Qt::CheckState checkState((i == 1) ? Qt::PartiallyChecked : Qt::Checked);
item.setCheckState(checkState);
QCOMPARE(item.checkState(), checkState);
-
+
QString accessibleText = QString("accessibleText %0").arg(i);
item.setAccessibleText(accessibleText);
QCOMPARE(item.accessibleText(), accessibleText);
-
+
QString accessibleDescription = QString("accessibleDescription %0").arg(i);
item.setAccessibleDescription(accessibleDescription);
QCOMPARE(item.accessibleDescription(), accessibleDescription);
-
+
QCOMPARE(item.text(), text);
QCOMPARE(item.icon(), icon);
QCOMPARE(item.toolTip(), toolTip);
@@ -216,7 +216,7 @@ void tst_QStandardItem::getSetData()
QCOMPARE(item.checkState(), checkState);
QCOMPARE(item.accessibleText(), accessibleText);
QCOMPARE(item.accessibleDescription(), accessibleDescription);
-
+
QCOMPARE(qvariant_cast<QString>(item.data(Qt::DisplayRole)), text);
QCOMPARE(qvariant_cast<QIcon>(item.data(Qt::DecorationRole)), icon);
QCOMPARE(qvariant_cast<QString>(item.data(Qt::ToolTipRole)), toolTip);
@@ -250,7 +250,7 @@ void tst_QStandardItem::getSetData()
item.setData(QVariant(), Qt::CheckStateRole);
item.setData(QVariant(), Qt::AccessibleTextRole);
item.setData(QVariant(), Qt::AccessibleDescriptionRole);
-
+
QCOMPARE(item.data(Qt::DisplayRole), QVariant());
QCOMPARE(item.data(Qt::DecorationRole), QVariant());
QCOMPARE(item.data(Qt::ToolTipRole), QVariant());
@@ -296,7 +296,7 @@ void tst_QStandardItem::getSetFlags()
QVERIFY(item.isDropEnabled());
QVERIFY(item.flags() & Qt::ItemIsDropEnabled);
#endif
-
+
QVERIFY(item.isEnabled());
item.setEnabled(false);
QVERIFY(!item.isEnabled());
@@ -332,7 +332,7 @@ void tst_QStandardItem::getSetFlags()
item.setCheckState(Qt::Checked);
item.setCheckable(true);
QCOMPARE(item.checkState(), Qt::Checked);
-}
+}
void tst_QStandardItem::getSetRowAndColumnCount()
{
@@ -427,7 +427,7 @@ void tst_QStandardItem::parent()
QCOMPARE(child->parent(), static_cast<QStandardItem*>(0));
item.setChild(0, 0, child);
QCOMPARE(child->parent(), &item);
-
+
QStandardItem *childOfChild = new QStandardItem;
child->setChild(0, 0, childOfChild);
QCOMPARE(childOfChild->parent(), child);
@@ -897,7 +897,7 @@ void tst_QStandardItem::takeRow()
void tst_QStandardItem::streamItem()
{
QStandardItem item;
-
+
item.setText(QLatin1String("text"));
item.setToolTip(QLatin1String("toolTip"));
item.setStatusTip(QLatin1String("statusTip"));
@@ -1006,7 +1006,7 @@ void tst_QStandardItem::sortChildren()
two->appendRow(new QStandardItem(QLatin1String("e")));
item->appendRow(one);
item->appendRow(two);
-
+
QSignalSpy layoutAboutToBeChangedSpy(
model, SIGNAL(layoutAboutToBeChanged()));
QSignalSpy layoutChangedSpy(
@@ -1021,7 +1021,7 @@ void tst_QStandardItem::sortChildren()
QCOMPARE(two->child(0)->text(), QLatin1String("f"));
QCOMPARE(two->child(1)->text(), QLatin1String("d"));
QCOMPARE(two->child(2)->text(), QLatin1String("e"));
-
+
two->sortChildren(0, Qt::AscendingOrder);
// verify sorted
QCOMPARE(two->child(0)->text(), QLatin1String("d"));
@@ -1031,7 +1031,7 @@ void tst_QStandardItem::sortChildren()
QCOMPARE(one->child(0)->text(), QLatin1String("c"));
QCOMPARE(one->child(1)->text(), QLatin1String("b"));
QCOMPARE(one->child(2)->text(), QLatin1String("a"));
-
+
item->sortChildren(0, Qt::AscendingOrder);
// verify everything sorted
QCOMPARE(one->child(0)->text(), QLatin1String("a"));
diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
index cc291f72fa..a7c38d6664 100644
--- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
+++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
@@ -336,12 +336,11 @@ class BlockableWindow : public QWindow
Q_OBJECT
public:
int blocked;
+ int leaves;
+ int enters;
inline BlockableWindow()
- : QWindow()
- {
- blocked = false;
- }
+ : QWindow(), blocked(false), enters(0), leaves(0) {}
bool event(QEvent *e)
{
@@ -352,11 +351,23 @@ public:
case QEvent::WindowUnblocked:
--blocked;
break;
+ case QEvent::Leave:
+ leaves++;
+ break;
+ case QEvent::Enter:
+ enters++;
+ break;
default:
break;
}
return QWindow::event(e);
}
+
+ void resetCounts()
+ {
+ leaves = 0;
+ enters = 0;
+ }
};
void tst_QGuiApplication::modalWindow()
@@ -391,6 +402,12 @@ void tst_QGuiApplication::modalWindow()
QCOMPARE(windowModalWindow2->blocked, 0);
QCOMPARE(applicationModalWindow1->blocked, 0);
+ // enter mouse in window1
+ QWindowSystemInterface::handleEnterEvent(window1);
+ QGuiApplication::processEvents();
+ QCOMPARE(window1->enters, 1);
+ QCOMPARE(window1->leaves, 0);
+
// show applicationModalWindow1, everything is blocked
applicationModalWindow1->show();
QCOMPARE(app.modalWindow(), applicationModalWindow1);
@@ -400,6 +417,24 @@ void tst_QGuiApplication::modalWindow()
QCOMPARE(windowModalWindow2->blocked, 1);
QCOMPARE(applicationModalWindow1->blocked, 0);
+ // opening modal causes leave for previously entered window, but not others
+ QGuiApplication::processEvents();
+ QCOMPARE(window1->enters, 1);
+ QCOMPARE(window1->leaves, 1);
+ QCOMPARE(window2->enters, 0);
+ QCOMPARE(window2->leaves, 0);
+ QCOMPARE(applicationModalWindow1->enters, 0);
+ QCOMPARE(applicationModalWindow1->leaves, 0);
+ window1->resetCounts();
+
+ // Try entering/leaving blocked window2 - no events should reach it
+ QWindowSystemInterface::handleEnterEvent(window2);
+ QGuiApplication::processEvents();
+ QWindowSystemInterface::handleLeaveEvent(window2);
+ QGuiApplication::processEvents();
+ QCOMPARE(window2->enters, 0);
+ QCOMPARE(window2->leaves, 0);
+
// everything is unblocked when applicationModalWindow1 is hidden
applicationModalWindow1->hide();
QCOMPARE(app.modalWindow(), static_cast<QWindow *>(0));
@@ -409,6 +444,12 @@ void tst_QGuiApplication::modalWindow()
QCOMPARE(windowModalWindow2->blocked, 0);
QCOMPARE(applicationModalWindow1->blocked, 0);
+ // Enter window2 - should not be blocked
+ QWindowSystemInterface::handleEnterEvent(window2);
+ QGuiApplication::processEvents();
+ QCOMPARE(window2->enters, 1);
+ QCOMPARE(window2->leaves, 0);
+
// show the windowModalWindow1, only window1 is blocked
windowModalWindow1->show();
QCOMPARE(app.modalWindow(), windowModalWindow1);
@@ -418,6 +459,15 @@ void tst_QGuiApplication::modalWindow()
QCOMPARE(windowModalWindow2->blocked, 0);
QCOMPARE(applicationModalWindow1->blocked, 0);
+ // opening window modal window doesn't cause leave for unblocked window
+ QGuiApplication::processEvents();
+ QCOMPARE(window1->enters, 0);
+ QCOMPARE(window1->leaves, 0);
+ QCOMPARE(window2->enters, 1);
+ QCOMPARE(window2->leaves, 0);
+ QCOMPARE(windowModalWindow1->enters, 0);
+ QCOMPARE(windowModalWindow1->leaves, 0);
+
// show the windowModalWindow2, windowModalWindow1 is blocked as well
windowModalWindow2->show();
QCOMPARE(app.modalWindow(), windowModalWindow2);
@@ -472,6 +522,17 @@ void tst_QGuiApplication::modalWindow()
QCOMPARE(windowModalWindow2->blocked, 1);
QCOMPARE(applicationModalWindow1->blocked, 0);
+ // window2 gets finally the leave
+ QGuiApplication::processEvents();
+ QCOMPARE(window1->enters, 0);
+ QCOMPARE(window1->leaves, 0);
+ QCOMPARE(window2->enters, 1);
+ QCOMPARE(window2->leaves, 1);
+ QCOMPARE(windowModalWindow1->enters, 0);
+ QCOMPARE(windowModalWindow1->leaves, 0);
+ QCOMPARE(applicationModalWindow1->enters, 0);
+ QCOMPARE(applicationModalWindow1->leaves, 0);
+
// hide applicationModalWindow1, windowModalWindow1 and window1 are blocked
applicationModalWindow1->hide();
QCOMPARE(app.modalWindow(), windowModalWindow2);
diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
index 84ba1f4fdf..f85e48022a 100644
--- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
+++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
@@ -67,6 +67,7 @@ private slots:
void touchCancel();
void touchCancelWithTouchToMouse();
void orientation();
+ void sizes();
void close();
void activateAndClose();
void mouseEventSequence();
@@ -739,6 +740,58 @@ void tst_QWindow::orientation()
QCOMPARE(spy.count(), 1);
}
+void tst_QWindow::sizes()
+{
+ QWindow window;
+
+ QSignalSpy minimumWidthSpy(&window, SIGNAL(minimumWidthChanged(int)));
+ QSignalSpy minimumHeightSpy(&window, SIGNAL(minimumHeightChanged(int)));
+ QSignalSpy maximumWidthSpy(&window, SIGNAL(maximumWidthChanged(int)));
+ QSignalSpy maximumHeightSpy(&window, SIGNAL(maximumHeightChanged(int)));
+
+ QSize oldMaximum = window.maximumSize();
+
+ window.setMinimumWidth(10);
+ QCOMPARE(window.minimumWidth(), 10);
+ QCOMPARE(window.minimumHeight(), 0);
+ QCOMPARE(window.minimumSize(), QSize(10, 0));
+ QCOMPARE(window.maximumSize(), oldMaximum);
+ QCOMPARE(minimumWidthSpy.count(), 1);
+ QCOMPARE(minimumHeightSpy.count(), 0);
+ QCOMPARE(maximumWidthSpy.count(), 0);
+ QCOMPARE(maximumHeightSpy.count(), 0);
+
+ window.setMinimumHeight(10);
+ QCOMPARE(window.minimumWidth(), 10);
+ QCOMPARE(window.minimumHeight(), 10);
+ QCOMPARE(window.minimumSize(), QSize(10, 10));
+ QCOMPARE(window.maximumSize(), oldMaximum);
+ QCOMPARE(minimumWidthSpy.count(), 1);
+ QCOMPARE(minimumHeightSpy.count(), 1);
+ QCOMPARE(maximumWidthSpy.count(), 0);
+ QCOMPARE(maximumHeightSpy.count(), 0);
+
+ window.setMaximumWidth(100);
+ QCOMPARE(window.maximumWidth(), 100);
+ QCOMPARE(window.maximumHeight(), oldMaximum.height());
+ QCOMPARE(window.minimumSize(), QSize(10, 10));
+ QCOMPARE(window.maximumSize(), QSize(100, oldMaximum.height()));
+ QCOMPARE(minimumWidthSpy.count(), 1);
+ QCOMPARE(minimumHeightSpy.count(), 1);
+ QCOMPARE(maximumWidthSpy.count(), 1);
+ QCOMPARE(maximumHeightSpy.count(), 0);
+
+ window.setMaximumHeight(100);
+ QCOMPARE(window.maximumWidth(), 100);
+ QCOMPARE(window.maximumHeight(), 100);
+ QCOMPARE(window.minimumSize(), QSize(10, 10));
+ QCOMPARE(window.maximumSize(), QSize(100, 100));
+ QCOMPARE(minimumWidthSpy.count(), 1);
+ QCOMPARE(minimumHeightSpy.count(), 1);
+ QCOMPARE(maximumWidthSpy.count(), 1);
+ QCOMPARE(maximumHeightSpy.count(), 1);
+}
+
void tst_QWindow::close()
{
QWindow a;
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index 09180b3de9..be3e68ad38 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -231,7 +231,9 @@ private slots:
void drawRect_task215378();
void drawRect_task247505();
+#if defined(Q_OS_MAC)
void drawText_subPixelPositionsInRaster_qtbug5053();
+#endif
void drawImage_data();
void drawImage();
@@ -4178,11 +4180,10 @@ void tst_QPainter::clipBoundingRect()
}
+#if defined(Q_OS_MAC)
+// Only Mac supports sub pixel positions in raster engine currently
void tst_QPainter::drawText_subPixelPositionsInRaster_qtbug5053()
{
-#if !defined(Q_OS_MAC)
- QSKIP("Only Mac supports sub pixel positions in raster engine currently");
-#endif
QFontMetricsF fm(qApp->font());
QImage baseLine(fm.width(QChar::fromLatin1('e')), fm.height(), QImage::Format_RGB32);
@@ -4212,6 +4213,7 @@ void tst_QPainter::drawText_subPixelPositionsInRaster_qtbug5053()
QVERIFY(foundDifferentRasterization);
}
+#endif
void tst_QPainter::drawPointScaled()
{
diff --git a/tests/auto/gui/text/qfontmetrics/qfontmetrics.pro b/tests/auto/gui/text/qfontmetrics/qfontmetrics.pro
index ef08458c56..88436f6a0e 100644
--- a/tests/auto/gui/text/qfontmetrics/qfontmetrics.pro
+++ b/tests/auto/gui/text/qfontmetrics/qfontmetrics.pro
@@ -1,7 +1,7 @@
CONFIG += testcase
CONFIG += parallel_test
TARGET = tst_qfontmetrics
-QT += testlib
+QT += testlib core-private gui-private
SOURCES += tst_qfontmetrics.cpp
RESOURCES += testfont.qrc
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
index 4f502ae5f2..b457e17b48 100644
--- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
@@ -44,6 +44,7 @@
#include <qfont.h>
#include <qfontmetrics.h>
#include <qfontdatabase.h>
+#include <private/qfontengine_p.h>
#include <qstringlist.h>
#include <qlist.h>
@@ -279,6 +280,39 @@ void tst_QFontMetrics::inFontUcs4()
QVERIFY(fm.inFontUcs4(0x1D7FF));
}
+ {
+ QFontEngine *engine = QFontPrivate::get(font)->engineForScript(QUnicodeTables::Common);
+ QGlyphLayout glyphs;
+ glyphs.numGlyphs = 3;
+ uint buf[3];
+ glyphs.glyphs = buf;
+
+ QString string;
+ {
+ string.append(QChar::highSurrogate(0x1D7FF));
+ string.append(QChar::lowSurrogate(0x1D7FF));
+
+ glyphs.numGlyphs = 3;
+ glyphs.glyphs[0] = 0;
+ QVERIFY(engine->stringToCMap(string.constData(), string.size(),
+ &glyphs, &glyphs.numGlyphs,
+ QFontEngine::GlyphIndicesOnly));
+ QCOMPARE(glyphs.numGlyphs, 1);
+ QCOMPARE(glyphs.glyphs[0], uint(1));
+ }
+ {
+ string.clear();
+ string.append(QChar::ObjectReplacementCharacter);
+
+ glyphs.numGlyphs = 3;
+ glyphs.glyphs[0] = 0;
+ QVERIFY(engine->stringToCMap(string.constData(), string.size(),
+ &glyphs, &glyphs.numGlyphs,
+ QFontEngine::GlyphIndicesOnly));
+ QVERIFY(glyphs.glyphs[0] != 1);
+ }
+ }
+
QFontDatabase::removeApplicationFont(id);
}