예제 #1
0
        public void UnitM3u_1()
        {
            var fName1 = @"Targets\Hashes\OK02.m3u";

            using (Stream fs = new FileStream(fName1, FileMode.Open, FileAccess.Read))
            {
                var info = new FileInfo(fName1);
                var hdr  = new byte[0x20];
                var got  = fs.Read(hdr, 0, hdr.Length);
                Assert.AreEqual(hdr.Length, got);

                M3uFormat.Model m3uModel = M3uFormat.CreateModel(fs, hdr, fName1);
                M3uFormat       m3u      = m3uModel.Data;

                m3uModel.CalcHashes(Hashes.None, Validations.Exists);

                Assert.AreEqual(Severity.Advisory, m3u.Issues.MaxSeverity);
                Assert.AreEqual(1, m3u.Issues.Items.Count);
                Assert.AreEqual(3, m3u.Files.Items.Count);

                foreach (var item in m3u.Files.Items)
                {
                    Assert.IsTrue(item.IsFound == true);
                }

                Assert.AreEqual(1, m3u.Issues.Items.Count);
                Assert.AreEqual(Severity.Advisory, m3u.Issues.MaxSeverity);
                foreach (var item in m3u.Files.Items)
                {
                    Assert.IsTrue(item.IsFound.Value);
                }
            }
        }
예제 #2
0
        public void UnitM3u_2()
        {
            var fName1 = @"Targets\Hashes\Bad02.m3u";

            using (Stream fs = new FileStream(fName1, FileMode.Open, FileAccess.Read))
            {
                var hdr = new byte[0x20];
                var got = fs.Read(hdr, 0, hdr.Length);
                Assert.AreEqual(hdr.Length, got);

                M3uFormat.Model m3uModel = M3uFormat.CreateModel(fs, hdr, fName1);
                M3uFormat       m3u      = m3uModel.Data;

                Assert.IsNotNull(m3uModel);
                Assert.AreEqual(Severity.NoIssue, m3u.Issues.MaxSeverity);
                Assert.AreEqual(0, m3u.Issues.Items.Count);
                Assert.AreEqual(3, m3u.Files.Items.Count);

                foreach (var item in m3u.Files.Items)
                {
                    Assert.IsNull(item.IsFound);
                }

                m3uModel.CalcHashes(Hashes.None, Validations.Exists);

                Assert.AreEqual(2, m3u.Issues.Items.Count);
                Assert.AreEqual(Severity.Error, m3u.Issues.MaxSeverity);
                Assert.IsTrue(m3u.Files.Items[0].IsFound.Value);
                Assert.IsFalse(m3u.Files.Items[1].IsFound.Value);
                Assert.IsTrue(m3u.Files.Items[2].IsFound.Value);
            }
        }
예제 #3
0
        public void Test_M3u_2()
        {
            var fn = @"Targets\Hashes\Bad02.m3u";

            using (var fs = new FileStream(fn, FileMode.Open, FileAccess.Read))
            {
                var info = new FileInfo(fn);
                var hdr  = new byte[0x20];
                var got  = fs.Read(hdr, 0, hdr.Length);
                Assert.AreEqual(hdr.Length, got);

                M3uFormat.Model model = M3uFormat.CreateModel(fs, hdr, fs.Name);
                M3uFormat       bind  = model.Data;

                Assert.IsNotNull(model);
                Assert.IsTrue(bind.Issues.MaxSeverity == Severity.NoIssue);
                Assert.AreEqual(0, bind.Issues.Items.Count);
                Assert.AreEqual(3, bind.Files.Items.Count);

                foreach (var item in bind.Files.Items)
                {
                    Assert.IsNull(item.IsFound);
                }

                model.CalcHashes(Hashes.None, Validations.Exists);

                Assert.AreEqual(2, bind.Issues.Items.Count);
                Assert.AreEqual(Severity.Error, bind.Issues.MaxSeverity);
                Assert.IsTrue(bind.Files.Items[0].IsFound.Value);
                Assert.IsFalse(bind.Files.Items[1].IsFound.Value);
                Assert.IsTrue(bind.Files.Items[2].IsFound.Value);
            }
        }
예제 #4
0
            private Severity ValidatePlaylists()
            {
                Severity maxSeverity = Severity.NoIssue;

                foreach (var info in Bind.m3uInfos)
                {
                    using (var stream = new FileStream(info.FullName, FileMode.Open, FileAccess.Read))
                    {
                        var hdr = new byte[7];
                        stream.Read(hdr, 0, hdr.Length);
                        var m3uModel = M3uFormat.CreateModel(stream, hdr, info.FullName);
                        m3uModel.SetAllowRooted(false);
                        m3uModel.CalcHashes(Hashes.None, Validations.Exists);

                        Owner.SetCurrentFile(info.Name);
                        ++Owner.Data.M3uFormat.TrueTotal;
                        ++Owner.Data.TotalFiles;
                        Owner.ReportFormat(m3uModel.Data, Bind.Signature != null);
                        if (maxSeverity < m3uModel.IssueModel.Data.MaxSeverity)
                        {
                            maxSeverity = m3uModel.IssueModel.Data.MaxSeverity;
                        }
                    }
                }

                foreach (var info in Bind.m3u8Infos)
                {
                    using (var stream = new FileStream(info.FullName, FileMode.Open, FileAccess.Read))
                    {
                        var hdr = new byte[7];
                        stream.Read(hdr, 0, hdr.Length);
                        var m3u8Model = M3u8Format.CreateModel(stream, hdr, info.FullName);
                        m3u8Model.SetAllowRooted(false);
                        m3u8Model.CalcHashes(Hashes.None, Validations.Exists);

                        Owner.SetCurrentFile(info.Name);
                        ++Owner.Data.M3u8Format.TrueTotal;
                        ++Owner.Data.TotalFiles;
                        Owner.ReportFormat(m3u8Model.Data, Bind.Signature != null);
                        if (maxSeverity < m3u8Model.IssueModel.Data.MaxSeverity)
                        {
                            maxSeverity = m3u8Model.IssueModel.Data.MaxSeverity;
                        }
                    }
                }

                return(maxSeverity);
            }