summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-01-26 08:35:40 +0100
committerLiang Qi <liang.qi@qt.io>2019-01-26 08:35:40 +0100
commit980567b3a32b2e2f00c86f2d627cd82b5230dd0f (patch)
treebc8cc4005b2e07cbc5cad8ba30f8c9fa4f236c3d /tests/auto/widgets
parente81acde7d0cf5fb44a3fb2cf0bf7aaa2c65f807e (diff)
parent730cbad8824bcfcb7ab60371a6563cfb6dd5658d (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts: src/android/templates/AndroidManifest.xml tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp Change-Id: I4c9679e3a8ebba118fbf4772301ff8fde60455b9
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp8
-rw-r--r--tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST4
-rw-r--r--tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp34
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp13
-rw-r--r--tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp36
-rw-r--r--tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp4
6 files changed, 74 insertions, 25 deletions
diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index 5f269bd520..9a75774927 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -4148,11 +4148,9 @@ void tst_QGraphicsItem::ensureVisible()
void tst_QGraphicsItem::cursor()
{
QGraphicsScene scene;
- QWidget topLevel;
- QGraphicsView view(&scene,&topLevel);
- topLevel.showMaximized();
- QVERIFY(QTest::qWaitForWindowExposed(&topLevel));
- view.setFixedSize(topLevel.size());
+ QGraphicsView view(&scene);
+ view.showFullScreen();
+ QVERIFY(QTest::qWaitForWindowExposed(&view));
QGraphicsRectItem *item1 = scene.addRect(QRectF(-100, 0, 50, 50));
QGraphicsRectItem *item2 = scene.addRect(QRectF(50, 0, 50, 50));
diff --git a/tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST b/tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST
index c6aeebc8f8..fea108f3fd 100644
--- a/tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST
+++ b/tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST
@@ -2,7 +2,3 @@
opensuse-42.3 ci
[testLineEditValidation]
opensuse-42.3 ci
-[comboBox]
-# QTBUG-67282
-opensuse
-opensuse-leap
diff --git a/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp b/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
index adedace8b2..7fd1822295 100644
--- a/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
+++ b/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
@@ -727,6 +727,16 @@ void tst_QItemDelegate::dateTimeEditor_data()
<< QDate(2006, 10, 31);
}
+static QDateTimeEdit *findDateTimeEdit(const QWidget *widget)
+{
+ const auto dateTimeEditors = widget->findChildren<QDateTimeEdit *>();
+ for (auto dateTimeEditor : dateTimeEditors) {
+ if (qstrcmp(dateTimeEditor->metaObject()->className(), "QDateTimeEdit") == 0)
+ return dateTimeEditor;
+ }
+ return nullptr;
+}
+
void tst_QItemDelegate::dateTimeEditor()
{
QFETCH(QTime, time);
@@ -742,17 +752,24 @@ void tst_QItemDelegate::dateTimeEditor()
item3->setData(Qt::DisplayRole, QDateTime(date, time));
QTableWidget widget(1, 3);
+ widget.setWindowTitle(QLatin1String(QTest::currentTestFunction())
+ + QLatin1String("::")
+ + QLatin1String(QTest::currentDataTag()));
widget.setItem(0, 0, item1);
widget.setItem(0, 1, item2);
widget.setItem(0, 2, item3);
widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QApplication::setActiveWindow(&widget);
widget.editItem(item1);
QTestEventLoop::instance().enterLoop(1);
- QTimeEdit *timeEditor = widget.viewport()->findChild<QTimeEdit *>();
- QVERIFY(timeEditor);
+
+ QTimeEdit *timeEditor = nullptr;
+ auto viewport = widget.viewport();
+ QTRY_VERIFY( (timeEditor = viewport->findChild<QTimeEdit *>()) );
QCOMPARE(timeEditor->time(), time);
// The data must actually be different in order for the model
// to be updated.
@@ -763,8 +780,8 @@ void tst_QItemDelegate::dateTimeEditor()
widget.setFocus();
widget.editItem(item2);
- QTRY_VERIFY(widget.viewport()->findChild<QDateEdit *>());
- QDateEdit *dateEditor = widget.viewport()->findChild<QDateEdit *>();
+ QDateEdit *dateEditor = nullptr;
+ QTRY_VERIFY( (dateEditor = viewport->findChild<QDateEdit *>()) );
QCOMPARE(dateEditor->date(), date);
dateEditor->setDate(date.addDays(60));
@@ -774,12 +791,8 @@ void tst_QItemDelegate::dateTimeEditor()
QTestEventLoop::instance().enterLoop(1);
- QList<QDateTimeEdit *> dateTimeEditors = widget.findChildren<QDateTimeEdit *>();
- QDateTimeEdit *dateTimeEditor = 0;
- foreach(dateTimeEditor, dateTimeEditors)
- if (dateTimeEditor->metaObject()->className() == QLatin1String("QDateTimeEdit"))
- break;
- QVERIFY(dateTimeEditor);
+ QDateTimeEdit *dateTimeEditor = nullptr;
+ QTRY_VERIFY( (dateTimeEditor = findDateTimeEdit(viewport)) );
QCOMPARE(dateTimeEditor->date(), date);
QCOMPARE(dateTimeEditor->time(), time);
dateTimeEditor->setTime(time.addSecs(600));
@@ -1387,6 +1400,7 @@ void tst_QItemDelegate::comboBox()
widget.setItem(0, 0, item1);
widget.show();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QApplication::setActiveWindow(&widget);
widget.editItem(item1);
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 648c63b637..93c8b095e0 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -166,6 +166,7 @@ private slots:
void getSetCheck();
void fontPropagation();
void fontPropagation2();
+ void fontPropagation3();
void palettePropagation();
void palettePropagation2();
void enabledPropagation();
@@ -819,6 +820,18 @@ void tst_QWidget::fontPropagation2()
QVERIFY(child5->font().italic());
}
+void tst_QWidget::fontPropagation3()
+{
+ QWidget parent;
+ QWidget *child = new QWidget(&parent);
+ parent.setFont(QFont("Monospace", 9));
+ QImage image(32, 32, QImage::Format_RGB32);
+ QPainter p(&image);
+ p.setFont(child->font());
+ QCOMPARE(p.font().family(), child->font().family());
+ QCOMPARE(p.font().pointSize(), child->font().pointSize());
+}
+
void tst_QWidget::palettePropagation()
{
QScopedPointer<QWidget> testWidget(new QWidget);
diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
index f4da4c3e5f..431d6ba960 100644
--- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
+++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
@@ -470,6 +470,10 @@ static const char *expectedLogC[] = {
"Event at 11,241 accepted",
"acceptingDropsWidget2::dropEvent at 1,51 action=1 MIME_DATA_ADDRESS 'testmimetext'",
"Event at 11,261 accepted",
+ "acceptingDropsWidget3::dragEnterEvent at 1,21 action=1 MIME_DATA_ADDRESS 'testmimetext'",
+ "Event at 11,281 accepted",
+ "acceptingDropsWidget3::dragLeaveEvent QDragLeaveEvent",
+ "Event at 11,301 ignored",
"acceptingDropsWidget1::dragEnterEvent at 10,10 action=1 MIME_DATA_ADDRESS 'testmimetext'",
"Event at 0,0 accepted",
"acceptingDropsWidget1::dragMoveEvent at 11,11 action=1 MIME_DATA_ADDRESS 'testmimetext'",
@@ -482,8 +486,9 @@ static const char *expectedLogC[] = {
class DnDEventLoggerWidget : public QWidget
{
public:
- DnDEventLoggerWidget(QStringList *log, QWidget *w = 0) : QWidget(w), m_log(log) {}
-
+ DnDEventLoggerWidget(QStringList *log, QWidget *w = nullptr, bool ignoreDragMove = false)
+ : QWidget(w), m_log(log), m_ignoreDragMove(ignoreDragMove)
+ {}
protected:
void dragEnterEvent(QDragEnterEvent *);
void dragMoveEvent(QDragMoveEvent *);
@@ -493,6 +498,7 @@ protected:
private:
void formatDropEvent(const char *function, const QDropEvent *e, QTextStream &str) const;
QStringList *m_log;
+ bool m_ignoreDragMove;
};
void DnDEventLoggerWidget::formatDropEvent(const char *function, const QDropEvent *e, QTextStream &str) const
@@ -513,6 +519,8 @@ void DnDEventLoggerWidget::dragEnterEvent(QDragEnterEvent *e)
void DnDEventLoggerWidget::dragMoveEvent(QDragMoveEvent *e)
{
+ if (m_ignoreDragMove)
+ return;
e->accept();
QString message;
QTextStream str(&message);
@@ -580,7 +588,17 @@ void tst_QWidget_window::tst_dnd()
dropsRefusingWidget2->resize(160, 60);
dropsRefusingWidget2->move(10, 10);
+ QWidget *dropsAcceptingWidget3 = new DnDEventLoggerWidget(&log, &dndTestWidget, true);
+ dropsAcceptingWidget3->setAcceptDrops(true);
+ dropsAcceptingWidget3->setObjectName(QLatin1String("acceptingDropsWidget3"));
+ // 260 + 40 = 300 = widget size, must not be more than that.
+ // otherwise it will break WinRT because there the tlw is maximized every time
+ // and this window will receive one more event
+ dropsAcceptingWidget3->resize(180, 40);
+ dropsAcceptingWidget3->move(10, 260);
+
dndTestWidget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&dndTestWidget));
qApp->setActiveWindow(&dndTestWidget);
QVERIFY(QTest::qWaitForWindowActive(&dndTestWidget));
@@ -595,16 +613,17 @@ void tst_QWidget_window::tst_dnd()
log.push_back(msgEventAccepted(e));
while (true) {
position.ry() += 20;
- if (position.y() >= 250) {
+ if (position.y() >= 250 && position.y() < 270) {
QDropEvent e(position, Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier);
qApp->sendEvent(window, &e);
log.push_back(msgEventAccepted(e));
- break;
} else {
QDragMoveEvent e(position, Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier);
qApp->sendEvent(window, &e);
log.push_back(msgEventAccepted(e));
}
+ if (position.y() > 290)
+ break;
}
window = nativeWidget->windowHandle();
@@ -628,6 +647,15 @@ void tst_QWidget_window::tst_dnd()
for (int i= 0; i < expectedLogSize; ++i)
expectedLog.push_back(QString::fromLatin1(expectedLogC[i]).replace(mimeDataAddressPlaceHolder, mimeDataAddress));
+ if (log.size() != expectedLog.size()) {
+ for (int i = 0; i < log.size() && i < expectedLog.size(); ++i)
+ QCOMPARE(log.at(i), expectedLog.at(i));
+ const int iMin = std::min(log.size(), expectedLog.size());
+ for (int i = iMin; i < log.size(); ++i)
+ qDebug() << "log[" << i << "]:" << log.at(i);
+ for (int i = iMin; i < expectedLog.size(); ++i)
+ qDebug() << "exp[" << i << "]:" << log.at(i);
+ }
QCOMPARE(log, expectedLog);
}
diff --git a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
index 8f1f8590cb..61b1fed1f8 100644
--- a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
+++ b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
@@ -741,9 +741,9 @@ void tst_QStyleSheetStyle::fontPropagation()
QCOMPARE(FONTSIZE(pb), 20);
QWidget window;
- window.setStyleSheet("* { font-size: 10pt }");
+ window.setStyleSheet("* { font-size: 9pt }");
pb.setParent(&window);
- QCOMPARE(FONTSIZE(pb), 10);
+ QCOMPARE(FONTSIZE(pb), 9);
window.setStyleSheet(QString());
QCOMPARE(FONTSIZE(pb), buttonFontSize);