public override void Validate(object sender, Events.ValidationEventArgs e) { if (String.IsNullOrEmpty(_name)) { throw new ArgumentNullException("Name may not be null."); } try { base.Validate(sender, e); IEnumerable <XElement> formElements = base.Document.Document.Descendants(XName.Get("input", "http://www.w3.org/1999/xhtml")); foreach (XElement nextElement in formElements) { if (nextElement.Attribute(XName.Get("value")) != null && nextElement.Attribute(XName.Get("value")).Value.Equals(_expectedValue)) { _context.Outcome = WebTestOutcome.Passed; break; } } if (_context.Outcome != WebTestOutcome.Passed) { _context.Outcome = WebTestOutcome.Failed; } } catch (Exception ex) { _context.Outcome = WebTestOutcome.Error; _message = ex.Message; } }
//#region Constructors //public ValidateElementExists() // : base() //{ // // Do Nothing. //} //#endregion #region Methods public override void Validate(object sender, Events.ValidationEventArgs e) { _context.Outcome = WebTestOutcome.Passed; if (_element == null) { throw new ArgumentNullException("Element may not be null."); } try { base.Validate(sender, e); IEnumerable <XElement> elements = base.Document.Document.Descendants(); IEnumerable <XElement> formElements = from el in elements where el.Name.LocalName.Equals(_element.Name.LocalName) select el; foreach (XElement nextElement in formElements) { IList <WebTestOutcome> attributeResults = new List <WebTestOutcome>(); foreach (XAttribute nextAttribute in _element.Attributes()) { if (nextElement.Attribute(nextAttribute.Name) == null || !nextElement.Attribute(nextAttribute.Name).Value.Equals(nextAttribute.Value)) { attributeResults.Add(WebTestOutcome.Failed); } else { attributeResults.Add(WebTestOutcome.Passed); } } } if (_context.Outcome != WebTestOutcome.Passed) { _context.Outcome = WebTestOutcome.Failed; } } catch (Exception ex) { _context.Outcome = WebTestOutcome.Error; _message = ex.Message; } }