diff options
author | Liang Qi <liang.qi@qt.io> | 2016-10-08 17:15:55 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-10-08 17:15:55 +0200 |
commit | 3e71810cf3153e4331fc075a73b6408adcf33654 (patch) | |
tree | 9f5fbb7a5dc2a902b380dd69a222c0f2cd6eb760 /tests/auto | |
parent | 6feec9da93032d11a768802ac2187d9d4153b1ec (diff) | |
parent | ebd1046323615f22192055a94438bf85fc360ca3 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
src/network/access/qhttpnetworkconnection.cpp
src/network/access/qhttpnetworkconnection_p.h
Change-Id: I11f8641ef482efa8cee1b79977d19cc3182814b4
Diffstat (limited to 'tests/auto')
4 files changed, 83 insertions, 2 deletions
diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp index 6adfe05fb0..8dc6f901e6 100644 --- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp @@ -1492,6 +1492,33 @@ void tst_QPixmap::loadAsBitmapOrPixmap() QVERIFY(!bitmap.isNull()); QCOMPARE(bitmap.depth(), 1); QVERIFY(bitmap.isQBitmap()); + + // check that a QBitmap stays a QBitmap even when loading fails: + ok = bitmap.load(QString()); + QVERIFY(!ok); + QVERIFY(bitmap.isNull()); + QVERIFY(bitmap.isQBitmap()); + + ok = bitmap.load("does not exist"); + QVERIFY(!ok); + QVERIFY(bitmap.isNull()); + QVERIFY(bitmap.isQBitmap()); + + ok = bitmap.load("does not exist.png"); + QVERIFY(!ok); + QVERIFY(bitmap.isNull()); + QVERIFY(bitmap.isQBitmap()); + + QTemporaryFile garbage; + QVERIFY(garbage.open()); + const QString garbagePath = garbage.fileName(); + garbage.write(reinterpret_cast<const char *>(&garbage), sizeof garbage); + garbage.close(); + + ok = bitmap.load(garbagePath); + QVERIFY(!ok); + QVERIFY(bitmap.isNull()); + QVERIFY(bitmap.isQBitmap()); } void tst_QPixmap::toImageDeepCopy() diff --git a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp index 8cb95c867c..6fd95c8266 100644 --- a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp +++ b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp @@ -149,6 +149,7 @@ private slots: void QTBUG50102_SH_ItemView_ScrollMode(); void QTBUG50535_update_on_new_selection_model(); void testSelectionModelInSyncWithView(); + void testClickToSelect(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -2113,5 +2114,56 @@ void tst_QAbstractItemView::testSelectionModelInSyncWithView() QCOMPARE(view.selectionModel()->selection().indexes(), QModelIndexList() << model.index(0, 0)); } +class SetSelectionTestView : public QListView +{ + Q_OBJECT +public: + SetSelectionTestView() : QListView() {} + +signals: + void setSelectionCalled(const QRect &rect); + +protected: + void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) Q_DECL_OVERRIDE + { + emit setSelectionCalled(rect); + QListView::setSelection(rect, flags); + } +}; + +void tst_QAbstractItemView::testClickToSelect() +{ + // This test verifies that the QRect that is passed from QAbstractItemView::mousePressEvent + // to the virtual method QAbstractItemView::setSelection(const QRect &, SelectionFlags) + // is the 1x1 rect which conains exactly the clicked pixel if no modifiers are pressed. + + QStringList list; + list << "A" << "B" << "C"; + QStringListModel model(list); + + SetSelectionTestView view; + view.setModel(&model); + view.show(); + QTest::qWaitForWindowExposed(&view); + + QSignalSpy spy(&view, &SetSelectionTestView::setSelectionCalled); + + const QModelIndex indexA(model.index(0, 0)); + const QRect visualRectA = view.visualRect(indexA); + const QPoint centerA = visualRectA.center(); + + // Click the center of the visualRect of item "A" + QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::NoModifier, centerA); + QCOMPARE(spy.count(), 1); + QCOMPARE(spy.back().front().value<QRect>(), QRect(centerA, QSize(1, 1))); + + // Click a point slightly away from the center + const QPoint nearCenterA = centerA + QPoint(1, 1); + QVERIFY(visualRectA.contains(nearCenterA)); + QTest::mouseClick(view.viewport(), Qt::LeftButton, Qt::NoModifier, nearCenterA); + QCOMPARE(spy.count(), 2); + QCOMPARE(spy.back().front().value<QRect>(), QRect(nearCenterA, QSize(1, 1))); +} + QTEST_MAIN(tst_QAbstractItemView) #include "tst_qabstractitemview.moc" diff --git a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp index 55b0ed4279..62c75cadf3 100644 --- a/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp +++ b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp @@ -1207,7 +1207,8 @@ QShortcut *tst_QShortcut::setupShortcut(QWidget *parent, const char *name, int t void tst_QShortcut::shortcutDestroyed(QObject* obj) { - shortcuts.removeAll(static_cast<QShortcut *>(obj)); + shortcuts.erase(std::remove(shortcuts.begin(), shortcuts.end(), obj), + shortcuts.end()); } void tst_QShortcut::sendKeyEvents(int k1, QChar c1, int k2, QChar c2, int k3, QChar c3, int k4, QChar c4) diff --git a/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp b/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp index 7b5ec4fa4c..2df5f01627 100644 --- a/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp +++ b/tests/auto/widgets/widgets/qstackedwidget/tst_qstackedwidget.cpp @@ -163,7 +163,8 @@ private: void tst_QStackedWidget::dynamicPages() { - QStackedWidget *sw = new QStackedWidget; + QStackedWidget stackedWidget; + QStackedWidget *sw = &stackedWidget; TestPage *w1 = new TestPage(true); w1->setN(3); |