diff -r e4c884866116 -r 6a40edd41841 logsui/logsengine/tsrc/ut_logsengine/src/ut_logsdetailsmodel.cpp --- a/logsui/logsengine/tsrc/ut_logsengine/src/ut_logsdetailsmodel.cpp Fri Sep 17 08:29:34 2010 +0300 +++ b/logsui/logsengine/tsrc/ut_logsengine/src/ut_logsdetailsmodel.cpp Mon Oct 04 00:17:41 2010 +0300 @@ -81,10 +81,22 @@ void UT_LogsDetailsModel::testConstructor() { QVERIFY( mModel ); + QVERIFY( mModel->mSeparatorCollapsed ); + QVERIFY( mModel->mSeparatorIndex == -1 ); } void UT_LogsDetailsModel::testRowCount() { + // No expandable item for duplicate events + QVERIFY( mModel->mSeparatorIndex == -1 ); + QVERIFY( mModel->rowCount(QModelIndex()) == 5 ); + + // Expandable item is collapsed + mModel->mSeparatorIndex = 1; + QVERIFY( mModel->rowCount(QModelIndex()) == 2 ); + + // Expandable item is expanded + mModel->mSeparatorCollapsed = false; QVERIFY( mModel->rowCount(QModelIndex()) == 5 ); } @@ -202,9 +214,16 @@ // Contact not supported mModel->mEvent->setNumber(""); mModel->mEvent->setLogsEventData( 0 ); - contactData = mModel->data(mModel->index(0), LogsModel::RoleContact); + contactData = mModel->data(mModel->index(0), LogsDetailsModel::RoleContact); contact = qVariantValue( contactData ); QVERIFY( !contact ); + + // Expandable separator item + mModel->mSeparatorIndex = 1; + QVariant groupbox = mModel->data(mModel->index(0), LogsDetailsModel::RoleDuplicatesSeparator); + QVERIFY( groupbox.isValid() && !groupbox.toBool() ); + groupbox = mModel->data(mModel->index(1), LogsDetailsModel::RoleDuplicatesSeparator); + QVERIFY( groupbox.isValid() && groupbox.toBool() ); } void UT_LogsDetailsModel::testHeaderData() @@ -373,12 +392,13 @@ model->mDbConnector->mDuplicatedEvents.append(dup1); LogsEvent* dup2 = new LogsEvent; model->mDbConnector->mDuplicatedEvents.append(dup2); + mModel->mSeparatorCollapsed = false; model->duplicatesRead(); - QVERIFY(model->mDetailIcons.count() == 6); - QVERIFY(model->mDetailTexts.count() == 6); + QVERIFY(model->mDetailIcons.count() == 7); + QVERIFY(model->mDetailTexts.count() == 7); // When having multiple date and time items, first item has different heading than others QVERIFY( model->mDetailTexts.at(1).at(0) != dateAndTimeRowHeading ); - QVERIFY( model->mDetailTexts.at(5).at(0) == dateAndTimeRowHeading ); + QVERIFY( model->mDetailTexts.at(6).at(0) == dateAndTimeRowHeading ); delete model; model = 0; @@ -501,3 +521,36 @@ QVERIFY( mModel->updateConfiguration(params) == 0 ); QCOMPARE( mModel->mDetailTexts.count(), 4 ); } + +void UT_LogsDetailsModel::testSetData() +{ + const int separatorIdx = 2; + mModel->mSeparatorCollapsed = false; + mModel->mSeparatorIndex = separatorIdx; + + // Collapsing duplicates ok + QVERIFY( mModel->rowCount(QModelIndex()) == 5 ); + mModel->setData( mModel->index(separatorIdx), QVariant(true) ); + QVERIFY( mModel->rowCount(QModelIndex()) == 3 ); + QVERIFY( mModel->mSeparatorCollapsed ); + + // Expanding fails, wrong separator index + mModel->setData( mModel->index(separatorIdx+2), QVariant(false) ); + QVERIFY( mModel->rowCount(QModelIndex()) == 3 ); + QVERIFY( mModel->mSeparatorCollapsed ); + + // Expanding fails, invalid data + mModel->setData( mModel->index(separatorIdx), QVariant() ); + QVERIFY( mModel->rowCount(QModelIndex()) == 3 ); + QVERIFY( mModel->mSeparatorCollapsed ); + + // Collapsing fails, already collapsed + mModel->setData( mModel->index(separatorIdx), QVariant(true) ); + QVERIFY( mModel->rowCount(QModelIndex()) == 3 ); + QVERIFY( mModel->mSeparatorCollapsed ); + + // Expanding ok + mModel->setData( mModel->index(separatorIdx), QVariant(false) ); + QVERIFY( mModel->rowCount(QModelIndex()) == 5 ); + QVERIFY( !mModel->mSeparatorCollapsed ); +}