zzag added a comment.
void DecorationButtonTest::testContains_data()
{
QTest::addColumn<QRectF>("geometry");
QTest::addColumn<QPointF>("pos");
QTest::addColumn<bool>("contains");
QTest::newRow("left edge (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(0, 5) << true;
QTest::newRow("top edge (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(5, 0) << true;
QTest::newRow("right edge (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(9, 5) << true;
QTest::newRow("bottom edge (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(5, 9) << true;
QTest::newRow("inside (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(5, 5) << true;
QTest::newRow("outside 1 (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(-1, 5) << false;
QTest::newRow("outside 2 (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(5, -1) << false;
QTest::newRow("outside 3 (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(10, 5) << false;
QTest::newRow("outside 4 (integer)") << QRectF(0, 0, 10, 10) <<
QPointF(5, 10) << false;
const qreal eps = 1e-3;
QTest::newRow("left edge (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(0.1, 5.1) << true;
QTest::newRow("top edge (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.1, 0.1) << true;
QTest::newRow("right edge (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(10.1 - eps, 5.1) << true;
QTest::newRow("bottom edge (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.1, 10.1 - eps) << true;
QTest::newRow("inside (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.0, 5.0) << true;
QTest::newRow("outside 1 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(0.1 - eps, 5.1) << false;
QTest::newRow("outside 2 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.1, 0.1 - eps) << false;
QTest::newRow("outside 3 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(10.1, 5.1) << false;
QTest::newRow("outside 4 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.1, 10.1) << false;
QTest::newRow("outside 5 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(10.1 + eps, 5.1) << false;
QTest::newRow("outside 6 (float)") << QRectF(0.1, 0.1, 10.0, 10.0) <<
QPointF(5.1, 10.1 + eps) << false;
}
void DecorationButtonTest::testContains()
{
MockBridge bridge;
MockDecoration mockDecoration(&bridge);
QFETCH(QRectF, geometry);
MockButton button(KDecoration2::DecorationButtonType::Custom,
&mockDecoration);
button.setGeometry(geometry);
button.setEnabled(true);
button.setVisible(true);
QFETCH(QPointF, pos);
QTEST(button.contains(pos), "contains");
}
REPOSITORY
R129 Window Decoration Library
REVISION DETAIL
https://phabricator.kde.org/D15907
To: romangg, #kwin, zzag, davidedmundson
Cc: plasma-devel, jraleigh, GB_2, ragreen, Pitel, ZrenBot, lesliezhai,
ali-mohamed, jensreuterberg, abetts, sebas, apol, mart