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); }
/// <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 )); }