aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2023-02-21 22:43:06 +0100
committerGitHub <noreply@github.com>2023-02-21 22:43:06 +0100
commitccea623c0d495dd76c35eebdda60390592ebc309 (patch)
tree674023c33e321783292190aeaf0be4ffce1979a9
parent6f65127f80b45b9fa29904708ca0aa4d2afd0b19 (diff)
parentcf29e9a9c587055381d839d9afeb5593a5dcd683 (diff)
Merge pull request #9365 from Bond-009/friendlyname
-rw-r--r--Emby.Dlna/Server/DescriptionXmlBuilder.cs26
-rw-r--r--tests/Jellyfin.Dlna.Tests/Server/DescriptionXmlBuilderTests.cs47
2 files changed, 65 insertions, 8 deletions
diff --git a/Emby.Dlna/Server/DescriptionXmlBuilder.cs b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
index d00df781d..69ef6f645 100644
--- a/Emby.Dlna/Server/DescriptionXmlBuilder.cs
+++ b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
@@ -147,11 +147,16 @@ namespace Emby.Dlna.Server
}
}
- private string GetFriendlyName()
+ internal string GetFriendlyName()
{
if (string.IsNullOrEmpty(_profile.FriendlyName))
{
- return "Jellyfin - " + _serverName;
+ return _serverName;
+ }
+
+ if (!_profile.FriendlyName.Contains("${HostName}", StringComparison.OrdinalIgnoreCase))
+ {
+ return _profile.FriendlyName;
}
var characterList = new List<char>();
@@ -164,13 +169,18 @@ namespace Emby.Dlna.Server
}
}
- var characters = characterList.ToArray();
-
- var serverName = new string(characters);
-
- var name = _profile.FriendlyName?.Replace("${HostName}", serverName, StringComparison.OrdinalIgnoreCase);
+ var serverName = string.Create(
+ characterList.Count,
+ characterList,
+ (dest, source) =>
+ {
+ for (int i = 0; i < dest.Length; i++)
+ {
+ dest[i] = source[i];
+ }
+ });
- return name ?? string.Empty;
+ return _profile.FriendlyName.Replace("${HostName}", serverName, StringComparison.OrdinalIgnoreCase);
}
private void AppendIconList(StringBuilder builder)
diff --git a/tests/Jellyfin.Dlna.Tests/Server/DescriptionXmlBuilderTests.cs b/tests/Jellyfin.Dlna.Tests/Server/DescriptionXmlBuilderTests.cs
new file mode 100644
index 000000000..c9018fe2f
--- /dev/null
+++ b/tests/Jellyfin.Dlna.Tests/Server/DescriptionXmlBuilderTests.cs
@@ -0,0 +1,47 @@
+using Emby.Dlna.Server;
+using MediaBrowser.Model.Dlna;
+using Xunit;
+
+namespace Jellyfin.Dlna.Server.Tests;
+
+public class DescriptionXmlBuilderTests
+{
+ [Fact]
+ public void GetFriendlyName_EmptyProfile_ReturnsServerName()
+ {
+ const string ServerName = "Test Server Name";
+ var builder = new DescriptionXmlBuilder(new DeviceProfile(), "serverUdn", "localhost", ServerName, string.Empty);
+ Assert.Equal(ServerName, builder.GetFriendlyName());
+ }
+
+ [Fact]
+ public void GetFriendlyName_FriendlyName_ReturnsFriendlyName()
+ {
+ const string FriendlyName = "Friendly Neighborhood Test Server";
+ var builder = new DescriptionXmlBuilder(
+ new DeviceProfile()
+ {
+ FriendlyName = FriendlyName
+ },
+ "serverUdn",
+ "localhost",
+ "Test Server Name",
+ string.Empty);
+ Assert.Equal(FriendlyName, builder.GetFriendlyName());
+ }
+
+ [Fact]
+ public void GetFriendlyName_FriendlyNameInterpolation_ReturnsFriendlyName()
+ {
+ var builder = new DescriptionXmlBuilder(
+ new DeviceProfile()
+ {
+ FriendlyName = "Friendly Neighborhood ${HostName}"
+ },
+ "serverUdn",
+ "localhost",
+ "Test Server Name",
+ string.Empty);
+ Assert.Equal("Friendly Neighborhood TestServerName", builder.GetFriendlyName());
+ }
+}