示例#1
0
        /// <summary>
        /// Test the url data provided
        /// </summary>
        /// <param name="item">UrlData </param>
        /// <returns>True for a successful test / False if the test attempt failed.</returns>
        protected bool TestLink(IUrlData item)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(item.GetURL(BaseUrl));
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    item.HeaderResponseCode = response.StatusCode;
                    item.ActualRedirect     = response.ResponseUri;
                }

                //issue #17
                if (WebUtility.UrlDecode(item.ExpectedRedirect).Trim() != WebUtility.UrlDecode(item.ActualRedirect.ToString()).Trim())
                {
                    item.Testfail = true;
                }
            }
            catch (WebException webEx)
            {
                ErrorMessages.Add(new ErrorMessage($"An error occurred with this url - {item.Url} | {webEx.Message}"));
                item.ErrorMessage = $"{webEx.Message} -- {webEx.InnerException}";
                item.Testfail     = true;
            }

            return(!item.Testfail);
        }
示例#2
0
        /// <summary>
        /// Build an output message for the user
        /// right now this is being used for both the csv output and the screen output.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="count"></param>
        /// <returns>string</returns>
        private string BuildOutPutMessage(IUrlData item, int count)
        {
            var output       = string.Empty;
            var errorMessage = !string.IsNullOrEmpty(item.ErrorMessage) ? item.ErrorMessage : "\"\"";

            output = string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", count, !item.Testfail ? "Passed" : "Failed", ((int)item.HeaderResponseCode).ToString(), item.HeaderResponseCode.ToString(), item.Url, item.ExpectedRedirect, item.ActualRedirect, errorMessage);
            return(output);
        }