This documentation is archived and is not being maintained.

ValidationRule Class

Verifies that requests return valid HTTP responses and that the contents of the response match the expected results. This class must be inherited.

Namespace:  Microsoft.VisualStudio.TestTools.WebTesting
Assembly:  Microsoft.VisualStudio.QualityTools.WebTestFramework (in Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

public abstract class ValidationRule

The ValidationRule type exposes the following members.

Protected methodValidationRuleThis class must be inherited. It cannot be instantiated.

Public propertyRuleDescription Obsolete. Gets the description displayed in the user interface when a rule is selected.
Public propertyRuleName Obsolete. When overridden in a derived class, gets the name displayed in the user interface when a rule is selected or shown in the editor.

Public methodEqualsDetermines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodValidateWhen overridden in a derived class, this validates both the request and response.

User-written validation rules must derive from this class. Validation rules are executed just after the request is complete.

Notes to Inheritors

When you inherit from ValidationRule, you must override the Validate method and RuleName property.

The following code sample shows how to inherit from ValidationRule to make a rule that validates the existence of scripts on the Web page.

using System;
using Microsoft.VisualStudio.TestTools.WebTesting;

namespace MyValidationRule
    public class ValidatePageContainsScript : ValidationRule
        public override string RuleName
            get { return "Validate Script Existence"; }

        public override string RuleDescription
            get { return "Validates that the page has a script."; }

        public override void Validate(object sender, ValidationEventArgs e)
            bool validated = false;
            string foundJS ="";
            string foundVBS = "";

            string message = "Non-valid HTML document";

            if (e.Response.HtmlDocument != null)
            {   // Gets all input tags
                foreach (HtmlTag tag in e.Response.HtmlDocument
                    .GetFilteredHtmlTags(new string[] { "script" }))
                {   // Check type of script for current tag
                    if (tag.GetAttributeValueAsString("type") == "text/JavaScript")
                        foundJS = "Found JavaScript";
                    if (tag.GetAttributeValueAsString("type") == "text/VBScript")
                        foundVBS = "Found VBScript";

                if (foundVBS.Length != 0 || foundJS.Length != 0)
                    validated = true;
                    message = string.Format("{0} {1}", foundJS, foundVBS);
                   message = "No scripts in current page";
            e.IsValid = validated;
            e.Message = message;

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.