tst_definitions.h
98 lines
| 3.0 KiB
| text/x-c
|
CLexer
|
r1109 | /**************************************************************************** | ||
** | ||||
|
r2776 | ** Copyright (C) 2015 The Qt Company Ltd | ||
|
r1109 | ** All rights reserved. | ||
|
r2776 | ** For any questions to The Qt Company, please use contact form at http://qt.io | ||
|
r1109 | ** | ||
|
r2740 | ** This file is part of the Qt Charts module. | ||
|
r1109 | ** | ||
|
r2740 | ** Licensees holding valid commercial license for Qt may use this file in | ||
** accordance with the Qt License Agreement provided with the Software | ||||
** or, alternatively, in accordance with the terms contained in a written | ||||
|
r2776 | ** agreement between you and The Qt Company. | ||
|
r1109 | ** | ||
** If you have questions regarding the use of this file, please use | ||||
|
r2740 | ** contact form at http://qt.io | ||
|
r1109 | ** | ||
****************************************************************************/ | ||||
#ifndef TST_DEFINITIONS_H | ||||
#define TST_DEFINITIONS_H | ||||
|
r2712 | #include <QtCharts/qpolarchart.h> | ||
|
r1109 | #include <QtTest/QtTest> | ||
|
r2714 | #include <QtWidgets/QPushButton> | ||
|
r1109 | |||
|
r2774 | QT_BEGIN_NAMESPACE | ||
|
r2241 | namespace QTest | ||
{ | ||||
// This was deprecated in Qt5. This is a small hack for the sake of compatibility. | ||||
inline static bool qWaitForWindowShown(QWidget *window) | ||||
{ | ||||
return QTest::qWaitForWindowExposed(window); | ||||
} | ||||
} | ||||
|
r2774 | QT_END_NAMESPACE | ||
|
r2241 | |||
|
r1109 | #define TRY_COMPARE(actual, expected) { \ | ||
do { \ | ||||
const int timeout(1000); \ | ||||
const int waitStep(30); \ | ||||
/* always wait before comparing to catch possible extra signals */ \ | ||||
QTest::qWait(waitStep); \ | ||||
|
r1111 | for (int time(0); (actual != expected) && (time < timeout); time += waitStep) \ | ||
|
r1109 | QTest::qWait(waitStep); \ | ||
QCOMPARE(actual, expected); \ | ||||
} while (0); \ | ||||
} | ||||
|
r2062 | // Some bamboo clients have trouble passing mouse events to the test application. | ||
// This can be used to skip those tests so that they don't show up as a failure | ||||
// in the test report. | ||||
|
r2367 | #define SKIP_IF_CANNOT_TEST_MOUSE_EVENTS() { \ | ||
do { \ | ||||
QPushButton b; \ | ||||
b.resize(100, 100); \ | ||||
b.show(); \ | ||||
QTest::qWaitForWindowShown(&b); \ | ||||
QSignalSpy spy(&b, SIGNAL(clicked())); \ | ||||
QTest::mouseClick(&b, Qt::LeftButton, 0, b.rect().center()); \ | ||||
if (spy.count() == 0) \ | ||||
QSKIP("Cannot test mouse events in this environment"); \ | ||||
} while (0); \ | ||||
} | ||||
|
r2483 | |||
#define SKIP_ON_POLAR() { \ | ||||
if (isPolarTest()) \ | ||||
QSKIP("Test not supported by polar chart"); \ | ||||
} | ||||
#define SKIP_ON_CARTESIAN() { \ | ||||
if (!isPolarTest()) \ | ||||
QSKIP("Test not supported by cartesian chart"); \ | ||||
} | ||||
|
r2062 | |||
|
r2483 | static inline bool isPolarTest() | ||
{ | ||||
static bool isPolar = false; | ||||
static bool polarEnvChecked = false; | ||||
if (!polarEnvChecked) { | ||||
isPolar = !(qgetenv("TEST_POLAR_CHART").isEmpty()); | ||||
polarEnvChecked = true; | ||||
if (isPolar) | ||||
qDebug() << "TEST_POLAR_CHART found -> Testing polar chart!"; | ||||
} | ||||
return isPolar; | ||||
} | ||||
|
r2712 | static inline QtCharts::QChart *newQChartOrQPolarChart() | ||
|
r2483 | { | ||
if (isPolarTest()) | ||||
|
r2712 | return new QtCharts::QPolarChart(); | ||
|
r2483 | else | ||
|
r2712 | return new QtCharts::QChart(); | ||
|
r2483 | } | ||
|
r1109 | #endif // TST_DEFINITIONS_H | ||