Revert "Making Culture Invariant When Validating Date to negate deferent formats (#17257)"

This reverts commit dabaeac262.

# Conflicts:
#	src/Umbraco.Core/PropertyEditors/Validators/DateTimeValidator.cs
#	tests/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/Validators/DateTimeValidatorTests.cs
This commit is contained in:
Sebastiaan Janssen
2024-11-14 11:29:34 +01:00
parent b4609e0388
commit 9056851eed
2 changed files with 1 additions and 49 deletions

View File

@@ -1,5 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using Umbraco.Cms.Core.Models.Validation;
using Umbraco.Extensions;
@@ -26,7 +25,7 @@ public class DateTimeValidator : IValueValidator
yield break;
}
if (DateTime.TryParse(value.ToString(), CultureInfo.InvariantCulture, out DateTime dt) == false)
if (DateTime.TryParse(value.ToString(), out DateTime dt) == false)
{
yield return new ValidationResult(
$"The string value {value} cannot be parsed into a DateTime",

View File

@@ -1,47 +0,0 @@
using System.Globalization;
using NUnit.Framework;
using Umbraco.Cms.Core.Models.Validation;
using Umbraco.Cms.Core.PropertyEditors.Validators;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.PropertyEditors.Validators
{
/// <summary>
/// Unit test fixture for the DateTimeValidator class.
/// </summary>
[TestFixture]
public class DateTimeValidatorTests
{
/// <summary>
/// Tests that the DateTimeValidator is culture invariant.
/// </summary>
/// <param name="culture">The culture to set for the current thread.</param>
/// <param name="format">The date format to use for the test.</param>
[TestCase("en-US", "yyyy-MM-dd HH:mm:ss", TestName = "US Thread, DateTimeValidator")]
[TestCase("en-US", "dd-MM-yyyy HH:mm:ss", TestName = "US Thread, DateTimeValidator ar-SA format")]
[TestCase("ar-SA", "dd-MM-yyyy HH:mm:ss", TestName = "Arabian Saudi Thread, DateTimeValidator")]
[TestCase("ar-SA", "yyyy-MM-dd HH:mm:ss", TestName = "Arabian Saudi Thread, DateTimeValidator US format")]
public void DateTimeValidatorIsCultureInvariant(string culture, string format)
{
// Generate a date string using the specified format
var dateString = DateTime.Now.ToString(format);
// Set the current thread's culture and UI culture
var cultureInfo = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
// Create a new DateTimeValidator instance
var validator = new DateTimeValidator();
// Validate the date string
var validationResults = validator.Validate(
dateString,
"DATETIME",
new Dictionary<string, object>(),
PropertyValidationContext.Empty());
// Assert that there are no validation errors
CollectionAssert.IsEmpty(validationResults);
}
}
}