on xenial help sign in
Test for the showHeader bug i just fixed
commit16002957c1689150b23b37fcc2d63e047e7646ee authorAlbert Astals <albert.astals@canonical.com> dateThu 13 Jun 2013, 11:42 (13 years ago) parentee7bd54
1 file changed+56−5
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+56−5
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+56−5
@@ -21,6 +21,7 @@
2121#include <QQuickView>
2222#include <QtTestGui>
2323#include <private/qquicklistmodel_p.h>
24+#include <private/qquickanimation_p.h>
2425#include <private/qquickitem_p.h>
2526
2627class ListViewWithPageHeaderTest : public QObject
@@ -38,10 +39,6 @@ private Q_SLOTS:
3839 view = new QQuickView();
3940 view->engine()->addImportPath(BUILT_PLUGINS_DIR);
4041 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
4542 lvwph = dynamic_cast<ListViewWithPageHeader*>(view->rootObject()->findChild<QQuickFlickable*>());
4643 model = view->rootObject()->findChild<QQuickListModel*>();
4744 otherDelegate = view->rootObject()->findChild<QQmlComponent*>();
@@ -1413,7 +1410,7 @@ private Q_SLOTS:
14131410 QVERIFY(!lvwph->isAtYEnd());
14141411 }
14151412
1416− void changeSizeVisibleItemNotOnViewport()
1413+ void testChangeSizeVisibleItemNotOnViewport()
14171414 {
14181415 changeContentY(440);
14191416
@@ -1450,6 +1447,60 @@ private Q_SLOTS:
14501447 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
14511448 }
14521449
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+
14531504private:
14541505 QQuickView *view;
14551506 ListViewWithPageHeader *lvwph;