diff options
| author | Luis Miguel Almánzar <ruisu15@gmail.com> | 2014-05-11 02:29:44 -0400 |
|---|---|---|
| committer | Luis Miguel Almánzar <ruisu15@gmail.com> | 2014-05-11 02:29:44 -0400 |
| commit | 8f56b74d63eb624cf26d3b1392c45beab3fb42b3 (patch) | |
| tree | 25ca645eb6e8dd725f097302676b5f37c06aca82 /MediaBrowser.Tests/MediaEncoding | |
| parent | 62ffe2c59dd18c58f69275dab55e66020966def8 (diff) | |
add VTT writer implementation
Diffstat (limited to 'MediaBrowser.Tests/MediaEncoding')
| -rw-r--r-- | MediaBrowser.Tests/MediaEncoding/Subtitles/TestSubtitles/expected.vtt | 32 | ||||
| -rw-r--r-- | MediaBrowser.Tests/MediaEncoding/Subtitles/VttWriterTest.cs | 103 |
2 files changed, 135 insertions, 0 deletions
diff --git a/MediaBrowser.Tests/MediaEncoding/Subtitles/TestSubtitles/expected.vtt b/MediaBrowser.Tests/MediaEncoding/Subtitles/TestSubtitles/expected.vtt new file mode 100644 index 000000000..b6352e7b5 --- /dev/null +++ b/MediaBrowser.Tests/MediaEncoding/Subtitles/TestSubtitles/expected.vtt @@ -0,0 +1,32 @@ +WEBVTT + +00:00:02.400 --> 00:00:05.200 +[Background Music Playing] + +00:00:15.712 --> 00:00:17.399 +Oh my god, Watch out!<br />It's coming!! + +00:00:25.712 --> 00:00:30.399 +[Bird noises] + +00:00:31.000 --> 00:00:31.999 +This text is <font color="red">RED</font> and has not been positioned. + +00:00:32.000 --> 00:00:32.999 +This is a<br />new line, as is<br />this + +00:00:33.000 --> 00:00:33.999 +This contains nested <b>bold, <i>italic, <u>underline</u> and <s>strike-through</s></u></i></b> HTML tags + +00:00:34.000 --> 00:00:34.999 +Unclosed but <b>supported HTML tags are left in, SSA italics aren't + +00:00:35.000 --> 00:00:35.999 +<ggg>Unsupported</ggg> HTML tags are escaped and left in, even if <hhh>not closed. + +00:00:36.000 --> 00:00:36.999 +Multiple SSA tags are stripped + +00:00:37.000 --> 00:00:37.999 +Greater than (<) and less than (>) are shown + diff --git a/MediaBrowser.Tests/MediaEncoding/Subtitles/VttWriterTest.cs b/MediaBrowser.Tests/MediaEncoding/Subtitles/VttWriterTest.cs new file mode 100644 index 000000000..5292ad3d2 --- /dev/null +++ b/MediaBrowser.Tests/MediaEncoding/Subtitles/VttWriterTest.cs @@ -0,0 +1,103 @@ +using System.Collections.Generic; +using System.IO; +using MediaBrowser.MediaEncoding.Subtitles; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace MediaBrowser.Tests.MediaEncoding.Subtitles { + + [TestClass] + public class VttWriterTest { + [TestMethod] + public void TestWrite() { + var infoSubs = + new SubtitleTrackInfo + { + TrackEvents = new List<SubtitleTrackEvent> { + new SubtitleTrackEvent { + Id = "1", + StartPositionTicks = 24000000, + EndPositionTicks = 52000000, + Text = + "[Background Music Playing]" + }, + new SubtitleTrackEvent { + Id = "2", + StartPositionTicks = 157120000, + EndPositionTicks = 173990000, + Text = + "Oh my god, Watch out!<br />It's coming!!" + }, + new SubtitleTrackEvent { + Id = "3", + StartPositionTicks = 257120000, + EndPositionTicks = 303990000, + Text = "[Bird noises]" + }, + new SubtitleTrackEvent { + Id = "4", + StartPositionTicks = 310000000, + EndPositionTicks = 319990000, + Text = + "This text is <font color=\"red\">RED</font> and has not been positioned." + }, + new SubtitleTrackEvent { + Id = "5", + StartPositionTicks = 320000000, + EndPositionTicks = 329990000, + Text = + "This is a<br />new line, as is<br />this" + }, + new SubtitleTrackEvent { + Id = "6", + StartPositionTicks = 330000000, + EndPositionTicks = 339990000, + Text = + "This contains nested <b>bold, <i>italic, <u>underline</u> and <s>strike-through</s></u></i></b> HTML tags" + }, + new SubtitleTrackEvent { + Id = "7", + StartPositionTicks = 340000000, + EndPositionTicks = 349990000, + Text = + "Unclosed but <b>supported HTML tags are left in, SSA italics aren't" + }, + new SubtitleTrackEvent { + Id = "8", + StartPositionTicks = 350000000, + EndPositionTicks = 359990000, + Text = + "<ggg>Unsupported</ggg> HTML tags are escaped and left in, even if <hhh>not closed." + }, + new SubtitleTrackEvent { + Id = "9", + StartPositionTicks = 360000000, + EndPositionTicks = 369990000, + Text = + "Multiple SSA tags are stripped" + }, + new SubtitleTrackEvent { + Id = "10", + StartPositionTicks = 370000000, + EndPositionTicks = 379990000, + Text = + "Greater than (<) and less than (>) are shown" + } + } + }; + + var sut = new VttWriter(); + + if(File.Exists("testVTT.vtt")) + File.Delete("testVTT.vtt"); + using (var file = File.OpenWrite("testVTT.vtt")) + { + sut.Write(infoSubs,file); + } + + var result = File.ReadAllText("testVTT.vtt"); + var expectedText = File.ReadAllText(@"MediaEncoding\Subtitles\TestSubtitles\expected.vtt"); + + Assert.AreEqual(expectedText, result); + } + } +}
\ No newline at end of file |
