aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-06-29 17:06:38 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-06 05:24:45 +0200
commitaeac9840e4c46786e84ab7eb16a89db22d4ff81a (patch)
tree2aaae5a3dccfa9ee447f0896a659cc60caba5b86 /tests
parentea9c14f3e1a42080be03d95b825a7ba8ed303bbc (diff)
Allow all explicit margins to override margins.
Task-number: QTBUG-24515 Change-Id: Ibfc657dec9fd0c8e71cf3686a04ea7b00ad72c11 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquickanchors/data/individualMargins.qml16
-rw-r--r--tests/auto/quick/qquickanchors/tst_qquickanchors.cpp95
2 files changed, 104 insertions, 7 deletions
diff --git a/tests/auto/quick/qquickanchors/data/individualMargins.qml b/tests/auto/quick/qquickanchors/data/individualMargins.qml
new file mode 100644
index 0000000000..ce2899afe4
--- /dev/null
+++ b/tests/auto/quick/qquickanchors/data/individualMargins.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.0
+
+Rectangle {
+ width: 200; height: 200
+ Rectangle {
+ objectName: "filler"
+ width: 50; height: 50; color: "blue"
+ anchors.left: parent.left;
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.margins: 10
+ anchors.leftMargin: 5
+ anchors.topMargin: 6
+ }
+}
diff --git a/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp b/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp
index 45c00e0bc5..b8c3d5bbd1 100644
--- a/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp
+++ b/tests/auto/quick/qquickanchors/tst_qquickanchors.cpp
@@ -81,7 +81,9 @@ private slots:
void hvCenterRTL();
void fill();
void fillRTL();
+ void margins_data();
void margins();
+ void marginsRTL_data() { margins_data(); }
void marginsRTL();
void stretch();
void baselineOffset();
@@ -635,9 +637,19 @@ void tst_qquickanchors::hvCenterRTL()
delete view;
}
+
+void tst_qquickanchors::margins_data()
+{
+ QTest::addColumn<QUrl>("source");
+
+ QTest::newRow("fill") << testFileUrl("margins.qml");
+ QTest::newRow("individual") << testFileUrl("individualMargins.qml");
+}
+
void tst_qquickanchors::margins()
{
- QQuickView *view = new QQuickView(testFileUrl("margins.qml"));
+ QFETCH(QUrl, source);
+ QQuickView *view = new QQuickView(source);
qApp->processEvents();
QQuickRectangle* rect = findItem<QQuickRectangle>(view->rootObject(), QLatin1String("filler"));
@@ -656,22 +668,91 @@ void tst_qquickanchors::margins()
rectPrivate->anchors()->setMargins(20.0);
QCOMPARE(rectPrivate->anchors()->margins(), 20.0);
- QEXPECT_FAIL("","QTBUG-24515", Continue);
QCOMPARE(rectPrivate->anchors()->topMargin(), 0.0);
QCOMPARE(rectPrivate->anchors()->leftMargin(), 5.0);
QCOMPARE(rectPrivate->anchors()->bottomMargin(), 20.0);
QCOMPARE(rectPrivate->anchors()->rightMargin(), 20.0);
QCOMPARE(rect->x(), 5.0);
- QCOMPARE(rect->y(), 20.0);
+ QCOMPARE(rect->y(), 0.0);
QCOMPARE(rect->width(), 200.0 - 5.0 - 20.0);
- QCOMPARE(rect->height(), 200.0 - 20.0 - 20.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 20.0);
+
+ rectPrivate->anchors()->setRightMargin(0.0);
+ rectPrivate->anchors()->setBottomMargin(0.0);
+ QCOMPARE(rectPrivate->anchors()->margins(), 20.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 5.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 0.0);
+ QCOMPARE(rect->x(), 5.0);
+ QCOMPARE(rect->y(), 0.0);
+ QCOMPARE(rect->width(), 200.0 - 5.0 - 0.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 0.0);
+
+ // Test setting margins doesn't have any effect on individual margins with explicit values.
+ rectPrivate->anchors()->setMargins(50.0);
+ QCOMPARE(rectPrivate->anchors()->margins(), 50.0);
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 5.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 0.0);
+ QCOMPARE(rect->x(), 0.0 + 5.0);
+ QCOMPARE(rect->y(), 0.0 + 0.0);
+ QCOMPARE(rect->width(), 200.0 - 5.0 - 0.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 0.0);
+
+ // Test that individual margins that are reset have the same value as margins.
+ rectPrivate->anchors()->resetLeftMargin();
+ rectPrivate->anchors()->resetBottomMargin();
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 50.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 50.0);
+ QCOMPARE(rect->x(), 0.0 + 50.0);
+ QCOMPARE(rect->y(), 0.0 + 0.0);
+ QCOMPARE(rect->width(), 200.0 - 50.0 - 0.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 50.0);
+
+ rectPrivate->anchors()->setMargins(30.0);
+ QCOMPARE(rectPrivate->anchors()->margins(), 30.0);
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 30.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 0.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 30.0);
+ QCOMPARE(rect->x(), 0.0 + 30.0);
+ QCOMPARE(rect->y(), 0.0 + 0.0);
+ QCOMPARE(rect->width(), 200.0 - 30.0 - 0.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 30.0);
+
+ rectPrivate->anchors()->resetTopMargin();
+ rectPrivate->anchors()->resetRightMargin();
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 30.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 30.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 30.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 30.0);
+ QCOMPARE(rect->x(), 0.0 + 30.0);
+ QCOMPARE(rect->y(), 0.0 + 30.0);
+ QCOMPARE(rect->width(), 200.0 - 30.0 - 30.0);
+ QCOMPARE(rect->height(), 200.0 - 30.0 - 30.0);
+
+ rectPrivate->anchors()->setMargins(25.0);
+ QCOMPARE(rectPrivate->anchors()->margins(), 25.0);
+ QCOMPARE(rectPrivate->anchors()->leftMargin(), 25.0);
+ QCOMPARE(rectPrivate->anchors()->topMargin(), 25.0);
+ QCOMPARE(rectPrivate->anchors()->rightMargin(), 25.0);
+ QCOMPARE(rectPrivate->anchors()->bottomMargin(), 25.0);
+ QCOMPARE(rect->x(), 0.0 + 25.0);
+ QCOMPARE(rect->y(), 0.0 + 25.0);
+ QCOMPARE(rect->width(), 200.0 - 25.0 - 25.0);
+ QCOMPARE(rect->height(), 200.0 - 25.0 - 25.0);
delete view;
}
void tst_qquickanchors::marginsRTL()
{
- QQuickView *view = new QQuickView(testFileUrl("margins.qml"));
+ QFETCH(QUrl, source);
+ QQuickView *view = new QQuickView(source);
QQuickRectangle* rect = findItem<QQuickRectangle>(view->rootObject(), QLatin1String("filler"));
QQuickItemPrivate *rectPrivate = QQuickItemPrivate::get(rect);
@@ -686,9 +767,9 @@ void tst_qquickanchors::marginsRTL()
rectPrivate->anchors()->setMargins(20.0);
QCOMPARE(rect->x(), 20.0);
- QCOMPARE(rect->y(), 20.0);
+ QCOMPARE(rect->y(), 0.0);
QCOMPARE(rect->width(), 200.0 - 5.0 - 20.0);
- QCOMPARE(rect->height(), 200.0 - 20.0 - 20.0);
+ QCOMPARE(rect->height(), 200.0 - 0.0 - 20.0);
delete view;
}