public void UrlBuilderProperlySignsFullyQualifiedUrls() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true) { SignKey = "FOO123bar" }; Assert.AreEqual("https://my-social-network.imgix.net/http%3A%2F%2Favatars.com%2Fjohn-smith.png?s=493a52f008c91416351f8b33d4883135", test.BuildUrl("/http%3A%2F%2Favatars.com%2Fjohn-smith.png")); }
public void UrlBuilderSignsNestedPaths() { var test = new UrlBuilder("domain.imgix.net") { SignKey = SignKey }; Assert.AreEqual(test.BuildUrl("test/gaiman.jpg"), "http://domain.imgix.net/test/gaiman.jpg?s=51033c27726f19c0f8229a1ed2dc8523"); }
public void UrlBuilderBuildsQueryStringUrlHttps() { var test = new UrlBuilder("domain.imgix.net", useHttps: true); test.Parameters["w"] = "500"; test.Parameters["blur"] = "100"; Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "https://domain.imgix.net/gaiman.jpg?w=500&blur=100"); }
public void UrlBuilderAppendsQueryStringParameters() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true); test.Parameters.Add("w", "400"); test.Parameters.Add("h", "300"); Assert.AreEqual("https://my-social-network.imgix.net/users/1.png?w=400&h=300", test.BuildUrl("/users/1.png")); }
public void UrlBuilderProperlySignsFullyQualifiedUrlsWithParameters() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true) { SignKey = "FOO123bar" }; test.Parameters.Add("w", "400"); test.Parameters.Add("h", "300"); Assert.AreEqual("https://my-social-network.imgix.net/http%3A%2F%2Favatars.com%2Fjohn-smith.png?w=400&h=300&s=61ea1cc7add87653bb0695fe25f2b534", test.BuildUrl("/http%3A%2F%2Favatars.com%2Fjohn-smith.png")); }
public void UrlBuilderSignsParameteredRequests() { var test = new UrlBuilder("domain.imgix.net") { SignKey = SignKey }; test.Parameters.Add("w", "500"); test.Parameters.Add("h", "1000"); Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain.imgix.net/gaiman.jpg?w=500&h=1000&s=fc4afbc39b6741560717142aeada876c"); }
public void Process(GetMediaStreamPipelineArgs args) { if (args.MediaData.Extension.Equals("PNG")) { var builder = new UrlBuilder("bensterrett.imgix.net") { SignKey = WebConfigurationManager.AppSettings["imgixSecret"] }; HttpContext.Current.Response.Redirect(builder.BuildUrl(HttpUtility.UrlEncode(args.MediaData.MediaItem.ID.ToString()))); args.AbortPipeline(); } }
public void UrlBuilderUsesCRCShardingBydefault() { var test = new UrlBuilder("domain.imgix.net", useHttps: true); Assert.AreEqual(test.ShardStrategy, UrlBuilder.ShardStrategyType.CRC); }
public void UrlBuilderWithMultipleDomainsPicksTheFirstWhenNoShardTypeSelected() { var domains = new[] { "domain.imgix.net", "domain2.imgix.net", "domain3.imgix.net" }; var test = new UrlBuilder(domains) { ShardStrategy = UrlBuilder.ShardStrategyType.NONE }; Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain.imgix.net/gaiman.jpg"); }
public void UrlBuilderHandlesBasicPathsProperly() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true); Assert.AreEqual("https://my-social-network.imgix.net/users/1.png", test.BuildUrl("/users/1.png")); }
public void UrlBuilderSignsParameterlessRequests() { var test = new UrlBuilder("domain.imgix.net") { SignKey = SignKey }; Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain.imgix.net/gaiman.jpg?s=db6110637ad768e4b1d503cb96e6439a"); }
public void UrlBuilderProperlySignsSimplePathsWithParameters() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true) { SignKey = "FOO123bar" }; test.Parameters.Add("w", "400"); test.Parameters.Add("h", "300"); Assert.AreEqual("https://my-social-network.imgix.net/users/1.png?w=400&h=300&s=c7b86f666a832434dd38577e38cf86d1", test.BuildUrl("/users/1.png")); }
public void UrlBuilderProperlyEncodesAbsolutePaths() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true); Assert.AreEqual("https://my-social-network.imgix.net/http%3A%2F%2Favatars.com%2Fjohn-smith.png", test.BuildUrl("http://avatars.com/john-smith.png")); }
public void UrlBuilderBuildsBasicUrlHttps() { var test = new UrlBuilder("domain.imgix.net", useHttps: true); Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "https://domain.imgix.net/gaiman.jpg"); }
public void UrlBuilderWithMultipleDomainsSelectsServerByCRC() { var domains = new[] { "domain.imgix.net", "domain2.imgix.net", "domain3.imgix.net" }; var crcs = new [] { "test1.png", "test2.png", "test3.png" }.Select(i => Convert.ToInt32(new Crc32().ComputeCrcHash(i) % domains.Length)).ToArray(); var test = new UrlBuilder(domains) { ShardStrategy = UrlBuilder.ShardStrategyType.CRC }; Assert.AreEqual(test.BuildUrl("test1.png"), String.Format("http://{0}/test1.png", domains[crcs[0]])); Assert.AreEqual(test.BuildUrl("test2.png"), String.Format("http://{0}/test2.png", domains[crcs[1]])); Assert.AreEqual(test.BuildUrl("test3.png"), String.Format("http://{0}/test3.png", domains[crcs[2]])); }
public void UrlBuilderDoesnotMerelyAppend() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true); Assert.AreNotEqual("https://my-social-network.imgix.net/http://avatars.com/john-smith.png", test.BuildUrl("http://avatars.com/john-smith.png")); }
public void UrlBuilderWithMultipleDomainCyclesThroughDomains() { var domains = new[] {"domain.imgix.net", "domain2.imgix.net", "domain3.imgix.net"}; var test = new UrlBuilder(domains) { ShardStrategy = UrlBuilder.ShardStrategyType.CYCLE }; Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain.imgix.net/gaiman.jpg"); Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain2.imgix.net/gaiman.jpg"); Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain3.imgix.net/gaiman.jpg"); Assert.AreEqual(test.BuildUrl("gaiman.jpg"), "http://domain.imgix.net/gaiman.jpg"); }
public void UrlBuilderProperlySignsSimpleRequests() { var test = new UrlBuilder("my-social-network.imgix.net", useHttps: true) { SignKey = "FOO123bar" }; Assert.AreEqual("https://my-social-network.imgix.net/users/1.png?s=6797c24146142d5b40bde3141fd3600c", test.BuildUrl("/users/1.png")); }