public void CanAddNewBlogItemIncludingImage() { // Arrange Request blogRequest = Session.Bind(BlogRootPath); // Act ... // - GET blog Response<HtmlDocument> blog = blogRequest.Get<HtmlDocument>(); // - Extract "edit" anchor ILink editLink = blog.Body.DocumentNode.SelectNodes(@"//a[@rel=""edit""]").First().Anchor(blog); // - GET form describing how to input Response<HtmlDocument> createDescriptor = editLink.Follow(Session).Get<HtmlDocument>(); // - Extract "create" form IKeyValueForm form = createDescriptor.Body.DocumentNode.SelectNodes(@"//form[@id=""create""]").First().Form(createDescriptor); // - Populate form inputs IFile file = new File("..\\..\\data1.gif", "image/gif"); form.Value("Title", "New item"); form.Value("Text", "Yaj!"); form.Value("Image", file); // - Submit the form HtmlDocument createdBlogItem = form.Bind().Submit<HtmlDocument>().Created(); // Assert ... Assert.IsNotNull(createdBlogItem); HtmlNode postTitle = createdBlogItem.DocumentNode.SelectNodes(@"//*[@class=""post-title""]").First(); HtmlNode postContent = createdBlogItem.DocumentNode.SelectNodes(@"//*[@class=""post-content""]").First(); Assert.AreEqual("New item", postTitle.InnerText); Assert.AreEqual("Yaj!", postContent.InnerText); }
public void CanPostMultipartFormDataWithBinaryFile() { // Arrange IFile file = new File("..\\..\\data1.gif", "image/gif"); MultipartDataFile data = new MultipartDataFile { DataFile = file, Age = 99 }; Request formdataReq = Session.Bind(MultipartFormDataFileTemplate); // Act Response<string> response = formdataReq.Accept("text/plain").ContentType("multipart/form-data").Post<string>(data); // Assert Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data")); Assert.AreEqual("data1.gif-image/gif-R0lGODlhAgACAA==-99", response.Body); }
public void CanPostMultipartFormDataWithFile() { // Arrange IFile file = new File("..\\..\\data1.txt"); MultipartDataFile data = new MultipartDataFile { DataFile = file, Age = 10 }; Request formdataReq = Session.Bind(MultipartFormDataFileTemplate); // Act Response<string> response = formdataReq.Accept("text/plain") .ContentType("multipart/form-data") .Post<string>(data); // Assert Assert.IsTrue(response.Headers["x-contenttype"].StartsWith("multipart/form-data")); Assert.AreEqual("data1.txt-text/plain-w4bDvMOuwrRgJw==-10", response.Body); }