예제 #1
0
        public void PipelineContext_ConstructUrl_Returns_Correct_Values()
        {
            var worksheet = new ExcelWorksheetData(TestContext);

            var scheme      = worksheet.EString("Scheme");
            var host        = worksheet.EString("Host");
            var pathBase    = worksheet.EString("PathBase");
            var path        = worksheet.EString("Path");
            var queryString = worksheet.EString("QueryString");
            var expected    = worksheet.EString("URL");

            var url = PipelineContext.ConstructUrl(scheme, host, pathBase, path, queryString);

            Assert.AreEqual(expected, url);
        }
예제 #2
0
        /// <summary>
        /// Constructs the URL to jump to.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="newPath"></param>
        /// <returns></returns>
        private string BuildNewPath(PipelineRequest request, string newPath)
        {
            var isHttp  = String.Equals(request.Scheme, "http", StringComparison.OrdinalIgnoreCase);
            var isHttps = !isHttp && String.Equals(request.Scheme, "https", StringComparison.OrdinalIgnoreCase);

            var host = request.Host.Value ?? "";

            if (isHttp && host.EndsWith(":80"))
            {
                host = host.Substring(0, host.Length - 3);
            }
            else if (isHttps && host.EndsWith(":443"))
            {
                host = host.Substring(0, host.Length - 4);
            }

            return(PipelineContext.ConstructUrl(
                       request.Scheme,
                       host,
                       request.PathBase.Value,
                       newPath,
                       request.QueryString.Value
                       ));
        }