diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-12-12 12:46:48 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-12 07:05:45 +0100 |
commit | 80614c8a26140bbb98533d72a7d1696c197c5de6 (patch) | |
tree | 44500349d47f11fa3102ce6b2e2101d6d5ec8b5d /tests/auto/qtquick1/qdeclarativetextedit | |
parent | a1a4abe377045afee3b49639fd1e072a7cbd8e19 (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.cpp | 27 |
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(); |