javamanager/javainstaller/javasifplugin/tsrc/src.s60/main.cpp
branchRCL_3
changeset 24 6c158198356e
parent 14 04becd199f91
equal deleted inserted replaced
23:e5618cc85d74 24:6c158198356e
    29 #include "logger.h"
    29 #include "logger.h"
    30 
    30 
    31 using namespace Usif;
    31 using namespace Usif;
    32 
    32 
    33 _LIT(KTestMIDlet, "E:\\stopwatch10midp2.jad");
    33 _LIT(KTestMIDlet, "E:\\stopwatch10midp2.jad");
    34 //_LIT(KTestMIDlet, "C:\\data\\installs\\DS_Snow.jad");
    34 _LIT(KTestMIDlet2, "E:\\stopwatch11midp2.jar");
       
    35 _LIT(KTestMIDlet3, "E:\\Private\\10281e17\\SimpleRMS.jar");
       
    36 _LIT(KUserName, "user");
       
    37 _LIT(KPassWord, "password");
       
    38 _LIT(KEmptyString, "");
       
    39 _LIT(KSourceUrl, "\\sourceurl\\foo");
       
    40 _LIT(KCharSet, "charset");
       
    41 _LIT(KJadMimeType, "text/vnd.sun.j2me.app-descriptor");
       
    42 _LIT(KJarMimeType, "application/java-archive");
       
    43 
    35 
    44 
    36 /**
    45 /**
    37  * Installs a component by file name
    46  * Installs a component by file name
    38  */
    47  */
    39 static void sifSimplestInstallL()
    48 static void sifSimplestInstallL()
    62 
    71 
    63     // free resources before returning
    72     // free resources before returning
    64     CleanupStack::PopAndDestroy(1);
    73     CleanupStack::PopAndDestroy(1);
    65 }
    74 }
    66 
    75 
       
    76 
       
    77 /**
       
    78  * This test case requires that you start Java Installer 
       
    79  * manually before executing this one and keep it running 
       
    80  * this test case ends.
       
    81  *
       
    82  *
       
    83  * Keep the installer running until 1) installation has failed
       
    84  * 2) uninstallation has failed and 3) getComponentInfo had failed
       
    85  * because the installer is already running.
       
    86  */
       
    87 static void sifInstallerAlreadyRunningL()
       
    88 {
       
    89     LOG(EJavaConverters, EInfo,
       
    90         "testsifapi: sifInstallerAlreadyRunningL: Called");
       
    91 
       
    92     RSoftwareInstall installer;
       
    93     TInt err = installer.Connect();
       
    94     if (KErrNone != err)
       
    95     {
       
    96         ELOG1(EJavaConverters,
       
    97               "testsifapi: sifInstallerAlreadyRunningL: Cannot connect to RSoftwareInstall, err %d", err);
       
    98         User::Leave(err);
       
    99     }
       
   100     CleanupClosePushL(installer);
       
   101 
       
   102 /*
       
   103     LOG(EJavaConverters, EInfo,
       
   104         "testsifapi: sifInstallerAlreadyRunningL: Starting the first installer process");
       
   105     TRequestStatus status;
       
   106     installer.Install(KTestMIDlet, status);
       
   107 
       
   108     // wait for second
       
   109     User::After(1000000);
       
   110 */
       
   111 
       
   112     LOG(EJavaConverters, EInfo,
       
   113         "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent installation");
       
   114     // Try to start concurrent installation, will fail
       
   115     TRequestStatus status2;
       
   116     installer.Install(KTestMIDlet2, status2, EFalse);
       
   117     User::WaitForRequest(status2);
       
   118     LOG1(EJavaConverters, EInfo,
       
   119         "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent install operation was %d", status2.Int());
       
   120 
       
   121     LOG(EJavaConverters, EInfo,
       
   122         "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent uninstallation");
       
   123     // Try to start concurrent uninstallation, will fail
       
   124     TRequestStatus status3;
       
   125     installer.Uninstall(15, status3, EFalse);
       
   126     User::WaitForRequest(status3);
       
   127     LOG1(EJavaConverters, EInfo,
       
   128         "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent uninstall operation was %d", status3.Int());
       
   129 
       
   130     LOG(EJavaConverters, EInfo,
       
   131         "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent get component info");
       
   132     // Try to start concurrent GetComponentInfo, will fail
       
   133     TRequestStatus status4;
       
   134     CComponentInfo *info = CComponentInfo::NewL();
       
   135     installer.GetComponentInfo(KTestMIDlet, *info, status4);
       
   136     User::WaitForRequest(status4);
       
   137     delete info;
       
   138     LOG1(EJavaConverters, EInfo,
       
   139         "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent GetComponentInfo operation was %d", status4.Int());
       
   140 
       
   141 /*
       
   142     User::WaitForRequest(status);
       
   143 
       
   144     LOG1(EJavaConverters, EInfo,
       
   145         "testsifapi: sifInstallerAlreadyRunningL: The return status of install operation was %d", status.Int());
       
   146 */
       
   147 
       
   148     // free resources before returning
       
   149     CleanupStack::PopAndDestroy(1);
       
   150 }
       
   151 
    67 /**
   152 /**
    68  * Installs a component by file handle using opaque arguments/results
   153  * Installs a component by file handle using opaque arguments/results
    69  */
   154  */
    70 static TInt sifByHandleAndArgsAndResultsInstallL()
   155 static TInt sifByHandleAndArgsAndResultsInstallL()
    71 {
   156 {
    87         ELOG1(EJavaConverters,
   172         ELOG1(EJavaConverters,
    88               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot share RFs, err %d", err);
   173               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot share RFs, err %d", err);
    89         User::Leave(err);
   174         User::Leave(err);
    90     }
   175     }
    91 
   176 
       
   177 // TEMP TEST
    92     RFile installFile;
   178     RFile installFile;
    93     err = installFile.Open(fs, KTestMIDlet, EFileShareReadersOnly | EFileRead);
   179     err = installFile.Open(fs, KTestMIDlet3, EFileShareReadersOnly | EFileRead);
    94     if (KErrNone != err)
   180     if (KErrNone != err)
    95     {
   181     {
    96         ELOG1(EJavaConverters,
   182         ELOG1(EJavaConverters,
    97               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot open "
   183               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot open "
    98               "E:\\stopwatch10midp2.jad, err %d", err);
   184               "E:\\stopwatch10midp2.jad, err %d", err);
   123     CleanupStack::PushL(results);
   209     CleanupStack::PushL(results);
   124 
   210 
   125     // Silent installation request
   211     // Silent installation request
   126     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   212     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   127 
   213 
       
   214     // drive E:
       
   215     arguments->AddIntL(KSifInParam_Drive, 4);
       
   216 
       
   217     // 0 is TSifPolicy::EUserAllowed == Yes
       
   218     arguments->AddIntL(KSifInParam_PerformOCSP, 0);
       
   219     arguments->AddIntL(KSifInParam_IgnoreOCSPWarnings, 0);
       
   220 
       
   221     arguments->AddIntL(KSifInParam_AllowUpgrade, 0);
       
   222     arguments->AddIntL(KSifInParam_AllowUntrusted, 0);
       
   223     arguments->AddIntL(KSifInParam_AllowOverwrite, 0);
       
   224     arguments->AddIntL(KSifInParam_AllowDownload, 0);
       
   225 
       
   226 
       
   227 // TEMP TEST prevent overflow
       
   228 //    arguments->AddStringL(KSifInParam_UserName, KUserName);
       
   229 //    arguments->AddStringL(KSifInParam_Password, KPassWord);
       
   230 
       
   231     arguments->AddStringL(KSifInParam_SourceUrl, KSourceUrl);
       
   232 
       
   233     arguments->AddIntL(KSifInParam_IAP, 3);
       
   234 
       
   235     arguments->AddStringL(KSifInParam_Charset, KEmptyString);
       
   236 
       
   237     arguments->AddStringL(KSifInParam_MimeType, KJadMimeType);
       
   238 
       
   239 
   128     LOG(EJavaConverters, EInfo,
   240     LOG(EJavaConverters, EInfo,
   129         "testsifapi: sifByHandleAndArgsAndResultsInstallL: arguments created");
   241         "testsifapi: sifByHandleAndArgsAndResultsInstallL: arguments created");
   130 
   242 
   131     installer.Install(installFile, *arguments, *results, status);
   243     installer.Install(installFile, *arguments, *results, status);
   132 
   244 
   153     CleanupStack::PopAndDestroy(5);
   265     CleanupStack::PopAndDestroy(5);
   154 
   266 
   155     return componentId;
   267     return componentId;
   156 }
   268 }
   157 
   269 
   158 
   270 /**
   159 static void sifUninstallL(TInt &aComponentId)
   271  * Installs a component by file handle using other opaque arguments than
   160 {
   272  * sifByHandleAndArgsAndResultsInstallL()
   161     LOG1(EJavaConverters, EInfo,
   273  */
   162         "testsifapi: sifUninstallL: Uninstall component (id %d)", aComponentId);
   274 static TInt secondSifByFileAndArgsAndResultsInstallL()
   163 
   275 {
   164     RSoftwareInstall installer;
   276     RSoftwareInstall installer;
   165     TInt err = installer.Connect();
   277     TInt err = installer.Connect();
   166     if (KErrNone != err)
   278     if (KErrNone != err)
   167     {
   279     {
   168         ELOG1(EJavaConverters,
   280         ELOG1(EJavaConverters,
   169               "testsifapi: sifUninstallL: Cannot connect to RSoftwareInstall, err %d", err);
   281               "testsifapi: secondSifByFileAndArgsAndResultsInstallL: Cannot connect to RSoftwareInstall, err %d", err);
   170         User::Leave(err);
   282         User::Leave(err);
   171     }
   283     }
   172     CleanupClosePushL(installer);
   284     CleanupClosePushL(installer);
       
   285 
       
   286     LOG(EJavaConverters, EInfo,
       
   287         "testsifapi: secondSifByFileAndArgsAndResultsInstallL: RSoftwareInstall connected");
   173 
   288 
   174     TRequestStatus status;
   289     TRequestStatus status;
   175     COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
   290     COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
   176     CleanupStack::PushL(arguments);
   291     CleanupStack::PushL(arguments);
   177     COpaqueNamedParams *results = COpaqueNamedParams::NewL();
   292     COpaqueNamedParams *results = COpaqueNamedParams::NewL();
   178     CleanupStack::PushL(results);
   293     CleanupStack::PushL(results);
   179 
   294 
       
   295     // Silent installation request
       
   296     arguments->AddIntL(KSifInParam_InstallSilently, 1);
       
   297 
       
   298     // illegal drive number 33
       
   299     arguments->AddIntL(KSifInParam_Drive, 33);
       
   300 
       
   301     // 1 is No
       
   302     arguments->AddIntL(KSifInParam_PerformOCSP, 1);
       
   303     arguments->AddIntL(KSifInParam_IgnoreOCSPWarnings, 1);
       
   304 
       
   305     arguments->AddIntL(KSifInParam_AllowUpgrade, 1);
       
   306     arguments->AddIntL(KSifInParam_AllowUntrusted, 1);
       
   307     arguments->AddIntL(KSifInParam_AllowOverwrite, 1);
       
   308     arguments->AddIntL(KSifInParam_AllowDownload, 1);
       
   309 
       
   310 // TEMP TEST prevent overflow
       
   311 //    arguments->AddStringL(KSifInParam_UserName, KEmptyString);
       
   312 //    arguments->AddStringL(KSifInParam_Password, KEmptyString);
       
   313 
       
   314     arguments->AddStringL(KSifInParam_SourceUrl, KEmptyString);
       
   315 
       
   316     arguments->AddIntL(KSifInParam_SNAP, 8);
       
   317 
       
   318     arguments->AddStringL(KSifInParam_Charset, KCharSet);
       
   319 
       
   320     arguments->AddStringL(KSifInParam_MimeType, KJarMimeType);
       
   321 
       
   322     // forcecancel argument value is ignored, forcecancel is set if the value length > 0
       
   323     arguments->AddStringL(_L("-forcecancel"), KCharSet);
       
   324 
       
   325     LOG(EJavaConverters, EInfo,
       
   326         "testsifapi: secondSifByFileAndArgsAndResultsInstallL: arguments created");
       
   327 
       
   328     installer.Install(KTestMIDlet2, *arguments, *results, status);
       
   329 
       
   330     User::WaitForRequest(status);
       
   331 
       
   332     LOG1(EJavaConverters, EInfo,
       
   333         "testsifapi: secondSifByFileAndArgsAndResultsInstallL: The return status of install operation was %d", status.Int());
       
   334 
       
   335 
       
   336     TInt componentId = 0;
       
   337     TBool idExisted = results->GetIntByNameL(KSifOutParam_ComponentId, componentId);
       
   338     if ( idExisted )
       
   339     {
       
   340         LOG1(EJavaConverters, EInfo,
       
   341             "testsifapi: secondSifByFileAndArgsAndResultsInstallL: Component id was %d", componentId);
       
   342     }
       
   343     else
       
   344     {
       
   345         LOG(EJavaConverters, EInfo,
       
   346             "testsifapi: secondSifByFileAndArgsAndResultsInstallL: No component id was returned");
       
   347     }
       
   348 
       
   349     // free resources before returning
       
   350     CleanupStack::PopAndDestroy(3);
       
   351 
       
   352     return componentId;
       
   353 }
       
   354 
       
   355 static void sifUninstallL(TInt &aComponentId)
       
   356 {
       
   357     LOG1(EJavaConverters, EInfo,
       
   358         "testsifapi: sifUninstallL: Uninstall component (id %d)", aComponentId);
       
   359 
       
   360     RSoftwareInstall installer;
       
   361     TInt err = installer.Connect();
       
   362     if (KErrNone != err)
       
   363     {
       
   364         ELOG1(EJavaConverters,
       
   365               "testsifapi: sifUninstallL: Cannot connect to RSoftwareInstall, err %d", err);
       
   366         User::Leave(err);
       
   367     }
       
   368     CleanupClosePushL(installer);
       
   369 
       
   370     TRequestStatus status;
       
   371     COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
       
   372     CleanupStack::PushL(arguments);
       
   373     COpaqueNamedParams *results = COpaqueNamedParams::NewL();
       
   374     CleanupStack::PushL(results);
       
   375 
   180     // Silent uninstallation request
   376     // Silent uninstallation request
   181     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   377     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   182 
   378 
   183     installer.Uninstall(aComponentId, *arguments, *results, status, EFalse);
   379     installer.Uninstall(aComponentId, *arguments, *results, status, EFalse);
   184 
   380 
   294     for (nInd = 0; nInd < nMIDlets; nInd++)
   490     for (nInd = 0; nInd < nMIDlets; nInd++)
   295     {
   491     {
   296         logApplicationInfo(*(info->RootNodeL().Applications()[nInd]));
   492         logApplicationInfo(*(info->RootNodeL().Applications()[nInd]));
   297     }
   493     }
   298 
   494 
       
   495     CleanupStack::PopAndDestroy(info);
       
   496 
       
   497 
       
   498     User::After(1000000);
       
   499 
       
   500     // Get component info also from jar
       
   501     TRequestStatus status2;
       
   502     CComponentInfo *info2 = CComponentInfo::NewL();
       
   503     CleanupStack::PushL(info2);
       
   504 
       
   505     installer.GetComponentInfo(KTestMIDlet2, *info2, status2);
       
   506 
       
   507     User::WaitForRequest(status2);
       
   508 
       
   509     LOG1(EJavaConverters, EInfo,
       
   510         "testsifapi: sifGetComponentInfoL: The return status of get "
       
   511         "component info operation 2 was %d", status.Int());
       
   512 
       
   513     LOG(EJavaConverters, EInfo,
       
   514         "testsifapi: sifGetComponentInfoL: Logging root node (suite2)");
       
   515 
       
   516     logComponentInfoNode(info2->RootNodeL());
       
   517 
       
   518     LOG(EJavaConverters, EInfo,
       
   519         "testsifapi: sifGetComponentInfoL: Logging child nodes (MIDlets2)");
       
   520 
       
   521     TInt nMIDlets2 = info2->RootNodeL().Children().Count();
       
   522     TInt nInd2;
       
   523     for (nInd2 = 0; nInd2 < nMIDlets2; nInd2++)
       
   524     {
       
   525         logComponentInfoNode(*(info2->RootNodeL().Children()[nInd2]));
       
   526     }
       
   527 
       
   528     nMIDlets2 = info2->RootNodeL().Applications().Count();
       
   529     for (nInd2 = 0; nInd2 < nMIDlets2; nInd2++)
       
   530     {
       
   531         logApplicationInfo(*(info2->RootNodeL().Applications()[nInd2]));
       
   532     }
       
   533 
       
   534     CleanupStack::PopAndDestroy(info2);
       
   535 
       
   536 
   299     // free resources before returning
   537     // free resources before returning
   300     CleanupStack::PopAndDestroy(2);
   538     CleanupStack::PopAndDestroy(1);
   301 }
   539 }
   302 
   540 
   303 
   541 
   304 static void sifActivationTestL(TInt &aComponentId)
   542 static void sifActivationTestL(TInt &aComponentId)
   305 {
   543 {
   347 
   585 
   348 int cancelFunction(void *installer)
   586 int cancelFunction(void *installer)
   349 {
   587 {
   350     LOG(EJavaConverters, EInfo,
   588     LOG(EJavaConverters, EInfo,
   351         "testsifapi: cancelFunction: Called");
   589         "testsifapi: cancelFunction: Called");
       
   590 
       
   591     // TEMP TEST
       
   592     // This thread does not have active scheduler,
       
   593     // create and install it
       
   594     CActiveScheduler* as = new CActiveScheduler();
       
   595     if (NULL == as)
       
   596     {
       
   597         ELOG(EJavaConverters,
       
   598             "testsifapi: cancelFunction: Cannot create active scheduler");
       
   599             return 1;
       
   600     }
       
   601     CActiveScheduler::Install(as);
   352 
   602 
   353     // Wait for 6 seconds so that the operation to be cancelled
   603     // Wait for 6 seconds so that the operation to be cancelled
   354     // has had time to really do something already
   604     // has had time to really do something already
   355     User::After(6000000);
   605     User::After(6000000);
   356 
   606 
   357     LOG(EJavaConverters, EInfo,
   607     LOG(EJavaConverters, EInfo,
   358         "testsifapi: cancelFunction: Waiting for 6 seconds done");
   608         "testsifapi: cancelFunction: Waiting for 6 seconds done");
   359 
   609 
   360     ((RSoftwareInstall *)installer)->CancelOperation();
   610     ((RSoftwareInstall *)installer)->CancelOperation();
   361 
   611 
       
   612     LOG(EJavaConverters, EInfo, "testsifapi: cancelFunction: Starting CActiveScheduler");
       
   613     CActiveScheduler::Start();
       
   614 
   362     LOG(EJavaConverters, EInfo,
   615     LOG(EJavaConverters, EInfo,
   363         "testsifapi: cancelFunction: CancelOperation() was called");
   616         "testsifapi: cancelFunction: CancelOperation() was called");
   364 
   617 
       
   618     delete as;
   365     return 0;
   619     return 0;
   366 }
   620 }
   367 
   621 
   368 static void cancelFromOtherThread(RSoftwareInstall &aInstaller)
   622 static void cancelFromOtherThread(RSoftwareInstall &aInstaller)
   369 {
   623 {
   397 
   651 
   398     LOG(EJavaConverters, EInfo,
   652     LOG(EJavaConverters, EInfo,
   399         "testsifapi: cancelFromSameThread: CancelOperation() returned");
   653         "testsifapi: cancelFromSameThread: CancelOperation() returned");
   400 }
   654 }
   401 
   655 
       
   656 
   402 static void cancelInstallL()
   657 static void cancelInstallL()
   403 {
   658 {
   404     LOG(EJavaConverters, EInfo,
   659     LOG(EJavaConverters, EInfo,
   405         "testsifapi: cancelInstall: Called");
   660         "testsifapi: cancelInstall: Called");
   406 
   661 
   436     // free resources before returning
   691     // free resources before returning
   437     CleanupStack::PopAndDestroy(1);
   692     CleanupStack::PopAndDestroy(1);
   438 
   693 
   439 }
   694 }
   440 
   695 
       
   696 static void cancelNoOperationL()
       
   697 {
       
   698     LOG(EJavaConverters, EInfo,
       
   699         "testsifapi: cancelNoOperationL: Called");
       
   700 
       
   701     RSoftwareInstall installer;
       
   702     TInt err = installer.Connect();
       
   703     if (KErrNone != err)
       
   704     {
       
   705         ELOG1(EJavaConverters,
       
   706             "testsifapi: cancelNoOperationL: Cannot connect to RSoftwareInstall, err %d", err);
       
   707         User::Leave(err);
       
   708     }
       
   709     CleanupClosePushL(installer);
       
   710 
       
   711     cancelFromSameThread(installer);
       
   712 
       
   713     LOG(EJavaConverters, EInfo,
       
   714         "testsifapi: cancelNoOperationL: cancelFrom<X>Thread returned");
       
   715 
       
   716     // free resources before returning
       
   717     CleanupStack::PopAndDestroy(1);
       
   718 
       
   719 }
   441 
   720 
   442 /**
   721 /**
   443  * Create cleanup stack and run the cleaner code inside TRAP harness
   722  * Create cleanup stack and run the cleaner code inside TRAP harness
   444  * to log unexpected leaves.
   723  * to log unexpected leaves.
   445  */
   724  */
   446 TInt E32Main()
   725 TInt E32Main()
   447 {
   726 {
   448 /*
   727 //    __UHEAP_MARK;
   449     ELOG2(EJavaConverters,
       
   450         "testsifapi: Starting testing long long long long long long long long long long "
       
   451         "long long long long long long long long long long long long long long long long "
       
   452         "long long long long long long long long long long long long long long long long "
       
   453         "long long long long long long long long long long long long long buffer %d %d", 0, 1);
       
   454 
       
   455     LOG(EJavaConverters, EInfo,
       
   456         "testsifapi: sifByHandleAndArgsAndResultsInstallL: Called");
       
   457 */
       
   458 
       
   459     __UHEAP_MARK;
       
   460     CTrapCleanup* cleanupStack = CTrapCleanup::New();
   728     CTrapCleanup* cleanupStack = CTrapCleanup::New();
   461 
   729 
   462     TInt err = KErrNone;
   730     TInt err = KErrNone;
   463 
   731 
   464 
   732 
   465     /*
   733     LOG(EJavaConverters, EInfo, "testsifapi: starting cancelNoOperationL");
   466         TRAP(err, cancelInstallL());
   734     TRAP(err, cancelNoOperationL());
   467         if (KErrNone != err)
   735     if (KErrNone != err)
   468         {
   736     {
   469             ELOG1(EJavaConverters, "testsifapi: cancelInstallL leaved with err %d", err);
   737         ELOG1(EJavaConverters, "testsifapi: cancelNoOperationL leaved with err %d", err);
   470         }
       
   471 
       
   472         // Wait for a moment
       
   473         User::After(500000);
       
   474     */
       
   475 
       
   476 
       
   477     TRAP(err, sifSimplestInstallL());
       
   478     if (KErrNone != err)
       
   479     {
       
   480         ELOG1(EJavaConverters, "testsifapi: sifSimplestInstallL leaved with err %d", err);
       
   481     }
   738     }
   482 
   739 
   483     // Wait for a moment
   740     // Wait for a moment
   484     User::After(500000);
   741     User::After(500000);
   485 
   742 
   486 
   743 
   487     TInt componentId = 0;
   744     LOG(EJavaConverters, EInfo, "testsifapi: starting cancelInstallL");
   488 
   745     TRAP(err, cancelInstallL());
   489     TRAP(err, componentId = sifByHandleAndArgsAndResultsInstallL());
   746     if (KErrNone != err)
   490     if (KErrNone != err)
   747     {
   491     {
   748         ELOG1(EJavaConverters, "testsifapi: cancelInstallL leaved with err %d", err);
   492         ELOG1(EJavaConverters,
   749     }
   493             "testsifapi: sifByHandleAndArgsAndResultsInstallL leaved with err %d", err);
   750 
   494     }
       
   495     // Wait for a moment
   751     // Wait for a moment
   496     User::After(500000);
   752     User::After(500000);
   497 
   753 
   498     // TODO: if this fails, it leaks memory
   754 
   499     TRAP(err, sifGetComponentInfoL());
   755     LOG(EJavaConverters, EInfo, "testsifapi: starting sifSimplestInstallL");
   500     if (KErrNone != err)
   756     TRAP(err, sifSimplestInstallL());
   501     {
   757     if (KErrNone != err)
   502         ELOG1(EJavaConverters, "testsifapi: sifGetComponentInfoL leaved with err %d", err);
   758     {
       
   759         ELOG1(EJavaConverters, "testsifapi: sifSimplestInstallL leaved with err %d", err);
   503     }
   760     }
   504 
   761 
   505     // Wait for a moment
   762     // Wait for a moment
   506     User::After(500000);
   763     User::After(500000);
   507 
   764 
   508     TRAP(err, sifActivationTestL(componentId));
   765 
   509     if (KErrNone != err)
   766 
   510     {
   767     // This test case must be executed sepatately, while manually started 
   511         ELOG1(EJavaConverters,
   768     // Java Installer is running
   512             "testsifapi: sifActivationTestL leaved with err %d", err);
   769     LOG(EJavaConverters, EInfo, "testsifapi: starting sifInstallerAlreadyRunningL");
       
   770     TRAP(err, sifInstallerAlreadyRunningL());
       
   771     if (KErrNone != err)
       
   772     {
       
   773         ELOG1(EJavaConverters, "testsifapi: sifInstallerAlreadyRunningL leaved with err %d", err);
   513     }
   774     }
   514 
   775 
   515     // Wait for a moment
   776     // Wait for a moment
   516     User::After(500000);
   777     User::After(500000);
   517 
   778 
   518 
   779 
       
   780     TInt componentId = 0;
       
   781     TInt componentId2 = 0;
       
   782 
       
   783 
       
   784     LOG(EJavaConverters, EInfo, "testsifapi: starting sifByHandleAndArgsAndResultsInstallL");
       
   785     TRAP(err, componentId = sifByHandleAndArgsAndResultsInstallL());
       
   786     if (KErrNone != err)
       
   787     {
       
   788         ELOG1(EJavaConverters,
       
   789             "testsifapi: sifByHandleAndArgsAndResultsInstallL leaved with err %d", err);
       
   790     }
       
   791     // Wait for a moment
       
   792     User::After(500000);
       
   793 
       
   794 
       
   795     // This installation will fail because MIDlet is untrusted and installing
       
   796     // untrusted is denied AND because charset is illegal
       
   797     LOG(EJavaConverters, EInfo, "testsifapi: starting secondSifByFileAndArgsAndResultsInstallL");
       
   798     TRAP(err, componentId2 = secondSifByFileAndArgsAndResultsInstallL());
       
   799     if (KErrNone != err)
       
   800     {
       
   801         ELOG1(EJavaConverters,
       
   802             "testsifapi: secondSifByFileAndArgsAndResultsInstallL leaved with err %d", err);
       
   803     }
       
   804     // Wait for a moment
       
   805     User::After(500000);
       
   806 
       
   807 
       
   808     // if this fails, it leaks memory
       
   809     LOG(EJavaConverters, EInfo, "testsifapi: starting sifGetComponentInfoL");
       
   810     TRAP(err, sifGetComponentInfoL());
       
   811     if (KErrNone != err)
       
   812     {
       
   813         ELOG1(EJavaConverters, "testsifapi: sifGetComponentInfoL leaved with err %d", err);
       
   814     }
       
   815 
       
   816     // Wait for a moment
       
   817     User::After(500000);
       
   818 
       
   819     LOG(EJavaConverters, EInfo, "testsifapi: starting sifActivationTestL");
       
   820     TRAP(err, sifActivationTestL(componentId));
       
   821     if (KErrNone != err)
       
   822     {
       
   823         ELOG1(EJavaConverters,
       
   824             "testsifapi: sifActivationTestL leaved with err %d", err);
       
   825     }
       
   826 
       
   827     // Wait for a moment
       
   828     User::After(500000);
       
   829 
       
   830 
   519     // TODO: if this fails, it leaks memory
   831     // TODO: if this fails, it leaks memory
   520     if (0 != componentId)
   832     if (0 != componentId)
   521     {
   833     {
       
   834         LOG(EJavaConverters, EInfo, "testsifapi: starting sifUninstallL");
   522         TRAP(err, sifUninstallL(componentId));
   835         TRAP(err, sifUninstallL(componentId));
   523         if (KErrNone != err)
   836         if (KErrNone != err)
   524         {
   837         {
   525             ELOG1(EJavaConverters,
   838             ELOG1(EJavaConverters,
   526                 "testsifapi: sifUninstallL leaved with err %d", err);
   839                 "testsifapi: sifUninstallL leaved with err %d", err);
   528 
   841 
   529         // Wait for a moment
   842         // Wait for a moment
   530         User::After(500000);
   843         User::After(500000);
   531     }
   844     }
   532 
   845 
       
   846 
   533     delete cleanupStack;
   847     delete cleanupStack;
   534 //    __UHEAP_MARKEND;
   848 //    __UHEAP_MARKEND;
   535     __UHEAP_MARKENDC(1);
   849 //    __UHEAP_MARKENDC(1);
   536     return KErrNone;
   850     return KErrNone;
   537 }
   851 }