diff --git a/src/Umbraco.Core/CustomBooleanTypeConverter.cs b/src/Umbraco.Core/CustomBooleanTypeConverter.cs index e528b9638d..6246b04bd1 100644 --- a/src/Umbraco.Core/CustomBooleanTypeConverter.cs +++ b/src/Umbraco.Core/CustomBooleanTypeConverter.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.ComponentModel; namespace Umbraco.Cms.Core @@ -24,6 +24,8 @@ namespace Umbraco.Cms.Core var str = (string)value; if (str == null || str.Length == 0 || str == "0") return false; if (str == "1") return true; + if (str.Equals("Yes", StringComparison.OrdinalIgnoreCase)) return true; + if (str.Equals("No", StringComparison.OrdinalIgnoreCase)) return false; } return base.ConvertFrom(context, culture, value); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs index 6857a055bb..0525a24173 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Umbraco. +// Copyright (c) Umbraco. // See LICENSE for more details. using System; @@ -10,6 +10,42 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.CoreThings [TestFixture] public class TryConvertToTests { + [Test] + public void ConvertToBoolTest() + { + var conv = 1.TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(true, conv.Result); + + conv = "1".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(true, conv.Result); + + conv = 0.TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(false, conv.Result); + + conv = "0".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(false, conv.Result); + + conv = "Yes".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(true, conv.Result); + + conv = "yes".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(true, conv.Result); + + conv = "No".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(false, conv.Result); + + conv = "no".TryConvertTo(); + Assert.IsTrue(conv); + Assert.AreEqual(false, conv.Result); + } + [Test] public void ConvertToIntegerTest() {