btservices_plat/obex_service_utils_api/tsrc/src/ObexServAPItestBlocks.cpp
author hgs
Mon, 12 Jul 2010 18:51:05 +0300
changeset 42 b72428996822
parent 32 19bd632b5100
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  ?Description
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
// INCLUDE FILES
hgs
parents:
diff changeset
    21
#include <e32svr.h>
hgs
parents:
diff changeset
    22
#include <StifParser.h>
hgs
parents:
diff changeset
    23
#include <Stiftestinterface.h>
hgs
parents:
diff changeset
    24
#include <UiklafInternalCRKeys.h>
hgs
parents:
diff changeset
    25
#include <UikonInternalPSKeys.h>
hgs
parents:
diff changeset
    26
#include <obex.h>
hgs
parents:
diff changeset
    27
#include "testlogger.h"
hgs
parents:
diff changeset
    28
#include "ObexServAPItest.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include    <btengdomaincrkeys.h> 
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// CONSTANTS
hgs
parents:
diff changeset
    33
const TInt    KBufferSize = 0x4000;  // 16kB
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
// Defined to coincide with the definition in btmsgtypeuid.h 
hgs
parents:
diff changeset
    36
const TUid KUidMsgTypeBt                 = {0x10009ED5};
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    42
// CObexServAPItest::Delete
hgs
parents:
diff changeset
    43
// Delete here all resources allocated and opened from test methods. 
hgs
parents:
diff changeset
    44
// Called from destructor. 
hgs
parents:
diff changeset
    45
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    46
//
hgs
parents:
diff changeset
    47
void CObexServAPItest::Delete() 
hgs
parents:
diff changeset
    48
    {
hgs
parents:
diff changeset
    49
    delete iObexObject;
hgs
parents:
diff changeset
    50
    iObexObject = NULL;
hgs
parents:
diff changeset
    51
    delete iBuf;
hgs
parents:
diff changeset
    52
    iBuf = NULL;
hgs
parents:
diff changeset
    53
    iRFs.Close(); 
hgs
parents:
diff changeset
    54
    }
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    57
// CObexServAPItest::RunMethodL
hgs
parents:
diff changeset
    58
// Run specified method. Contains also table of test mothods and their names.
hgs
parents:
diff changeset
    59
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    60
//
hgs
parents:
diff changeset
    61
TInt CObexServAPItest::RunMethodL( 
hgs
parents:
diff changeset
    62
    CStifItemParser& aItem ) 
hgs
parents:
diff changeset
    63
    {
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
    static TStifFunctionInfo const KFunctions[] =
hgs
parents:
diff changeset
    66
        {  
hgs
parents:
diff changeset
    67
        // Copy this line for every implemented function.
hgs
parents:
diff changeset
    68
        // First string is the function name used in TestScripter script file.
hgs
parents:
diff changeset
    69
        // Second is the actual implementation member function. 
hgs
parents:
diff changeset
    70
        ENTRY( "GetFileSystemStatus", CObexServAPItest::GetFileSystemStatusL ),
hgs
parents:
diff changeset
    71
        ENTRY( "GetMmcFileSystemStatus", CObexServAPItest::GetMmcFileSystemStatusL ),
hgs
parents:
diff changeset
    72
        ENTRY( "GetMessageCentreDriveL", CObexServAPItest::GetMessageCentreDriveL ),
hgs
parents:
diff changeset
    73
        ENTRY( "CreateDefaultMtmServiceL", CObexServAPItest::CreateDefaultMtmServiceL ),
hgs
parents:
diff changeset
    74
        ENTRY( "GetCenRepKeyIntValueL", CObexServAPItest::GetCenRepKeyIntValueL ),
hgs
parents:
diff changeset
    75
        ENTRY( "GetPubSubKeyIntValue", CObexServAPItest::GetPubSubKeyIntValueL ),
hgs
parents:
diff changeset
    76
        ENTRY( "CreateOutBoxEntry", CObexServAPItest::CreateOutBoxEntryL ),
hgs
parents:
diff changeset
    77
        ENTRY( "RemoveOutBoxEntry", CObexServAPItest::RemoveOutBoxEntryL ),
hgs
parents:
diff changeset
    78
        ENTRY( "SaveObjToInbox", CObexServAPItest::SaveObjToInboxL ),
hgs
parents:
diff changeset
    79
        ENTRY( "CreateEntryToInbox", CObexServAPItest::CreateEntryToInboxL ),
hgs
parents:
diff changeset
    80
        ENTRY( "SaveRFileObjectToInbox", CObexServAPItest::SaveRFileObjectToInboxL ),
hgs
parents:
diff changeset
    81
        ENTRY( "RemoveObjectFromInbox", CObexServAPItest::RemoveObjectL ),
hgs
parents:
diff changeset
    82
        ENTRY( "GetCenRepKeyStringValueL", CObexServAPItest::GetCenRepKeyStringValueL), // JHä 
hgs
parents:
diff changeset
    83
        ENTRY( "CreateReceiveBufferAndRFileL", CObexServAPItest::CreateReceiveBufferAndRFileL), // JHä 
hgs
parents:
diff changeset
    84
        ENTRY( "RemoveTemporaryRFileL", CObexServAPItest::RemoveTemporaryRFileL), // JHä 
hgs
parents:
diff changeset
    85
        ENTRY( "SaveFileToFileSystemL", CObexServAPItest::SaveFileToFileSystemL), // JHä 
hgs
parents:
diff changeset
    86
        ENTRY( "AddEntryToInboxL", CObexServAPItest::AddEntryToInboxL), // JHä 
hgs
parents:
diff changeset
    87
        ENTRY( "UpdateEntryAttachmentL", CObexServAPItest::UpdateEntryAttachmentL), // JHä 
hgs
parents:
diff changeset
    88
        };
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
    const TInt count = sizeof( KFunctions ) / 
hgs
parents:
diff changeset
    91
                        sizeof( TStifFunctionInfo );
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
    return RunInternalL( KFunctions, count, aItem );
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
 // -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    98
// CBtApiTest::TestCompleted
hgs
parents:
diff changeset
    99
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   100
//  
hgs
parents:
diff changeset
   101
void CObexServAPItest::TestCompleted( TInt aErr, const TUint8* aFunc, const TDesC& aArg )
hgs
parents:
diff changeset
   102
    {
hgs
parents:
diff changeset
   103
    iTestLogger->LogResult( (TPtrC8( aFunc )), aArg, aErr );
hgs
parents:
diff changeset
   104
    Signal( aErr );
hgs
parents:
diff changeset
   105
    }
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   109
// CObexServAPItest::GetFileSystemStatusL
hgs
parents:
diff changeset
   110
// Test code for getting file system status.
hgs
parents:
diff changeset
   111
// (other items were commented in a header).
hgs
parents:
diff changeset
   112
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   113
//
hgs
parents:
diff changeset
   114
TInt CObexServAPItest::GetFileSystemStatusL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   115
    {
hgs
parents:
diff changeset
   116
    // Print to log file
hgs
parents:
diff changeset
   117
    TInt retVal=TObexUtilsMessageHandler::GetFileSystemStatus();
hgs
parents:
diff changeset
   118
    if (retVal == 0 || retVal == KErrDiskFull)
hgs
parents:
diff changeset
   119
        {
hgs
parents:
diff changeset
   120
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetFileSystemStatusL"));
hgs
parents:
diff changeset
   121
        }
hgs
parents:
diff changeset
   122
    else
hgs
parents:
diff changeset
   123
        {
hgs
parents:
diff changeset
   124
        TestCompleted( retVal, TLFUNCLOG, _L("Error getting files ystem status"));    
hgs
parents:
diff changeset
   125
        }    
hgs
parents:
diff changeset
   126
    return KErrNone;
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
    }
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   131
// CObexServAPItest::GetMmcFileSystemStatusL
hgs
parents:
diff changeset
   132
// Test code for getting mmc file system status.
hgs
parents:
diff changeset
   133
// (other items were commented in a header).
hgs
parents:
diff changeset
   134
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   135
//
hgs
parents:
diff changeset
   136
TInt CObexServAPItest::GetMmcFileSystemStatusL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   137
    {
hgs
parents:
diff changeset
   138
    TInt retVal=TObexUtilsMessageHandler::GetMmcFileSystemStatus();
hgs
parents:
diff changeset
   139
    if (retVal == 0 || retVal == KErrDiskFull)
hgs
parents:
diff changeset
   140
        {
hgs
parents:
diff changeset
   141
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetFileSystemStatusL"));
hgs
parents:
diff changeset
   142
        }
hgs
parents:
diff changeset
   143
    else
hgs
parents:
diff changeset
   144
        {
hgs
parents:
diff changeset
   145
        TestCompleted( retVal, TLFUNCLOG, _L("Error getting files ystem status"));    
hgs
parents:
diff changeset
   146
        }    
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    return KErrNone;
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
    }
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   153
// CObexServAPItest::GetMessageCentreDriveL
hgs
parents:
diff changeset
   154
// Test code for getting message center drive. 
hgs
parents:
diff changeset
   155
// (other items were commented in a header).
hgs
parents:
diff changeset
   156
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   157
//
hgs
parents:
diff changeset
   158
TInt CObexServAPItest::GetMessageCentreDriveL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   159
    {
hgs
parents:
diff changeset
   160
    
hgs
parents:
diff changeset
   161
    TInt retVal = TObexUtilsMessageHandler::GetMessageCentreDriveL();
hgs
parents:
diff changeset
   162
    if (retVal >= 0 )
hgs
parents:
diff changeset
   163
        {
hgs
parents:
diff changeset
   164
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetMessageCentreDrive"));
hgs
parents:
diff changeset
   165
        }
hgs
parents:
diff changeset
   166
    else
hgs
parents:
diff changeset
   167
        {
hgs
parents:
diff changeset
   168
        TestCompleted( retVal, TLFUNCLOG, _L("GetMessageCentreDrive failed"));    
hgs
parents:
diff changeset
   169
        }    
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
    return KErrNone;
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
    }
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   176
// CObexServAPItest::CreateDefaultMtmServiceL
hgs
parents:
diff changeset
   177
// Test code for creating Default MTM services.
hgs
parents:
diff changeset
   178
// (other items were commented in a header).
hgs
parents:
diff changeset
   179
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   180
//
hgs
parents:
diff changeset
   181
TInt CObexServAPItest::CreateDefaultMtmServiceL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   182
    {
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
    TRAPD(error, TObexUtilsMessageHandler::CreateDefaultMtmServiceL(KUidMsgTypeBt) );
hgs
parents:
diff changeset
   185
    if (error == KErrNone)
hgs
parents:
diff changeset
   186
        {
hgs
parents:
diff changeset
   187
        TestCompleted( KErrNone, TLFUNCLOG, _L("CreateDefaultMtmServiceL"));        
hgs
parents:
diff changeset
   188
        }
hgs
parents:
diff changeset
   189
    else
hgs
parents:
diff changeset
   190
        {
hgs
parents:
diff changeset
   191
        TestCompleted( error, TLFUNCLOG, _L("CreateDefaultMtmServiceL"));                       
hgs
parents:
diff changeset
   192
        }
hgs
parents:
diff changeset
   193
    return KErrNone;
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
    }
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   198
// CObexServAPItest::GetCenRepKeyIntValueL
hgs
parents:
diff changeset
   199
// Test code for Getting CenRep key.    
hgs
parents:
diff changeset
   200
// (other items were commented in a header).
hgs
parents:
diff changeset
   201
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   202
//
hgs
parents:
diff changeset
   203
TInt CObexServAPItest::GetCenRepKeyIntValueL( CStifItemParser&  /*aItem*/ )  // JHä note: Is return code handling done right? 
hgs
parents:
diff changeset
   204
    {
hgs
parents:
diff changeset
   205
    TInt limit=0;    
hgs
parents:
diff changeset
   206
    TInt error=0;
hgs
parents:
diff changeset
   207
    TRAPD(leaveVal, error = TObexUtilsMessageHandler::GetCenRepKeyIntValueL(KCRUidUiklaf,
hgs
parents:
diff changeset
   208
                                                                KUikOODDiskCriticalThreshold,
hgs
parents:
diff changeset
   209
                                                                limit));
hgs
parents:
diff changeset
   210
    if( leaveVal != KErrNone ) 
hgs
parents:
diff changeset
   211
        {
hgs
parents:
diff changeset
   212
        TestCompleted( leaveVal, TLFUNCLOG, _L("GetCenRepKeyIntValueL leaves"));                       
hgs
parents:
diff changeset
   213
        }    
hgs
parents:
diff changeset
   214
    else if (error == KErrNone)
hgs
parents:
diff changeset
   215
        {
hgs
parents:
diff changeset
   216
        TestCompleted( leaveVal, TLFUNCLOG, _L("GetCenRepKeyIntValue return error"));                       
hgs
parents:
diff changeset
   217
        }   
hgs
parents:
diff changeset
   218
    else
hgs
parents:
diff changeset
   219
        {
hgs
parents:
diff changeset
   220
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetCenRepKeyIntValueL"));                           
hgs
parents:
diff changeset
   221
        }    
hgs
parents:
diff changeset
   222
    
hgs
parents:
diff changeset
   223
    return KErrNone;
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
    }
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   228
// CObexServAPItest::GetPubSubKeyIntValueL
hgs
parents:
diff changeset
   229
// Test code for Getting PubSub key.    
hgs
parents:
diff changeset
   230
// (other items were commented in a header).
hgs
parents:
diff changeset
   231
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   232
//
hgs
parents:
diff changeset
   233
TInt CObexServAPItest::GetPubSubKeyIntValueL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   234
    {
hgs
parents:
diff changeset
   235
    TInt status = KErrNone;
hgs
parents:
diff changeset
   236
    TInt retVal = KErrNone;
hgs
parents:
diff changeset
   237
    
hgs
parents:
diff changeset
   238
    TRAPD(leaveVal, retVal = TObexUtilsMessageHandler::GetPubSubKeyIntValue(KPSUidUikon, KUikFFSFreeLevel, status));
hgs
parents:
diff changeset
   239
    
hgs
parents:
diff changeset
   240
    if( leaveVal != KErrNone ) 
hgs
parents:
diff changeset
   241
        {
hgs
parents:
diff changeset
   242
        TestCompleted( leaveVal, TLFUNCLOG, _L("GetPubSubKeyIntValueL leaves"));                       
hgs
parents:
diff changeset
   243
        }    
hgs
parents:
diff changeset
   244
    else if (retVal == KErrNone)
hgs
parents:
diff changeset
   245
        {
hgs
parents:
diff changeset
   246
        TestCompleted( retVal, TLFUNCLOG, _L("GetPubSubKeyIntValueL return error"));                       
hgs
parents:
diff changeset
   247
        }   
hgs
parents:
diff changeset
   248
    else
hgs
parents:
diff changeset
   249
        {
hgs
parents:
diff changeset
   250
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetPubSubKeyIntValue"));                           
hgs
parents:
diff changeset
   251
        }  
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
    return KErrNone;
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
    }
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   258
// CObexServAPItest::OutBoxEntryL
hgs
parents:
diff changeset
   259
// Test code for Creating outbox entry.
hgs
parents:
diff changeset
   260
// (other items were commented in a header).
hgs
parents:
diff changeset
   261
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   262
//
hgs
parents:
diff changeset
   263
TInt CObexServAPItest::CreateOutBoxEntryL( CStifItemParser& /*aItem*/ )
42
hgs
parents: 32
diff changeset
   264
    {
hgs
parents: 32
diff changeset
   265
    //todo resource is unavailable at the moment.
hgs
parents: 32
diff changeset
   266
    // need to change the string constant according to the coming new localisation file
hgs
parents: 32
diff changeset
   267
    TRAPD(error, iMessageServerIndex = TObexUtilsMessageHandler::CreateOutboxEntryL( KUidMsgTypeBt, 1 ));  
32
hgs
parents:
diff changeset
   268
    if( error != KErrNone)
hgs
parents:
diff changeset
   269
        {
hgs
parents:
diff changeset
   270
        TestCompleted( error, TLFUNCLOG, _L("CreateOutBoxEntryL leaves")); 
hgs
parents:
diff changeset
   271
        }
hgs
parents:
diff changeset
   272
    else     
hgs
parents:
diff changeset
   273
        {
hgs
parents:
diff changeset
   274
        TestCompleted( KErrNone, TLFUNCLOG, _L("CreateOutBoxEntryL"));     
hgs
parents:
diff changeset
   275
        }
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
    return KErrNone;
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
    }
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   282
// CObexServAPItest::OutBoxEntryL
hgs
parents:
diff changeset
   283
// Test code for removing outbox entry.
hgs
parents:
diff changeset
   284
// (other items were commented in a header).
hgs
parents:
diff changeset
   285
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   286
//
hgs
parents:
diff changeset
   287
TInt CObexServAPItest::RemoveOutBoxEntryL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   288
    {   
hgs
parents:
diff changeset
   289
    
hgs
parents:
diff changeset
   290
    TRAPD(error, TObexUtilsMessageHandler::DeleteOutboxEntryL( iMessageServerIndex ));
hgs
parents:
diff changeset
   291
    if( error != KErrNone)
hgs
parents:
diff changeset
   292
        {
hgs
parents:
diff changeset
   293
        TestCompleted( error, TLFUNCLOG, _L("RemoveOutBoxEntryL leaves")); 
hgs
parents:
diff changeset
   294
        }
hgs
parents:
diff changeset
   295
    else     
hgs
parents:
diff changeset
   296
        {
hgs
parents:
diff changeset
   297
        TestCompleted( KErrNone, TLFUNCLOG, _L("RemoveOutBoxEntryL"));     
hgs
parents:
diff changeset
   298
        }
hgs
parents:
diff changeset
   299
    return KErrNone;
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
    }
hgs
parents:
diff changeset
   302
    
hgs
parents:
diff changeset
   303
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   304
// CObexServAPItest::SaveObjToInboxL
hgs
parents:
diff changeset
   305
// Test code for save received file to inbox. 
hgs
parents:
diff changeset
   306
// (other items were commented in a header).
hgs
parents:
diff changeset
   307
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   308
//
hgs
parents:
diff changeset
   309
TInt CObexServAPItest::SaveObjToInboxL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   310
    {   
hgs
parents:
diff changeset
   311
    
hgs
parents:
diff changeset
   312
    CObexBufObject* obexobject = CObexBufObject::NewL( NULL );
hgs
parents:
diff changeset
   313
    CleanupStack::PushL(obexobject);    
hgs
parents:
diff changeset
   314
    
hgs
parents:
diff changeset
   315
    TRAP_IGNORE(TObexUtilsMessageHandler::SaveObjToInboxL(obexobject ,
hgs
parents:
diff changeset
   316
                                              KNullDesC, 
hgs
parents:
diff changeset
   317
                                              KUidMsgTypeBt ));
hgs
parents:
diff changeset
   318
    TestCompleted( KErrNone, TLFUNCLOG, _L("SaveObjToInboxL leaves")); 
hgs
parents:
diff changeset
   319
    
hgs
parents:
diff changeset
   320
    CleanupStack::PopAndDestroy(obexobject);
hgs
parents:
diff changeset
   321
    return KErrNone;
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
    }
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   326
// CObexServAPItest::CreateAndSaveObjectL
hgs
parents:
diff changeset
   327
// Test code for creating entry to inbox.
hgs
parents:
diff changeset
   328
// (other items were commented in a header).
hgs
parents:
diff changeset
   329
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   330
//
hgs
parents:
diff changeset
   331
TInt CObexServAPItest::CreateEntryToInboxL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   332
    {
hgs
parents:
diff changeset
   333
    iFile = RFile();
hgs
parents:
diff changeset
   334
    
hgs
parents:
diff changeset
   335
    if ( iObexObject)
hgs
parents:
diff changeset
   336
        {
hgs
parents:
diff changeset
   337
        delete iObexObject;
hgs
parents:
diff changeset
   338
        iObexObject = NULL;
hgs
parents:
diff changeset
   339
        }
hgs
parents:
diff changeset
   340
        
hgs
parents:
diff changeset
   341
    iObexObject = CObexBufObject::NewL( NULL );
hgs
parents:
diff changeset
   342
    
hgs
parents:
diff changeset
   343
    TRAPD( error, TObexUtilsMessageHandler::CreateInboxAttachmentL( iObexObject,
hgs
parents:
diff changeset
   344
                                                      KUidMsgTypeBt,
hgs
parents:
diff changeset
   345
                                                      iMessageServerIndex,
hgs
parents:
diff changeset
   346
                                                      iFile));
hgs
parents:
diff changeset
   347
                                                      
hgs
parents:
diff changeset
   348
                                                      
hgs
parents:
diff changeset
   349
    iBuf = CBufFlat::NewL(1024);
hgs
parents:
diff changeset
   350
    iBuf->ResizeL(1024);
hgs
parents:
diff changeset
   351
    
hgs
parents:
diff changeset
   352
    TObexRFileBackedBuffer bufferdetails(*iBuf,iFile,CObexBufObject::EDoubleBuffering);    
hgs
parents:
diff changeset
   353
    
hgs
parents:
diff changeset
   354
    TRAP_IGNORE( iObexObject->SetDataBufL( bufferdetails) );
hgs
parents:
diff changeset
   355
    
hgs
parents:
diff changeset
   356
                                                      
hgs
parents:
diff changeset
   357
                                                      
hgs
parents:
diff changeset
   358
    iFile.Write(_L8("test"));    
hgs
parents:
diff changeset
   359
    iObexObject->SetNameL(_L("test.txt"));        
hgs
parents:
diff changeset
   360
    
hgs
parents:
diff changeset
   361
    if( error != KErrNone)
hgs
parents:
diff changeset
   362
        {
hgs
parents:
diff changeset
   363
        TestCompleted( error, TLFUNCLOG, _L("CreateEntryToInboxL leaves")); 
hgs
parents:
diff changeset
   364
        }    
hgs
parents:
diff changeset
   365
    else     
hgs
parents:
diff changeset
   366
        {
hgs
parents:
diff changeset
   367
        TestCompleted( error, TLFUNCLOG, _L("CreateEntryToInboxL"));     
hgs
parents:
diff changeset
   368
        }         
hgs
parents:
diff changeset
   369
    return KErrNone;
hgs
parents:
diff changeset
   370
    }
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
hgs
parents:
diff changeset
   373
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   374
// CObexServAPItest::CreateAndSaveObjectL
hgs
parents:
diff changeset
   375
// Test code for creating entry to inbox.
hgs
parents:
diff changeset
   376
// (other items were commented in a header).
hgs
parents:
diff changeset
   377
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   378
//
hgs
parents:
diff changeset
   379
TInt CObexServAPItest::SaveRFileObjectToInboxL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   380
    {
hgs
parents:
diff changeset
   381
    TRAPD( error, TObexUtilsMessageHandler::SaveObjToInboxL(
hgs
parents:
diff changeset
   382
            iObexObject,
hgs
parents:
diff changeset
   383
            iFile,
hgs
parents:
diff changeset
   384
            iMessageServerIndex));
hgs
parents:
diff changeset
   385
    
hgs
parents:
diff changeset
   386
    delete iBuf;
hgs
parents:
diff changeset
   387
    iBuf = NULL;
hgs
parents:
diff changeset
   388
    if( error != KErrNone)
hgs
parents:
diff changeset
   389
        {
hgs
parents:
diff changeset
   390
        TestCompleted( error, TLFUNCLOG, _L("SaveObjToInboxL leaves")); 
hgs
parents:
diff changeset
   391
        }
hgs
parents:
diff changeset
   392
    else     
hgs
parents:
diff changeset
   393
        {
hgs
parents:
diff changeset
   394
        TestCompleted( error, TLFUNCLOG, _L("SaveObjToInboxL"));     
hgs
parents:
diff changeset
   395
        }                                          
hgs
parents:
diff changeset
   396
    
hgs
parents:
diff changeset
   397
    return KErrNone;
hgs
parents:
diff changeset
   398
    }
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   401
// CObexServAPItest::RemoveObjectL
hgs
parents:
diff changeset
   402
// Test code for removing entry to inbox.
hgs
parents:
diff changeset
   403
// (other items were commented in a header).
hgs
parents:
diff changeset
   404
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   405
//
hgs
parents:
diff changeset
   406
TInt CObexServAPItest::RemoveObjectL( CStifItemParser& /*aItem*/ )
hgs
parents:
diff changeset
   407
    {
hgs
parents:
diff changeset
   408
    TRAPD(error,TObexUtilsMessageHandler::RemoveInboxEntriesL(iObexObject, iMessageServerIndex));    
hgs
parents:
diff changeset
   409
    delete iBuf;
hgs
parents:
diff changeset
   410
    iBuf = NULL;
hgs
parents:
diff changeset
   411
    if( error != KErrNone)
hgs
parents:
diff changeset
   412
        {
hgs
parents:
diff changeset
   413
        TestCompleted( error, TLFUNCLOG, _L("SaveObjToInboxL leaves")); 
hgs
parents:
diff changeset
   414
        }
hgs
parents:
diff changeset
   415
    else     
hgs
parents:
diff changeset
   416
        {
hgs
parents:
diff changeset
   417
        TestCompleted( error, TLFUNCLOG, _L("SaveObjToInboxL"));     
hgs
parents:
diff changeset
   418
        }                                              
hgs
parents:
diff changeset
   419
    return KErrNone;
hgs
parents:
diff changeset
   420
    }
hgs
parents:
diff changeset
   421
hgs
parents:
diff changeset
   422
// Find out the path of the receive folder. 
hgs
parents:
diff changeset
   423
TInt CObexServAPItest::GetCenRepKeyStringValueL( CStifItemParser& /*aItem*/ ) // JHä  - Done 
hgs
parents:
diff changeset
   424
    {
hgs
parents:
diff changeset
   425
    TInt error = KErrNone;
hgs
parents:
diff changeset
   426
    TRAPD(leaveVal, error = TObexUtilsMessageHandler::GetCenRepKeyStringValueL(KCRUidBluetoothEngine,
hgs
parents:
diff changeset
   427
                                                                KLCReceiveFolder,
hgs
parents:
diff changeset
   428
                                                                iCenRepFolder));
hgs
parents:
diff changeset
   429
    if( leaveVal != KErrNone ) 
hgs
parents:
diff changeset
   430
        {
hgs
parents:
diff changeset
   431
        TestCompleted( leaveVal, TLFUNCLOG, _L("GetCenRepKeyStringValueL leaves"));                       
hgs
parents:
diff changeset
   432
        }    
hgs
parents:
diff changeset
   433
    else if (error != KErrNone)
hgs
parents:
diff changeset
   434
        {
hgs
parents:
diff changeset
   435
        TestCompleted( leaveVal, TLFUNCLOG, _L("GetCenRepKeyStringValueL return error"));                       
hgs
parents:
diff changeset
   436
        }   
hgs
parents:
diff changeset
   437
    else
hgs
parents:
diff changeset
   438
        {
hgs
parents:
diff changeset
   439
        TestCompleted( KErrNone, TLFUNCLOG, _L("GetCenRepKeyStringValueL"));                           
hgs
parents:
diff changeset
   440
        }    
hgs
parents:
diff changeset
   441
hgs
parents:
diff changeset
   442
    return KErrNone;    
hgs
parents:
diff changeset
   443
   	}
hgs
parents:
diff changeset
   444
hgs
parents:
diff changeset
   445
// Create the receive buffer and temporary receive file. 
hgs
parents:
diff changeset
   446
TInt CObexServAPItest::CreateReceiveBufferAndRFileL( CStifItemParser& /*aItem*/ ) // JHä - Done 
hgs
parents:
diff changeset
   447
    {
hgs
parents:
diff changeset
   448
    TFileName defaultFolder;
hgs
parents:
diff changeset
   449
    defaultFolder.Zero();
hgs
parents:
diff changeset
   450
hgs
parents:
diff changeset
   451
    User::LeaveIfError(iRFs.Connect());
hgs
parents:
diff changeset
   452
    
hgs
parents:
diff changeset
   453
    iFile = RFile(); // Creating an empty file. 
hgs
parents:
diff changeset
   454
hgs
parents:
diff changeset
   455
    // Ensure that the object and buffer don't exist. 
hgs
parents:
diff changeset
   456
    // This also deletes the previous iFile object, if any existed, 
hgs
parents:
diff changeset
   457
    //  because its handle is held by iObexObject.  
hgs
parents:
diff changeset
   458
    if(iObexObject)
hgs
parents:
diff changeset
   459
        {
hgs
parents:
diff changeset
   460
        delete iObexObject;
hgs
parents:
diff changeset
   461
        iObexObject = NULL;
hgs
parents:
diff changeset
   462
        }
hgs
parents:
diff changeset
   463
    if( iBuf )
hgs
parents:
diff changeset
   464
        {
hgs
parents:
diff changeset
   465
        delete iBuf;    
hgs
parents:
diff changeset
   466
        iBuf=NULL;
hgs
parents:
diff changeset
   467
        }
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
    // Then create a new obex object for holding the buffer and the temp file. 
hgs
parents:
diff changeset
   470
    iObexObject = CObexBufObject::NewL( NULL );
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
    defaultFolder.Append(_L("C:\\data\\"));
hgs
parents:
diff changeset
   473
    defaultFolder.Append(iCenRepFolder);   // Got this from central repository in GetCenRepKeyStringValueL
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
    TRAPD(error,TObexUtilsMessageHandler::CreateReceiveBufferAndRFileL( iFile,  // Out: But iFile is returned as closed. 
hgs
parents:
diff changeset
   476
                                                                        defaultFolder, // Where to create the temp file.  
hgs
parents:
diff changeset
   477
                                                                        iTempFullPathFilename, // Out: Can be used to open the file later. 
hgs
parents:
diff changeset
   478
                                                                        iBuf,   // Out: This contains the message buffer. 
hgs
parents:
diff changeset
   479
                                                                        KBufferSize));
hgs
parents:
diff changeset
   480
hgs
parents:
diff changeset
   481
    // Open the file again. 
hgs
parents:
diff changeset
   482
    User::LeaveIfError(iFile.Open(iRFs, iTempFullPathFilename, EFileWrite));   
hgs
parents:
diff changeset
   483
hgs
parents:
diff changeset
   484
    TObexRFileBackedBuffer bufferdetails(*iBuf,iFile,CObexBufObject::EDoubleBuffering);    
hgs
parents:
diff changeset
   485
    
hgs
parents:
diff changeset
   486
    // Do we really need to trap leaves here? Maybe because of Stif?  
hgs
parents:
diff changeset
   487
    TRAP(error, iObexObject->SetDataBufL( bufferdetails) );
hgs
parents:
diff changeset
   488
    if (error != KErrNone)
hgs
parents:
diff changeset
   489
        {
hgs
parents:
diff changeset
   490
        error = KErrGeneral;  
hgs
parents:
diff changeset
   491
        }
hgs
parents:
diff changeset
   492
hgs
parents:
diff changeset
   493
    iFile.Write(_L8("test")); // Put some test data into the file, although it is not mandatory.      
hgs
parents:
diff changeset
   494
    iFile.Flush();
hgs
parents:
diff changeset
   495
hgs
parents:
diff changeset
   496
    iObexObject->SetNameL(_L("test.txt"));        
hgs
parents:
diff changeset
   497
hgs
parents:
diff changeset
   498
    // At this point we have an object in file system (iFile refers to it)    
hgs
parents:
diff changeset
   499
    // and an entry in Inbox which we can later refer to with iMessageServerIndex.  
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
    if( error != KErrNone)
hgs
parents:
diff changeset
   502
        {
hgs
parents:
diff changeset
   503
        TestCompleted( error, TLFUNCLOG, _L("CreateReceiveBufferAndRFileL leaves")); 
hgs
parents:
diff changeset
   504
        }
hgs
parents:
diff changeset
   505
    else     
hgs
parents:
diff changeset
   506
        {
hgs
parents:
diff changeset
   507
        TestCompleted( error, TLFUNCLOG, _L("CreateReceiveBufferAndRFileL"));     
hgs
parents:
diff changeset
   508
        }                                              
hgs
parents:
diff changeset
   509
hgs
parents:
diff changeset
   510
    // iFile is left open  
hgs
parents:
diff changeset
   511
    return KErrNone;
hgs
parents:
diff changeset
   512
    }
hgs
parents:
diff changeset
   513
hgs
parents:
diff changeset
   514
// Copy the temporary receive file to the correct place in the file system after receiving is complete. 
hgs
parents:
diff changeset
   515
TInt CObexServAPItest::SaveFileToFileSystemL( CStifItemParser& /*aItem*/ ) // JHä - Done
hgs
parents:
diff changeset
   516
    {
hgs
parents:
diff changeset
   517
    // Create bogus device name. 
hgs
parents:
diff changeset
   518
    TBTDeviceName remoteDeviceName;
hgs
parents:
diff changeset
   519
	remoteDeviceName.Zero(); 
hgs
parents:
diff changeset
   520
	remoteDeviceName.Append(_L("APITestDevice")); 
hgs
parents:
diff changeset
   521
hgs
parents:
diff changeset
   522
// The iFile must be still open after calling CreateReceiveBufferAndRFileL method 
hgs
parents:
diff changeset
   523
	
hgs
parents:
diff changeset
   524
    TRAPD(error,TObexUtilsMessageHandler::SaveFileToFileSystemL(   iObexObject,
hgs
parents:
diff changeset
   525
                                                                   KUidMsgTypeBt,
hgs
parents:
diff changeset
   526
                                                                   iMessageServerIndex,	// This is gotten  
hgs
parents:
diff changeset
   527
                                                                   iTempFullPathFilename, // Contains the final path of the file
hgs
parents:
diff changeset
   528
                                                                   iFile,   // Handle to the temp file. 
hgs
parents:
diff changeset
   529
                                                                   remoteDeviceName)); 
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
    if( error != KErrNone)
hgs
parents:
diff changeset
   532
        {
hgs
parents:
diff changeset
   533
        TestCompleted( error, TLFUNCLOG, _L("SaveFileToFileSystemL leaves")); 
hgs
parents:
diff changeset
   534
        }
hgs
parents:
diff changeset
   535
    else     
hgs
parents:
diff changeset
   536
        {
hgs
parents:
diff changeset
   537
        TestCompleted( error, TLFUNCLOG, _L("SaveFileToFileSystemL"));     
hgs
parents:
diff changeset
   538
        }                                              
hgs
parents:
diff changeset
   539
    return KErrNone;
hgs
parents:
diff changeset
   540
    }
hgs
parents:
diff changeset
   541
hgs
parents:
diff changeset
   542
// Create an entry in the Inbox and attach the file there. 
hgs
parents:
diff changeset
   543
TInt CObexServAPItest::AddEntryToInboxL( CStifItemParser& /*aItem*/ ) // JHä - Done 
hgs
parents:
diff changeset
   544
    {
hgs
parents:
diff changeset
   545
    RArray<TMsvId>  tmpMsvIdArray; // Not really needed, but must be passed to the method. 
hgs
parents:
diff changeset
   546
    
hgs
parents:
diff changeset
   547
    TRAPD(error,TObexUtilsMessageHandler::AddEntryToInboxL( iMessageServerIndex, 
hgs
parents:
diff changeset
   548
                                                            iTempFullPathFilename, 
hgs
parents:
diff changeset
   549
                                                            &tmpMsvIdArray));
hgs
parents:
diff changeset
   550
hgs
parents:
diff changeset
   551
    if( error != KErrNone)
hgs
parents:
diff changeset
   552
        {
hgs
parents:
diff changeset
   553
        TestCompleted( error, TLFUNCLOG, _L("AddEntryToInboxL leaves")); 
hgs
parents:
diff changeset
   554
        }
hgs
parents:
diff changeset
   555
    else     
hgs
parents:
diff changeset
   556
        {
hgs
parents:
diff changeset
   557
        TestCompleted( error, TLFUNCLOG, _L("AddEntryToInboxL"));     
hgs
parents:
diff changeset
   558
        }                                              
hgs
parents:
diff changeset
   559
    return KErrNone;
hgs
parents:
diff changeset
   560
    }
hgs
parents:
diff changeset
   561
hgs
parents:
diff changeset
   562
// Replacing a broken link in Inbox with a proper link to a file. 
hgs
parents:
diff changeset
   563
TInt CObexServAPItest::UpdateEntryAttachmentL( CStifItemParser& /*aItem*/ ) // JHä - Done
hgs
parents:
diff changeset
   564
    {
hgs
parents:
diff changeset
   565
    // Create a new file to be the replacement: 
hgs
parents:
diff changeset
   566
    TFileName tempFilename; 
hgs
parents:
diff changeset
   567
    TFileName defaultFolder;
hgs
parents:
diff changeset
   568
    RFs rfs; 
hgs
parents:
diff changeset
   569
    RFile newFile;  
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
    User::LeaveIfError(rfs.Connect());
hgs
parents:
diff changeset
   572
    CleanupClosePushL(rfs);  
hgs
parents:
diff changeset
   573
hgs
parents:
diff changeset
   574
    defaultFolder.Zero();
hgs
parents:
diff changeset
   575
    defaultFolder.Append(_L("C:\\data\\"));
hgs
parents:
diff changeset
   576
    defaultFolder.Append(iCenRepFolder);   // Got this from central repository in GetCenRepKeyStringValueL
hgs
parents:
diff changeset
   577
    User::LeaveIfError( newFile.Temp( rfs, defaultFolder, tempFilename, EFileWrite) );
hgs
parents:
diff changeset
   578
    newFile.Write(_L8("testing replacing"));    
hgs
parents:
diff changeset
   579
    newFile.Flush();
hgs
parents:
diff changeset
   580
    newFile.Close(); 
hgs
parents:
diff changeset
   581
hgs
parents:
diff changeset
   582
    CleanupStack::PopAndDestroy(); // rfs  
hgs
parents:
diff changeset
   583
hgs
parents:
diff changeset
   584
    // Then replace the attachment: 
hgs
parents:
diff changeset
   585
    CDummySessionObserver* sessionObs = new( ELeave )CDummySessionObserver;;
hgs
parents:
diff changeset
   586
    CleanupStack::PushL( sessionObs );  
hgs
parents:
diff changeset
   587
    CMsvSession* msvSession = CMsvSession::OpenSyncL( *sessionObs );
hgs
parents:
diff changeset
   588
    CleanupStack::PushL(msvSession);
hgs
parents:
diff changeset
   589
    CMsvEntry* entry = msvSession->GetEntryL(iMessageServerIndex);
hgs
parents:
diff changeset
   590
    CleanupStack::PushL(entry);
hgs
parents:
diff changeset
   591
    TRAPD(error,TObexUtilsMessageHandler::UpdateEntryAttachmentL(tempFilename, entry));    
hgs
parents:
diff changeset
   592
hgs
parents:
diff changeset
   593
    // Cleanup: 
hgs
parents:
diff changeset
   594
    CleanupStack::PopAndDestroy(3); // entry, msvSession, sessionObs, 
hgs
parents:
diff changeset
   595
    
hgs
parents:
diff changeset
   596
    // Save the path to the new file so it can be referred to later.  
hgs
parents:
diff changeset
   597
    iTempFullPathFilename = tempFilename; 
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
    if( error != KErrNone)
hgs
parents:
diff changeset
   600
        {
hgs
parents:
diff changeset
   601
        TestCompleted( error, TLFUNCLOG, _L("UpdateEntryAttachmentL leaves")); 
hgs
parents:
diff changeset
   602
        }
hgs
parents:
diff changeset
   603
    else     
hgs
parents:
diff changeset
   604
        {
hgs
parents:
diff changeset
   605
        TestCompleted( error, TLFUNCLOG, _L("UpdateEntryAttachmentL"));     
hgs
parents:
diff changeset
   606
        }                                              
hgs
parents:
diff changeset
   607
    return KErrNone;
hgs
parents:
diff changeset
   608
    }
hgs
parents:
diff changeset
   609
hgs
parents:
diff changeset
   610
// Delete the temporary file. Called normally when the link is broken and the user searches for the file. 
hgs
parents:
diff changeset
   611
// In test code this should be called after creating the temporary RFile and before 
hgs
parents:
diff changeset
   612
// creating the Inbox entry. 
hgs
parents:
diff changeset
   613
TInt CObexServAPItest::RemoveTemporaryRFileL( CStifItemParser& /*aItem*/ ) // JHä - Done 
hgs
parents:
diff changeset
   614
    {
hgs
parents:
diff changeset
   615
    TRAPD(error,TObexUtilsMessageHandler::RemoveTemporaryRFileL(iTempFullPathFilename));    
hgs
parents:
diff changeset
   616
    if( error != KErrNone)
hgs
parents:
diff changeset
   617
        {
hgs
parents:
diff changeset
   618
        TestCompleted( error, TLFUNCLOG, _L("RemoveTemporaryRFileL leaves")); 
hgs
parents:
diff changeset
   619
        }
hgs
parents:
diff changeset
   620
    else     
hgs
parents:
diff changeset
   621
        {
hgs
parents:
diff changeset
   622
        TestCompleted( error, TLFUNCLOG, _L("RemoveTemporaryRFileL"));     
hgs
parents:
diff changeset
   623
        }                                              
hgs
parents:
diff changeset
   624
    return KErrNone;
hgs
parents:
diff changeset
   625
    }
hgs
parents:
diff changeset
   626
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
// ========================== OTHER EXPORTED FUNCTIONS =========================
hgs
parents:
diff changeset
   629
// None
hgs
parents:
diff changeset
   630
hgs
parents:
diff changeset
   631
//  End of File