public void CanAppendFileHashToRelativeUri() { var hashQueryStringKeyName = "v"; var hashValue = "hashValue"; var hasher = new StubHasher(hashValue); var fileResolver = new FileResolver(); var uri = Assembly.GetExecutingAssembly().CodeBase; var cssFilePath = Path.GetDirectoryName(uri) + TestUtilities.PreparePath(@"\subdirectory\output.css"); var url = "../" + Path.GetFileName(uri); var assetsFileHasher = new CssAssetsFileHasher(hashQueryStringKeyName, fileResolver, hasher); var expectedUrl = url + "?" + hashQueryStringKeyName + "=" + hashValue; var rewrittenUrl = assetsFileHasher.AppendFileHash(cssFilePath, url); Assert.That(rewrittenUrl, Is.EqualTo(expectedUrl)); }
public void CanAppendFileHashToAbsoluteUriWithAnExistingQueryString() { var hashQueryStringKeyName = "v"; var hashValue = "hashValue"; var hasher = new StubHasher(hashValue); var uri = Assembly.GetExecutingAssembly().CodeBase; var cssFilePath = Path.GetDirectoryName(uri) + @"\output.css"; var url = "/" + Path.GetFileName(uri) + "?test=value"; var pathToResolveTo = Assembly.GetExecutingAssembly().Location; var fileResolver = new StubFileResolver(pathToResolveTo); var assetsFileHasher = new CssAssetsFileHasher(hashQueryStringKeyName, fileResolver, hasher); var expectedUrl = url + "&" + hashQueryStringKeyName + "=" + hashValue; var rewrittenUrl = assetsFileHasher.AppendFileHash(cssFilePath, url); Assert.That(rewrittenUrl, Is.EqualTo(expectedUrl)); }
public void DoesNotAppendHashIfFileDoesNotExists() { var hashQueryStringKeyName = "v"; var fileResolver = new FileResolver(); var hasher = new StubHasher("hash"); var cssFilePath = TestUtilities.PreparePath(@"C:\somepath\output.css"); var url = "/doesnotexist.jpg"; var assetsFileHasher = new CssAssetsFileHasher(hashQueryStringKeyName, fileResolver, hasher); var rewrittenUrl = assetsFileHasher.AppendFileHash(cssFilePath, url); Assert.That(rewrittenUrl, Is.EqualTo(url)); }
public void DoesNotAppendHashIfFileIsRemote() { var hashQueryStringKeyName = "v"; var fileResolver = new FileResolver(); var hasher = new StubHasher("hash"); var cssFilePath = @"C:\somepath\output.css"; var url = "http://www.test.com/image.jpg"; var assetsFileHasher = new CssAssetsFileHasher(hashQueryStringKeyName, fileResolver, hasher); var rewrittenUrl = assetsFileHasher.AppendFileHash(cssFilePath, url); Assert.That(rewrittenUrl, Is.EqualTo(url)); }