public static ValidationRuleFindText GetValidationRuleForFindText(string findText, bool passIfTextFound = true)
 {
     ValidationRuleFindText text = new ValidationRuleFindText();
     text.FindText = findText;
     text.IgnoreCase = true;
     text.UseRegularExpression = false;
     text.PassIfTextFound = passIfTextFound;
     return text;
 }
Exemplo n.º 2
0
        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            // Инициализация правил проверки, применяемых ко всем запросам в веб-тесте
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule1.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal();
                validationRule2.Tolerance = 0D;
                this.ValidateResponseOnPageComplete += new EventHandler<ValidationEventArgs>(validationRule2.Validate);
            }

            WebTestRequest request1 = new WebTestRequest("http://localhost:2489/");
            yield return request1;
            request1 = null;

            WebTestRequest request2 = new WebTestRequest("http://localhost:2489/Account/Login");
            request2.ThinkTime = 9;
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();
            extractionRule1.Required = true;
            extractionRule1.HtmlDecode = true;
            extractionRule1.ContextParameterName = "1";
            request2.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule1.Extract);
            yield return request2;
            request2 = null;

            WebTestRequest request3 = new WebTestRequest("http://localhost:2489/Account/Login");
            request3.ThinkTime = 13;
            request3.Method = "POST";
            request3.ExpectedResponseUrl = GetExpectedReturnUrl();
            FormPostHttpBody request3Body = new FormPostHttpBody();
            request3Body.FormPostParameters.Add("__RequestVerificationToken", this.Context["$HIDDEN1.__RequestVerificationToken"].ToString());
            request3Body.FormPostParameters.Add("Email", this.Context["LogInTestData.LogInTestData#csv.Login"].ToString());
            request3Body.FormPostParameters.Add("Password", this.Context["LogInTestData.LogInTestData#csv.Password"].ToString());
            request3Body.FormPostParameters.Add("RememberMe", this.Context["$HIDDEN1.RememberMe"].ToString());
            request3.Body = request3Body;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText = this.Context["LogInTestData.LogInTestData#csv.Text"].ToString();
                validationRule3.IgnoreCase = false;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound = true;
                request3.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule3.Validate);
            }
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();
            extractionRule2.Required = true;
            extractionRule2.HtmlDecode = true;
            extractionRule2.ContextParameterName = "1";
            request3.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule2.Extract);
            yield return request3;
            request3 = null;
        }
Exemplo n.º 3
0
        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            //Upload a new package.   
            string packageId = this.Name + DateTime.Now.Ticks.ToString();
            string version = "1.0.0";
            AssertAndValidationHelper.UploadNewPackageAndVerify(packageId,version);

            //Do initial login to be able to perform delete ops.
            WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest();
            yield return logonGet;
            logonGet = null;
            WebTestRequest logonPost = AssertAndValidationHelper.GetLogonPostRequest(this);
            yield return logonPost;
            logonPost = null;

            string deletePackagePageUrl = UrlHelper.GetPackageDeletePageUrl(packageId, version);


            WebTestRequest deletePackageRequest = AssertAndValidationHelper.GetHttpRequestForUrl(deletePackagePageUrl);           
            yield return deletePackageRequest;
            deletePackageRequest = null;

            WebTestRequest deletePackagePagePostRequest = new WebTestRequest(deletePackagePageUrl);
            deletePackagePagePostRequest.Method = "POST";
            //once the listing is done, it should return back to the packages page.
            deletePackagePagePostRequest.ExpectedResponseUrl = UrlHelper.GetPackagePageUrl(packageId, version);
            FormPostHttpBody deletePackagePostRequestForm = new FormPostHttpBody();
            deletePackagePostRequestForm.FormPostParameters.Add("__RequestVerificationToken", this.Context["$HIDDEN1.__RequestVerificationToken"].ToString());
            deletePackagePostRequestForm.FormPostParameters.Add("Listed", this.Context["$HIDDEN1.Listed"].ToString());
            deletePackagePagePostRequest.Body = deletePackagePostRequestForm;

            //Make sure that the package page shows the message saying that it has been unlisted.
            ValidationRuleFindText findTextRule = new ValidationRuleFindText();
            findTextRule.FindText = Constants.UnListedPackageText;
            deletePackagePagePostRequest.ValidateResponse += new EventHandler<ValidationEventArgs>(findTextRule.Validate);
            yield return deletePackagePagePostRequest;
            deletePackagePagePostRequest = null;

            //check if it shows up in search and cross check with client SDK.            
            Assert.IsTrue(ClientSDKHelper.IsPackageVersionUnListed(packageId, version), "Package not returned as unlisted by Nuget core after unlisting it in gallery");

           


        }
Exemplo n.º 4
0
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            WebTestRequest frequest1 = new WebTestRequest(fbaURL);

            frequest1.ExpectedResponseUrl = fbaURL + "/_layouts/login.aspx?ReturnUrl=%2f";
            ExtractHiddenFields fextractionRule1 = new ExtractHiddenFields();

            fextractionRule1.Required             = true;
            fextractionRule1.HtmlDecode           = true;
            fextractionRule1.ContextParameterName = "1";
            frequest1.ExtractValues += new EventHandler <ExtractionEventArgs>(fextractionRule1.Extract);
            yield return(frequest1);

            frequest1 = null;

            WebTestRequest frequest3 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            frequest3.ThinkTime           = 4;
            frequest3.Method              = "POST";
            frequest3.ExpectedResponseUrl = fbaURL + "/Pages/default.aspx";
            frequest3.QueryStringParameters.Add("ReturnUrl", "%2f", false, false);
            FormPostHttpBody frequest3Body = new FormPostHttpBody();

            frequest3Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
            frequest3Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            frequest3Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            frequest3Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            frequest3Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            frequest3Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$UserName", fbaUserName);
            frequest3Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$password", fbaUserPassword);
            frequest3Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$login", "Sign In");
            frequest3Body.FormPostParameters.Add("__spDummyText1", "");
            frequest3Body.FormPostParameters.Add("__spDummyText2", "");
            frequest3.Body = frequest3Body;



            yield return(frequest3);

            frequest3 = null;

            WebTestRequest request1 = new WebTestRequest(fbaURL + "/sites/partner1");

            request1.ExpectedResponseUrl = fbaURL + "/sites/partner2/Pages/default.aspx";

            ValidationRuleFindText validationRule3 = new ValidationRuleFindText();

            validationRule3.FindText             = "Incident Dashboard";
            validationRule3.IgnoreCase           = true;
            validationRule3.UseRegularExpression = true;
            validationRule3.PassIfTextFound      = true;
            request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);

            yield return(request1);

            request1 = null;

            WebTestRequest request2 = new WebTestRequest(fbaURL + "/sites/partner1/IncidentDashboard.aspx");

            ValidationRuleFindText validationRule21 = new ValidationRuleFindText();

            validationRule21.FindText             = "Active Incidents";
            validationRule21.IgnoreCase           = true;
            validationRule21.UseRegularExpression = true;
            validationRule21.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule21.Validate);

            ValidationRuleFindText validationRule22 = new ValidationRuleFindText();

            validationRule22.FindText             = "Closed Incidents";
            validationRule22.IgnoreCase           = true;
            validationRule22.UseRegularExpression = true;
            validationRule22.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule22.Validate);

            ValidationRuleFindText validationRule23 = new ValidationRuleFindText();

            validationRule23.FindText             = "Active Incident Tasks";
            validationRule23.IgnoreCase           = true;
            validationRule23.UseRegularExpression = false;
            validationRule23.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule23.Validate);

            yield return(request2);

            request2 = null;
        }
Exemplo n.º 5
0
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            //this.UserName = Config.adminUser;
            //this.Password = Config.adminPass;

            WebTestRequest      request99       = new WebTestRequest(this.siteURL + this.webURL + "/Lists/TrainingCourses/NewForm.aspx");
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request99.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            ExtractText extractionRule99 = new ExtractText();

            extractionRule99.StartsWith           = "ctl00_m_g_";
            extractionRule99.EndsWith             = "_ctl";
            extractionRule99.IgnoreCase           = false;
            extractionRule99.UseRegularExpression = true;
            extractionRule99.Required             = true;
            extractionRule99.ExtractRandomMatch   = false;
            extractionRule99.Index      = 0;
            extractionRule99.HtmlDecode = true;

            extractionRule99.ContextParameterName = "guid";
            request99.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule99.Extract);



            yield return(request99);

            string guidPrefix = "ctl00$m$g_";
            string guid       = Context["guid"].ToString();

            request99 = null;
            this.BeginTransaction("createCourse");
            WebTestRequest request2 = new WebTestRequest(this.siteURL + this.webURL + "/Lists/TrainingCourses/NewForm.aspx");

            request2.Method = "POST";
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request2Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN1.MSOWebPartPage_PostbackSource"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request2Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2Body.FormPostParameters.Add("InputKeywords", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl00$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl01$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl02$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "<div></div>");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl02$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField_spSave", "<DIV></DIV>");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl03$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl04$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl05$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl06$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl07$ctl00$owshiddenversion" +
                                                "", this.Context["$HIDDEN1." + guidPrefix + guid + "$ctl00$ctl07$ctl00$owshidd" +
                                                                 "enversion"].ToString());
            request2Body.FormPostParameters.Add("attachmentsToBeRemovedFromServer", this.Context["$HIDDEN1.attachmentsToBeRemovedFromServer"].ToString());
            request2Body.FormPostParameters.Add("RectGifUrl", this.Context["$HIDDEN1.RectGifUrl"].ToString());
            request2Body.FormPostParameters.Add("fileupload0", "");
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl07$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl03.x", "5");
            request2Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl07$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl03.y", "8");
            request2.Body = request2Body;
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "1";
            request2.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            yield return(request2);

            this.EndTransaction("createCourse");
            request2 = null;


            WebTestRequest request6 = new WebTestRequest(this.siteURL + this.webURL + "/Lists/TrainingCourses/NewForm.aspx");

            request6.Method = "POST";
            request6.ExpectedResponseUrl = this.siteURL + this.webURL + "/Lists/TrainingCourses/AllItems.aspx";
            FormPostHttpBody request6Body = new FormPostHttpBody();

            request6Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN1.MSOWebPartPage_PostbackSource"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request6Body.FormPostParameters.Add("__EVENTTARGET", guidPrefix + guid + "$ctl00$toolBarTbl$RightRptControls$" +
                                                "ctl00$ctl00$diidIOSaveItem");
            request6Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request6Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request6Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request6Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());



            request6Body.FormPostParameters.Add("InputKeywords", "");
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl00$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", this.myCourseCode);
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl01$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", this.myCourseCode);
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl02$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "<div></div>");
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl02$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField_spSave", this.myCourseCode + "\r\n<DIV></DIV>");
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl03$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", DateTime.Now.AddDays(1).ToShortDateString());
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl04$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", DateTime.Now.AddDays(1).ToShortDateString());
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl05$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$DateTimeField$DateTimeFieldDate", "");
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl04$ctl06$ctl00$ctl00$ctl0" +
                                                "4$ctl00$ctl00$TextField", "100");
            request6Body.FormPostParameters.Add(guidPrefix + guid + "$ctl00$ctl07$ctl00$owshiddenversion" +
                                                "", this.Context["$HIDDEN1." + guidPrefix + guid + "$ctl00$ctl07$ctl00$owshidd" +
                                                                 "enversion"].ToString());
            request6Body.FormPostParameters.Add("attachmentsToBeRemovedFromServer", this.Context["$HIDDEN1.attachmentsToBeRemovedFromServer"].ToString());
            request6Body.FormPostParameters.Add("RectGifUrl", this.Context["$HIDDEN1.RectGifUrl"].ToString());
            request6Body.FormPostParameters.Add("fileupload0", "");
            request6Body.FormPostParameters.Add("__spDummyText1", "");
            request6Body.FormPostParameters.Add("__spDummyText2", "");
            request6.Body = request6Body;

            //validate error message
            //You must specify a value for this required field.
            ValidationRuleFindText validationRule2 = new ValidationRuleFindText();

            validationRule2.FindText             = "You must specify a value for this required field.";
            validationRule2.IgnoreCase           = false;
            validationRule2.UseRegularExpression = false;
            validationRule2.PassIfTextFound      = true;
            request6.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);

            yield return(request6);

            request6 = null;
        }
Exemplo n.º 6
0
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            this.UserName = System.Environment.MachineName + "\\ContosoPartner1User6";
            this.Password = winUserPassword;


            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/ProductCatalog/Product.aspx");

            request1.QueryStringParameters.Add("sku", "6000000000", false, false);
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "X-ray Machine";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "SKU: 6000000000";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = "ProductDetailsWebPart Web Part";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "PricingWebPart Web Part";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule6 = new ValidationRuleFindText();
                validationRule6.FindText             = "Discounts Web Part";
                validationRule6.IgnoreCase           = true;
                validationRule6.UseRegularExpression = false;
                validationRule6.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule6.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule7 = new ValidationRuleFindText();
                validationRule7.FindText             = "RelatedPartsWebPart Web Part";
                validationRule7.IgnoreCase           = true;
                validationRule7.UseRegularExpression = false;
                validationRule7.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule7.Validate);
            }
            yield return(request1);

            request1 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request1.QueryStringParameters.Add("categoryid", "1", false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "2";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();

            extractionRule3.Required             = true;
            extractionRule3.HtmlDecode           = true;
            extractionRule3.ContextParameterName = "3";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract);

            //Extract CategoryDetail WebPart guid
            ExtractAttributeValue extractionRule23 = new ExtractAttributeValue();

            extractionRule23.TagName             = "div";
            extractionRule23.AttributeName       = "WebPartID";
            extractionRule23.MatchAttributeName  = "id";
            extractionRule23.MatchAttributeValue = "WebPartWPQ3";
            extractionRule23.HtmlDecode          = true;
            extractionRule23.Required            = true;
            extractionRule23.Index = 0;
            extractionRule23.ContextParameterName = "CategoryDetailWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule23.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule33 = new ExtractAttributeValue();

            extractionRule33.TagName             = "div";
            extractionRule33.AttributeName       = "WebPartID";
            extractionRule33.MatchAttributeName  = "id";
            extractionRule33.MatchAttributeValue = "WebPartWPQ4";
            extractionRule33.HtmlDecode          = true;
            extractionRule33.Required            = true;
            extractionRule33.Index = 0;
            extractionRule33.ContextParameterName = "CategoryListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule33.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule43 = new ExtractAttributeValue();

            extractionRule43.TagName             = "div";
            extractionRule43.AttributeName       = "WebPartID";
            extractionRule43.MatchAttributeName  = "id";
            extractionRule43.MatchAttributeValue = "WebPartWPQ5";
            extractionRule43.HtmlDecode          = true;
            extractionRule43.Required            = true;
            extractionRule43.Index = 0;
            extractionRule43.ContextParameterName = "ProductListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule43.Extract);
            //Check for Root Category
            ValidationRuleFindText validationRule11 = new ValidationRuleFindText();

            validationRule11.FindText             = @"<a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=0"">Root Category</a></span><span> &gt; </span><span class=""ms-sitemapdirectional"">Medical Supplies</span>";
            validationRule11.IgnoreCase           = true;
            validationRule11.UseRegularExpression = false;
            validationRule11.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule11.Validate);

            //Check for Category Details Webpart title
            ValidationRuleFindText validationRule12 = new ValidationRuleFindText();

            validationRule12.FindText             = "Category Details";
            validationRule12.IgnoreCase           = true;
            validationRule12.UseRegularExpression = false;
            validationRule12.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule12.Validate);

            //Check for Category List Webpart title
            ValidationRuleFindText validationRule13 = new ValidationRuleFindText();

            validationRule13.FindText             = "Category List";
            validationRule13.IgnoreCase           = true;
            validationRule13.UseRegularExpression = false;
            validationRule13.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule13.Validate);

            //Check for Product List Webpart title
            ValidationRuleFindText validationRule14 = new ValidationRuleFindText();

            validationRule14.FindText             = "Product List";
            validationRule14.IgnoreCase           = true;
            validationRule14.UseRegularExpression = false;
            validationRule14.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule14.Validate);

            yield return(request1);

            string CategoryDetailWebPartGuid = Context["CategoryDetailWebPartGuid"].ToString();
            string CategoryListWebPartGuid   = Context["CategoryListWebPartGuid"].ToString();
            string ProductListWebPartGuid    = Context["ProductListWebPartGuid"].ToString();


            request1 = null;

            WebTestRequest request2 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request2.Method = "POST";
            request2.QueryStringParameters.Add("categoryid", "1", false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request2Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN1.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryDetailWebPartGuid.Replace("-", "_").ToString());
            request2Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2.Body = request2Body;

            //Check for CategoryId
            ValidationRuleFindText validationRule21 = new ValidationRuleFindText();

            validationRule21.FindText             = @"<nobr>CategoryId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">1</td>";
            validationRule21.IgnoreCase           = true;
            validationRule21.UseRegularExpression = false;
            validationRule21.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule21.Validate);

            //Check for CategoryName
            ValidationRuleFindText validationRule22 = new ValidationRuleFindText();

            validationRule22.FindText             = @"<nobr>Name:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">Medical Supplies</td>";
            validationRule22.IgnoreCase           = true;
            validationRule22.UseRegularExpression = false;
            validationRule22.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule22.Validate);
            //Check for ParentId
            ValidationRuleFindText validationRule23 = new ValidationRuleFindText();

            validationRule23.FindText             = @"<nobr>ParentId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">0</td>";
            validationRule23.IgnoreCase           = true;
            validationRule23.UseRegularExpression = false;
            validationRule23.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule23.Validate);

            yield return(request2);

            request2 = null;

            WebTestRequest request3 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request3.Method = "POST";
            request3.QueryStringParameters.Add("categoryid", "1", false, false);
            FormPostHttpBody request3Body = new FormPostHttpBody();

            request3Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN2.MSO_PageHashCode"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN2.MSOTlPn_SelectedWpId"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN2.MSOTlPn_View"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN2.MSOTlPn_ShowSettings"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN2.MSOGallery_SelectedLibrary"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN2.MSOGallery_FilterString"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN2.MSOTlPn_Button"].ToString());
            request3Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN2.__EVENTTARGET"].ToString());
            request3Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN2.__EVENTARGUMENT"].ToString());
            request3Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN2.__REQUESTDIGEST"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_DisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN2.MSOWebPartPage_Shared"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN2.MSOLayout_LayoutChanges"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN2.MSOLayout_InDesignMode"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN2.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request3Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN2.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request3Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN2.__VIEWSTATE"].ToString());
            request3Body.FormPostParameters.Add("__spDummyText1", "");
            request3Body.FormPostParameters.Add("__spDummyText2", "");
            request3Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryListWebPartGuid.Replace("-", "_").ToString());
            request3Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request3Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN2.__EVENTVALIDATION"].ToString());

            request3.Body = request3Body;
            ValidationRuleFindText validationRule31 = new ValidationRuleFindText();

            validationRule31.FindText             = @"<a onclick=""event.cancelBubble=true"" href=""" + hostURL + "/sites/productcatalog/_layouts/ProfileRedirect.aspx?Application=ContosoProductCatalogService&amp;Entity=Category&amp;ItemId=__bk40007300\" onkeydown=\"actionMenuOnKeyDown('Loading...','Misc. Supplies',false,'ContosoProductCatalogService','Category','__bk40007300');\">Misc. Supplies<img src=\"/_layouts/images/blank.gif\" border=\"0\" alt=\"\"></a>";
            validationRule31.IgnoreCase           = true;
            validationRule31.UseRegularExpression = false;
            validationRule31.PassIfTextFound      = true;
            request3.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule31.Validate);


            yield return(request3);

            request3 = null;

            WebTestRequest request4 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request4.Method = "POST";
            request4.QueryStringParameters.Add("categoryid", "1", false, false);
            FormPostHttpBody request4Body = new FormPostHttpBody();

            request4Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN3.MSO_PageHashCode"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN3.MSOTlPn_SelectedWpId"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN3.MSOTlPn_View"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN3.MSOTlPn_ShowSettings"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN3.MSOGallery_SelectedLibrary"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN3.MSOGallery_FilterString"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN3.MSOTlPn_Button"].ToString());
            request4Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN3.__EVENTTARGET"].ToString());
            request4Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN3.__EVENTARGUMENT"].ToString());
            request4Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN3.__REQUESTDIGEST"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_DisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN3.MSOWebPartPage_Shared"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN3.MSOLayout_LayoutChanges"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN3.MSOLayout_InDesignMode"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN3.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request4Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN3.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request4Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN3.__VIEWSTATE"].ToString());
            request4Body.FormPostParameters.Add("__spDummyText1", "");
            request4Body.FormPostParameters.Add("__spDummyText2", "");
            request4Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + ProductListWebPartGuid.Replace("-", "_").ToString());
            request4Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request4Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN3.__EVENTVALIDATION"].ToString());
            request4.Body = request4Body;

            //check for There are no items to show.
            ValidationRuleFindText validationRule41 = new ValidationRuleFindText();

            validationRule41.FindText             = "There are no items to show.";
            validationRule41.IgnoreCase           = true;
            validationRule41.UseRegularExpression = false;
            validationRule41.PassIfTextFound      = true;
            request4.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule41.Validate);

            yield return(request4);

            request4 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request1.QueryStringParameters.Add("categoryid", categoryid, false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "2";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();

            extractionRule3.Required             = true;
            extractionRule3.HtmlDecode           = true;
            extractionRule3.ContextParameterName = "3";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract);

            //Extract CategoryDetail WebPart guid
            ExtractAttributeValue extractionRule23 = new ExtractAttributeValue();

            extractionRule23.TagName             = "div";
            extractionRule23.AttributeName       = "WebPartID";
            extractionRule23.MatchAttributeName  = "id";
            extractionRule23.MatchAttributeValue = "WebPartWPQ3";
            extractionRule23.HtmlDecode          = true;
            extractionRule23.Required            = true;
            extractionRule23.Index = 0;
            extractionRule23.ContextParameterName = "CategoryDetailWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule23.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule33 = new ExtractAttributeValue();

            extractionRule33.TagName             = "div";
            extractionRule33.AttributeName       = "WebPartID";
            extractionRule33.MatchAttributeName  = "id";
            extractionRule33.MatchAttributeValue = "WebPartWPQ4";
            extractionRule33.HtmlDecode          = true;
            extractionRule33.Required            = true;
            extractionRule33.Index = 0;
            extractionRule33.ContextParameterName = "CategoryListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule33.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule43 = new ExtractAttributeValue();

            extractionRule43.TagName             = "div";
            extractionRule43.AttributeName       = "WebPartID";
            extractionRule43.MatchAttributeName  = "id";
            extractionRule43.MatchAttributeValue = "WebPartWPQ5";
            extractionRule43.HtmlDecode          = true;
            extractionRule43.Required            = true;
            extractionRule43.Index = 0;
            extractionRule43.ContextParameterName = "ProductListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule43.Extract);
            //Check for Root Category
            ValidationRuleFindText validationRule11 = new ValidationRuleFindText();

            validationRule11.FindText = @"<span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=0"">Root Category</a></span><span> &gt; </span><span class=""ms-sitemapdirectional"">Physician Equipment</span><a id=""ctl00_PlaceHolderMain_SiteMapPath1_SkipLink""></a></span>";
            //validationRule11.FindText = @"<span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=0"">Root Category</a></span><span> &gt; </span><span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=1"">Category 1</a></span><span> &gt; </span><span class=""ms-sitemapdirectional"">Category 3</span><a id=""ctl00_PlaceHolderMain_SiteMapPath1_SkipLink""></a></span>";
            validationRule11.IgnoreCase           = true;
            validationRule11.UseRegularExpression = false;
            validationRule11.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule11.Validate);

            //Check for Category Details Webpart title
            ValidationRuleFindText validationRule12 = new ValidationRuleFindText();

            validationRule12.FindText             = "Category Details";
            validationRule12.IgnoreCase           = true;
            validationRule12.UseRegularExpression = false;
            validationRule12.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule12.Validate);

            //Check for Category List Webpart title
            ValidationRuleFindText validationRule13 = new ValidationRuleFindText();

            validationRule13.FindText             = "Category List";
            validationRule13.IgnoreCase           = true;
            validationRule13.UseRegularExpression = false;
            validationRule13.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule13.Validate);

            //Check for Product List Webpart title
            ValidationRuleFindText validationRule14 = new ValidationRuleFindText();

            validationRule14.FindText             = "Product List";
            validationRule14.IgnoreCase           = true;
            validationRule14.UseRegularExpression = false;
            validationRule14.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule14.Validate);

            yield return(request1);

            string CategoryDetailWebPartGuid = Context["CategoryDetailWebPartGuid"].ToString();
            string CategoryListWebPartGuid   = Context["CategoryListWebPartGuid"].ToString();
            string ProductListWebPartGuid    = Context["ProductListWebPartGuid"].ToString();


            request1 = null;

            WebTestRequest request2 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request2.Method = "POST";
            request2.QueryStringParameters.Add("categoryid", categoryid, false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request2Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN1.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryDetailWebPartGuid.Replace("-", "_").ToString());
            request2Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2.Body = request2Body;

            //Check for CategoryId
            ValidationRuleFindText validationRule21 = new ValidationRuleFindText();

            validationRule21.FindText             = @"<nobr>CategoryId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">3</td>";
            validationRule21.IgnoreCase           = true;
            validationRule21.UseRegularExpression = false;
            validationRule21.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule21.Validate);

            //Check for CategoryName
            ValidationRuleFindText validationRule22 = new ValidationRuleFindText();

            validationRule22.FindText             = @"<nobr>Name:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">Physician Equipment</td>";
            validationRule22.IgnoreCase           = true;
            validationRule22.UseRegularExpression = false;
            validationRule22.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule22.Validate);
            //Check for ParentId
            ValidationRuleFindText validationRule23 = new ValidationRuleFindText();

            validationRule23.FindText             = @"<nobr>ParentId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">0</td>";
            validationRule23.IgnoreCase           = true;
            validationRule23.UseRegularExpression = false;
            validationRule23.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule23.Validate);

            yield return(request2);

            request2 = null;

            WebTestRequest request3 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request3.Method = "POST";
            request3.QueryStringParameters.Add("categoryid", categoryid, false, false);
            FormPostHttpBody request3Body = new FormPostHttpBody();

            request3Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN2.MSO_PageHashCode"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN2.MSOTlPn_SelectedWpId"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN2.MSOTlPn_View"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN2.MSOTlPn_ShowSettings"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN2.MSOGallery_SelectedLibrary"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN2.MSOGallery_FilterString"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN2.MSOTlPn_Button"].ToString());
            request3Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN2.__EVENTTARGET"].ToString());
            request3Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN2.__EVENTARGUMENT"].ToString());
            request3Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN2.__REQUESTDIGEST"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_DisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN2.MSOWebPartPage_Shared"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN2.MSOLayout_LayoutChanges"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN2.MSOLayout_InDesignMode"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN2.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request3Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN2.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request3Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN2.__VIEWSTATE"].ToString());
            request3Body.FormPostParameters.Add("__spDummyText1", "");
            request3Body.FormPostParameters.Add("__spDummyText2", "");
            request3Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryListWebPartGuid.Replace("-", "_").ToString());
            request3Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request3Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN2.__EVENTVALIDATION"].ToString());

            request3.Body = request3Body;
            // Validate Pediatric is on this page
            ValidationRuleFindText validationRule31 = new ValidationRuleFindText();

            validationRule31.FindText             = "Pediatric";
            validationRule31.IgnoreCase           = true;
            validationRule31.UseRegularExpression = false;
            validationRule31.PassIfTextFound      = true;
            request3.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule31.Validate);


            // Validate Exercise Therapy is on this page
            ValidationRuleFindText validationRule32 = new ValidationRuleFindText();

            validationRule32.FindText             = "Exercise Therapy";
            validationRule32.IgnoreCase           = true;
            validationRule32.UseRegularExpression = false;
            validationRule32.PassIfTextFound      = true;
            request3.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule32.Validate);


            yield return(request3);

            request3 = null;

            WebTestRequest request4 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request4.Method = "POST";
            categoryid      = "12";
            request4.QueryStringParameters.Add("categoryid", categoryid, false, false);
            FormPostHttpBody request4Body = new FormPostHttpBody();

            request4Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN3.MSO_PageHashCode"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN3.MSOTlPn_SelectedWpId"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN3.MSOTlPn_View"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN3.MSOTlPn_ShowSettings"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN3.MSOGallery_SelectedLibrary"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN3.MSOGallery_FilterString"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN3.MSOTlPn_Button"].ToString());
            request4Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN3.__EVENTTARGET"].ToString());
            request4Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN3.__EVENTARGUMENT"].ToString());
            request4Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN3.__REQUESTDIGEST"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_DisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN3.MSOWebPartPage_Shared"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN3.MSOLayout_LayoutChanges"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN3.MSOLayout_InDesignMode"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN3.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request4Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN3.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request4Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN3.__VIEWSTATE"].ToString());
            request4Body.FormPostParameters.Add("__spDummyText1", "");
            request4Body.FormPostParameters.Add("__spDummyText2", "");
            request4Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + ProductListWebPartGuid.Replace("-", "_").ToString());
            request4Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request4Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN3.__EVENTVALIDATION"].ToString());
            request4.Body = request4Body;

            //check for that their is a Image to show
            ValidationRuleFindText validationRule41 = new ValidationRuleFindText();

            validationRule41.FindText             = @"<img src=""" + CustConfig.GetLOBServicesURL + "/images/walker.jpg\">";
            validationRule41.IgnoreCase           = true;
            validationRule41.UseRegularExpression = false;
            validationRule41.PassIfTextFound      = true;
            request4.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule41.Validate);

            yield return(request4);

            request4 = null;
        }
Exemplo n.º 9
0
        [Ignore] //This method is marked ignore as it's been superceded by NuGetGallery.FunctionalTests.Fluent.EditPackageTest.
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            ExtractHiddenFields defaultExtractionRule = AssertAndValidationHelper.GetDefaultExtractHiddenFields();

            //Upload a new package.
            string packageId = this.Name + DateTime.Now.Ticks.ToString();
            string version   = "1.0.0";

            AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, version);

            //Do initial login to be able to perform edit.
            WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest();

            yield return(logonGet);

            logonGet = null;
            WebTestRequest logonPost = AssertAndValidationHelper.GetLogonPostRequest(this);

            yield return(logonPost);

            logonPost = null;

            WebTestRequest uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl);

            yield return(uploadRequest);

            if (this.LastResponse.ResponseUri.ToString().Contains("verify-upload"))
            {
                WebTestRequest cancelGet = AssertAndValidationHelper.GetCancelGetRequest();
                yield return(cancelGet);

                cancelGet     = null;
                uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl);
                yield return(uploadRequest);
            }
            uploadRequest = null;

            // The API key is part of the nuget.config file that is present under the solution dir.
            string packageFullPath = PackageCreationHelper.CreatePackage(packageId);

            WebTestRequest uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath);

            yield return(uploadPostRequest);

            uploadPostRequest = null;

            WebTestRequest verifyUploadRequest = new WebTestRequest(UrlHelper.VerifyUploadPageUrl);

            yield return(verifyUploadRequest);

            verifyUploadRequest = null;

            WebTestRequest verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.GetPackagePageUrl(packageId, "1.0.0"), packageId);

            yield return(verifyUploadPostRequest);

            verifyUploadPostRequest = null;

            WebTestRequest verifyEditRequest = AssertAndValidationHelper.GetEditGetRequestForPackage(packageId, "1.0.0");

            verifyEditRequest.ExtractValues += new EventHandler <ExtractionEventArgs>(defaultExtractionRule.Extract);
            yield return(verifyEditRequest);

            verifyEditRequest = null;

            WebTestRequest         verifyEditPostRequest        = AssertAndValidationHelper.GetEditPackagePostRequest(this, packageId, "1.0.0", description: "This is a new description.", authors: "clayco", copyright: "Copyright 2014", tags: "Tag1 Tag2", summary: "This is a summary.");
            ValidationRuleFindText newDescriptionValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(@"This is a new description.");
            ValidationRuleFindText pendingEditValidationRule    = AssertAndValidationHelper.GetValidationRuleForFindText(@"An edit is pending for this package version.");

            verifyEditPostRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(newDescriptionValidationRule.Validate);
            verifyEditPostRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(pendingEditValidationRule.Validate);
            yield return(verifyEditPostRequest);

            verifyEditPostRequest = null;

            // wait up to five minutes.
            System.Threading.Thread.Sleep(300000);
            WebTestRequest         verifyProcessedRequest      = new WebTestRequest(UrlHelper.GetPackagePageUrl(packageId, "1.0.0"));
            ValidationRuleFindText noPendingEditValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(@"An edit is pending for this package version.", false);

            verifyProcessedRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(newDescriptionValidationRule.Validate);
            verifyProcessedRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(noPendingEditValidationRule.Validate);
            yield return(verifyProcessedRequest);

            verifyProcessedRequest = null;
        }
Exemplo n.º 10
0
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(fbaURL + "/sites/ProductCatalog/Product.aspx");

            request1.ThinkTime           = 14;
            request1.ExpectedResponseUrl = fbaURL + "/_layouts/login.aspx?ReturnUrl=%2fsites%2fProductCatalog" +
                                           "%2fProduct.aspx%3fsku%3d6000000000&sku=6000000000";
            request1.QueryStringParameters.Add("sku", "6000000000", false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            yield return(request1);

            request1 = null;

            WebTestRequest request2 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            request2.Method = "POST";
            request2.ExpectedResponseUrl = fbaURL + "/sites/ProductCatalog/Product.aspx?sku=6000000000";
            request2.QueryStringParameters.Add("ReturnUrl", "%2fsites%2fProductCatalog%2fProduct.aspx%3fsku%3d6000000000", false, false);
            request2.QueryStringParameters.Add("sku", "6000000000", false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$UserName", "ContosoPartner1User1");
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$password", "P2ssw0rd$");
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$login", "Sign In");
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2.Body = request2Body;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "X-ray Machine";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "SKU: 6000000000";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = "ProductDetailsWebPart Web Part";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "PricingWebPart Web Part";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule6 = new ValidationRuleFindText();
                validationRule6.FindText             = "Discounts Web Part";
                validationRule6.IgnoreCase           = true;
                validationRule6.UseRegularExpression = false;
                validationRule6.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule6.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule7 = new ValidationRuleFindText();
                validationRule7.FindText             = "RelatedPartsWebPart Web Part";
                validationRule7.IgnoreCase           = true;
                validationRule7.UseRegularExpression = false;
                validationRule7.PassIfTextFound      = true;
                request2.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule7.Validate);
            }
            yield return(request2);

            request2 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            request1.ThinkTime = 28;
            request1.QueryStringParameters.Add("ReturnUrl", "%2f", false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            yield return(request1);

            request1 = null;

            WebTestRequest request2 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            request2.ThinkTime           = 12;
            request2.Method              = "POST";
            request2.ExpectedResponseUrl = fbaURL + "/sites/partner1/Pages/default.aspx";
            request2.QueryStringParameters.Add("ReturnUrl", "%2f", false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$UserName", fbaUserName);
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$password", fbaUserPassword);
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$login", "Sign In");
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2.Body = request2Body;
            yield return(request2);

            request2 = null;

            WebTestRequest request3 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request3.ThinkTime = 1;
            request3.QueryStringParameters.Add("categoryid", "0", false, false);
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "This page is the Business Data Catalog (BDC) profile page for the Catalog entity.";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "The top of this page shows custom navigation for the hierarchy of product categories.";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = @"The Category Detail & Category List Web Parts are standard BDC Web Parts.";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "The Product List Web Part is also a standard Web Part that shows the products associated with the current category.";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }

            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "1";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();

            extractionRule3.Required             = true;
            extractionRule3.HtmlDecode           = true;
            extractionRule3.ContextParameterName = "2";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract);
            ExtractHiddenFields extractionRule4 = new ExtractHiddenFields();

            extractionRule4.Required             = true;
            extractionRule4.HtmlDecode           = true;
            extractionRule4.ContextParameterName = "3";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule4.Extract);
            yield return(request3);

            request3 = null;

            WebTestRequest request4 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request4.Method = "POST";
            request4.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request4Body = new FormPostHttpBody();

            request4Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN1.MSOWebPartPage_PostbackSource"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request4Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request4Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request4Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request4Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN1.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request4Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN1.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request4Body.FormPostParameters.Add("showhelp", "Show Help");
            request4Body.FormPostParameters.Add("__spDummyText1", "");
            request4Body.FormPostParameters.Add("__spDummyText2", "");
            request4Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_b70a53b2_3c1d_4101_88f4_994f8f0aa813");
            request4Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request4Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request4.Body = request4Body;
            yield return(request4);

            request4 = null;

            WebTestRequest request5 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request5.Method = "POST";
            request5.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request5Body = new FormPostHttpBody();

            request5Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN2.MSO_PageHashCode"].ToString());
            request5Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN2.MSOWebPartPage_PostbackSource"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN2.MSOTlPn_SelectedWpId"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN2.MSOTlPn_View"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN2.MSOTlPn_ShowSettings"].ToString());
            request5Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN2.MSOGallery_SelectedLibrary"].ToString());
            request5Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN2.MSOGallery_FilterString"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN2.MSOTlPn_Button"].ToString());
            request5Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN2.__EVENTTARGET"].ToString());
            request5Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN2.__EVENTARGUMENT"].ToString());
            request5Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN2.__REQUESTDIGEST"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_DisplayModeName"].ToString());
            request5Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN2.MSOWebPartPage_Shared"].ToString());
            request5Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN2.MSOLayout_LayoutChanges"].ToString());
            request5Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN2.MSOLayout_InDesignMode"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN2.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request5Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN2.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request5Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN2.__VIEWSTATE"].ToString());
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN2.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request5Body.FormPostParameters.Add("showhelp", "Show Help");
            request5Body.FormPostParameters.Add("__spDummyText1", "");
            request5Body.FormPostParameters.Add("__spDummyText2", "");
            request5Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_5fc6e986_173f_43a8_91ac_320feebfdccd");
            request5Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request5Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN2.__EVENTVALIDATION"].ToString());
            request5.Body = request5Body;
            yield return(request5);

            request5 = null;

            WebTestRequest request6 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request6.Method = "POST";
            request6.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request6Body = new FormPostHttpBody();

            request6Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN3.MSO_PageHashCode"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN3.MSOWebPartPage_PostbackSource"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN3.MSOTlPn_SelectedWpId"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN3.MSOTlPn_View"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN3.MSOTlPn_ShowSettings"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN3.MSOGallery_SelectedLibrary"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN3.MSOGallery_FilterString"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN3.MSOTlPn_Button"].ToString());
            request6Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN3.__EVENTTARGET"].ToString());
            request6Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN3.__EVENTARGUMENT"].ToString());
            request6Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN3.__REQUESTDIGEST"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_DisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN3.MSOWebPartPage_Shared"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN3.MSOLayout_LayoutChanges"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN3.MSOLayout_InDesignMode"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN3.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request6Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN3.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request6Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN3.__VIEWSTATE"].ToString());
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN3.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request6Body.FormPostParameters.Add("showhelp", "Show Help");
            request6Body.FormPostParameters.Add("__spDummyText1", "");
            request6Body.FormPostParameters.Add("__spDummyText2", "");
            request6Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_a94f60cf_8dc9_489e_9e6b_4b30a6f0be35");
            request6Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request6Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN3.__EVENTVALIDATION"].ToString());
            request6.Body = request6Body;
            yield return(request6);

            request6 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            this.UserName = System.Environment.MachineName + "\\ContosoPartner1User6";
            this.Password = winUserPassword;

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/partner1/Pages/default.aspx");

            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "Partner Home";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "Manage Incidents";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = "Manage Order Exceptions";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "Product Catalog";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule6 = new ValidationRuleFindText();
                validationRule6.FindText             = "Promotions";
                validationRule6.IgnoreCase           = true;
                validationRule6.UseRegularExpression = false;
                validationRule6.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule6.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule7 = new ValidationRuleFindText();
                validationRule7.FindText             = "default";
                validationRule7.IgnoreCase           = true;
                validationRule7.UseRegularExpression = false;
                validationRule7.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule7.Validate);
            }
            yield return(request1);

            request1 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/PartnerCentral/SpgSubsite/Lists/SubSiteCreationReque" +
                                                         "sts/AllItems.aspx");

            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "SPGSUBSITE";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "Sub Site Creation Requests";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = "Title";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "Business Event";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule6 = new ValidationRuleFindText();
                validationRule6.FindText             = "Event Id";
                validationRule6.IgnoreCase           = true;
                validationRule6.UseRegularExpression = false;
                validationRule6.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule6.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule7 = new ValidationRuleFindText();
                validationRule7.FindText             = "Site Collection Url";
                validationRule7.IgnoreCase           = true;
                validationRule7.UseRegularExpression = false;
                validationRule7.PassIfTextFound      = true;
                request1.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule7.Validate);
            }

            yield return(request1);

            request1 = null;
        }
Exemplo n.º 14
0
        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            // Инициализация правил проверки, применяемых ко всем запросам в веб-тесте
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule1.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal();
                validationRule2.Tolerance = 0D;
                this.ValidateResponseOnPageComplete += new EventHandler<ValidationEventArgs>(validationRule2.Validate);
            }

            WebTestRequest request1 = new WebTestRequest("http://localhost:2489/");
            request1.ThinkTime = 13;
            yield return request1;
            request1 = null;

            WebTestRequest request2 = new WebTestRequest("http://localhost:2489/Account/Login");
            request2.ThinkTime = 11;
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();
            extractionRule1.Required = true;
            extractionRule1.HtmlDecode = true;
            extractionRule1.ContextParameterName = "1";
            request2.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule1.Extract);
            yield return request2;
            request2 = null;

            WebTestRequest request3 = new WebTestRequest("http://localhost:2489/Account/Login");
            request3.Method = "POST";
            request3.ExpectedResponseUrl = "http://localhost:2489/";
            FormPostHttpBody request3Body = new FormPostHttpBody();
            request3Body.FormPostParameters.Add("__RequestVerificationToken", this.Context["$HIDDEN1.__RequestVerificationToken"].ToString());
            request3Body.FormPostParameters.Add("Email", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.Login"].ToString());
            request3Body.FormPostParameters.Add("Password", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.Password"].ToString());
            request3Body.FormPostParameters.Add("RememberMe", this.Context["$HIDDEN1.RememberMe"].ToString());
            request3.Body = request3Body;
            yield return request3;
            request3 = null;

            WebTestRequest request4 = new WebTestRequest("http://localhost:2489/Category/Show");
            request4.ThinkTime = 2;
            request4.QueryStringParameters.Add("categoryId", "1", false, false);
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();
            extractionRule2.Required = true;
            extractionRule2.HtmlDecode = true;
            extractionRule2.ContextParameterName = "1";
            request4.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule2.Extract);
            yield return request4;
            request4 = null;

            WebTestRequest request5 = new WebTestRequest("http://localhost:2489/ShoppingCart/AddProduct");
            request5.ThinkTime = 2;
            request5.QueryStringParameters.Add("count", "1", false, false);
            request5.QueryStringParameters.Add("productId", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.AddProductId1"].ToString(), false, false);
            request5.QueryStringParameters.Add("X-Requested-With", "XMLHttpRequest", false, false);
            yield return request5;
            request5 = null;

            WebTestRequest request6 = new WebTestRequest("http://localhost:2489/ShoppingCart/AddProduct");
            request6.ThinkTime = 6;
            request6.QueryStringParameters.Add("count", "1", false, false);
            request6.QueryStringParameters.Add("productId", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.AddProductId2"].ToString(), false, false);
            request6.QueryStringParameters.Add("X-Requested-With", "XMLHttpRequest", false, false);
            yield return request6;
            request6 = null;

            WebTestRequest request7 = new WebTestRequest("http://localhost:2489/ShoppingCart");
            request7.ThinkTime = 30;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText = "<label for=\"amount\">"+
                    this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.TotalAmount1"];
                validationRule3.IgnoreCase = false;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound = true;
                request7.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule3.Validate);
            }
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();
            extractionRule3.Required = true;
            extractionRule3.HtmlDecode = true;
            extractionRule3.ContextParameterName = "1";
            request7.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule3.Extract);
            yield return request7;
            request7 = null;

            WebTestRequest request8 = new WebTestRequest("http://localhost:2489/ShoppingCart/SetCount");
            request8.ThinkTime = 11;
            request8.Method = "POST";
            FormPostHttpBody request8Body = new FormPostHttpBody();
            request8Body.FormPostParameters.Add("count", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.SetCount"].ToString());
            request8Body.FormPostParameters.Add("productId", this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.SetProductId"].ToString());
            request8Body.FormPostParameters.Add("X-Requested-With", "XMLHttpRequest");
            request8.Body = request8Body;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText = "<label for=\"amount\">"+
                    this.Context["ShoppingCartTestData.ShoppingCartTestData#csv.TotalAmount2"];
                validationRule4.IgnoreCase = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound = true;
                request8.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule4.Validate);
            }
            yield return request8;
            request8 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            request1.ThinkTime = 18;
            request1.QueryStringParameters.Add("ReturnUrl", "%2f", false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            yield return(request1);

            request1 = null;

            WebTestRequest request2 = new WebTestRequest(fbaURL + "/_layouts/login.aspx");

            request2.ThinkTime           = 7;
            request2.Method              = "POST";
            request2.ExpectedResponseUrl = fbaURL + "/sites/partner1/Pages/default.aspx";
            request2.QueryStringParameters.Add("ReturnUrl", "%2f", false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$UserName", "contosopartner1user1");
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$password", "P2ssw0rd$");
            request2Body.FormPostParameters.Add("ctl00$PlaceHolderMain$login$login", "Sign In");
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2.Body = request2Body;
            yield return(request2);

            request2 = null;

            WebTestRequest request3 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request3.ThinkTime = 1;
            request3.QueryStringParameters.Add("categoryid", "0", false, false);

            //Check for Root Category
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule2 = new ValidationRuleFindText();
                validationRule2.FindText             = "Root Category";
                validationRule2.IgnoreCase           = true;
                validationRule2.UseRegularExpression = false;
                validationRule2.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule2.Validate);
            }

            //Check for Category Details Webpart title
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule3 = new ValidationRuleFindText();
                validationRule3.FindText             = "Category Details";
                validationRule3.IgnoreCase           = true;
                validationRule3.UseRegularExpression = false;
                validationRule3.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule3.Validate);
            }

            //Check for Category List Webpart title
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule4 = new ValidationRuleFindText();
                validationRule4.FindText             = "Category List";
                validationRule4.IgnoreCase           = true;
                validationRule4.UseRegularExpression = false;
                validationRule4.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule4.Validate);
            }

            //Check for Product List Webpart title
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule5 = new ValidationRuleFindText();
                validationRule5.FindText             = "Product List";
                validationRule5.IgnoreCase           = true;
                validationRule5.UseRegularExpression = false;
                validationRule5.PassIfTextFound      = true;
                request3.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule5.Validate);
            }

            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "1";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();

            extractionRule3.Required             = true;
            extractionRule3.HtmlDecode           = true;
            extractionRule3.ContextParameterName = "2";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract);
            ExtractHiddenFields extractionRule4 = new ExtractHiddenFields();

            extractionRule4.Required             = true;
            extractionRule4.HtmlDecode           = true;
            extractionRule4.ContextParameterName = "3";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule4.Extract);

            //Extract CategoryDetail WebPart guid
            ExtractAttributeValue extractionRule5 = new ExtractAttributeValue();

            extractionRule5.TagName             = "div";
            extractionRule5.AttributeName       = "WebPartID";
            extractionRule5.MatchAttributeName  = "id";
            extractionRule5.MatchAttributeValue = "WebPartWPQ3";
            extractionRule5.HtmlDecode          = true;
            extractionRule5.Required            = true;
            extractionRule5.Index = 0;
            extractionRule5.ContextParameterName = "";
            extractionRule5.ContextParameterName = "CategoryDetailWebPartGuid";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule5.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule6 = new ExtractAttributeValue();

            extractionRule6.TagName             = "div";
            extractionRule6.AttributeName       = "WebPartID";
            extractionRule6.MatchAttributeName  = "id";
            extractionRule6.MatchAttributeValue = "WebPartWPQ4";
            extractionRule6.HtmlDecode          = true;
            extractionRule6.Required            = true;
            extractionRule6.Index = 0;
            extractionRule6.ContextParameterName = "";
            extractionRule6.ContextParameterName = "CategoryListWebPartGuid";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule6.Extract);

            //Extract ProductList WebPart guid
            ExtractAttributeValue extractionRule7 = new ExtractAttributeValue();

            extractionRule7.TagName             = "div";
            extractionRule7.AttributeName       = "WebPartID";
            extractionRule7.MatchAttributeName  = "id";
            extractionRule7.MatchAttributeValue = "WebPartWPQ5";
            extractionRule7.HtmlDecode          = true;
            extractionRule7.Required            = true;
            extractionRule7.Index = 0;
            extractionRule7.ContextParameterName = "";
            extractionRule7.ContextParameterName = "ProductListWebPartGuid";
            request3.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule7.Extract);
            yield return(request3);


            string CategoryDetailWebPartGuid = Context["CategoryDetailWebPartGuid"].ToString();
            string CategoryListWebPartGuid   = Context["CategoryListWebPartGuid"].ToString();
            string ProductListWebPartGuid    = Context["ProductListWebPartGuid"].ToString();

            request3 = null;

            WebTestRequest request4 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request4.Method = "POST";
            request4.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request4Body = new FormPostHttpBody();

            request4Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN1.MSOWebPartPage_PostbackSource"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request4Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request4Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request4Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request4Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN1.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request4Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN1.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request4Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request4Body.FormPostParameters.Add("showhelp", "Show Help");
            request4Body.FormPostParameters.Add("__spDummyText1", "");
            request4Body.FormPostParameters.Add("__spDummyText2", "");
            request4Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryDetailWebPartGuid.Replace("-", "_").ToString());
            request4Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request4Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request4.Body = request4Body;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule6 = new ValidationRuleFindText();
                validationRule6.FindText             = "CategoryId:";
                validationRule6.IgnoreCase           = true;
                validationRule6.UseRegularExpression = false;
                validationRule6.PassIfTextFound      = true;
                request4.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule6.Validate);
            }
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule7 = new ValidationRuleFindText();
                validationRule7.FindText             = "Name:";
                validationRule7.IgnoreCase           = true;
                validationRule7.UseRegularExpression = false;
                validationRule7.PassIfTextFound      = true;
                request4.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule7.Validate);
            }
            yield return(request4);

            request4 = null;

            WebTestRequest request5 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request5.Method = "POST";
            request5.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request5Body = new FormPostHttpBody();

            request5Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN2.MSO_PageHashCode"].ToString());
            request5Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN2.MSOWebPartPage_PostbackSource"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN2.MSOTlPn_SelectedWpId"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN2.MSOTlPn_View"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN2.MSOTlPn_ShowSettings"].ToString());
            request5Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN2.MSOGallery_SelectedLibrary"].ToString());
            request5Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN2.MSOGallery_FilterString"].ToString());
            request5Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN2.MSOTlPn_Button"].ToString());
            request5Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN2.__EVENTTARGET"].ToString());
            request5Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN2.__EVENTARGUMENT"].ToString());
            request5Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN2.__REQUESTDIGEST"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_DisplayModeName"].ToString());
            request5Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN2.MSOWebPartPage_Shared"].ToString());
            request5Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN2.MSOLayout_LayoutChanges"].ToString());
            request5Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN2.MSOLayout_InDesignMode"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request5Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN2.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request5Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN2.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request5Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN2.__VIEWSTATE"].ToString());
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN2.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request5Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request5Body.FormPostParameters.Add("showhelp", "Show Help");
            request5Body.FormPostParameters.Add("__spDummyText1", "");
            request5Body.FormPostParameters.Add("__spDummyText2", "");
            request5Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryListWebPartGuid.Replace("-", "_").ToString());
            request5Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request5Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN2.__EVENTVALIDATION"].ToString());
            request5.Body = request5Body;
            yield return(request5);

            request5 = null;

            WebTestRequest request6 = new WebTestRequest(fbaURL + "/sites/productcatalog/category.aspx");

            request6.Method = "POST";
            request6.QueryStringParameters.Add("categoryid", "0", false, false);
            FormPostHttpBody request6Body = new FormPostHttpBody();

            request6Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN3.MSO_PageHashCode"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN3.MSOWebPartPage_PostbackSource"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN3.MSOTlPn_SelectedWpId"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN3.MSOTlPn_View"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN3.MSOTlPn_ShowSettings"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN3.MSOGallery_SelectedLibrary"].ToString());
            request6Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN3.MSOGallery_FilterString"].ToString());
            request6Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN3.MSOTlPn_Button"].ToString());
            request6Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN3.__EVENTTARGET"].ToString());
            request6Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN3.__EVENTARGUMENT"].ToString());
            request6Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN3.__REQUESTDIGEST"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_DisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN3.MSOWebPartPage_Shared"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN3.MSOLayout_LayoutChanges"].ToString());
            request6Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN3.MSOLayout_InDesignMode"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request6Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN3.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request6Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN3.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request6Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN3.__VIEWSTATE"].ToString());
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$ctl00", this.Context["$HIDDEN3.ctl00$PlaceHolderSearchArea$ctl00$ctl00"].ToString());
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$SBScopesDDL", "This Site");
            request6Body.FormPostParameters.Add("ctl00$PlaceHolderSearchArea$ctl00$S3031AEBA_InputKeywords", "");
            request6Body.FormPostParameters.Add("showhelp", "Show Help");
            request6Body.FormPostParameters.Add("__spDummyText1", "");
            request6Body.FormPostParameters.Add("__spDummyText2", "");
            request6Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + ProductListWebPartGuid.Replace("-", "_").ToString());
            request6Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request6Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN3.__EVENTVALIDATION"].ToString());
            request6.Body = request6Body;
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High))
            {
                ValidationRuleFindText validationRule8 = new ValidationRuleFindText();
                validationRule8.FindText             = "There are no items to show.";
                validationRule8.IgnoreCase           = true;
                validationRule8.UseRegularExpression = false;
                validationRule8.PassIfTextFound      = true;
                request6.ValidateResponse           += new EventHandler <ValidationEventArgs>(validationRule8.Validate);
            }
            yield return(request6);

            request6 = null;
        }
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            this.UserName = userName;
            this.Password = passWord;


            // Initialize validation rules that apply to all requests in the WebTest
            if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low))
            {
                ValidateResponseUrl validationRule1 = new ValidateResponseUrl();
                this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate);
            }

            WebTestRequest request1 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request1.QueryStringParameters.Add("categoryid", "2", false, false);
            ExtractHiddenFields extractionRule1 = new ExtractHiddenFields();

            extractionRule1.Required             = true;
            extractionRule1.HtmlDecode           = true;
            extractionRule1.ContextParameterName = "1";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract);
            ExtractHiddenFields extractionRule2 = new ExtractHiddenFields();

            extractionRule2.Required             = true;
            extractionRule2.HtmlDecode           = true;
            extractionRule2.ContextParameterName = "2";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract);
            ExtractHiddenFields extractionRule3 = new ExtractHiddenFields();

            extractionRule3.Required             = true;
            extractionRule3.HtmlDecode           = true;
            extractionRule3.ContextParameterName = "3";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract);

            //Extract CategoryDetail WebPart guid
            ExtractAttributeValue extractionRule23 = new ExtractAttributeValue();

            extractionRule23.TagName             = "div";
            extractionRule23.AttributeName       = "WebPartID";
            extractionRule23.MatchAttributeName  = "id";
            extractionRule23.MatchAttributeValue = "WebPartWPQ3";
            extractionRule23.HtmlDecode          = true;
            extractionRule23.Required            = true;
            extractionRule23.Index = 0;
            extractionRule23.ContextParameterName = "CategoryDetailWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule23.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule33 = new ExtractAttributeValue();

            extractionRule33.TagName             = "div";
            extractionRule33.AttributeName       = "WebPartID";
            extractionRule33.MatchAttributeName  = "id";
            extractionRule33.MatchAttributeValue = "WebPartWPQ4";
            extractionRule33.HtmlDecode          = true;
            extractionRule33.Required            = true;
            extractionRule33.Index = 0;
            extractionRule33.ContextParameterName = "CategoryListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule33.Extract);

            //Extract CategoryList WebPart guid
            ExtractAttributeValue extractionRule43 = new ExtractAttributeValue();

            extractionRule43.TagName             = "div";
            extractionRule43.AttributeName       = "WebPartID";
            extractionRule43.MatchAttributeName  = "id";
            extractionRule43.MatchAttributeValue = "WebPartWPQ5";
            extractionRule43.HtmlDecode          = true;
            extractionRule43.Required            = true;
            extractionRule43.Index = 0;
            extractionRule43.ContextParameterName = "ProductListWebPartGuid";
            request1.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule43.Extract);
            //Check for Root Category
            ValidationRuleFindText validationRule11 = new ValidationRuleFindText();

            validationRule11.FindText = @"<span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=0"">Root Category</a></span><span> &gt; </span><span class=""ms-sitemapdirectional"">Hospital Equipment</span><a id=""ctl00_PlaceHolderMain_SiteMapPath1_SkipLink""></a></span>";
            //validationRule11.FindText = @"<span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=0"">Root Category</a></span><span> &gt; </span><span><a class=""ms-sitemapdirectional"" href=""/sites/productcatalog/Category.aspx?CategoryId=1"">Category 1</a></span><span> &gt; </span><span class=""ms-sitemapdirectional"">Category 2</span>";
            validationRule11.IgnoreCase           = true;
            validationRule11.UseRegularExpression = false;
            validationRule11.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule11.Validate);

            //Check for Category Details Webpart title
            ValidationRuleFindText validationRule12 = new ValidationRuleFindText();

            validationRule12.FindText             = "Category Details";
            validationRule12.IgnoreCase           = true;
            validationRule12.UseRegularExpression = false;
            validationRule12.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule12.Validate);

            //Check for Category List Webpart title
            ValidationRuleFindText validationRule13 = new ValidationRuleFindText();

            validationRule13.FindText             = "Category List";
            validationRule13.IgnoreCase           = true;
            validationRule13.UseRegularExpression = false;
            validationRule13.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule13.Validate);

            //Check for Product List Webpart title
            ValidationRuleFindText validationRule14 = new ValidationRuleFindText();

            validationRule14.FindText             = "Product List";
            validationRule14.IgnoreCase           = true;
            validationRule14.UseRegularExpression = false;
            validationRule14.PassIfTextFound      = true;
            request1.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule14.Validate);

            yield return(request1);

            string CategoryDetailWebPartGuid = Context["CategoryDetailWebPartGuid"].ToString();
            string CategoryListWebPartGuid   = Context["CategoryListWebPartGuid"].ToString();
            string ProductListWebPartGuid    = Context["ProductListWebPartGuid"].ToString();


            request1 = null;

            WebTestRequest request2 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request2.Method = "POST";
            request2.QueryStringParameters.Add("categoryid", "2", false, false);
            FormPostHttpBody request2Body = new FormPostHttpBody();

            request2Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN1.MSO_PageHashCode"].ToString());
            // request2Body.FormPostParameters.Add("__SPSCEditMenu", this.Context["$HIDDEN1.__SPSCEditMenu"].ToString());
            //request2Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN1.MSOWebPartPage_PostbackSource"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN1.MSOTlPn_SelectedWpId"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN1.MSOTlPn_View"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN1.MSOTlPn_ShowSettings"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN1.MSOGallery_SelectedLibrary"].ToString());
            request2Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN1.MSOGallery_FilterString"].ToString());
            request2Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN1.MSOTlPn_Button"].ToString());
            request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
            request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
            request2Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN1.__REQUESTDIGEST"].ToString());
            //request2Body.FormPostParameters.Add("MSOAuthoringConsole_FormContext", this.Context["$HIDDEN1.MSOAuthoringConsole_FormContext"].ToString());
            //request2Body.FormPostParameters.Add("MSOAC_EditDuringWorkflow", this.Context["$HIDDEN1.MSOAC_EditDuringWorkflow"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_DisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN1.MSOWebPartPage_Shared"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN1.MSOLayout_LayoutChanges"].ToString());
            request2Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN1.MSOLayout_InDesignMode"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN1.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request2Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN1.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request2Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN1.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
            request2Body.FormPostParameters.Add("__spDummyText1", "");
            request2Body.FormPostParameters.Add("__spDummyText2", "");
            request2Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryDetailWebPartGuid.Replace("-", "_").ToString());
            request2Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
            request2.Body = request2Body;

            //Check for CategoryId
            ValidationRuleFindText validationRule21 = new ValidationRuleFindText();

            validationRule21.FindText             = @"<nobr>CategoryId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">2</td>";
            validationRule21.IgnoreCase           = true;
            validationRule21.UseRegularExpression = false;
            validationRule21.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule21.Validate);

            //Check for CategoryName
            ValidationRuleFindText validationRule22 = new ValidationRuleFindText();

            validationRule22.FindText             = @"<nobr>Name:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">Hospital Equipment</td>";
            validationRule22.IgnoreCase           = true;
            validationRule22.UseRegularExpression = false;
            validationRule22.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule22.Validate);
            //Check for ParentId
            ValidationRuleFindText validationRule23 = new ValidationRuleFindText();

            validationRule23.FindText             = @"<nobr>ParentId:</nobr></td><td class=""ms-descriptiontext ms-alignleft"" width=""100%"">0</td>";
            validationRule23.IgnoreCase           = true;
            validationRule23.UseRegularExpression = false;
            validationRule23.PassIfTextFound      = true;
            request2.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule23.Validate);

            yield return(request2);

            request2 = null;

            WebTestRequest request3 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request3.Method = "POST";
            request3.QueryStringParameters.Add("categoryid", "2", false, false);
            FormPostHttpBody request3Body = new FormPostHttpBody();

            request3Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN2.MSO_PageHashCode"].ToString());
            //request3Body.FormPostParameters.Add("__SPSCEditMenu", this.Context["$HIDDEN2.__SPSCEditMenu"].ToString());
            //request3Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN2.MSOWebPartPage_PostbackSource"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN2.MSOTlPn_SelectedWpId"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN2.MSOTlPn_View"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN2.MSOTlPn_ShowSettings"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN2.MSOGallery_SelectedLibrary"].ToString());
            request3Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN2.MSOGallery_FilterString"].ToString());
            request3Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN2.MSOTlPn_Button"].ToString());
            request3Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN2.__EVENTTARGET"].ToString());
            request3Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN2.__EVENTARGUMENT"].ToString());
            request3Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN2.__REQUESTDIGEST"].ToString());
            //request3Body.FormPostParameters.Add("MSOAuthoringConsole_FormContext", this.Context["$HIDDEN2.MSOAuthoringConsole_FormContext"].ToString());
            //request3Body.FormPostParameters.Add("MSOAC_EditDuringWorkflow", this.Context["$HIDDEN2.MSOAC_EditDuringWorkflow"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_DisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN2.MSOWebPartPage_Shared"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN2.MSOLayout_LayoutChanges"].ToString());
            request3Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN2.MSOLayout_InDesignMode"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN2.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request3Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN2.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request3Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN2.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request3Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN2.__VIEWSTATE"].ToString());
            request3Body.FormPostParameters.Add("__spDummyText1", "");
            request3Body.FormPostParameters.Add("__spDummyText2", "");
            request3Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + CategoryListWebPartGuid.Replace("-", "_").ToString());
            request3Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request3Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN2.__EVENTVALIDATION"].ToString());

            request3.Body = request3Body;
            ValidationRuleFindText validationRule31 = new ValidationRuleFindText();

            validationRule31.FindText             = @"onkeydown=""actionMenuOnKeyDown('Loading...','Cardiology',false,'ContosoProductCatalogService','Category','__bk40008300');"">Cardiology<img src=""/_layouts/images/blank.gif"" border=""0"" alt=""""></a>";
            validationRule31.IgnoreCase           = true;
            validationRule31.UseRegularExpression = false;
            validationRule31.PassIfTextFound      = true;
            request3.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule31.Validate);


            yield return(request3);

            request3 = null;

            WebTestRequest request4 = new WebTestRequest(hostURL + "/sites/productcatalog/category.aspx");

            request4.Method = "POST";
            request4.QueryStringParameters.Add("categoryid", "8", false, false);
            FormPostHttpBody request4Body = new FormPostHttpBody();

            request4Body.FormPostParameters.Add("MSO_PageHashCode", this.Context["$HIDDEN3.MSO_PageHashCode"].ToString());
            //request4Body.FormPostParameters.Add("__SPSCEditMenu", this.Context["$HIDDEN3.__SPSCEditMenu"].ToString());
            //request4Body.FormPostParameters.Add("MSOWebPartPage_PostbackSource", this.Context["$HIDDEN3.MSOWebPartPage_PostbackSource"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_SelectedWpId", this.Context["$HIDDEN3.MSOTlPn_SelectedWpId"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_View", this.Context["$HIDDEN3.MSOTlPn_View"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_ShowSettings", this.Context["$HIDDEN3.MSOTlPn_ShowSettings"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_SelectedLibrary", this.Context["$HIDDEN3.MSOGallery_SelectedLibrary"].ToString());
            request4Body.FormPostParameters.Add("MSOGallery_FilterString", this.Context["$HIDDEN3.MSOGallery_FilterString"].ToString());
            request4Body.FormPostParameters.Add("MSOTlPn_Button", this.Context["$HIDDEN3.MSOTlPn_Button"].ToString());
            request4Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN3.__EVENTTARGET"].ToString());
            request4Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN3.__EVENTARGUMENT"].ToString());
            request4Body.FormPostParameters.Add("__REQUESTDIGEST", this.Context["$HIDDEN3.__REQUESTDIGEST"].ToString());
            //request4Body.FormPostParameters.Add("MSOAuthoringConsole_FormContext", this.Context["$HIDDEN3.MSOAuthoringConsole_FormContext"].ToString());
            //request4Body.FormPostParameters.Add("MSOAC_EditDuringWorkflow", this.Context["$HIDDEN3.MSOAC_EditDuringWorkflow"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_DisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_DisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOWebPartPage_Shared", this.Context["$HIDDEN3.MSOWebPartPage_Shared"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_LayoutChanges", this.Context["$HIDDEN3.MSOLayout_LayoutChanges"].ToString());
            request4Body.FormPostParameters.Add("MSOLayout_InDesignMode", this.Context["$HIDDEN3.MSOLayout_InDesignMode"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_OldDisplayModeName", this.Context["$HIDDEN3.MSOSPWebPartManager_OldDisplayModeName"].ToString());
            request4Body.FormPostParameters.Add("MSOSPWebPartManager_StartWebPartEditingName", this.Context["$HIDDEN3.MSOSPWebPartManager_StartWebPartEditingName"].ToString());
            request4Body.FormPostParameters.Add("BDC_ActionsMenuProxyPageWebUrl", this.Context["$HIDDEN3.BDC_ActionsMenuProxyPageWebUrl"].ToString());
            request4Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN3.__VIEWSTATE"].ToString());
            request4Body.FormPostParameters.Add("__spDummyText1", "");
            request4Body.FormPostParameters.Add("__spDummyText2", "");
            request4Body.FormPostParameters.Add("__CALLBACKID", "ctl00$m$g_" + ProductListWebPartGuid.Replace("-", "_").ToString());
            request4Body.FormPostParameters.Add("__CALLBACKPARAM", "GetLongRunningUI");
            request4Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN3.__EVENTVALIDATION"].ToString());
            request4.Body = request4Body;

            //check for Cardiology Product
            ValidationRuleFindText validationRule41 = new ValidationRuleFindText();

            validationRule41.FindText             = "Blood Pressure Kit";
            validationRule41.IgnoreCase           = true;
            validationRule41.UseRegularExpression = false;
            validationRule41.PassIfTextFound      = true;
            request4.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule41.Validate);

            ValidationRuleFindText validationRule42 = new ValidationRuleFindText();

            validationRule42.FindText             = "1000000000";
            validationRule42.IgnoreCase           = true;
            validationRule42.UseRegularExpression = false;
            validationRule42.PassIfTextFound      = true;
            request4.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule42.Validate);


            ValidationRuleFindText validationRule44 = new ValidationRuleFindText();

            validationRule44.FindText             = "2147483647";
            validationRule44.IgnoreCase           = true;
            validationRule44.UseRegularExpression = false;
            validationRule44.PassIfTextFound      = true;
            request4.ValidateResponse            += new EventHandler <ValidationEventArgs>(validationRule44.Validate);
            yield return(request4);

            request4 = null;
        }
Exemplo n.º 17
0
        public override IEnumerator <WebTestRequest> GetRequestEnumerator()
        {
            ExtractHiddenFields defaultExtractionRule = AssertAndValidationHelper.GetDefaultExtractHiddenFields();

            //Do initial login
            WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest();

            yield return(logonGet);

            logonGet = null;

            WebTestRequest logonPost = AssertAndValidationHelper.GetLogonPostRequest(this);

            yield return(logonPost);

            logonPost = null;

            WebTestRequest uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl);

            yield return(uploadRequest);

            if (this.LastResponse.ResponseUri.ToString().Contains("verify-upload"))
            {
                WebTestRequest cancelGet = AssertAndValidationHelper.GetCancelGetRequest();
                yield return(cancelGet);

                cancelGet     = null;
                uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl);
                yield return(uploadRequest);
            }
            uploadRequest = null;

            string packageId       = DateTime.Now.Ticks.ToString();
            string packageFullPath = PackageCreationHelper.CreatePackage(packageId);

            WebTestRequest uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath);

            yield return(uploadPostRequest);

            uploadPostRequest = null;

            WebTestRequest verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.GetPackagePageUrl(packageId, "1.0.0"), packageId);

            yield return(verifyUploadPostRequest);

            verifyUploadPostRequest = null;

            System.Threading.Thread.Sleep(60000);
            WebTestRequest         packageRequest = new WebTestRequest(UrlHelper.GetPackagePageUrl(packageId));
            ValidationRuleFindText findTextRule   = AssertAndValidationHelper.GetValidationRuleForFindText("Contact Us");

            packageRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(findTextRule.Validate);
            yield return(packageRequest);

            packageRequest = null;

            // Log off
            WebTestRequest logOffGet = AssertAndValidationHelper.GetLogOffGetRequest();

            yield return(logOffGet);

            logOffGet = null;

            packageRequest = new WebTestRequest(UrlHelper.GetPackagePageUrl(packageId));
            //Rule to check manage my packages contains a html link to the newly uploaded package.
            ValidationRuleFindText reportAbuseValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText("Report Abuse");

            packageRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(reportAbuseValidationRule.Validate);
            yield return(packageRequest);

            packageRequest = null;
        }