aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qtquick1/qdeclarativetextedit
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-12-12 12:46:48 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-12 07:05:45 +0100
commit80614c8a26140bbb98533d72a7d1696c197c5de6 (patch)
tree44500349d47f11fa3102ce6b2e2101d6d5ec8b5d /tests/auto/qtquick1/qdeclarativetextedit
parenta1a4abe377045afee3b49639fd1e072a7cbd8e19 (diff)
Fix test failures in QtQuick 1 TextEdit and TextInput.
Port various fixes for incompatibilites from the QtQuick 2 item tests. Task-number: QTBUG-21017 Change-Id: I0234fa2623c57138a132558ff4f48602675c3784 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests/auto/qtquick1/qdeclarativetextedit')
-rw-r--r--tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index 54b8567161..5ed1fb5e8a 100644
--- a/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -1623,20 +1623,23 @@ void tst_qdeclarativetextedit::positionAt()
QDeclarative1TextEdit *texteditObject = qobject_cast<QDeclarative1TextEdit *>(canvas->rootObject());
QVERIFY(texteditObject != 0);
- QFontMetrics fm(texteditObject->font());
- const int y0 = fm.height() / 2;
- const int y1 = fm.height() * 3 / 2;
+ QTextLayout layout(texteditObject->text());
+ layout.setFont(texteditObject->font());
+
+ layout.beginLayout();
+ QTextLine line = layout.createLine();
+ layout.endLayout();
+
+ const int y0 = line.height() / 2;
+ const int y1 = line.height() * 3 / 2;
int pos = texteditObject->positionAt(texteditObject->width()/2, y0);
- int diff = abs(int(fm.width(texteditObject->text().left(pos))-texteditObject->width()/2));
-
- QEXPECT_FAIL("", "QTBUG-21016 fails", Continue);
- // some tolerance for different fonts.
-#ifdef Q_OS_LINUX
- QVERIFY(diff < 2);
-#else
- QVERIFY(diff < 5);
-#endif
+
+ int widthBegin = floor(line.cursorToX(pos - 1));
+ int widthEnd = ceil(line.cursorToX(pos + 1));
+
+ QVERIFY(widthBegin <= texteditObject->width() / 2);
+ QVERIFY(widthEnd >= texteditObject->width() / 2);
const qreal x0 = texteditObject->positionToRectangle(pos).x();
const qreal x1 = texteditObject->positionToRectangle(pos + 1).x();