public async Task RoundTrippingFormFileInputWorks() { // Arrange var url = "/PropertyBinding/BindFormFile"; var response = await Client.GetAsync(url); await response.AssertStatusCodeAsync(HttpStatusCode.OK); var document = await response.GetHtmlDocumentAsync(); var property1 = document.RequiredQuerySelector("#property1").GetAttribute("name"); var file1 = document.RequiredQuerySelector("#file1").GetAttribute("name"); var file2 = document.RequiredQuerySelector("#file2").GetAttribute("name"); var file3 = document.RequiredQuerySelector("#file3").GetAttribute("name"); var antiforgeryToken = document.RetrieveAntiforgeryToken(); var cookie = AntiforgeryTestHelper.RetrieveAntiforgeryCookie(response); var content = new MultipartFormDataContent { { new StringContent("property1-value"), property1 }, { new StringContent("test-value1"), file1, "test1.txt" }, { new StringContent("test-value2"), file3, "test2.txt" } }; var request = new HttpRequestMessage(HttpMethod.Post, url) { Content = content, }; request.Headers.Add("Cookie", cookie.Key + "=" + cookie.Value); request.Headers.Add("RequestVerificationToken", antiforgeryToken); response = await Client.SendAsync(request); await response.AssertStatusCodeAsync(HttpStatusCode.OK); }
public async Task ReRegisteringAntiforgeryTokenInsideFormTagHelper_DoesNotAddDuplicateAntiforgeryTokenFields() { // Arrange var expectedMediaType = MediaTypeHeaderValue.Parse("text/html; charset=utf-8"); var outputFile = "compiler/resources/TagHelpersWebSite.Employee.DuplicateAntiforgeryTokenRegistration.html"; var expectedContent = await ResourceFile.ReadResourceAsync(_resourcesAssembly, outputFile, sourceFile : false); // Act var response = await Client.GetAsync("http://localhost/Employee/DuplicateAntiforgeryTokenRegistration"); var responseContent = await response.Content.ReadAsStringAsync(); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(expectedMediaType, response.Content.Headers.ContentType); responseContent = responseContent.Trim(); var forgeryToken = AntiforgeryTestHelper.RetrieveAntiforgeryToken( responseContent, "/Employee/DuplicateAntiforgeryTokenRegistration"); ResourceFile.UpdateOrVerify(_resourcesAssembly, outputFile, expectedContent, responseContent, forgeryToken); }