on xenial help sign in
Test for the showHeader bug i just fixed
1600295Albert Astals
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+56−5
@@ -21,6 +21,7 @@
21#include <QQuickView>
21#include <QQuickView>
22#include <QtTestGui>
22#include <QtTestGui>
23#include <private/qquicklistmodel_p.h>
23#include <private/qquicklistmodel_p.h>
24+#include <private/qquickanimation_p.h>
24#include <private/qquickitem_p.h>
25#include <private/qquickitem_p.h>
25
26
26class ListViewWithPageHeaderTest : public QObject
27class ListViewWithPageHeaderTest : public QObject
@@ -38,10 +39,6 @@ private Q_SLOTS:
38 view = new QQuickView();
39 view = new QQuickView();
39 view->engine()->addImportPath(BUILT_PLUGINS_DIR);
40 view->engine()->addImportPath(BUILT_PLUGINS_DIR);
40 view->setSource(QUrl::fromLocalFile(LISTVIEWWITHPAGEHEADER_FOLDER "/test.qml"));
41 view->setSource(QUrl::fromLocalFile(LISTVIEWWITHPAGEHEADER_FOLDER "/test.qml"));
41− // This originally was
42− // lvwph = view->rootObject()->findChild<ListViewWithPageHeader*>();
43− // but here doesn't work because of the way we are linking listviewwithpageheader.cpp
44− // doesn't create the moc so doesn't get the Q_OBJECT macro info
45 lvwph = dynamic_cast<ListViewWithPageHeader*>(view->rootObject()->findChild<QQuickFlickable*>());
42 lvwph = dynamic_cast<ListViewWithPageHeader*>(view->rootObject()->findChild<QQuickFlickable*>());
46 model = view->rootObject()->findChild<QQuickListModel*>();
43 model = view->rootObject()->findChild<QQuickListModel*>();
47 otherDelegate = view->rootObject()->findChild<QQmlComponent*>();
44 otherDelegate = view->rootObject()->findChild<QQmlComponent*>();
@@ -1413,7 +1410,7 @@ private Q_SLOTS:
1413 QVERIFY(!lvwph->isAtYEnd());
1410 QVERIFY(!lvwph->isAtYEnd());
1414 }
1411 }
1415
1412
1416− void changeSizeVisibleItemNotOnViewport()
1413+ void testChangeSizeVisibleItemNotOnViewport()
1417 {
1414 {
1418 changeContentY(440);
1415 changeContentY(440);
1419
1416
@@ -1450,6 +1447,60 @@ private Q_SLOTS:
1450 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1447 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1451 }
1448 }
1452
1449
1450+ void testShowHeaderCloseToTheTop()
1451+ {
1452+ changeContentY(375);
1453+
1454+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1455+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1456+ verifyItem(0, -325., 150., true);
1457+ verifyItem(1, -175, 200., false);
1458+ verifyItem(2, 25, 350., false);
1459+ verifyItem(3, 375, 350., false);
1460+ verifyItem(4, 725, 350., true);
1461+ QCOMPARE(lvwph->m_minYExtent, 0.);
1462+ QCOMPARE(lvwph->m_clipItem->y(), 375.);
1463+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1464+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1465+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1466+ QCOMPARE(lvwph->contentY(), 375.);
1467+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);;
1468+
1469+ lvwph->showHeader();
1470+
1471+ QTRY_VERIFY(!lvwph->m_headerShowAnimation->isRunning());
1472+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1473+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1474+ verifyItem(0, -375., 150., true);
1475+ verifyItem(1, -225, 200., true);
1476+ verifyItem(2, -25, 350., false);
1477+ verifyItem(3, 325, 350., false);
1478+ verifyItem(4, 675, 350., true);
1479+ QCOMPARE(lvwph->m_minYExtent, 50.);
1480+ QCOMPARE(lvwph->m_clipItem->y(), 375.);
1481+ QCOMPARE(lvwph->m_clipItem->clip(), true);
1482+ QCOMPARE(lvwph->m_headerItem->y(), 325.);
1483+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1484+ QCOMPARE(lvwph->contentY(), 325.);
1485+ QCOMPARE(lvwph->m_headerItemShownHeight, 50.);;
1486+
1487+ scrollToTop();
1488+
1489+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1490+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1491+ verifyItem(0, 50., 150., false);
1492+ verifyItem(1, 200., 200., false);
1493+ verifyItem(2, 400., 350., false);
1494+ verifyItem(3, 750., 350., true);
1495+ QCOMPARE(lvwph->m_minYExtent, 50.);
1496+ QCOMPARE(lvwph->m_clipItem->y(), -50.);
1497+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1498+ QCOMPARE(lvwph->m_headerItem->y(), -50.);
1499+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1500+ QCOMPARE(lvwph->contentY(), -50.);
1501+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1502+ }
1503+
1453private:
1504private:
1454 QQuickView *view;
1505 QQuickView *view;
1455 ListViewWithPageHeader *lvwph;
1506 ListViewWithPageHeader *lvwph;