diff -r 84d9eb65b26f -r e4592d119491 messagingapp/msgui/appengine/tsrc/testconversationengine/src/testconversationupdatehandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/appengine/tsrc/testconversationengine/src/testconversationupdatehandler.cpp Fri May 14 15:49:35 2010 +0300 @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#include "testconversationupdatehandler.h" +#include "testconversationenginestub.h" +#include "conversationsengine.h" +#include +#include +#include +#include +#include + + +TConversationUpdateHandler::TConversationUpdateHandler(QObject* parent) +: QObject(parent) +{ + +} + + +void TConversationUpdateHandler::SetConversationsViewUpdateHandler() +{ + connect(ConversationsEngine::instance(), + SIGNAL(conversationModelPopulated()), + this, + SLOT(ConversationsViewUpdated())); + + connect(ConversationsEngine::instance(), + SIGNAL(conversationModelUpdated()), + this, + SLOT(ConversationsViewUpdated())); +} + +void TConversationUpdateHandler::SetConversationsSummaryViewUpdateHandler() +{ + connect(ConversationsEngine::instance(), + SIGNAL(conversationListModelPopulated()), + this, + SLOT(ConversationsSummaryViewUpdated())); +} + +void TConversationUpdateHandler::ConversationsViewUpdated() +{ + int loop, entryCount, unRead = 0; + + QWARN("List is updated to ..Conversation Model"); + + //Need to compare the Msglist with stub engine + QStandardItemModel* convModel = ConversationsEngine::instance()->getConversationsModel(); + + //get the list with conversation address, + //as this is common for all the conversation entries + QModelIndexList indexList = convModel->match(convModel->index(0, 0), + ConversationAddress, + S60QConversions::s60DescToQString(TestConversationEngineStub::Instance()->GetContactID()), + -1, // One match + Qt::MatchExactly); + entryCount = indexList.count(); + + qDebug() << "entry count " << entryCount; + qDebug() << "row count " << convModel->rowCount(); + + QCOMPARE(entryCount, + TestConversationEngineStub::Instance()->GetConvListSize()); + + //match all the entries with stub conversation list + for(loop = 0; loop < entryCount; loop++) + { + //check for bunch of conversation fields and attributes + QCOMPARE(convModel->data(indexList[loop], MessageType).toInt(), + TestConversationEngineStub::Instance()->GetMsgType()); + + //compare the message description + QCOMPARE(convModel->data(indexList[loop], BodyText).toString(), + S60QConversions::s60DescToQString( + TestConversationEngineStub::Instance()-> + GetDescription())); + + //check the unread message status + if (convModel->data(indexList[loop], UnReadStatus).toBool()) + { + unRead++; + } + + qDebug() << "Conversation IDs " << convModel->data(indexList[loop], ConvergedMsgId).toInt(); + } + + //check the unread messages count + QCOMPARE(unRead, TestConversationEngineStub::Instance()->GetUnreadCount()); +} + +void TConversationUpdateHandler::ConversationsSummaryViewUpdated() +{ + QWARN("List is updated to ..Conversation Summary Model"); + + //get the conversation client list + RPointerArray& clientList + = TestConversationEngineStub::Instance()->GetConversationClientList(); + + //get the converation summary model + QStandardItemModel* convModel = ConversationsEngine::instance()->getConversationsSummaryModel(); + + //list size and rows in conversation model must be the same + QCOMPARE(convModel->rowCount(), clientList.Count()); + + + //match all the client entries with stub conversation client list + for (int loop = 0; loop < clientList.Count(); loop++) + { + CCsClientConversation* clientConv = clientList[loop]; + + qint64 msgId = clientConv->GetConversationEntryId(); + + //match convId in model, if not found raise error + QModelIndexList indexList = convModel->match(convModel->index(0, 0), + ConversationId, msgId, 1, Qt::MatchExactly); + + qDebug() << "msgId " << msgId; + qDebug() << "index list " << indexList.count(); + + if (indexList.count() == 0) + { + QFAIL("Conv client not found"); + } + + //check the bunch of converation client details + + int msgCnt = clientConv->GetUnreadMessageCount(); + QCOMPARE(convModel->data(indexList[0], UnreadCount).toInt(), msgCnt); + + TDesC* dispName = clientConv->GetDisplayName(); + QCOMPARE(convModel->data(indexList[0], DisplayName).toString(), + S60QConversions::s60DescToQString(*dispName)); + + int contactId = clientConv->GetContactId(); + QCOMPARE(convModel->data(indexList[0], ContactId).toInt(), contactId); + + //need to check the conversation entry + } + } +