From 45cb8d88099ac536db6e0c98b990638678597313 Mon Sep 17 00:00:00 2001 From: chning Date: Tue, 4 May 2010 15:23:20 +0300 Subject: Fixes: NB#163243 DuiTextEdit in Multi Line mode is not working properly RevBy: Pekka Vuorela, John Tapsell Details: MTextEditView::sizeHint() should return correct size according which and constraint. Also update ut_mtexteditview. --- tests/ut_mtexteditview/ut_mtexteditview.cpp | 44 +++++++++++++++++++++++++---- tests/ut_mtexteditview/ut_mtexteditview.h | 1 + 2 files changed, 40 insertions(+), 5 deletions(-) (limited to 'tests/ut_mtexteditview') diff --git a/tests/ut_mtexteditview/ut_mtexteditview.cpp b/tests/ut_mtexteditview/ut_mtexteditview.cpp index 48392f64..af74fd3c 100644 --- a/tests/ut_mtexteditview/ut_mtexteditview.cpp +++ b/tests/ut_mtexteditview/ut_mtexteditview.cpp @@ -127,26 +127,26 @@ void Ut_MTextEditView::testResizeEvent() void Ut_MTextEditView::testGrowing() { - // tests that the minimum size grows after new text is appended + // tests that the preferred size grows after new text is appended QString stringToAppend("\n\nasdf"); - QSizeF oldSize = m_subject->sizeHint(Qt::MinimumSize); + QSizeF oldSize = m_subject->sizeHint(Qt::PreferredSize); m_controller->insert(stringToAppend); - QSizeF newSize = m_subject->sizeHint(Qt::MinimumSize); + QSizeF newSize = m_subject->sizeHint(Qt::PreferredSize); QVERIFY(newSize.height() > oldSize.height()); // FIXME: first test that removing one line is in between the sizes - // test that minimum size is the same as in the start after new text is removed + // test that preferred size is the same as in the start after new text is removed QKeyEvent event(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier); for (int i = 0; i < stringToAppend.size(); ++i) { m_controller->keyPressEvent(&event); } - newSize = m_subject->sizeHint(Qt::MinimumSize); + newSize = m_subject->sizeHint(Qt::PreferredSize); QCOMPARE(newSize.height(), oldSize.height()); } @@ -223,5 +223,39 @@ void Ut_MTextEditView::testUpdateScrollWhenTextChanged() QCOMPARE(m_subject->d_ptr->hscroll, qreal(0)); } +void Ut_MTextEditView::testSizeHint() +{ + cleanup(); + m_controller = new MTextEdit(MTextEditModel::SingleLine, ""); + m_subject = new MTextEditView(m_controller); + m_controller->setView(m_subject); + m_controller->setText("This is a longish string of sample text to test size hints. Thanks!"); + + //The size hints should not depend on the current size + QSizeF preferredSize = m_controller->preferredSize(); + m_controller->resize(100,100); + QCOMPARE(preferredSize, m_controller->preferredSize()); + m_controller->resize(10,10); + QCOMPARE(preferredSize, m_controller->preferredSize()); + m_controller->resize(1000,1000); + QCOMPARE(preferredSize, m_controller->preferredSize()); + + QSizeF minimumSize = m_controller->minimumSize(); + m_controller->resize(100,100); + QCOMPARE(minimumSize, m_controller->minimumSize()); + m_controller->resize(10,10); + QCOMPARE(minimumSize, m_controller->minimumSize()); + m_controller->resize(1000,1000); + QCOMPARE(minimumSize, m_controller->minimumSize()); + + QSizeF maximumSize = m_controller->maximumSize(); + m_controller->resize(100,100); + QCOMPARE(maximumSize, m_controller->maximumSize()); + m_controller->resize(10,10); + QCOMPARE(maximumSize, m_controller->maximumSize()); + m_controller->resize(1000,1000); + QCOMPARE(maximumSize, m_controller->maximumSize()); +} + QTEST_APPLESS_MAIN(Ut_MTextEditView) diff --git a/tests/ut_mtexteditview/ut_mtexteditview.h b/tests/ut_mtexteditview/ut_mtexteditview.h index 8b754087..64f72b56 100644 --- a/tests/ut_mtexteditview/ut_mtexteditview.h +++ b/tests/ut_mtexteditview/ut_mtexteditview.h @@ -50,6 +50,7 @@ private slots: void testInputMethodQuery(); void testMaskedCharacters(); void testUpdateScrollWhenTextChanged(); + void testSizeHint(); private: MTextEdit *m_controller; -- cgit v1.2.3