public void RequestPathParts_Splits_RequestPath_Into_Chunks(string[] expected, string requestPath) { var actual = OwinPath.RequestPathParts(requestPath); if (expected == null) { Assert.IsNull(actual); } else { Assert.IsTrue(expected.SequenceEqual(actual)); } }
public void RequestPathParts_Rebuilds_Cache_If_Path_Changes() { var environment = new MockOwinEnvironment(); environment.RequestPath = "/a"; var pathParts1 = OwinPath.RequestPathParts(environment.Environment, createAndUseCachedResult: true); environment.RequestPath = "/b"; var pathParts2 = OwinPath.RequestPathParts(environment.Environment, createAndUseCachedResult: true); Assert.AreNotSame(pathParts1, pathParts2); Assert.AreEqual(1, pathParts2.Length); Assert.AreEqual("b", pathParts2[0]); }
private string ExtractUrlFromUncertainEnvironment(IDictionary <string, object> environment) { var result = String.Empty; if (environment != null) { result = OwinPath.ConstructUrlFromRoot( (environment.ContainsKey(EnvironmentKey.RequestPathBase) ? environment[EnvironmentKey.RequestPathBase] as string : null) ?? "", (environment.ContainsKey(EnvironmentKey.RequestPath) ? environment[EnvironmentKey.RequestPath] as string : null) ?? "", (environment.ContainsKey(EnvironmentKey.RequestQueryString) ? environment[EnvironmentKey.RequestQueryString] as string : null) ?? "" ); } return(result); }
public void RequestPathParts_Can_Cache_Result_In_Environment(bool createCacheEntry) { var environment = new MockOwinEnvironment(); environment.RequestPath = "/a"; var actual = OwinPath.RequestPathParts(environment.Environment, createAndUseCachedResult: createCacheEntry); Assert.AreEqual(1, actual.Length); Assert.AreEqual("a", actual[0]); var cacheEntry = environment.Environment[CustomEnvironmentKey.RequestPathParts] as IList <string>; if (createCacheEntry) { Assert.IsTrue(actual.SequenceEqual(cacheEntry)); } else { Assert.IsNull(cacheEntry); } }
public void RequestPathParts_Extracts_RequestPath_From_Environment_And_Splits_Into_Chunks(string[] expected, string requestPath) { foreach (var useCache in new bool[] { true, false }) { var environment = new MockOwinEnvironment(); if (requestPath != null) { environment.RequestPath = requestPath; } var actual = OwinPath.RequestPathParts(environment.Environment, useCache); if (expected == null) { Assert.IsNull(actual); } else { Assert.IsTrue(expected.SequenceEqual(actual)); } } }
/// <summary> /// Constructs the URL to jump to. /// </summary> /// <param name="context"></param> /// <param name="newPath"></param> /// <returns></returns> private string BuildNewPath(OwinContext context, string newPath) { var isHttp = String.Equals(context.RequestScheme, "http", StringComparison.OrdinalIgnoreCase); var isHttps = !isHttp && String.Equals(context.RequestScheme, "https", StringComparison.OrdinalIgnoreCase); var host = context.RequestHost ?? ""; 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(OwinPath.ConstructUrl( context.RequestScheme, host, context.RequestPathBase, newPath, context.RequestQueryString )); }
public void ConstructUrlFromRoot_Returns_Correct_Values(string pathBase, string path, string queryString, string expected) { var actual = OwinPath.ConstructUrlFromRoot(pathBase, path, queryString); Assert.AreEqual(expected, actual); }
public void ConstructUrl_Returns_Correct_Values(string scheme, string host, string pathBase, string path, string queryString, string expected) { var url = OwinPath.ConstructUrl(scheme, host, pathBase, path, queryString); Assert.AreEqual(expected, url); }