WebVerifyDataBound Function

Action

Parses the server response data and verifies the specified string within the boundaries if the string starts with the given parameter. If the verification condition is not met, an error is raised. The severity of this error can be specified. The result of the verification can be retrieved by an optional out-parameter. A subsequent low-level web function will not return a value until the request has finished. A cache hit is not performed unless the WEB_FLAG_DONT_FORCE_LOAD option is set. The verification is done even if this option is set and the verified request or a certain part of a page is a cache hit.

When verifying/parsing an HTML page that consists of multiple frames (HTML documents), you can specify which frame document to verify/parse by specifying the nDocNum parameter. By default (1) the top document (for example, a frameset) is scanned. This applies to HTML pages that are retrieved through a page-level command like WebPageUrl or WebPageLink.

It is important to know that all parsing and verification functions must be specified before the Web API call for which the response data should be parsed/verified. You can specify multiple parse/verification functions before a Web API call. The order of the parse/verification functions is not relevant (Exception: WebParseDataBound and WebVerifyDataBound using the flag WEB_FLAG_SYNCHRON).

This verification feature can be enabled/disabled globally (Profile Settings / Web / Verification / Data / Data verification).

Note: This function can be added automatically to your script using the visual verification functionality of TrueLog Explorer.

Include file

WebAPI.bdh

Syntax

WebVerifyDataBound( in  sLeftBoundary  : string,
                    in  sRightBoundary : string,
                    in  sVerify        : string,
                    in  nOptions       : number optional,
                    in  nDocNum        : number optional,
                    in  nSeverity      : number optional := SEVERITY_ERROR,
                    out bSuccess       : boolean optional );
Parameter Description
sLeftBoundary Left boundary of the data to compare.
sRightBoundary Right boundary of the data to compare.
sVerify String to compare with the parsed data.
nOptions

(optional)

WEB_FLAG_CASE_SENSITIVE
If this flag is set the string compare operation is case sensitive.
WEB_FLAG_IGNORE_WHITE_SPACE
If this flag is set all white spaces are ignored.
WEB_FLAG_DONT_FORCE_LOAD
Specify this option to enable caching for subsequent request. Note that this may lead to unpredictable behaviour, because the verification may only cover certain parts (which are loaded) of a page.
WEB_FLAG_SYNCHRON
Verifications with this flag set, are done in a sequential way. The second verification is not executed before the boundaries of the first one have been found.
WEB_FLAG_ALL_RESPONSES
If this flag is specified, all server responses are scanned (even redirection responses, which are normally not displayed by a browser).
WEB_FLAG_INCLUDE_EMBEDDED
If this flag is specified, even embedded documents can be specified by the nDocNum parameter. Normally the number of a document is defined by the occurrence of the source definition in an HTML document (src=...). If this flag is specified every embedded object increases this counter, which assigns higher numbers to subsequent frames
WEB_FLAG_INCLUDE_HEADER
If this flag is specified the response header can also be verified.
WEB_FLAG_HEADER_ONLY
If this flag is specified only the response header is verified.
WEB_FLAG_RULE
Specify this flag to perform the verification on every subsequent web function. Verification functions with this flag are usually located in the TInit transaction. Call WebCancelAllRules() to disable all verification rules.
Note: The option WEB_FLAG_RULE should only be used in the INIT transaction or in combination with the WebCancelAllRules function!
nDocNum Specifies the document to verify (optional). Specify WEB_DOC_ALL if you want to verify all documents. If this parameter is omitted, the first document gets verified. (see the above definition of FLAG_INCLUDE_EMBEDDED)
nSeverity Optional: Severity of the error that is raised if the verification fails. Can be one of the following values:
  • SEVERITY_SUCCESS: Success; no error (numerical value: 0)
  • SEVERITY_INFORMATIONAL: Informational; no error (numerical value: 1)
  • SEVERITY_WARNING: Warning; no error (numerical value: 2)
  • SEVERITY_ERROR: (Default) Error; simulation continues (numerical value: 3)
  • SEVERITY_TRANS_EXIT: Error; the active transaction is aborted (numerical value: 4)
  • SEVERITY_PROCESS_EXIT: Error; the simulation is aborted (numerical value: 5)
bSuccess If a variable is provided, it will receive result of the verification (optional).

Example

dcltrans
  transaction TMain
  var
    bResult: boolean;
  begin
    WebVerifyDataBound("<b>Begin", "X.X</b>", "End ");
    WebPageUrl("http://mycompany.com/");
    WebVerifyDataBound("<b>Begin","X.X</b>", "End ", 0, 0, SEVERITY_WARNING);
    WebVerifyDataBound("<html>","</html>", "no body", WEB_FLAG_CASE_SENSITIVE | WEB_FLAG_IGNORE_WHITE_SPACE);
    WebUrl("http://mycompany.com/Shop/default.htm");
    WebVerifyDataBound("Name:", "\r\n", "Smith",WEB_FLAG_IGNORE_WHITE_SPACE, 2, SEVERITY_Error, bResult);
    WebPageUrl("http://mycompany.com/frame/framea.html");
    if not bResult then
       Print("Verification failed");
    end;
  end TMain;