// Copyright (c) 2003-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:
//
#if !defined(__T_SECONDNAME_H__)
#define __T_SECONDNAME_H__
#include <e32base.h>
#include <e32def.h>
#include <e32test.h>
#include <f32file.h>
#include <s32file.h>
#include <s32mem.h>
#include <cntdb.h>
#include <cntdef.h>
#include <cntitem.h>
#include <cntfield.h>
#include <cntfldst.h>
#include <cntvcard.h>
#include <vtoken.h>
/** Parameter object to encapsulate test data. */
class TTestData
{
public:
TTestData(const TDesC8& aImportVCard, const TDesC8& aUpdateVCard,
const TDesC8& aVersitToken, const TUid aFieldUid,
const TDesC& aFieldContent, const TDesC& aUpdatedFieldContent,
const TDesC& aImportFilename, const TDesC& aExportFilename);
void SetVCardMapping(TUid aVCardMapping);
public:
const TDesC8& iImportVCard;
const TDesC8& iUpdateVCard;
const TDesC8& iVersitToken;
const TUid iFieldUid;
const TDesC& iFieldContent;
const TDesC& iUpdatedFieldContent;
const TDesC& iImportFilename;
const TDesC& iExportFilename;
TUid iVCardMapping;
};
/** Base class for new contact field vCard tests. */
class CNewFieldTestBase : public CBase
{
public:
~CNewFieldTestBase();
protected:
CParserVCard* CreateVCardLC(const TDesC8& aContents);
void WriteVCardL(const TDesC& aFileName, CParserVCard& aVCard);
TBool CheckSingleFieldValue(CContactItemFieldSet& aFieldSet, TTestData& aTd, const TDesC& aExpectedValue);
TContactItemId CreateContactL();
CParserVCard* ParseVCardLC(const TDesC& aFilename);
CArrayPtr<CContactItem>* ImportVCardLC(const TDesC& aFilename, TBool aConnectWhitespaceOption = ETrue);
void ExportVCardL(const TDesC& aFilename, CArrayPtr<CContactItem>* aContactArray);
protected:
void TestImportL(TTestData& aTd);
void TestExportL(TTestData& aTd);
void TestUpdateL(TTestData& aTd);
protected:
CNewFieldTestBase(RTest& aTest, RFs& aFs);
CNewFieldTestBase();
void BaseConstructL();
protected:
CContactDatabase* iDb;
RTest& iTest;
RFs& iFs;
};
/** Tests for second name field (X-EPOCSECONDNAME). */
class CSecondNameTest : public CNewFieldTestBase
{
public:
static CSecondNameTest* NewLC(RTest& aTest, RFs& aFs);
void RunTestsL();
~CSecondNameTest();
private:
CSecondNameTest(RTest& aTest, RFs& aFs);
void ConstructL();
};
/** Tests for SIP identity field (X-SIP). */
class CSipIdTest : public CNewFieldTestBase
{
public:
static CSipIdTest* NewLC(RTest& aTest, RFs& aFs);
void RunTestsL();
~CSipIdTest();
private:
CSipIdTest(RTest& aTest, RFs& aFs);
void ConstructL();
void RunTestCaseL(const TDesC8& aImportVCard, const TDesC8& aUpdateVCard, TUid aVCardMapping);
};
/** Tests for Wireless Village identity field (X-WV-ID). */
class CWvIdTest : public CNewFieldTestBase
{
public:
static CWvIdTest* NewLC(RTest& aTest, RFs& aFs);
void RunTestsL();
~CWvIdTest();
private:
CWvIdTest(RTest& aTest, RFs& aFs);
void ConstructL();
};
/** Test for fields limitation at import time - related to defect INC077129 */
class CFieldLimitationTest : public CNewFieldTestBase
{
public:
static CFieldLimitationTest* NewLC(RTest& aTest, RFs& aFs);
void RunTestsL();
~CFieldLimitationTest();
private:
CFieldLimitationTest(RTest& aTest, RFs& aFs);
void ConstructL();
void RunTestCaseL(const TDesC8& aImportVCard, const TDesC8& aVersitToken, TUid aCardMapping, const TDesC16& aExpectedValue);
};
#endif