diff --git a/src/Umbraco.Core/CustomBooleanTypeConverter.cs b/src/Umbraco.Core/CustomBooleanTypeConverter.cs index b7b30d1fa1..76c8f75076 100644 --- a/src/Umbraco.Core/CustomBooleanTypeConverter.cs +++ b/src/Umbraco.Core/CustomBooleanTypeConverter.cs @@ -23,7 +23,7 @@ namespace Umbraco.Core { var str = (string)value; if (str == "1") return true; - if (str == "0") return false; + if (str == "0" || str == "") return false; } return base.ConvertFrom(context, culture, value); diff --git a/src/Umbraco.Tests/ObjectExtensionsTests.cs b/src/Umbraco.Tests/ObjectExtensionsTests.cs index 022a84e144..8a786ded6f 100644 --- a/src/Umbraco.Tests/ObjectExtensionsTests.cs +++ b/src/Umbraco.Tests/ObjectExtensionsTests.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using NUnit.Framework; using Umbraco.Core; @@ -67,7 +68,8 @@ namespace Umbraco.Tests {"FALSE", false}, {"False", false}, {"false", false}, - {"0", false} + {"0", false}, + {"", false} }; foreach (var testCase in testCases) @@ -79,6 +81,34 @@ namespace Umbraco.Tests } } + [Test] + [TestOnlyInFullTrust] + public virtual void CanConvertStringToDateTime() + { + var dateTime = new DateTime(2012, 11, 10, 13, 14, 15); + var testCases = new Dictionary + { + {"2012-11-10", true}, + {"2012/11/10", true}, + {"10/11/2012", true}, + {"11/10/2012", false}, + {"Sat 10, Nov 2012", true}, + {"Saturday 10, Nov 2012", true}, + {"Sat 10, November 2012", true}, + {"Saturday 10, November 2012", true}, + {"2012-11-10 13:14:15", true}, + {"", false} + }; + + foreach (var testCase in testCases) + { + var result = testCase.Key.TryConvertTo(); + + Assert.IsTrue(result.Success); + Assert.AreEqual(DateTime.Equals(dateTime.Date, result.Result.Date), testCase.Value); + } + } + /// /// Run once before each test in derived test fixtures. ///