From 023e67851115abb31ab4562890d1580ab2cad540 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Sun, 14 Nov 2010 23:36:02 -0800 Subject: [PATCH] Updating the SpecFlow form data collection to include textarea elements --HG-- branch : dev --- src/Orchard.Specs/Bindings/WebAppHosting.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs index 4f32a979c..d101d76c8 100644 --- a/src/Orchard.Specs/Bindings/WebAppHosting.cs +++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs @@ -156,7 +156,7 @@ namespace Orchard.Specs.Bindings { [When(@"I fill in")] public void WhenIFillIn(Table table) { var inputs = _doc.DocumentNode - .SelectNodes("//input") ?? Enumerable.Empty(); + .SelectNodes("(//input|//textarea)") ?? Enumerable.Empty(); foreach (var row in table.Rows) { var r = row; @@ -191,12 +191,15 @@ namespace Orchard.Specs.Bindings { var form = Form.LocateAround(submit); var urlPath = form.Start.GetAttributeValue("action", Details.UrlPath); var inputs = form.Children - .SelectMany(elt => elt.DescendantsAndSelf("input")) + .SelectMany(elt => elt.DescendantsAndSelf("input").Concat(elt.Descendants("textarea"))) .Where(node => !((node.GetAttributeValue("type", "") == "radio" || node.GetAttributeValue("type", "") == "checkbox") && node.GetAttributeValue("checked", "") != "checked")) .GroupBy(elt => elt.GetAttributeValue("name", elt.GetAttributeValue("id", "")), elt => elt.GetAttributeValue("value", "")) .Where(g => !string.IsNullOrEmpty(g.Key)) .ToDictionary(elt => elt.Key, elt => (IEnumerable)elt); + if (submit.Attributes.Contains("name")) + inputs.Add(submit.GetAttributeValue("name", ""), new[] {submit.GetAttributeValue("value", "yes")}); + Details = Host.SendRequest(urlPath, inputs); _doc = new HtmlDocument(); _doc.Load(new StringReader(Details.ResponseText)); @@ -221,7 +224,7 @@ namespace Orchard.Specs.Bindings { [Then(@"I should see ""(.*)""")] public void ThenIShouldSee(string text) { - Assert.That(Details.ResponseText, Is.StringContaining(text)); + Assert.That(Details.ResponseText, Is.StringMatching(text)); } [Then(@"I should not see ""(.*)""")]