javamanager/javainstaller/javasifplugin/tsrc/src.s60/main.cpp
branchRCL_3
changeset 83 26b2b12093af
parent 60 6c158198356e
equal deleted inserted replaced
77:7cee158cb8cd 83:26b2b12093af
    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(KTestMIDlet2, "E:\\stopwatch11midp2.jar");
    34 //_LIT(KTestMIDlet, "C:\\data\\installs\\DS_Snow.jad");
    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 
       
    44 
    35 
    45 /**
    36 /**
    46  * Installs a component by file name
    37  * Installs a component by file name
    47  */
    38  */
    48 static void sifSimplestInstallL()
    39 static void sifSimplestInstallL()
    71 
    62 
    72     // free resources before returning
    63     // free resources before returning
    73     CleanupStack::PopAndDestroy(1);
    64     CleanupStack::PopAndDestroy(1);
    74 }
    65 }
    75 
    66 
    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 
       
   152 /**
    67 /**
   153  * Installs a component by file handle using opaque arguments/results
    68  * Installs a component by file handle using opaque arguments/results
   154  */
    69  */
   155 static TInt sifByHandleAndArgsAndResultsInstallL()
    70 static TInt sifByHandleAndArgsAndResultsInstallL()
   156 {
    71 {
   172         ELOG1(EJavaConverters,
    87         ELOG1(EJavaConverters,
   173               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot share RFs, err %d", err);
    88               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot share RFs, err %d", err);
   174         User::Leave(err);
    89         User::Leave(err);
   175     }
    90     }
   176 
    91 
   177 // TEMP TEST
       
   178     RFile installFile;
    92     RFile installFile;
   179     err = installFile.Open(fs, KTestMIDlet3, EFileShareReadersOnly | EFileRead);
    93     err = installFile.Open(fs, KTestMIDlet, EFileShareReadersOnly | EFileRead);
   180     if (KErrNone != err)
    94     if (KErrNone != err)
   181     {
    95     {
   182         ELOG1(EJavaConverters,
    96         ELOG1(EJavaConverters,
   183               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot open "
    97               "testsifapi: sifByHandleAndArgsAndResultsInstallL: Cannot open "
   184               "E:\\stopwatch10midp2.jad, err %d", err);
    98               "E:\\stopwatch10midp2.jad, err %d", err);
   209     CleanupStack::PushL(results);
   123     CleanupStack::PushL(results);
   210 
   124 
   211     // Silent installation request
   125     // Silent installation request
   212     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   126     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   213 
   127 
   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 
       
   240     LOG(EJavaConverters, EInfo,
   128     LOG(EJavaConverters, EInfo,
   241         "testsifapi: sifByHandleAndArgsAndResultsInstallL: arguments created");
   129         "testsifapi: sifByHandleAndArgsAndResultsInstallL: arguments created");
   242 
   130 
   243     installer.Install(installFile, *arguments, *results, status);
   131     installer.Install(installFile, *arguments, *results, status);
   244 
   132 
   265     CleanupStack::PopAndDestroy(5);
   153     CleanupStack::PopAndDestroy(5);
   266 
   154 
   267     return componentId;
   155     return componentId;
   268 }
   156 }
   269 
   157 
   270 /**
   158 
   271  * Installs a component by file handle using other opaque arguments than
   159 static void sifUninstallL(TInt &aComponentId)
   272  * sifByHandleAndArgsAndResultsInstallL()
   160 {
   273  */
   161     LOG1(EJavaConverters, EInfo,
   274 static TInt secondSifByFileAndArgsAndResultsInstallL()
   162         "testsifapi: sifUninstallL: Uninstall component (id %d)", aComponentId);
   275 {
   163 
   276     RSoftwareInstall installer;
   164     RSoftwareInstall installer;
   277     TInt err = installer.Connect();
   165     TInt err = installer.Connect();
   278     if (KErrNone != err)
   166     if (KErrNone != err)
   279     {
   167     {
   280         ELOG1(EJavaConverters,
   168         ELOG1(EJavaConverters,
   281               "testsifapi: secondSifByFileAndArgsAndResultsInstallL: Cannot connect to RSoftwareInstall, err %d", err);
   169               "testsifapi: sifUninstallL: Cannot connect to RSoftwareInstall, err %d", err);
   282         User::Leave(err);
   170         User::Leave(err);
   283     }
   171     }
   284     CleanupClosePushL(installer);
   172     CleanupClosePushL(installer);
   285 
       
   286     LOG(EJavaConverters, EInfo,
       
   287         "testsifapi: secondSifByFileAndArgsAndResultsInstallL: RSoftwareInstall connected");
       
   288 
   173 
   289     TRequestStatus status;
   174     TRequestStatus status;
   290     COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
   175     COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
   291     CleanupStack::PushL(arguments);
   176     CleanupStack::PushL(arguments);
   292     COpaqueNamedParams *results = COpaqueNamedParams::NewL();
   177     COpaqueNamedParams *results = COpaqueNamedParams::NewL();
   293     CleanupStack::PushL(results);
   178     CleanupStack::PushL(results);
   294 
   179 
   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 
       
   376     // Silent uninstallation request
   180     // Silent uninstallation request
   377     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   181     arguments->AddIntL(KSifInParam_InstallSilently, 1);
   378 
   182 
   379     installer.Uninstall(aComponentId, *arguments, *results, status, EFalse);
   183     installer.Uninstall(aComponentId, *arguments, *results, status, EFalse);
   380 
   184 
   490     for (nInd = 0; nInd < nMIDlets; nInd++)
   294     for (nInd = 0; nInd < nMIDlets; nInd++)
   491     {
   295     {
   492         logApplicationInfo(*(info->RootNodeL().Applications()[nInd]));
   296         logApplicationInfo(*(info->RootNodeL().Applications()[nInd]));
   493     }
   297     }
   494 
   298 
   495     CleanupStack::PopAndDestroy(info);
   299     // free resources before returning
   496 
   300     CleanupStack::PopAndDestroy(2);
       
   301 }
       
   302 
       
   303 
       
   304 static void sifActivationTestL(TInt &aComponentId)
       
   305 {
       
   306     LOG1(EJavaConverters, EInfo,
       
   307         "testsifapi: sifActivationTestL: Deactivate component (id %d)", aComponentId);
       
   308 
       
   309     RSoftwareInstall installer;
       
   310     TInt err = installer.Connect();
       
   311     if (KErrNone != err)
       
   312     {
       
   313         ELOG1(EJavaConverters,
       
   314               "testsifapi: sifActivationTestL: Cannot connect to RSoftwareInstall, err %d", err);
       
   315         User::Leave(err);
       
   316     }
       
   317     CleanupClosePushL(installer);
       
   318 
       
   319     TRequestStatus status;
       
   320 
       
   321     installer.Deactivate(aComponentId, status);
       
   322 
       
   323     User::WaitForRequest(status);
       
   324 
       
   325     LOG1(EJavaConverters, EInfo,
       
   326         "testsifapi: sifActivationTestL: The return status of deactivation operation was %d", status.Int());
   497 
   327 
   498     User::After(1000000);
   328     User::After(1000000);
   499 
   329 
   500     // Get component info also from jar
   330 
       
   331     LOG1(EJavaConverters, EInfo,
       
   332         "testsifapi: sifActivationTestL: Activate component (id %d)", aComponentId);
       
   333 
   501     TRequestStatus status2;
   334     TRequestStatus status2;
   502     CComponentInfo *info2 = CComponentInfo::NewL();
   335 
   503     CleanupStack::PushL(info2);
   336     installer.Activate(aComponentId, status2);
   504 
       
   505     installer.GetComponentInfo(KTestMIDlet2, *info2, status2);
       
   506 
   337 
   507     User::WaitForRequest(status2);
   338     User::WaitForRequest(status2);
   508 
   339 
   509     LOG1(EJavaConverters, EInfo,
   340     LOG1(EJavaConverters, EInfo,
   510         "testsifapi: sifGetComponentInfoL: The return status of get "
   341         "testsifapi: sifActivationTestL: The return status of activation operation was %d", status2.Int());
   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 
   342 
   537     // free resources before returning
   343     // free resources before returning
   538     CleanupStack::PopAndDestroy(1);
   344     CleanupStack::PopAndDestroy(1);
   539 }
   345 }
   540 
   346 
   541 
   347 
   542 static void sifActivationTestL(TInt &aComponentId)
       
   543 {
       
   544     LOG1(EJavaConverters, EInfo,
       
   545         "testsifapi: sifActivationTestL: Deactivate component (id %d)", aComponentId);
       
   546 
       
   547     RSoftwareInstall installer;
       
   548     TInt err = installer.Connect();
       
   549     if (KErrNone != err)
       
   550     {
       
   551         ELOG1(EJavaConverters,
       
   552               "testsifapi: sifActivationTestL: Cannot connect to RSoftwareInstall, err %d", err);
       
   553         User::Leave(err);
       
   554     }
       
   555     CleanupClosePushL(installer);
       
   556 
       
   557     TRequestStatus status;
       
   558 
       
   559     installer.Deactivate(aComponentId, status);
       
   560 
       
   561     User::WaitForRequest(status);
       
   562 
       
   563     LOG1(EJavaConverters, EInfo,
       
   564         "testsifapi: sifActivationTestL: The return status of deactivation operation was %d", status.Int());
       
   565 
       
   566     User::After(1000000);
       
   567 
       
   568 
       
   569     LOG1(EJavaConverters, EInfo,
       
   570         "testsifapi: sifActivationTestL: Activate component (id %d)", aComponentId);
       
   571 
       
   572     TRequestStatus status2;
       
   573 
       
   574     installer.Activate(aComponentId, status2);
       
   575 
       
   576     User::WaitForRequest(status2);
       
   577 
       
   578     LOG1(EJavaConverters, EInfo,
       
   579         "testsifapi: sifActivationTestL: The return status of activation operation was %d", status2.Int());
       
   580 
       
   581     // free resources before returning
       
   582     CleanupStack::PopAndDestroy(1);
       
   583 }
       
   584 
       
   585 
       
   586 int cancelFunction(void *installer)
   348 int cancelFunction(void *installer)
   587 {
   349 {
   588     LOG(EJavaConverters, EInfo,
   350     LOG(EJavaConverters, EInfo,
   589         "testsifapi: cancelFunction: Called");
   351         "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);
       
   602 
   352 
   603     // Wait for 6 seconds so that the operation to be cancelled
   353     // Wait for 6 seconds so that the operation to be cancelled
   604     // has had time to really do something already
   354     // has had time to really do something already
   605     User::After(6000000);
   355     User::After(6000000);
   606 
   356 
   607     LOG(EJavaConverters, EInfo,
   357     LOG(EJavaConverters, EInfo,
   608         "testsifapi: cancelFunction: Waiting for 6 seconds done");
   358         "testsifapi: cancelFunction: Waiting for 6 seconds done");
   609 
   359 
   610     ((RSoftwareInstall *)installer)->CancelOperation();
   360     ((RSoftwareInstall *)installer)->CancelOperation();
   611 
   361 
   612     LOG(EJavaConverters, EInfo, "testsifapi: cancelFunction: Starting CActiveScheduler");
       
   613     CActiveScheduler::Start();
       
   614 
       
   615     LOG(EJavaConverters, EInfo,
   362     LOG(EJavaConverters, EInfo,
   616         "testsifapi: cancelFunction: CancelOperation() was called");
   363         "testsifapi: cancelFunction: CancelOperation() was called");
   617 
   364 
   618     delete as;
       
   619     return 0;
   365     return 0;
   620 }
   366 }
   621 
   367 
   622 static void cancelFromOtherThread(RSoftwareInstall &aInstaller)
   368 static void cancelFromOtherThread(RSoftwareInstall &aInstaller)
   623 {
   369 {
   651 
   397 
   652     LOG(EJavaConverters, EInfo,
   398     LOG(EJavaConverters, EInfo,
   653         "testsifapi: cancelFromSameThread: CancelOperation() returned");
   399         "testsifapi: cancelFromSameThread: CancelOperation() returned");
   654 }
   400 }
   655 
   401 
   656 
       
   657 static void cancelInstallL()
   402 static void cancelInstallL()
   658 {
   403 {
   659     LOG(EJavaConverters, EInfo,
   404     LOG(EJavaConverters, EInfo,
   660         "testsifapi: cancelInstall: Called");
   405         "testsifapi: cancelInstall: Called");
   661 
   406 
   691     // free resources before returning
   436     // free resources before returning
   692     CleanupStack::PopAndDestroy(1);
   437     CleanupStack::PopAndDestroy(1);
   693 
   438 
   694 }
   439 }
   695 
   440 
   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 }
       
   720 
   441 
   721 /**
   442 /**
   722  * Create cleanup stack and run the cleaner code inside TRAP harness
   443  * Create cleanup stack and run the cleaner code inside TRAP harness
   723  * to log unexpected leaves.
   444  * to log unexpected leaves.
   724  */
   445  */
   725 TInt E32Main()
   446 TInt E32Main()
   726 {
   447 {
   727 //    __UHEAP_MARK;
   448 /*
       
   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;
   728     CTrapCleanup* cleanupStack = CTrapCleanup::New();
   460     CTrapCleanup* cleanupStack = CTrapCleanup::New();
   729 
   461 
   730     TInt err = KErrNone;
   462     TInt err = KErrNone;
   731 
   463 
   732 
   464 
   733     LOG(EJavaConverters, EInfo, "testsifapi: starting cancelNoOperationL");
   465     /*
   734     TRAP(err, cancelNoOperationL());
   466         TRAP(err, cancelInstallL());
   735     if (KErrNone != err)
   467         if (KErrNone != err)
   736     {
   468         {
   737         ELOG1(EJavaConverters, "testsifapi: cancelNoOperationL leaved with err %d", err);
   469             ELOG1(EJavaConverters, "testsifapi: cancelInstallL 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);
   738     }
   481     }
   739 
   482 
   740     // Wait for a moment
   483     // Wait for a moment
   741     User::After(500000);
   484     User::After(500000);
   742 
   485 
   743 
   486 
   744     LOG(EJavaConverters, EInfo, "testsifapi: starting cancelInstallL");
   487     TInt componentId = 0;
   745     TRAP(err, cancelInstallL());
   488 
   746     if (KErrNone != err)
   489     TRAP(err, componentId = sifByHandleAndArgsAndResultsInstallL());
   747     {
   490     if (KErrNone != err)
   748         ELOG1(EJavaConverters, "testsifapi: cancelInstallL leaved with err %d", err);
   491     {
   749     }
   492         ELOG1(EJavaConverters,
   750 
   493             "testsifapi: sifByHandleAndArgsAndResultsInstallL leaved with err %d", err);
       
   494     }
   751     // Wait for a moment
   495     // Wait for a moment
   752     User::After(500000);
   496     User::After(500000);
   753 
   497 
   754 
   498     // TODO: if this fails, it leaks memory
   755     LOG(EJavaConverters, EInfo, "testsifapi: starting sifSimplestInstallL");
   499     TRAP(err, sifGetComponentInfoL());
   756     TRAP(err, sifSimplestInstallL());
   500     if (KErrNone != err)
   757     if (KErrNone != err)
   501     {
   758     {
   502         ELOG1(EJavaConverters, "testsifapi: sifGetComponentInfoL leaved with err %d", err);
   759         ELOG1(EJavaConverters, "testsifapi: sifSimplestInstallL leaved with err %d", err);
       
   760     }
   503     }
   761 
   504 
   762     // Wait for a moment
   505     // Wait for a moment
   763     User::After(500000);
   506     User::After(500000);
   764 
   507 
   765 
   508     TRAP(err, sifActivationTestL(componentId));
   766 
   509     if (KErrNone != err)
   767     // This test case must be executed sepatately, while manually started 
   510     {
   768     // Java Installer is running
   511         ELOG1(EJavaConverters,
   769     LOG(EJavaConverters, EInfo, "testsifapi: starting sifInstallerAlreadyRunningL");
   512             "testsifapi: sifActivationTestL leaved with err %d", err);
   770     TRAP(err, sifInstallerAlreadyRunningL());
       
   771     if (KErrNone != err)
       
   772     {
       
   773         ELOG1(EJavaConverters, "testsifapi: sifInstallerAlreadyRunningL leaved with err %d", err);
       
   774     }
   513     }
   775 
   514 
   776     // Wait for a moment
   515     // Wait for a moment
   777     User::After(500000);
   516     User::After(500000);
   778 
   517 
   779 
   518 
   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 
       
   831     // TODO: if this fails, it leaks memory
   519     // TODO: if this fails, it leaks memory
   832     if (0 != componentId)
   520     if (0 != componentId)
   833     {
   521     {
   834         LOG(EJavaConverters, EInfo, "testsifapi: starting sifUninstallL");
       
   835         TRAP(err, sifUninstallL(componentId));
   522         TRAP(err, sifUninstallL(componentId));
   836         if (KErrNone != err)
   523         if (KErrNone != err)
   837         {
   524         {
   838             ELOG1(EJavaConverters,
   525             ELOG1(EJavaConverters,
   839                 "testsifapi: sifUninstallL leaved with err %d", err);
   526                 "testsifapi: sifUninstallL leaved with err %d", err);
   841 
   528 
   842         // Wait for a moment
   529         // Wait for a moment
   843         User::After(500000);
   530         User::After(500000);
   844     }
   531     }
   845 
   532 
   846 
       
   847     delete cleanupStack;
   533     delete cleanupStack;
   848 //    __UHEAP_MARKEND;
   534 //    __UHEAP_MARKEND;
   849 //    __UHEAP_MARKENDC(1);
   535     __UHEAP_MARKENDC(1);
   850     return KErrNone;
   536     return KErrNone;
   851 }
   537 }