public void WhenSubmittingFormItIncludesDefaultValues_Typed( [Values("multipart", "urlencoded")] string encType) { // Arrange FormArgs args = new FormArgs(); //Session.SerializerSettings. // Act IKeyValueForm form = GetForm(encType: encType); using (var r = form.Value(args).Bind().Submit <FormArgs>()) { FormArgs result = r.Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("text", result.InputText); Assert.AreEqual("password", result.InputPassword); Assert.AreEqual("checkbox", result.InputCheckbox); Assert.AreEqual("hidden", result.InputHidden); Assert.AreEqual("textarea", result.TextArea); Assert.AreEqual("2", result.Select); Assert.AreEqual("1b", result.Radio1); Assert.IsNull(result.Radio2); //Assert.AreEqual("B,C", result.MultiSelectValue); Assert.AreEqual(encType, result.EncType); } }
public void CanAddNewBlogItemIncludingImage() { // Arrange Request blogRequest = Session.Bind(BlogRootPath); // Act ... // - GET blog Resources.Blog blog = blogRequest.Get <Resources.Blog>().Body; // - Follow "edit" link and GET form describing how to input Response <Resources.CreatePostDescriptor> createDescriptor = blog.Links.Select("edit").Follow(Session).Get <Resources.CreatePostDescriptor>(); // - Extract "create" form IKeyValueForm form = createDescriptor.Body.Form; // - Populate form inputs Resources.CreatePostArgs args = new Resources.CreatePostArgs { Title = "New item", Text = "Yaj!", Image = new File("..\\..\\data1.gif", "image/gif") }; form.Value(args); // - Submit the form Resources.Post createdPost = form.Bind().Submit <Resources.Post>().Created(); // Assert ... Assert.IsNotNull(createdPost); Assert.AreEqual("New item", createdPost.Title); Assert.AreEqual("Yaj!", createdPost.Text); }
public void WhenSubmittingFormItOverridesDefaultValues_Keyed( [Values("multipart", "urlencoded")] string encType) { // Act IKeyValueForm form = GetForm(encType: encType); form.Value("InputText", "abc"); form.Value("InputPassword", "1234"); form.Value("InputCheckbox", "not"); form.Value("TextArea", "qwe"); form.Value("Select", "1"); form.Value("Radio1", "1a"); form.Value("Radio2", "2b"); using (var r = form.Bind().Submit <FormArgs>()) { FormArgs result = r.Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("abc", result.InputText); Assert.AreEqual("1234", result.InputPassword); Assert.AreEqual("not", result.InputCheckbox); Assert.AreEqual("hidden", result.InputHidden); Assert.AreEqual("qwe", result.TextArea); Assert.AreEqual("1", result.Select); Assert.AreEqual("1a", result.Radio1); Assert.AreEqual("2b", result.Radio2); //Assert.AreEqual("A,D", result.MultiSelectValue); Assert.AreEqual(encType, result.EncType); } }
public void ItEitherUsesAcceptCharsetFromFormOrDefaultCharsetWhenSubmitting_Typed( [Values("iso-8859-1", "utf-8", "unused")] string charset) { // Arrange FormArgs args = new FormArgs { InputText = "ÆØÅüì" }; // Act IKeyValueForm form = GetForm(charset: charset); Request submitRequest = form.Value(args).Bind(); using (var r = submitRequest.Submit <FormArgs>()) { FormArgs result = r.Body; // Assert if (charset == "unused") { charset = Session.DefaultEncoding.WebName; } Assert.AreEqual(charset, submitRequest.CodecParameter("Charset")); Assert.IsNotNull(result); Assert.AreEqual("ÆØÅüì", result.InputText); } }
public void WhenSubmittingFormItOverridesDefaultValues_Typed( [Values("multipart", "urlencoded")] string encType) { // Arrange FormArgs args = new FormArgs { InputText = "abc", InputPassword = "******", InputCheckbox = "not", TextArea = "qwe", Select = "3", Radio1 = "1a", Radio2 = "2b" //MultiSelect = new List<string> { "A", "D" } }; // Act IKeyValueForm form = GetForm(encType: encType); FormArgs result = form.Value(args).Bind().Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("abc", result.InputText); Assert.AreEqual("1234", result.InputPassword); Assert.AreEqual("not", result.InputCheckbox); Assert.AreEqual("hidden", result.InputHidden); Assert.AreEqual("qwe", result.TextArea); Assert.AreEqual("3", result.Select); Assert.AreEqual("1a", result.Radio1); Assert.AreEqual("2b", result.Radio2); //Assert.AreEqual("A,D", result.MultiSelectValue); Assert.AreEqual(encType, result.EncType); }
IKeyValueForm GetForm(string actionUrlMode = "absolute", string encType = "multipart", string charset = "iso-8859-1") { // Pass charset to form creator such that it can insert "accept-charset" in the form. Request formRequest = Session.Bind(FormTemplate, new { actionUrlMode = actionUrlMode, encType = encType, charset = charset }); Response <HtmlDocument> response = formRequest.Get <HtmlDocument>(); IKeyValueForm form = response.Body.DocumentNode.SelectNodes(@"//form").First().Form(response); return(form); }
public void WhenNoActionUrlIsSetItSubmitsToCurrentUrl() { // Arrange FormArgs args = new FormArgs(); // Act IKeyValueForm form = GetForm("empty"); FormArgs result = form.Value(args).Bind("Cancel").Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("Cancel", result.Cancel); }
public void CanSubmitToRelativeActionUrl() { // Arrange FormArgs args = new FormArgs(); // Act IKeyValueForm form = GetForm("relative"); FormArgs result = form.Value(args).Bind("Cancel").Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("Cancel", result.Cancel); }
public void WhenSubmittingByIdItOnlyIncludesValuesFromTheSubmitButtonUsed() { // Arrange FormArgs args = new FormArgs(); // Act IKeyValueForm form = GetForm(); FormArgs result = form.Value(args).Bind("#help-button").Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.IsNull(result.Save); Assert.IsNull(result.Cancel); Assert.AreEqual("Help", result.Help); }
public void WhenSubmittingWithoutNameItIncludesValuesFromFirstSubmitButton() { // Arrange FormArgs args = new FormArgs(); // Act IKeyValueForm form = GetForm(); FormArgs result = form.Value(args).Bind().Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("Save", result.Save); Assert.IsNull(result.Cancel); Assert.IsNull(result.Help); }
public void WhenSubmittingFormItIncludesDefaultValues_Keyed( [Values("multipart", "urlencoded")] string encType) { // Act IKeyValueForm form = GetForm(encType: encType); form.Value("Unused", "---"); FormArgs result = form.Bind().Submit <FormArgs>().Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("text", result.InputText); Assert.AreEqual("password", result.InputPassword); Assert.AreEqual("checkbox", result.InputCheckbox); Assert.AreEqual("hidden", result.InputHidden); Assert.AreEqual("textarea", result.TextArea); Assert.AreEqual("2", result.Select); Assert.AreEqual("1b", result.Radio1); Assert.IsNull(result.Radio2); //Assert.AreEqual("B,C", result.MultiSelectValue); Assert.AreEqual(encType, result.EncType); }
public void CanAddNewBlogItemIncludingImage() { // Arrange Request blogRequest = Session.Bind(BlogRootPath); // Act ... // - GET blog using (var 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 using (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 using (var createdBlogItem = form.Bind().Submit <HtmlDocument>()) { // Assert ... Assert.IsNotNull(createdBlogItem); HtmlNode postTitle = createdBlogItem.Body.DocumentNode.SelectNodes(@"//*[@class=""post-title""]").First(); HtmlNode postContent = createdBlogItem.Body.DocumentNode.SelectNodes(@"//*[@class=""post-content""]").First(); Assert.AreEqual("New item", postTitle.InnerText); Assert.AreEqual("Yaj!", postContent.InnerText); } } } }
public void CanSubmitWithGetMethod() { // Arrange FormArgs args = new FormArgs { InputText = "This is a GET", Select = "Select XXX" }; // Act IKeyValueForm form = GetForm("relative", encType: "urlencoded", method: "GET"); using (var r = form.Value(args).Bind("Cancel").Submit <FormArgs>()) { FormArgs result = r.Body; // Assert Assert.IsNotNull(result); Assert.AreEqual("GET", result.Method); Assert.AreEqual(args.InputText, result.InputText); Assert.AreEqual(args.Select, result.Select); } }