diff --git a/NzbDrone.Core.Test/ProviderTests/SearchTests/GetSearchTitleFixture.cs b/NzbDrone.Core.Test/ProviderTests/SearchTests/GetSearchTitleFixture.cs index 245d8357d..82f6d78a8 100644 --- a/NzbDrone.Core.Test/ProviderTests/SearchTests/GetSearchTitleFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/SearchTests/GetSearchTitleFixture.cs @@ -56,5 +56,20 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchTests Mocker.Resolve().GetSearchTitle(_series, 5) .Should().Be("Franklin and Bash"); } + + [TestCase("Betty White's Off Their Rockers", "Betty Whites Off Their Rockers")] + [TestCase("Star Wars: The Clone Wars", "Star Wars The Clone Wars")] + [TestCase("Hawaii Five-0", "Hawaii Five-0")] + public void should_replace_some_special_characters(string input, string expected) + { + _series.Title = input; + + Mocker.GetMock() + .Setup(s => s.GetSceneName(_series.SeriesId)) + .Returns(""); + + Mocker.Resolve().GetSearchTitle(_series, 5) + .Should().Be(expected); + } } } diff --git a/NzbDrone.Core/Providers/Search/SearchBase.cs b/NzbDrone.Core/Providers/Search/SearchBase.cs index e9694e8c8..c97988895 100644 --- a/NzbDrone.Core/Providers/Search/SearchBase.cs +++ b/NzbDrone.Core/Providers/Search/SearchBase.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using NLog; using NzbDrone.Core.Model; using NzbDrone.Core.Model.Notification; @@ -174,6 +175,7 @@ namespace NzbDrone.Core.Providers.Search { title = series.Title; title = title.Replace("&", "and"); + title = Regex.Replace(title, @"[^\w\d\s\-]", ""); } return title;