diff --git a/src/Umbraco.Cms.Api.Delivery/Services/RequestPreviewService.cs b/src/Umbraco.Cms.Api.Delivery/Services/RequestPreviewService.cs
index 874e2af7bb..f891aee689 100644
--- a/src/Umbraco.Cms.Api.Delivery/Services/RequestPreviewService.cs
+++ b/src/Umbraco.Cms.Api.Delivery/Services/RequestPreviewService.cs
@@ -1,4 +1,4 @@
-using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http;
using Umbraco.Cms.Core.DeliveryApi;
namespace Umbraco.Cms.Api.Delivery.Services;
@@ -11,5 +11,5 @@ internal sealed class RequestPreviewService : RequestHeaderHandler, IRequestPrev
}
///
- public bool IsPreview() => GetHeaderValue("Preview") == "true";
+ public bool IsPreview() => string.Equals(GetHeaderValue("Preview"), "true", StringComparison.OrdinalIgnoreCase);
}
diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Delivery/Services/RequestPreviewServiceTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Delivery/Services/RequestPreviewServiceTests.cs
new file mode 100644
index 0000000000..6f5c5e0790
--- /dev/null
+++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Cms.Api.Delivery/Services/RequestPreviewServiceTests.cs
@@ -0,0 +1,31 @@
+using Microsoft.AspNetCore.Http;
+using Moq;
+using NUnit.Framework;
+using Umbraco.Cms.Api.Delivery.Services;
+
+namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Api.Delivery.Services;
+
+[TestFixture]
+public class RequestPreviewServiceTests
+{
+ [TestCase(null, false)]
+ [TestCase("", false)]
+ [TestCase("false", false)]
+ [TestCase("true", true)]
+ [TestCase("True", true)]
+ public void IsPreview_Returns_Expected_Result(string? headerValue, bool expected)
+ {
+ var httpContext = new DefaultHttpContext();
+ httpContext.Request.Headers["Preview"] = headerValue;
+
+ var httpContextAccessorMock = new Mock();
+ httpContextAccessorMock
+ .Setup(x => x.HttpContext)
+ .Returns(httpContext);
+ var sut = new RequestPreviewService(httpContextAccessorMock.Object);
+
+ var result = sut.IsPreview();
+
+ Assert.AreEqual(expected, result);
+ }
+}