messagingapp/msgutils/unidatautils/unidatamodelplugins/unimmsdataplugin/tsrc/testunidatamodelmmsplugin/testunidatamodelmmsplugin.cpp
--- a/messagingapp/msgutils/unidatautils/unidatamodelplugins/unimmsdataplugin/tsrc/testunidatamodelmmsplugin/testunidatamodelmmsplugin.cpp Thu Sep 02 20:23:03 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,496 +0,0 @@
-/*
- * 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 <QtTest/QtTest>
-#include "serviceinfo.h"
-#include <QtDebug>
-#include <QTimer>
-#include <QSignalSpy>
-#include "convergedmessage.h"
-#include <xqconversions.h>
-#include "unidatamodelplugininterface.h"
-#include "unidatamodelloader.h"
-#include <mmsclient.h>
-#include <mmsheaders.h>
-#include <mmssettings.h>
-#include <CMsvMimeHeaders.h>
-#include "convergedmessageaddress.h"
-#include "testunidatamodelmmsplugin.h"
-#include "testunidatamodelmmsplugin.ini"
-#include <f32file.h>
-
-_LIT(KUnixEpoch, "19700000:000000.000000");
-_LIT( KRootPath, "c:\\" );
-
-
-void TestUniDataModelMMSPlugin::initTestCase()
- {
- iObserver = new (ELeave) TestObserverMMS();
-
- // Create a new messaging server session..
- TRAPD(err,iMSession = CMsvSession::OpenSyncL(*iObserver));
- if(err)
- {
- TInt x=err;
- }
- // Create the client mtm registry
- iMtmReg = CClientMtmRegistry::NewL(*iMSession);
-
- // Get the MMS clientmtm
- iMmsClientMtm = (CMmsClientMtm *) iMtmReg->NewMtmL(KUidMsgTypeMultimedia);
-
- User::LeaveIfError( iFs.Connect() );
- iFs.SetSessionPath( KRootPath );
- iSettings = CMmsSettings::NewL();
- iMmsHeaders = CMmsHeaders::NewL(iSettings->MmsVersion());
- iSettings->LoadSettingsL();
- iServiceId = iSettings->Service();
-
- iMessageId = 0;
- pluginLoader = new UniDataModelLoader();
- retTimeStamp = QDateTime::currentDateTime();
- }
-
-void TestUniDataModelMMSPlugin::cleanupTestCase()
- {
- for(TInt i=0; i<idArr.Count();i++)
- {
- iMmsClientMtm->Entry().DeleteL(idArr[i]);
- }
-
- delete iObserver;
- delete iMmsClientMtm;
- delete iMtmReg;
- delete iMSession;
- delete pluginLoader;
- }
-
-
-//---------------------------------------------------------------
-// TestUniDataModelPlugin::init
-//---------------------------------------------------------------
-
-void TestUniDataModelMMSPlugin::init()
-{
-/* iObserver = new (ELeave) TestObserverMMS();
-
- // Create a new messaging server session..
- TRAPD(err,iMSession = CMsvSession::OpenSyncL(*iObserver));
- if(err)
- {
- TInt x=err;
- }
- // Create the client mtm registry
- iMtmReg = CClientMtmRegistry::NewL(*iMSession);
-
- // Get the MMS clientmtm
- iMmsClientMtm = (CMmsClientMtm *) iMtmReg->NewMtmL(KUidMsgTypeMultimedia);
-
- User::LeaveIfError( iFs.Connect() );
- iFs.SetSessionPath( KRootPath );
- iSettings = CMmsSettings::NewL();
- iMmsHeaders = CMmsHeaders::NewL(iSettings->MmsVersion());
- iSettings->LoadSettingsL();
- iServiceId = iSettings->Service();
-
- iMessageId = 0;
- pluginLoader = new UniDataModelLoader();
- retTimeStamp = QDateTime::currentDateTime();*/
-}
-
-//---------------------------------------------------------------
-// TestUniDataModelPlugin::cleanup
-//---------------------------------------------------------------
-void TestUniDataModelMMSPlugin::cleanup()
-{
-
- /*
- for(TInt i=0; i<idArr.Count();i++)
- {
- iMmsClientMtm->Entry().DeleteL(idArr[i]);
- }
-
- delete iObserver;
- delete iMmsClientMtm;
- delete iMtmReg;
- delete iMSession;
- delete pluginLoader;*/
-}
-
-
-void TestUniDataModelMMSPlugin::createMMS(TMsvId pId, TBool subjectField)
- {
- TMsvEntry indexEntry;
- indexEntry.iType = KUidMsvMessageEntry;
- indexEntry.iMtm = KUidMsgTypeMultimedia;
- indexEntry.iServiceId = iServiceId;
- indexEntry.iDate.HomeTime();
-
- // Convert TTime to QDateTime , this will be used for comparing the time of mesage
- // when fetched from datamodel
- TTime unixEpoch(KUnixEpoch);
- TTimeIntervalSeconds seconds;
- TTime timeStamp = indexEntry.iDate;
- timeStamp.SecondsFrom(unixEpoch, seconds);
- retTimeStamp.setTime_t(seconds.Int());
-
-
- TMsvId parentId = pId;
- CMsvEntry* entry = CMsvEntry::NewL(*iMSession,parentId,TMsvSelectionOrdering());
- CleanupStack::PushL(entry);
-
- entry->SetEntryL(parentId);
- entry->CreateL(indexEntry);
- entry->SetEntryL(indexEntry.Id());
- iMmsClientMtm->SwitchCurrentEntryL(entry->EntryId());
-
- //iMmsClientMtm->LoadMessageL();
-
- CMsvStore* store = iMmsClientMtm->Entry().EditStoreL();
- CleanupStack::PushL(store);
-
- iMessageId = indexEntry.Id();
- idArr.Append(iMessageId);
-
- if(subjectField)
- {
- QString subject(TEST_MSG_SUBJECT);
- HBufC* subj = XQConversions::qStringToS60Desc(subject);
- iMmsClientMtm->SetSubjectL(*subj);
- }
-
- //Sender
- QString sender(TEST_MSG_FROM1);
- HBufC* addr = XQConversions::qStringToS60Desc(sender);
-
-
- if (addr)
- {
- CleanupStack::PushL(addr);
- TBuf<32> name;
- name.Copy(addr->Left(32));
- indexEntry.iDetails.Set(name);
-
- iMmsClientMtm->SetSenderL(*addr);
-
- CleanupStack::PopAndDestroy(addr);
- }
-
- //Recipient
- QString recipient(TEST_MSG_RECIEPIENT1);
- HBufC* addr2 = XQConversions::qStringToS60Desc(recipient);
- if (addr2)
- {
- CleanupStack::PushL(addr2);
- iMmsClientMtm->AddAddresseeL(EMsvRecipientTo,*addr2);
- CleanupStack::PopAndDestroy(addr2);
- }
-
- QString recipient2(TEST_MSG_RECIEPIENT2);
- HBufC* addr3 = XQConversions::qStringToS60Desc(recipient2);
- if (addr3)
- {
- CleanupStack::PushL(addr3);
- iMmsClientMtm->AddAddresseeL(EMsvRecipientCc,*addr3);
- CleanupStack::PopAndDestroy(addr3);
- }
-
- QString recipient3(TEST_MSG_RECIEPIENT3);
- HBufC* addr4 = XQConversions::qStringToS60Desc(recipient3);
- if (addr4)
- {
- CleanupStack::PushL(addr4);
- iMmsClientMtm->AddAddresseeL(EMsvRecipientBcc,*addr4);
- CleanupStack::PopAndDestroy(addr4);
- }
-
- //Create Text Attachment
- TMsvAttachmentId attaId = 0;
- TFileName attachmentFile( _L("story.txt") );
- TBufC<12> story = _L( "Hello world!" );
-
- iMmsClientMtm->CreateTextAttachmentL(*store, attaId, story, attachmentFile, ETrue );
- msgSize = iMmsClientMtm->MessageSize();
-
- store->CommitL();
- CleanupStack::PopAndDestroy(); // store
-
- iMmsClientMtm->SaveMessageL();
- }
-
-void TestUniDataModelMMSPlugin::testInboxMessage()
- {
- createMMS(KMsvGlobalInBoxIndexEntryIdValue,ETrue);
-
- // Get the MMS data modelplugin
- pluginInterface = pluginLoader->getDataModelPlugin(ConvergedMessage::Mms);
-
- pluginInterface->setMessageId(iMessageId);
-
- int size = pluginInterface->messageSize();
- QVERIFY(size == msgSize);
-
- QVERIFY(pluginInterface->timeStamp() == retTimeStamp);
-
-
- //Fetch the To List
- ConvergedMessageAddressList recipientList;
- pluginInterface->toRecipientList(recipientList);
- QVERIFY(recipientList.count() != 0);
-
- ConvergedMessageAddressList recipientList2;
- pluginInterface->ccRecipientList(recipientList2);
- QVERIFY(recipientList2.count() != 0);
-
- ConvergedMessageAddressList recipientList3;
- pluginInterface->bccRecipientList(recipientList3);
- QVERIFY(recipientList3.count() != 0);
-
- QString recepient(TEST_MSG_FROM1);
- QString fromaddress;
- pluginInterface->fromAddress(fromaddress);
- QVERIFY(recepient == fromaddress);
-
- UniMessageInfoList attList = pluginInterface->attachmentList();
- QVERIFY(attList.count() != 0);
-
- TInt attCount =0;
- attCount = pluginInterface->attachmentCount();
- QVERIFY(attCount != 0);
-
- MsgPriority priority = pluginInterface->messagePriority();
- // Normal priority
- qDebug() << "prority" << priority;
- QVERIFY(priority == 1);
-
- QVERIFY(pluginInterface->objectCount() == 1);
-
- UniMessageInfoList objectlist = pluginInterface->objectList();
- QVERIFY(!objectlist.isEmpty());
-
- QVERIFY(pluginInterface->slideCount() == 0);
-
- TRAPD(err, iMmsClientMtm->SwitchCurrentEntryL(KMsvGlobalInBoxIndexEntryId));
- }
-
-void TestUniDataModelMMSPlugin::testOutboxMessage()
- {
- createMMS(KMsvGlobalOutBoxIndexEntryIdValue,EFalse);
-
- // Get the MMS data modelplugin
- pluginInterface = pluginLoader->getDataModelPlugin(ConvergedMessage::Mms);
- QVERIFY(pluginInterface->messageType()=="mms");
-
- pluginInterface->setMessageId(iMessageId);
-
- int size = pluginInterface->messageSize();
- QVERIFY(size == msgSize);
-
- QVERIFY(pluginInterface->timeStamp() == retTimeStamp);
-
-
- //Fetch the To List
- ConvergedMessageAddressList recipientList;
- pluginInterface->toRecipientList(recipientList);
- QVERIFY(recipientList.count() != 0);
-
- ConvergedMessageAddressList recipientList2;
- pluginInterface->ccRecipientList(recipientList2);
- QVERIFY(recipientList2.count() != 0);
-
- ConvergedMessageAddressList recipientList3;
- pluginInterface->bccRecipientList(recipientList3);
- QVERIFY(recipientList3.count() != 0);
-
- QString recepient(TEST_MSG_FROM1);
- QString fromaddress;
- pluginInterface->fromAddress(fromaddress);
- QVERIFY(recepient == fromaddress);
-
- UniMessageInfoList attList = pluginInterface->attachmentList();
- QVERIFY(attList.count() != 0);
-
- TInt attCount =0;
- attCount = pluginInterface->attachmentCount();
- QVERIFY(attCount != 0);
-
- MsgPriority priority = pluginInterface->messagePriority();
- // Normal priority
- qDebug() << "prority" << priority;
- QVERIFY(priority == 1);
-
- QVERIFY(pluginInterface->objectCount() == 1);
-
- UniMessageInfoList objectlist = pluginInterface->objectList();
- QVERIFY(!objectlist.isEmpty());
-
- TRAPD(err, iMmsClientMtm->SwitchCurrentEntryL(KMsvGlobalInBoxIndexEntryId));
- }
-
-
-void TestUniDataModelMMSPlugin::createInboxImageMMS()
- {
- TMsvEntry indexEntry;
- indexEntry.iType = KUidMsvMessageEntry;
- indexEntry.iMtm = KUidMsgTypeMultimedia;
- indexEntry.iServiceId = iServiceId;
- indexEntry.iDate.HomeTime();
-
- // Convert TTime to QDateTime , this will be used for comparing the time of mesage
- // when fetched from datamodel
- TTime unixEpoch(KUnixEpoch);
- TTimeIntervalSeconds seconds;
- TTime timeStamp = indexEntry.iDate;
- timeStamp.SecondsFrom(unixEpoch, seconds);
- retTimeStamp.setTime_t(seconds.Int());
-
-
- TMsvId parentId = KMsvGlobalInBoxIndexEntryIdValue;
- CMsvEntry* entry = CMsvEntry::NewL(*iMSession,parentId,TMsvSelectionOrdering());
- CleanupStack::PushL(entry);
-
- entry->SetEntryL(parentId);
- entry->CreateL(indexEntry);
- entry->SetEntryL(indexEntry.Id());
- iMmsClientMtm->SwitchCurrentEntryL(entry->EntryId());
-
- //iMmsClientMtm->LoadMessageL();
-
- CMsvStore* store = iMmsClientMtm->Entry().EditStoreL();
- CleanupStack::PushL(store);
-
- iMessageId = indexEntry.Id();
- idArr.Append(iMessageId);
-
- //Sender
- QString sender(TEST_MSG_FROM1);
- HBufC* addr = XQConversions::qStringToS60Desc(sender);
-
- if (addr)
- {
- CleanupStack::PushL(addr);
- TBuf<32> name;
- name.Copy(addr->Left(32));
- indexEntry.iDetails.Set(name);
-
- iMmsClientMtm->SetSenderL(*addr);
-
- CleanupStack::PopAndDestroy(addr);
- }
-
- //Recipient
- QString recipient(TEST_MSG_RECIEPIENT1);
- HBufC* addr2 = XQConversions::qStringToS60Desc(recipient);
- if (addr2)
- {
- CleanupStack::PushL(addr2);
- iMmsClientMtm->AddAddresseeL(EMsvRecipientTo,*addr2);
- CleanupStack::PopAndDestroy(addr2);
- }
-
-
- // Attachments are added to the message entry one by one
-
- TMsvAttachmentId attaId = 0;
-
- RFile attaFile;
- // Set filename of attachment
- TFileName name( _L("C:\\pictures\\photo.jpg") );
-
- CMsvMimeHeaders* mimeHeaders = CMsvMimeHeaders::NewL();
- CleanupStack::PushL( mimeHeaders );
-
- // Set values to mime headers
- mimeHeaders->SetContentTypeL( _L8( "image") );
- mimeHeaders->SetContentSubTypeL( _L8( "jpeg" ) );
-
- _LIT8(KMimeType, "image/jpeg");
- TBufC8<10> mimeType(KMimeType);
- // CreateAttachment2L will set the content type to attachment Info
-
- // Open the attachment file for reading
- attaFile.Open( iFs, name, EFileShareReadersOnly | EFileRead );
- CleanupClosePushL(attaFile);
-
- CMsvAttachment* attaInfo = CMsvAttachment::NewL(CMsvAttachment::EMsvFile);
- // attaInfo ownerhip will be transferred to Attachment Manager.
- // It must not be pushed onto the cleanupStack before calling
- // CreateAttachment2L.
-
-
- iMmsClientMtm->CreateAttachment2L(*store, attaFile,mimeType,*mimeHeaders,attaInfo,attaId);
- // Now Attachment Manager owns the attaInfo
- attaInfo = NULL;
-
- CleanupStack::PopAndDestroy(); // attaFile.Close()
- CleanupStack::PopAndDestroy(); // mimeHeaders
-
- // Several attachments can be added before committing the store
-
- // Store must be committed before it is destroyed
- store->CommitL();
- CleanupStack::PopAndDestroy(); // store
-
- iMmsClientMtm->SaveMessageL();
- }
-
-void TestUniDataModelMMSPlugin::testInboxImageMMSMessage()
- {
- createInboxImageMMS();
-
- // Get the MMS data modelplugin
- pluginInterface = pluginLoader->getDataModelPlugin(ConvergedMessage::Mms);
-
- pluginInterface->setMessageId(iMessageId);
-
- int size = pluginInterface->messageSize();
-
- QVERIFY(pluginInterface->timeStamp() == retTimeStamp);
-
-
- //Fetch the To List
- ConvergedMessageAddressList recipientList;
- pluginInterface->toRecipientList(recipientList);
- QVERIFY(recipientList.count() != 0);
-
- QString recepient(TEST_MSG_FROM1);
- QString fromaddress;
- pluginInterface->fromAddress(fromaddress);
- QVERIFY(recepient == fromaddress);
-
- TRAPD(err, iMmsClientMtm->SwitchCurrentEntryL(KMsvGlobalInBoxIndexEntryId));
- }
-
-
-
-void TestUniDataModelMMSPlugin::testGetPluginWithoutLoading()
-{
- pluginInterface = pluginLoader->getDataModelPlugin(ConvergedMessage::Mms);
- QVERIFY(pluginInterface == NULL);
-
- // Try to geta plugin for a differnt message type
- pluginInterface = pluginLoader->getDataModelPlugin(ConvergedMessage::BioMsg);
- QVERIFY(pluginInterface == NULL);
-}
-
-
-void TestObserverMMS::HandleSessionEventL(TMsvSessionEvent /*aEvent*/,
- TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
-{
-}
-
-
-