Fixed: OS Version detection shouldn't break user agents. Fixes #1611
This commit is contained in:
parent
6577b0a721
commit
54bc642476
|
@ -0,0 +1,30 @@
|
||||||
|
using FluentAssertions;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
using NzbDrone.Common.Http;
|
||||||
|
using NzbDrone.Test.Common;
|
||||||
|
|
||||||
|
namespace NzbDrone.Common.Test.Http
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class UserAgentBuilderFixture : TestBase<UserAgentBuilder>
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void should_get_user_agent_if_os_version_is_null()
|
||||||
|
{
|
||||||
|
Mocker.GetMock<IOsInfo>().SetupGet(c => c.Version).Returns((string)null);
|
||||||
|
Mocker.GetMock<IOsInfo>().SetupGet(c => c.Name).Returns("TestOS");
|
||||||
|
|
||||||
|
Subject.GetUserAgent(false).Should().NotBeNullOrWhiteSpace();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_get_use_os_family_if_name_is_null()
|
||||||
|
{
|
||||||
|
Mocker.GetMock<IOsInfo>().SetupGet(c => c.Version).Returns((string)null);
|
||||||
|
Mocker.GetMock<IOsInfo>().SetupGet(c => c.Name).Returns((string)null);
|
||||||
|
|
||||||
|
Subject.GetUserAgent(false).Should().NotBeNullOrWhiteSpace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -89,6 +89,7 @@
|
||||||
<Compile Include="Http\HttpRequestBuilderFixture.cs" />
|
<Compile Include="Http\HttpRequestBuilderFixture.cs" />
|
||||||
<Compile Include="Http\HttpRequestFixture.cs" />
|
<Compile Include="Http\HttpRequestFixture.cs" />
|
||||||
<Compile Include="Http\HttpUriFixture.cs" />
|
<Compile Include="Http\HttpUriFixture.cs" />
|
||||||
|
<Compile Include="Http\UserAgentBuilderFixture.cs" />
|
||||||
<Compile Include="InstrumentationTests\CleanseLogMessageFixture.cs" />
|
<Compile Include="InstrumentationTests\CleanseLogMessageFixture.cs" />
|
||||||
<Compile Include="LevenshteinDistanceFixture.cs" />
|
<Compile Include="LevenshteinDistanceFixture.cs" />
|
||||||
<Compile Include="OsPathFixture.cs" />
|
<Compile Include="OsPathFixture.cs" />
|
||||||
|
|
|
@ -24,8 +24,14 @@ namespace NzbDrone.Common.Http
|
||||||
|
|
||||||
public UserAgentBuilder(IOsInfo osInfo)
|
public UserAgentBuilder(IOsInfo osInfo)
|
||||||
{
|
{
|
||||||
var osName = osInfo.Name.ToLower();
|
var osName = OsInfo.Os.ToString();
|
||||||
var osVersion = osInfo.Version.ToLower();
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(osInfo.Name))
|
||||||
|
{
|
||||||
|
osName = osInfo.Name.ToLower();
|
||||||
|
}
|
||||||
|
|
||||||
|
var osVersion = osInfo.Version?.ToLower();
|
||||||
|
|
||||||
_userAgent = $"Sonarr/{BuildInfo.Version} ({osName} {osVersion})";
|
_userAgent = $"Sonarr/{BuildInfo.Version} ({osName} {osVersion})";
|
||||||
_userAgentSimplified = $"Sonarr/{BuildInfo.Version.ToString(2)}";
|
_userAgentSimplified = $"Sonarr/{BuildInfo.Version.ToString(2)}";
|
||||||
|
|
Loading…
Reference in New Issue