Browse Source

Fix caching headers.

pull/782/head
Sebastian 4 years ago
parent
commit
8d9b21482b
  1. 8
      backend/src/Squidex.Web/Pipeline/CachingManager.cs
  2. 15
      backend/tests/Squidex.Web.Tests/Pipeline/CachingKeysMiddlewareTests.cs

8
backend/src/Squidex.Web/Pipeline/CachingManager.cs

@ -115,16 +115,18 @@ namespace Squidex.Web.Pipeline
{
foreach (var key in keys)
{
var encoded = Uri.EscapeDataString(key);
if (stringBuilder.Length == 0)
{
if (stringBuilder.Length + key.Length > maxKeysSize)
if (stringBuilder.Length + encoded.Length > maxKeysSize)
{
break;
}
}
else
{
if (stringBuilder.Length + key.Length + 1 > maxKeysSize)
if (stringBuilder.Length + encoded.Length + 1 > maxKeysSize)
{
break;
}
@ -132,7 +134,7 @@ namespace Squidex.Web.Pipeline
stringBuilder.Append(' ');
}
stringBuilder.Append(key);
stringBuilder.Append(encoded);
}
if (stringBuilder.Length > 0)

15
backend/tests/Squidex.Web.Tests/Pipeline/CachingKeysMiddlewareTests.cs

@ -214,6 +214,21 @@ namespace Squidex.Web.Pipeline
Assert.Equal(string.Empty, httpContext.Response.Headers[HeaderNames.ETag]);
}
[Fact]
public async Task Should_append_surrogate_and_ecape_if_necessary()
{
var id = DomainId.Create("id@domain");
cachingOptions.MaxSurrogateKeysSize = 100;
await MakeRequestAsync(() =>
{
cachingManager.AddDependency(id, 12);
});
Assert.Equal("id%40domain", httpContext.Response.Headers["Surrogate-Key"]);
}
[Fact]
public async Task Should_append_surrogate_keys()
{

Loading…
Cancel
Save