From 9f9275f82f6117c18eadee289c7df525aab187ee Mon Sep 17 00:00:00 2001 From: Stanislav Yelenskiy Date: Fri, 25 Sep 2020 00:10:03 +0200 Subject: QTabBar test: refactor: extract checkPositions helper function Extract checkPositions helper function to re-use in the new test. Task-number: QTBUG-86898 Change-Id: I5c8241b5701cd8c8c3e21607c385217d4b75e728 Reviewed-by: Jordi Pujol Foyo Reviewed-by: Timur Pocheptsov Reviewed-by: Christian Ehrlicher --- tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp | 53 +++++++++++++--------- 1 file changed, 31 insertions(+), 22 deletions(-) (limited to 'tests') diff --git a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp index c8e399f0f8..db94e03ff4 100644 --- a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp +++ b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp @@ -35,6 +35,8 @@ #include #include +class TabBar; + class tst_QTabBar : public QObject { Q_OBJECT @@ -94,6 +96,9 @@ private slots: void autoHide(); void mouseReleaseOutsideTabBar(); + +private: + void checkPositions(const TabBar &tabbar, const QList &positions); }; // Testing get/set functions @@ -210,6 +215,14 @@ void tst_QTabBar::testCurrentChanged() QCOMPARE(spy.count(), expectedCount); } +class TabBar : public QTabBar +{ +public: + using QTabBar::initStyleOption; + using QTabBar::moveTab; + using QTabBar::QTabBar; +}; + void tst_QTabBar::insertAtCurrentIndex() { QTabBar tabBar; @@ -282,52 +295,36 @@ void tst_QTabBar::hideTab() QTEST(tabbar.currentIndex(), "finalIndex"); } -class TabBar : public QTabBar -{ -public: - using QTabBar::QTabBar; - using QTabBar::initStyleOption; - using QTabBar::moveTab; -}; - void tst_QTabBar::hideAllTabs() { TabBar tabbar; - auto checkPositions = [&tabbar](const QList &positions) { - QStyleOptionTab option; - int iPos = 0; - for (int i = 0; i < tabbar.count(); ++i) { - if (!tabbar.isTabVisible(i)) - continue; - tabbar.initStyleOption(&option, i); - QCOMPARE(option.position, positions.at(iPos++)); - } - }; tabbar.addTab("foo"); tabbar.addTab("bar"); tabbar.addTab("baz"); tabbar.setCurrentIndex(0); - checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End}); + checkPositions(tabbar, + { QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End }); // Check we don't crash trying to hide an unexistant tab QSize prevSizeHint = tabbar.sizeHint(); tabbar.setTabVisible(3, false); - checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End}); + checkPositions(tabbar, + { QStyleOptionTab::Beginning, QStyleOptionTab::Middle, QStyleOptionTab::End }); QCOMPARE(tabbar.currentIndex(), 0); QSize sizeHint = tabbar.sizeHint(); QVERIFY(sizeHint.width() == prevSizeHint.width()); prevSizeHint = sizeHint; tabbar.setTabVisible(1, false); - checkPositions({QStyleOptionTab::Beginning, QStyleOptionTab::End}); + checkPositions(tabbar, { QStyleOptionTab::Beginning, QStyleOptionTab::End }); QCOMPARE(tabbar.currentIndex(), 0); sizeHint = tabbar.sizeHint(); QVERIFY(sizeHint.width() < prevSizeHint.width()); prevSizeHint = sizeHint; tabbar.setTabVisible(2, false); - checkPositions({QStyleOptionTab::OnlyOneTab}); + checkPositions(tabbar, { QStyleOptionTab::OnlyOneTab }); QCOMPARE(tabbar.currentIndex(), 0); sizeHint = tabbar.sizeHint(); QVERIFY(sizeHint.width() < prevSizeHint.width()); @@ -834,5 +831,17 @@ void tst_QTabBar::mouseReleaseOutsideTabBar() QTRY_VERIFY(repaintChecker.repainted); } +void tst_QTabBar::checkPositions(const TabBar &tabbar, const QList &positions) +{ + QStyleOptionTab option; + int iPos = 0; + for (int i = 0; i < tabbar.count(); ++i) { + if (!tabbar.isTabVisible(i)) + continue; + tabbar.initStyleOption(&option, i); + QCOMPARE(option.position, positions.at(iPos++)); + } +} + QTEST_MAIN(tst_QTabBar) #include "tst_qtabbar.moc" -- cgit v1.2.3