Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
                    }
                }
            }
        }
Esempio n. 13
0
        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);
            }
        }