M3uParserTest.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Emby.Server.Implementations.Cryptography;
  7. using Emby.Server.Implementations.LiveTv.TunerHosts;
  8. using MediaBrowser.Common.Extensions;
  9. using Microsoft.Extensions.Logging;
  10. using Microsoft.VisualStudio.TestTools.UnitTesting;
  11. namespace MediaBrowser.Tests
  12. {
  13. [TestClass]
  14. public class M3uParserTest
  15. {
  16. [TestMethod]
  17. public void TestFormat1()
  18. {
  19. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  20. var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0,84. VOX Schweiz\nhttp://mystream", "-", "-");
  21. Assert.AreEqual(1, result.Count);
  22. Assert.AreEqual("VOX Schweiz", result[0].Name);
  23. Assert.AreEqual("84", result[0].Number);
  24. }
  25. [TestMethod]
  26. public void TestFormat2()
  27. {
  28. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  29. var input = "#EXTINF:-1 tvg-id=\"\" tvg-name=\"ABC News 04\" tvg-logo=\"\" group-title=\"ABC Group\",ABC News 04";
  30. input += "\n";
  31. input += "http://mystream";
  32. var result = new M3uParser(new NullLogger(), null, null, null).ParseString(input, "-", "-");
  33. Assert.AreEqual(1, result.Count);
  34. Assert.AreEqual("ABC News 04", result[0].Name);
  35. Assert.IsNull(result[0].Number);
  36. }
  37. [TestMethod]
  38. public void TestFormat3()
  39. {
  40. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  41. var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0, 3.2 - Movies!\nhttp://mystream", "-", "-");
  42. Assert.AreEqual(1, result.Count);
  43. Assert.AreEqual("Movies!", result[0].Name);
  44. Assert.AreEqual("3.2", result[0].Number);
  45. }
  46. [TestMethod]
  47. public void TestFormat4()
  48. {
  49. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  50. var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0 tvg-id=\"abckabclosangeles.path.to\" tvg-logo=\"path.to / channel_logos / abckabclosangeles.png\", ABC KABC Los Angeles\nhttp://mystream", "-", "-");
  51. Assert.AreEqual(1, result.Count);
  52. Assert.IsNull(result[0].Number);
  53. Assert.AreEqual("ABC KABC Los Angeles", result[0].Name);
  54. }
  55. [TestMethod]
  56. public void TestFormat5()
  57. {
  58. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  59. var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:-1 channel-id=\"2101\" tvg-id=\"I69387.json.schedulesdirect.org\" group-title=\"Entertainment\",BBC 1 HD\nhttp://mystream", "-", "-");
  60. Assert.AreEqual(1, result.Count);
  61. Assert.AreEqual("BBC 1 HD", result[0].Name);
  62. Assert.AreEqual("2101", result[0].Number);
  63. }
  64. [TestMethod]
  65. public void TestFormat6()
  66. {
  67. BaseExtensions.CryptographyProvider = new CryptographyProvider();
  68. var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:-1 tvg-id=\"2101\" group-title=\"Entertainment\",BBC 1 HD\nhttp://mystream", "-", "-");
  69. Assert.AreEqual(1, result.Count);
  70. Assert.AreEqual("BBC 1 HD", result[0].Name);
  71. Assert.AreEqual("2101", result[0].Number);
  72. }
  73. }
  74. }