aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Tests/M3uParserTest.cs
blob: b5b25b53dfb0e73e0c6e156448b57e303c104a5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Emby.Server.Implementations.Cryptography;
using Emby.Server.Implementations.LiveTv.TunerHosts;
using MediaBrowser.Common.Extensions;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MediaBrowser.Tests
{
    [TestClass]
    public class M3uParserTest
    {
        [TestMethod]
        public void TestFormat1()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0,84. VOX Schweiz\nhttp://mystream", "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("VOX Schweiz", result[0].Name);
            Assert.AreEqual("84", result[0].Number);
        }
        [TestMethod]
        public void TestFormat2()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            var input = "#EXTINF:-1 tvg-id=\"\" tvg-name=\"ABC News 04\" tvg-logo=\"\" group-title=\"ABC Group\",ABC News 04";
            input += "\n";
            input += "http://mystream";

            var result = new M3uParser(new NullLogger(), null, null, null).ParseString(input, "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("ABC News 04", result[0].Name);
            Assert.IsNull(result[0].Number);
        }

        [TestMethod]
        public void TestFormat3()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:0, 3.2 - Movies!\nhttp://mystream", "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("Movies!", result[0].Name);
            Assert.AreEqual("3.2", result[0].Number);
        }

        [TestMethod]
        public void TestFormat4()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            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", "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.IsNull(result[0].Number);
            Assert.AreEqual("ABC KABC Los Angeles", result[0].Name);
        }

        [TestMethod]
        public void TestFormat5()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            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", "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("BBC 1 HD", result[0].Name);
            Assert.AreEqual("2101", result[0].Number);
        }

        [TestMethod]
        public void TestFormat6()
        {
            BaseExtensions.CryptographyProvider = new CryptographyProvider();

            var result = new M3uParser(new NullLogger(), null, null, null).ParseString("#EXTINF:-1 tvg-id=\"2101\" group-title=\"Entertainment\",BBC 1 HD\nhttp://mystream", "-", "-");
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("BBC 1 HD", result[0].Name);
            Assert.AreEqual("2101", result[0].Number);
        }
    }
}