SsaParserTests.cs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using MediaBrowser.MediaEncoding.Subtitles;
  5. using Microsoft.VisualStudio.TestTools.UnitTesting;
  6. namespace MediaBrowser.Tests.MediaEncoding.Subtitles {
  7. [TestClass]
  8. public class SsaParserTests {
  9. [TestMethod]
  10. public void TestParse() {
  11. var expectedSubs =
  12. new SubtitleTrackInfo {
  13. TrackEvents = new List<SubtitleTrackEvent> {
  14. new SubtitleTrackEvent {
  15. Id = "1",
  16. StartPositionTicks = 24000000,
  17. EndPositionTicks = 72000000,
  18. Text =
  19. "Senator, we're <br />making our final <br />approach into Coruscant."
  20. },
  21. new SubtitleTrackEvent {
  22. Id = "2",
  23. StartPositionTicks = 97100000,
  24. EndPositionTicks = 133900000,
  25. Text =
  26. "Very good, Lieutenant."
  27. },
  28. new SubtitleTrackEvent {
  29. Id = "3",
  30. StartPositionTicks = 150400000,
  31. EndPositionTicks = 180400000,
  32. Text = "It's <br />a <br />trap!"
  33. }
  34. }
  35. };
  36. var sut = new SsaParser();
  37. var stream = File.OpenRead(@"MediaEncoding\Subtitles\TestSubtitles\data.ssa");
  38. var result = sut.Parse(stream);
  39. Assert.IsNotNull(result);
  40. Assert.AreEqual(expectedSubs.TrackEvents.Count,result.TrackEvents.Count);
  41. for (int i = 0; i < expectedSubs.TrackEvents.Count; i++)
  42. {
  43. Assert.AreEqual(expectedSubs.TrackEvents[i].Id, result.TrackEvents[i].Id);
  44. Assert.AreEqual(expectedSubs.TrackEvents[i].StartPositionTicks, result.TrackEvents[i].StartPositionTicks);
  45. Assert.AreEqual(expectedSubs.TrackEvents[i].EndPositionTicks, result.TrackEvents[i].EndPositionTicks);
  46. Assert.AreEqual(expectedSubs.TrackEvents[i].Text, result.TrackEvents[i].Text);
  47. }
  48. }
  49. }
  50. }