Implement preferred audio languages feature: update site settings to include preferred audio languages, modify related data structures and API endpoints, and enhance media processing to select audio tracks based on user preferences. Update frontend components for managing and displaying these settings.
This commit is contained in:
1 parent
64a2dade74
commit
525fd2ee01
17 files changed
+236
-17
No files matched your search
@@ -0,0 +1,51 @@
|
||||
using TeleWave.Application.Media;
|
||||
using Xunit;
|
||||
|
||||
namespace TeleWave.Application.Tests.Media;
|
||||
|
||||
public class AudioTrackSelectorTests
|
||||
{
|
||||
[Fact]
|
||||
public void PicksFirstPreferredLanguage_ByPriorityOrder()
|
||||
{
|
||||
// Дорожки: eng(0), rus(1), jpn(2). Предпочтение rus,eng → выбираем rus (индекс 1).
|
||||
var track = AudioTrackSelector.Select(["eng", "rus", "jpn"], ["rus", "eng"]);
|
||||
Assert.Equal(1, track);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FallsBackToNextPreferred_WhenTopMissing()
|
||||
{
|
||||
// Нет rus — берём следующий по приоритету eng (индекс 0).
|
||||
var track = AudioTrackSelector.Select(["eng", "jpn"], ["rus", "eng"]);
|
||||
Assert.Equal(0, track);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CaseInsensitiveMatch()
|
||||
{
|
||||
var track = AudioTrackSelector.Select(["ENG", "RUS"], ["rus"]);
|
||||
Assert.Equal(1, track);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NoMatch_ReturnsNull_KeepingFfmpegDefault()
|
||||
{
|
||||
var track = AudioTrackSelector.Select(["eng", "jpn"], ["rus"]);
|
||||
Assert.Null(track);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SingleTrack_ReturnsNull()
|
||||
{
|
||||
var track = AudioTrackSelector.Select(["eng"], ["eng"]);
|
||||
Assert.Null(track);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NoPreference_ReturnsNull()
|
||||
{
|
||||
var track = AudioTrackSelector.Select(["eng", "rus"], []);
|
||||
Assert.Null(track);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user