Forum Discussion

TheGhost's avatar
TheGhost
Contributor
10 years ago

How to Integrate a *.chm help file with TestComplete for functions written into script units

Hi

Given I can generate a chm file for utility functions written into scripts (not script extensions) is there a way to integrate this with the interactive help system in TestComplete so <F1> on one of my utility functions will bring up my help file topic for this function.

 

I do not want to put this functionality into script extensions (unless there is a way to create dummy method definitons that do not come up in the IDE).

 

Thanks

John

  • Hi John,

     

    Yes, it's possible. You can put your CHM in the <TestComplete>\Help folder, and if it meets the requirements below, it will be automatically integrated into F1 help, TestComplete help contents (TOC), index, and full-text search.

     

    Example

    Attached is a sample CHM file (with source code) that illustrates help integration. It has an F1 topic for MyFunction. Copy this CHM file to the <TestComplete>\Help folder to try it out.

     

    Implementation Details

     

    • The CHM file must be named TestCompleteExtension1.chm, and must be in the <TestComplete>\Help folder. If you have several CHM files, name them TestCompleteExtension2.chm and so on, up to 20.

    • For F1 to work, topics must include ALinks with the function names and other keywords needed:

      <!-- MyFunction.htm -->
      <head>
         ...
         <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
           <param name="ALink Name" value="MyFunction">
         </object>
      </head>
      You can use multiple ALinks in the same tag:

    • <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
        <param name="ALink Name" value="MyFunction">
        <param name="ALink Name" value="MyFunctionEx">
      </object>
      Note that the keywords / function names in ALinks are case-sensitive.

    • If you use a table of contents (TOC), the TOC file (.hhc) must have the same name as the CHM file, for example, TestCompleteExtension1.hhc.
      All items in the TOC should be grouped under a top-level folder - this folder will appear at the end of the TestComplete help TOC.

    • The CHM file must be compiled with binary index.

      ; HHP file
      
      [OPTIONS]
      Binary Index=Yes
    • The CHM file must include window definitions named Main and $global_Main. Your default window definition can be different; these two are used only for F1 integration. Or you can use one of them as your default window.

      ; HHP file
      
      [WINDOWS]
      Main="My TestComplete Extension","TestCompleteExtension1.hhc","TestCompleteExtension1.hhk","YourDefaultTopic.htm","YourHomeTopic.htm",other options if needed
      $global_Main="My TestComplete Extension","TestCompleteExtension1.hhc","TestCompleteExtension1.hhk","YourDefaultTopic.htm","YourHomeTopic.htm", other options if needed
    • If you need to use Context IDs, use IDs from 18000 and up.

      ; HHP file
      
      [ALIAS]
      Topic1 = topic1.htm
      Topic2 = more\topic2.htm
      
      [MAP]
      #define Topic1 18000
      #define Topic2 18001

     

    Known Issues

     

    • F1 for your keywords opens two help windows (your CHM file, and the TestComplete help file in the background) instead of a single window with the merged help files. This will be fixed in TestComplete 11.1.

     

    Hope this helps, and let me know if you have further questions.

  • HKosova's avatar
    HKosova
    SmartBear Alumni (Retired)

    Hi John,

     

    Yes, it's possible. You can put your CHM in the <TestComplete>\Help folder, and if it meets the requirements below, it will be automatically integrated into F1 help, TestComplete help contents (TOC), index, and full-text search.

     

    Example

    Attached is a sample CHM file (with source code) that illustrates help integration. It has an F1 topic for MyFunction. Copy this CHM file to the <TestComplete>\Help folder to try it out.

     

    Implementation Details

     

    • The CHM file must be named TestCompleteExtension1.chm, and must be in the <TestComplete>\Help folder. If you have several CHM files, name them TestCompleteExtension2.chm and so on, up to 20.

    • For F1 to work, topics must include ALinks with the function names and other keywords needed:

      <!-- MyFunction.htm -->
      <head>
         ...
         <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
           <param name="ALink Name" value="MyFunction">
         </object>
      </head>
      You can use multiple ALinks in the same tag:

    • <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
        <param name="ALink Name" value="MyFunction">
        <param name="ALink Name" value="MyFunctionEx">
      </object>
      Note that the keywords / function names in ALinks are case-sensitive.

    • If you use a table of contents (TOC), the TOC file (.hhc) must have the same name as the CHM file, for example, TestCompleteExtension1.hhc.
      All items in the TOC should be grouped under a top-level folder - this folder will appear at the end of the TestComplete help TOC.

    • The CHM file must be compiled with binary index.

      ; HHP file
      
      [OPTIONS]
      Binary Index=Yes
    • The CHM file must include window definitions named Main and $global_Main. Your default window definition can be different; these two are used only for F1 integration. Or you can use one of them as your default window.

      ; HHP file
      
      [WINDOWS]
      Main="My TestComplete Extension","TestCompleteExtension1.hhc","TestCompleteExtension1.hhk","YourDefaultTopic.htm","YourHomeTopic.htm",other options if needed
      $global_Main="My TestComplete Extension","TestCompleteExtension1.hhc","TestCompleteExtension1.hhk","YourDefaultTopic.htm","YourHomeTopic.htm", other options if needed
    • If you need to use Context IDs, use IDs from 18000 and up.

      ; HHP file
      
      [ALIAS]
      Topic1 = topic1.htm
      Topic2 = more\topic2.htm
      
      [MAP]
      #define Topic1 18000
      #define Topic2 18001

     

    Known Issues

     

    • F1 for your keywords opens two help windows (your CHM file, and the TestComplete help file in the background) instead of a single window with the merged help files. This will be fixed in TestComplete 11.1.

     

    Hope this helps, and let me know if you have further questions.

    • TheGhost's avatar
      TheGhost
      Contributor

      Thanks Helen

      Works exactly as you described :-).

      John