phonesrv_plat/voice_mailbox_number_api/tsrc/mt_vmbxengine.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 19 7d48bed6ce0c
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2009-2010 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:  Implementation of the Mt_vmbxEngine class
*
*/

//qt
#include <QtGui>
//hb
#include <hbapplication.h>
#include <hbmainwindow.h>
#include <hbview.h>
//symbian
#include <e32base.h>

#include <cvoicemailbox.h>
#include <cvoicemailboxentry.h>
#include <voicemailboxdefs.h>
#include <mvoicemailboxobserver.h>

#include "mt_vmbxengine.h"


/*------------------------------------------------------------------------------
This module testing project links to vmbxengine.dll.
------------------------------------------------------------------------------*/

// -----------------------------------------------------------------------------
// Constants for verifying test case results
// -----------------------------------------------------------------------------
//
_LIT(KVmbxNumber,"123456789");

 // -----------------------------------------------------------------------------
// Mt_SatAppEngine::Mt_vmbxEngine
// Default constructor, remember to null new members here.
// -----------------------------------------------------------------------------
//
Mt_vmbxEngine::Mt_vmbxEngine()
{
    qDebug("Mt_vmbxEngine::Mt_vmbxEngine >");
    qDebug("Mt_vmbxEngine::Mt_vmbxEngine <");
}

// -----------------------------------------------------------------------------
// Mt_SatAppEngine::~Mt_SatAppEngine
// -----------------------------------------------------------------------------
Mt_vmbxEngine::~Mt_vmbxEngine()
{
    qDebug("Mt_vmbxEngine::~Mt_vmbxEngine >");
    qDebug("Mt_vmbxEngine::~Mt_vmbxEngine <");
}


// -----------------------------------------------------------------------------
// Mt_SatAppEngine::initTestCase
// QTestLib initialization method, called for each test case.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::initTestCase()
{
    qDebug("Mt_vmbxEngine::initTestCase >");
    qDebug("Mt_vmbxEngine::initTestCase <");
}


// -----------------------------------------------------------------------------
// Mt_SatAppEngine::cleanupTestCase
// QTestLib cleanup method, called for each test case.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::cleanupTestCase()
{
    qDebug("Mt_SatAppEngine::cleanupTestCase >");
    qDebug("Mt_SatAppEngine::cleanupTestCase <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testCreateVmbxEntry
// testCreateVmbxEntry test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testCreateVmbxEntry()
{
    qDebug("Mt_vmbxEngine::testCreateVmbxEntry >");
    TRAPD( err, mVmbxEntry = CVoiceMailboxEntry::NewL());
    QVERIFY2(KErrNone == err, "create CVoiceMailboxEntry failed ");
    qDebug("Mt_vmbxEngine::testCreateVmbxEntry <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testCreateVmbxMailbox
// CreateVmbxMailbox test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testCreateVmbxMailbox()
{
    qDebug("Mt_vmbxEngine::testCreateVmbxMailbox >");
    TRAPD( err, mVmbxEngine = CVoiceMailbox::NewL());
    QVERIFY2(KErrNone == err, "create CVoiceMailbox failed ");
    qDebug("Mt_vmbxEngine::testCreateVmbxMailbox <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testCheckConfiguration
// CreateVmbxMailbox test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testCheckConfiguration()
{
    qDebug("Mt_vmbxEngine::testCheckConfiguration >");
    TVoiceMailboxParams params;
    params.iType = EVmbxVoice;
    TBool result = 
    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
    if (!result) {
    qDebug("Mt_vmbxEngine::testCheckConfiguration: voice not allowed changed");
    QEXPECT_FAIL("","testCheckConfiguration voice not allowed changed", Continue);
    }
    params.iType = EVmbxVideo;
    result = 
    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
    if (!result) {
    qDebug( "Mt_vmbxEngine::testCheckConfiguration: video not allowed changed");
    QEXPECT_FAIL("","testCheckConfiguration video not allowed changed", Continue);
    }
    params.iType = EVmbxVoip;
    result = 
    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
    if (result) {
    QFAIL ("testCheckConfiguration voip failed");
    }
    qDebug("Mt_vmbxEngine::testCheckConfiguration <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testCreateWindow
// testCreateWindow test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testCreateWindow()
{
    qDebug("Mt_vmbxEngine::testCreateWindow >");
    mWindow = new HbMainWindow();
    QVERIFY(mWindow);
    mWindow->show();
    qDebug("Mt_vmbxEngine::testCreateWindow <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testSaveProvisionedEntry
// testSaveProvisionedEntry test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testSaveProvisionedEntry()
{
    qDebug("Mt_vmbxEngine::testSaveProvisionedEntry >");
    QVERIFY(mVmbxEngine);
    QVERIFY(mVmbxEntry);
    TVoiceMailboxParams params;
    params.iType = EVmbxVoice;
    CVoiceMailboxEntry* storedEntry = 0;
    TInt result(0);
    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)) {
        qDebug("Mt_vmbxEngine::testSaveProvisionedEntry voice");
        result = mVmbxEngine->GetStoredEntry(params,storedEntry);
        if (KErrNotFound == result) {
            mVmbxEntry->SetVmbxNumber(KNullDesC);
        } else if(KErrNone == result) {
            mVmbxEntry->SetVmbxNumber(KVmbxNumber);
        } else {
            QFAIL("Mt_vmbxEngine::testSaveProvisionedEntry: voice \
                     GetStoredEntry failed");
        }
        mVmbxEntry->SetVoiceMailboxType(EVmbxVoice);
        result = mVmbxEngine->SaveProvisionedEntry(*mVmbxEntry);
        QCOMPARE(result, KErrNone);
    }
    params.iType = EVmbxVideo;
    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)) {
        qDebug("Mt_vmbxEngine::testSaveProvisionedEntry video");
        result = mVmbxEngine->GetStoredEntry(params,storedEntry);
        if (KErrNotFound == result) {
            mVmbxEntry->SetVmbxNumber(KNullDesC);
        } else if (KErrNone == result){
            TPtrC vmbxNumber(KNullDesC);
            storedEntry->GetVmbxNumber(vmbxNumber);
            mVmbxEntry->SetVmbxNumber(vmbxNumber);
        } else {
            QFAIL("Mt_vmbxEngine::testSaveProvisionedEntry video \
                    GetStoredEntry failed");
        }
        mVmbxEntry->SetVoiceMailboxType(EVmbxVideo);
        result = mVmbxEngine->SaveProvisionedEntry(*mVmbxEntry);
        QCOMPARE(result, KErrNone);
    }
    delete storedEntry;
    storedEntry = 0;
    qDebug("Mt_vmbxEngine::testSaveProvisionedEntry <");    
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testQueryVmbxMailbox
// CreateVmbxMailbox test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testQueryVmbxMailbox()
{
    qDebug("Mt_vmbxEngine::testQueryVmbxMailbox >");
    TVoiceMailboxParams params;
    // test QueryVmbxType
    TInt result = mVmbxEngine->QueryVmbxType(params);
    CVoiceMailboxEntry* vmbxEntry = 0;
    if (KErrNotFound == result) {
        qDebug("Mt_vmbxEngine::testQueryVmbxMailbox no number defined");
        // test QueryNewEntry
        result = mVmbxEngine->QueryNewEntry( params, vmbxEntry );
        //QVERIFY2(KErrNone == result, "QueryNewEntry Failed.");
        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)
            && KErrNone == result) {
        // test SaveEntry
        result = mVmbxEngine->SaveEntry( *vmbxEntry );
        QVERIFY2(KErrNone == result, "SaveEntry Failed.");
        }
    } else if (KErrNone == result) {
        qDebug("Mt_vmbxEngine::testQueryVmbxMailbox change number");
        // test change entry
        result = mVmbxEngine->QueryChangeEntry( params, vmbxEntry );
        //QVERIFY2(KErrNone == result, "QueryChangeEntry Failed.");
        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi) 
            && KErrNone == result ) {
            result = mVmbxEngine->SaveEntry( *vmbxEntry );
            QVERIFY2(KErrNone == result, "SaveEntry Failed.");
            // test GetStoredEntry
            CVoiceMailboxEntry* storedEntry = 0;
            result = mVmbxEngine->GetStoredEntry(params,storedEntry);
            QVERIFY2(KErrNone == result, "GetStoredEntry Failed.");
            TPtrC storedNumber(KNullDesC);
            result = storedEntry->GetVmbxNumber(storedNumber);
            QVERIFY2(KErrNone == result, "GetVmbxNumber Failed.");
            TPtrC vmbxNumber(KNullDesC);
            vmbxEntry->GetVmbxNumber(vmbxNumber);
            QVERIFY2(storedNumber.Compare(vmbxNumber)==0, "number not match");
            delete storedEntry;
            storedEntry = 0;
        }
    } else {
        QFAIL("Mt_vmbxEngine::testQueryVmbxMailbox: QueryVmbxType failed");
    }
    delete vmbxEntry;
    vmbxEntry = 0;
    qDebug("Mt_vmbxEngine::testQueryVmbxMailbox <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testNotifyVmbxNumberChange
// testNotifyVmbxNumberChange test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testNotifyVmbxNumberChangeCancel()
{
    qDebug("Mt_vmbxEngine::testNotifyVmbxNumberChangeCancel >");
    mVmbxEngine->NotifyVmbxNumberChangeCancel();
    qDebug("Mt_vmbxEngine::testNotifyVmbxNumberChangeCancel <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testDeleteWindow
// testDeleteWindow test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testDeleteWindow()
{
    qDebug("Mt_vmbxEngine::testDeleteWindow >");
    delete mWindow;
    mWindow = 0;
    qDebug("Mt_vmbxEngine::testDeleteWindow <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testDeleteVmbxMailbox
// testDeleteVmbxMailbox test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testDeleteVmbxMailbox()
{
    qDebug("Mt_vmbxEngine::testDeleteVmbxMailbox >");
    delete mVmbxEngine;
    mVmbxEngine = 0;
    qDebug("Mt_vmbxEngine::testDeleteVmbxMailbox <");
}

// -----------------------------------------------------------------------------
// Mt_vmbxEngine::testDeleteVmbxEntry
// testDeleteVmbxEntry test case
// Connects to test object signal and verifies received data.
// -----------------------------------------------------------------------------
void Mt_vmbxEngine::testDeleteVmbxEntry()
{
    qDebug("Mt_vmbxEngine::testDeleteVmbxEntry >");
    delete mVmbxEntry;
    mVmbxEntry = 0;
    qDebug("Mt_vmbxEngine::testDeleteVmbxEntry <");
}

// -----------------------------------------------------------------------------
// main()
// Main method implemented for directing test output to a file.
// -----------------------------------------------------------------------------
int main(int argc, char *argv[])
    {
    qDebug("Mt_vmbxEngine.cpp: main() >");
    QApplication app(argc, argv);

    qDebug("Mt_vmbxEngine.cpp: Mt_vmbxEngine");
    Mt_vmbxEngine tc; 
    char *pass[3];
    pass[0] = argv[0];
    pass[1] = "-o"; 
    pass[2] = "c:\\logs\\vmbx\\mt_vmbxengine.txt";
    const int result = QTest::qExec(&tc, 3, pass);

    qDebug("Mt_vmbxEngine.cpp: main() <, result=%d", result);
    return result;
    } 

//End file