public override IEnumerator <WebTestRequest> GetRequestEnumerator() { //run this test only if read-only mode is set. This is to avoid false failures while doing Run all tests locally. if (EnvironmentSettings.ReadOnlyMode.Equals("True", StringComparison.OrdinalIgnoreCase)) { var registerPageRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.LogonPageUrl); yield return(registerPageRequest); var registerPagePostRequest = new WebTestRequest(UrlHelper.RegisterPageUrl); registerPagePostRequest.Method = "POST"; registerPagePostRequest.ExpectedResponseUrl = UrlHelper.RegistrationPendingPageUrl; // Create a form and set the UserName, Email and password as form post parameters. // We just need to set some unique user name and Email. var registerNewUserFormPost = new FormPostHttpBody(); registerNewUserFormPost.FormPostParameters.Add("__RequestVerificationToken", Context["$HIDDEN1.__RequestVerificationToken"].ToString()); registerNewUserFormPost.FormPostParameters.Add("LinkingAccount", "false"); registerNewUserFormPost.FormPostParameters.Add(Constants.EmailAddressFormField, DateTime.Now.Ticks + "@live.com"); //add a dummy mail account. This will be fixed once we incorporate the logic to delete user. registerNewUserFormPost.FormPostParameters.Add(Constants.UserNameFormField, DateTime.Now.Ticks + "NewAccount"); registerNewUserFormPost.FormPostParameters.Add(Constants.RegisterPasswordFormField, "xxXxx1xx"); registerPagePostRequest.Body = registerNewUserFormPost; registerPagePostRequest.ExpectedHttpStatusCode = 503; // Validate the response to make sure that it shows the error message for read-only mode. var readOnlyModeTextRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.ReadOnlyModeError); registerPagePostRequest.ValidateResponse += readOnlyModeTextRule.Validate; yield return(registerPagePostRequest); } }
public void UploadPackageIfNecessary(string packageName, string version) { if (!PackageExists(packageName, version)) { AssertAndValidationHelper.UploadNewPackageAndVerify(packageName, version); } }
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 package management. WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); logonGet = null; WebTestRequest logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); logonPost = null; WebTestRequest managePackagesRequest = new WebTestRequest(UrlHelper.ManageMyPackagesUrl); //Rule to check manage my packages contains a html link to the newly uploaded package. ValidationRuleFindText newPackageIdValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(packageId); managePackagesRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(newPackageIdValidationRule.Validate); yield return(managePackagesRequest); managePackagesRequest = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { WebTestRequest registerPageRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.LogonPageUrl); yield return(registerPageRequest); WebTestRequest registerPagePostRequest = new WebTestRequest(UrlHelper.RegisterPageUrl); registerPagePostRequest.Method = "POST"; registerPagePostRequest.ExpectedResponseUrl = UrlHelper.RegistrationPendingPageUrl; //create a form and set the UserName, Email and password as form post parameters. //We just need to set some unique user name and Email. FormPostHttpBody registerNewUserFormPost = new FormPostHttpBody(); registerNewUserFormPost.FormPostParameters.Add("__RequestVerificationToken", Context["$HIDDEN1.__RequestVerificationToken"].ToString()); registerNewUserFormPost.FormPostParameters.Add("LinkingAccount", "false"); registerNewUserFormPost.FormPostParameters.Add(Constants.EmailAddressFormField, DateTime.Now.Ticks + "@live.com"); //add a dummy mail account. registerNewUserFormPost.FormPostParameters.Add(Constants.UserNameFormField, DateTime.Now.Ticks + "NewAccount"); registerNewUserFormPost.FormPostParameters.Add(Constants.RegisterPasswordFormField, "xxxxxxxx"); registerPagePostRequest.Body = registerNewUserFormPost; // Validate the response to make sure that it has the confirmation text in it. var pendingConfirmationTextRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.RegisterNewUserConfirmationText); registerPagePostRequest.ValidateResponse += pendingConfirmationTextRule.Validate; yield return(registerPagePostRequest); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { var defaultExtractionRule = AssertAndValidationHelper.GetDefaultExtractHiddenFields(); // Do initial login var logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); var logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); var uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl); yield return(uploadRequest); var packageId = $"UploadPackageFromUI.{DateTimeOffset.UtcNow.Ticks}"; var packageCreationHelper = new PackageCreationHelper(); var packageFullPath = packageCreationHelper.CreatePackage(packageId).Result; var uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath); yield return(uploadPostRequest); //This second get request to upload is to put us on the new "Verify Page" // which is just the upload page in a different state. // This is to get the RequestVerificationToken for the folloing request. (upload and verify were merged onto the same page). var uploadRequest2 = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl); yield return(uploadRequest2); var verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.GetPackagePageUrl(packageId, "1.0.0"), packageId); yield return(verifyUploadPostRequest); }
[Ignore] // Nuget.Core returns the downloadcount for package registration always and doesnt return the count for package versions. Ignoring it for now. public void DownloadStatsForPackageVersions() { string packageId = testContextInstance.TestName + DateTime.Now.Ticks.ToString(); //Upload package. AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "1.0.0"); //Upload 2.0 for the same package. AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "2.0.0"); //check download count for the package registration and package versions. Assert.IsTrue(ClientSDKHelper.GetDownLoadStatistics(packageId).Equals(0), "Package download count is not zero as soon as uploading. Actual value : {0}", ClientSDKHelper.GetDownLoadStatistics(packageId)); Assert.IsTrue(ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "1.0.0").Equals(0), "Package version download count is not zero as soon as uploading. Actual value : {0}", ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "1.0.0")); Assert.IsTrue(ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "2.0.0").Equals(0), "Package version download count is not zero as soon as uploading. Actual value : {0}", ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "2.0.0")); //Download the new package. AssertAndValidationHelper.DownloadPackageAndVerify(packageId, "1.0.0"); AssertAndValidationHelper.DownloadPackageAndVerify(packageId, "2.0.0"); //Wait for a max of 5 mins ( as the stats job runs every 5 mins). int downloadCount = ClientSDKHelper.GetDownLoadStatistics(packageId); int waittime = 0; while (downloadCount == 0 && waittime <= 300) { downloadCount = ClientSDKHelper.GetDownLoadStatistics(packageId); System.Threading.Thread.Sleep(30 * 1000);//sleep for 30 seconds. waittime += 30; } //check download count. Download count for the package registration should be 2 and the download count for the package versions should be 1. Assert.IsTrue(ClientSDKHelper.GetDownLoadStatistics(packageId) == 2, "Package download count is not increased after downloading a new package. Actual value : {0}", ClientSDKHelper.GetDownLoadStatistics(packageId)); //TBD : Seems like NuGet.Core returns the download count for package registration always. Assert.IsTrue(ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "1.0.0") == 1, "Package version download count is not 1 after downloading a new package. Actual value : {0}", ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "1.0.0")); Assert.IsTrue(ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "2.0.0") == 1, "Package version download count is not 1 after downloading a new package. Actual value : {0}", ClientSDKHelper.GetDownLoadStatisticsForPackageVersion(packageId, "2.0.0")); }
public void UploadPackageIfNecessary(string packageName, string version, string minClientVersion, string title, string tags, string description, string licenseUrl, string dependencies) { if (!PackageExists(packageName, version, UrlHelper.V2FeedRootUrl)) { AssertAndValidationHelper.UploadNewPackageAndVerify(packageName, version, minClientVersion, title, tags, description, licenseUrl, dependencies); } }
public void UploadAndDownLoadPackageWithDotCsNames() { string packageId = DateTime.Now.Ticks.ToString() + testContextInstance.TestName + ".Cs"; AssertAndValidationHelper.UploadNewPackageAndVerify(packageId); AssertAndValidationHelper.DownloadPackageAndVerify(packageId); }
public void UploadPackageWithNuGetCommandLineTest() { if (UrlHelper.BaseUrl.Contains("nugettest.org") || UrlHelper.BaseUrl.Contains("nuget.org")) { AssertAndValidationHelper.UploadNewPackageAndVerify(DateTime.Now.Ticks.ToString()); } }
public void UploadPackageIfNecessary(string packageName, string version, string minClientVersion, string title, string tags, string description) { if (!PackageExists(packageName, version)) { AssertAndValidationHelper.UploadNewPackageAndVerify(packageName, version, minClientVersion, title, tags, description); } }
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; //Upload a new package. string packageId = this.Name + DateTime.Now.Ticks.ToString(); string version = "1.0.0"; string minClientVersion = "2.3"; string packageFullPath = PackageCreationHelper.CreatePackage(packageId, version, minClientVersion); WebTestRequest uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath); yield return(uploadPostRequest); uploadPostRequest = null; WebTestRequest verifyUploadRequest = new WebTestRequest(UrlHelper.VerifyUploadPageUrl); verifyUploadRequest.ExtractValues += new EventHandler <ExtractionEventArgs>(defaultExtractionRule.Extract); 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; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Send a request to home page and check for default home page text. var homePageRequest = new WebTestRequest(UrlHelper.BaseUrl); var homePageTextValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.HomePageText); homePageRequest.ValidateResponse += homePageTextValidationRule.Validate; yield return(homePageRequest); }
public void UploadMultipleVersionOfPackage() { string packageId = "TestMultipleVersion" + "." + DateTime.Now.Ticks.ToString(); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "1.0.0"); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "2.0.0"); int actualCount = ClientSDKHelper.GetVersionCount(packageId); Assert.IsTrue(actualCount.Equals(2), " 2 versions of package {0} not found after uploading. Actual versions found {1}", packageId, actualCount); }
public void FindPackagesByIdTest() { string packageId = "TestV2FeedFindPackagesById" + "." + DateTime.Now.Ticks.ToString(); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "1.0.0"); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "2.0.0"); string url = UrlHelper.V2FeedRootUrl + @"/FindPackagesById()?id='" + packageId + "'"; string[] expectedTexts = new string[] { @"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='1.0.0')</id>", @"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='2.0.0')</id>" }; Assert.IsTrue(ODataHelper.ContainsResponseText(url, expectedTexts)); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Temporary workaround for the SSL issue, which keeps the upload test from working with cloudapp.net sites if (!UrlHelper.BaseUrl.Contains("nugettest.org") && !UrlHelper.BaseUrl.Contains("nuget.org")) { yield break; } var defaultExtractionRule = AssertAndValidationHelper.GetDefaultExtractHiddenFields(); // Do initial login var logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); var logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); var uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl); yield return(uploadRequest); if (LastResponse.ResponseUri.ToString().Contains("verify-upload")) { // If there is a upload in progress, try to submit that upload instead of creating a new package (since we are just going to verify that upload goes through UI). // Extract the package Id of the pending upload. var response = LastResponse.BodyString; var startIndex = response.IndexOf("<p>", StringComparison.Ordinal); var endIndex = response.IndexOf("</p>", startIndex, StringComparison.Ordinal); var packageId = response.Substring(startIndex + 3, endIndex - (startIndex + 3)); AddCommentToResult(packageId); //Adding the package ID to result for debugging. var verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.VerifyUploadPageUrl, Constants.ReadOnlyModeError, 503); yield return(verifyUploadPostRequest); } else { // The API key is part of the nuget.config file that is present under the solution dir. var packageId = DateTime.Now.Ticks.ToString(); var packageCreationHelper = new PackageCreationHelper(); var packageFullPath = packageCreationHelper.CreatePackage(packageId).Result; var uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath); yield return(uploadPostRequest); var verifyUploadRequest = new WebTestRequest(UrlHelper.VerifyUploadPageUrl); verifyUploadRequest.ExtractValues += defaultExtractionRule.Extract; yield return(verifyUploadRequest); var verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.GetPackagePageUrl(packageId, "1.0.0"), packageId); yield return(verifyUploadPostRequest); } }
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 contact owner. WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); logonGet = null; WebTestRequest logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); logonPost = null; WebTestRequest conactOwnerRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.GetContactOwnerPageUrl(packageId)); yield return(conactOwnerRequest); conactOwnerRequest = null; WebTestRequest conactOwnerPostRequest = new WebTestRequest(UrlHelper.GetContactOwnerPageUrl(packageId)); conactOwnerPostRequest.Method = "POST"; //once the listing is done, it should return back to the packages page. conactOwnerPostRequest.ExpectedResponseUrl = UrlHelper.GetPackagePageUrl(packageId, version); FormPostHttpBody contactOwnerRequestBody = new FormPostHttpBody(); contactOwnerRequestBody.FormPostParameters.Add("__RequestVerificationToken", this.Context["$HIDDEN1.__RequestVerificationToken"].ToString()); contactOwnerRequestBody.FormPostParameters.Add("Message", "Test"); conactOwnerPostRequest.Body = contactOwnerRequestBody; //Make sure that the package page shows the message saying that the mail has been sent. ValidationRuleFindText findTextRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.ContactOwnersText + packageId); conactOwnerPostRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(findTextRule.Validate); yield return(conactOwnerPostRequest); conactOwnerPostRequest = null; //Wait for a 30 sec to make sure that the mail reaches properly. System.Threading.Thread.Sleep(30 * 1000); //Cross check with the pop3 client to check if the message actually has been received. string subject = string.Empty; Assert.IsTrue(MailHelper.IsMailSentForContactOwner(packageId, out subject), "Contact owners message not sent to the owner properly. Actual subject : {0}", subject); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { //run this test only if read-only mode is set. This is to avoid false failures while doing Run all tests locally. if (!EnvironmentSettings.ReadOnlyMode.Equals("True", StringComparison.OrdinalIgnoreCase)) { yield break; } var defaultExtractionRule = AssertAndValidationHelper.GetDefaultExtractHiddenFields(); // Do initial login var logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); var logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); var uploadRequest = AssertAndValidationHelper.GetHttpRequestForUrl(UrlHelper.UploadPageUrl); yield return(uploadRequest); if (LastResponse.ResponseUri.ToString().Contains("verify-upload")) { // if there is a upload in progress, try to submit that upload instead of creating a new package (since we are just going to verify that upload doesn't go through). //Extract the package Id of the pending upload. var response = LastResponse.BodyString; var startIndex = response.IndexOf("<p>", StringComparison.Ordinal); var endIndex = response.IndexOf("</p>", startIndex, StringComparison.Ordinal); var packageId = response.Substring(startIndex + 3, endIndex - (startIndex + 3)); AddCommentToResult(packageId); //Adding the package ID to result for debugging. var verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.VerifyUploadPageUrl, Constants.ReadOnlyModeError, 503); yield return(verifyUploadPostRequest); } else { // The API key is part of the nuget.config file that is present under the solution dir. var packageId = DateTime.Now.Ticks.ToString(); var packageCreationHelper = new PackageCreationHelper(); var packageFullPath = packageCreationHelper.CreatePackage(packageId).Result; var uploadPostRequest = AssertAndValidationHelper.GetUploadPostRequestForPackage(this, packageFullPath); yield return(uploadPostRequest); var verifyUploadRequest = new WebTestRequest(UrlHelper.VerifyUploadPageUrl); verifyUploadRequest.ExtractValues += defaultExtractionRule.Extract; yield return(verifyUploadRequest); var verifyUploadPostRequest = AssertAndValidationHelper.GetVerifyPackagePostRequestForPackage(this, packageId, "1.0.0", UrlHelper.VerifyUploadPageUrl, Constants.ReadOnlyModeError, 503); yield return(verifyUploadPostRequest); } }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Use a predefined test package. var packageId = Constants.TestPackageId; var packagePageRequest = new WebTestRequest(UrlHelper.BaseUrl + @"/Packages/" + packageId); // Rule to check if the title contains the package id and the latest stable version of the package. var packageTitleValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(packageId + " " + ClientSdkHelper.GetLatestStableVersion(packageId)); packagePageRequest.ValidateResponse += packageTitleValidationRule.Validate; yield return(packagePageRequest); }
public void FindPackagesByIdTest() { // Temporary workaround for the SSL issue, which keeps the upload test from working with cloudapp.net sites if (UrlHelper.BaseUrl.Contains("nugettest.org") || UrlHelper.BaseUrl.Contains("nuget.org")) { string packageId = "TestV2FeedFindPackagesById" + "." + DateTime.Now.Ticks.ToString(); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "1.0.0"); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "2.0.0"); string url = UrlHelper.V2FeedRootUrl + @"/FindPackagesById()?id='" + packageId + "'"; string[] expectedTexts = new string[] { @"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='1.0.0')</id>", @"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='2.0.0')</id>" }; Assert.IsTrue(ODataHelper.ContainsResponseText(url, expectedTexts)); } }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { //Do initial login WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); WebTestRequest logonPostRequest = AssertAndValidationHelper.GetLogonPostRequest(this); var loggedOnUserNameValidationRule = AssertAndValidationHelper.GetValidationRuleForHtmlTagInnerText(HtmlTextWriterTag.A.ToString(), HtmlTextWriterAttribute.Href.ToString(), "/account", "NugetTestAccount"); logonPostRequest.ValidateResponse += loggedOnUserNameValidationRule.Validate; yield return(logonPostRequest); }
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); uploadRequest = null; //Upload a new package. string packageId = this.Name + DateTime.Now.Ticks.ToString(); string version = "1.0.0"; string minClientVersion = "2.3"; string packageFullPath = PackageCreationHelper.CreatePackage(packageId, version, minClientVersion); //Do initial login to be able to perform package management. logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); logonGet = null; logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); logonPost = null; System.Threading.Thread.Sleep(60000); WebTestRequest packageRequest = new WebTestRequest(UrlHelper.GetPackagePageUrl(packageId)); //Rule to check manage my packages contains a html link to the newly uploaded package. ValidationRuleFindText requiredMinVersionValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(minClientVersion); packageRequest.ValidateResponse += new EventHandler <ValidationEventArgs>(requiredMinVersionValidationRule.Validate); yield return(packageRequest); packageRequest = null; }
public static void CheckIfBaseTestPackageExists() { //Check if the BaseTestPackage exists in current source and if not upload it. This will be used by the download related tests. try { if (!ClientSDKHelper.CheckIfPackageExistsInSource(Constants.TestPackageId, UrlHelper.V2FeedRootUrl)) { AssertAndValidationHelper.UploadNewPackageAndVerify(Constants.TestPackageId); } } catch (AssertFailedException) { Assert.Inconclusive("The initialization method to pre-upload test package has failed. Hence failing all the tests. Make sure that a package by name {0} exists @ {1} before running tests. Check test run error for details", Constants.TestPackageId, UrlHelper.BaseUrl); } }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { //send a request to home page and check for default home page text. var pageRequest = new WebTestRequest(UrlHelper.BaseUrl); var homePageTextValidationRuleLogo = AssertAndValidationHelper.GetValidationRuleForFindText(@"<a title="".NET Foundation"" href=""http://www.dotnetfoundation.org""><img src=""/Content/Logos/dnf.png"" alt="".NET Foundation"" /></a>"); var homePageTextValidationRuleCopyright = AssertAndValidationHelper.GetValidationRuleForFindText(@"© 2015 .NET Foundation"); var homePageTextValidationRuleTOU = AssertAndValidationHelper.GetValidationRuleForFindText(@"<a href=""/policies/Terms"">Terms of Use</a>"); var homePageTextValidationRulePrivacy = AssertAndValidationHelper.GetValidationRuleForFindText(@"<a href=""/policies/Privacy"">Privacy Policy</a>"); pageRequest.ValidateResponse += homePageTextValidationRuleLogo.Validate; pageRequest.ValidateResponse += homePageTextValidationRuleCopyright.Validate; pageRequest.ValidateResponse += homePageTextValidationRuleTOU.Validate; pageRequest.ValidateResponse += homePageTextValidationRulePrivacy.Validate; yield return(pageRequest); }
public void FindPackagesByIdTest() { string packageId = "TestV2FeedFindPackagesById" + "." + DateTime.Now.Ticks.ToString(); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "1.0.0"); AssertAndValidationHelper.UploadNewPackageAndVerify(packageId, "2.0.0"); WebRequest request = WebRequest.Create(UrlHelper.V2FeedRootUrl + @"/FindPackagesById()?id='" + packageId + "'"); // Get the response. WebResponse response = request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); string responseText = sr.ReadToEnd(); Assert.IsTrue(responseText.Contains(@"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='1.0.0')</id>")); Assert.IsTrue(responseText.Contains(@"<id>" + UrlHelper.V2FeedRootUrl + "Packages(Id='" + packageId + "',Version='2.0.0')</id>")); }
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; 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"); 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; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { //Do initial login WebTestRequest logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); WebTestRequest logonPostRequest = AssertAndValidationHelper.GetLogonPostRequest(this); logonPostRequest.ExpectedHttpStatusCode = 503; var readOnlyModeTextRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.ReadOnlyModeError); logonPostRequest.ValidateResponse += readOnlyModeTextRule.Validate; yield return(logonPostRequest); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { var statsPageRequest = new WebTestRequest(UrlHelper.StatsPageUrl); // Checks for the presence of the rank element. This means there is at least one package in the list. var validationRule = AssertAndValidationHelper.GetValidationRuleForFindText( @"<td class=""statistics-rank"">1</td>"); statsPageRequest.ValidateResponse += validationRule.Validate; // Validation rule to check for the default text in stats page. var statsPageDefaultTextValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.StatsPageDefaultText); statsPageRequest.ValidateResponse += statsPageDefaultTextValidationRule.Validate; yield return(statsPageRequest); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { var statsPageRequest = new WebTestRequest(UrlHelper.StatsPageUrl); // Checks for the presence of a link to jquery package. It is harded to Jquery for now as there is no API exposed for stats // and also Jquery is going to be one of the top 10 for now. var jQueryPackageValidationRule = AssertAndValidationHelper.GetValidationRuleForHtmlTagInnerText(HtmlTextWriterTag.A.ToString(), HtmlTextWriterAttribute.Href.ToString(), "/packages/EntityFramework/", "EntityFramework"); statsPageRequest.ValidateResponse += jQueryPackageValidationRule.Validate; // Validation rule to check for the default text in stats page. var statsPageDefaultTextValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.StatsPageDefaultText); statsPageRequest.ValidateResponse += statsPageDefaultTextValidationRule.Validate; yield return(statsPageRequest); }
public void UploadAndDownLoadPackageWithMinClientVersion() { string packageId = DateTime.Now.Ticks.ToString() + "PackageWithDotCsNames.Cs"; string version = "1.0.0"; string packageFullPath = PackageCreationHelper.CreatePackageWithMinClientVersion(packageId, version, "2.3"); int exitCode = CmdLineHelper.UploadPackage(packageFullPath, UrlHelper.V2FeedPushSourceUrl); Assert.IsTrue((exitCode == 0), Constants.UploadFailureMessage); Assert.IsTrue(ClientSDKHelper.CheckIfPackageVersionExistsInSource(packageId, version, UrlHelper.V2FeedRootUrl), Constants.PackageNotFoundAfterUpload, packageId, UrlHelper.V2FeedRootUrl); //Delete package from local disk so once it gets uploaded if (File.Exists(packageFullPath)) { File.Delete(packageFullPath); Directory.Delete(Path.GetFullPath(Path.GetDirectoryName(packageFullPath)), true); } AssertAndValidationHelper.DownloadPackageAndVerify(packageId); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Run this test only if read-only mode is set. This is to avoid false failures while doing Run all tests locally. if (EnvironmentSettings.ReadOnlyMode.Equals("True", StringComparison.OrdinalIgnoreCase)) { // Do initial login to be able to perform package management. var logonGet = AssertAndValidationHelper.GetLogonGetRequest(); yield return(logonGet); var logonPost = AssertAndValidationHelper.GetLogonPostRequest(this); yield return(logonPost); var accountPageRequest = new WebTestRequest(UrlHelper.AccountPageUrl); var extractionRule1 = AssertAndValidationHelper.GetDefaultExtractHiddenFields(); accountPageRequest.ExtractValues += extractionRule1.Extract; yield return(accountPageRequest); var unsubscribeRequest = new WebTestRequest(UrlHelper.AccountUnscribeUrl); unsubscribeRequest.Method = "POST"; unsubscribeRequest.ExpectedHttpStatusCode = 503; var unsubscribeRequestBody = new FormPostHttpBody(); unsubscribeRequestBody.FormPostParameters.Add("__RequestVerificationToken", Context["$HIDDEN1.__RequestVerificationToken"].ToString()); unsubscribeRequestBody.FormPostParameters.Add("emailAllowed", "false"); unsubscribeRequest.Body = unsubscribeRequestBody; // Check for read-only status. var readonlyValidationRule = AssertAndValidationHelper.GetValidationRuleForFindText(Constants.ReadOnlyModeError); unsubscribeRequest.ValidateResponse += readonlyValidationRule.Validate; yield return(unsubscribeRequest); var resetApiKeyRequest = new WebTestRequest(UrlHelper.AccountApiKeyResetUrl); resetApiKeyRequest.Method = "POST"; resetApiKeyRequest.ExpectedHttpStatusCode = 503; var resetApiKeyRequestBody = new FormPostHttpBody(); resetApiKeyRequestBody.FormPostParameters.Add("__RequestVerificationToken", Context["$HIDDEN1.__RequestVerificationToken"].ToString()); resetApiKeyRequest.Body = resetApiKeyRequestBody; // Check for read-only error resetApiKeyRequest.ValidateResponse += readonlyValidationRule.Validate; yield return(resetApiKeyRequest); } }