mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-13 19:02:05 +01:00
file format - show error message when trying to open a .zip file that doen't contain the expected files of a Samsung J series or Toshiba .zip channel list - show error message when trying to open a broken .zip file, which is most likely caused by exporting to a USB stick formatted with NTFS - allow changing the "crypt" flag for Samsung .scm lists - iterating through loaders supporting a file extension till one can read the file
86 lines
2.5 KiB
C#
86 lines
2.5 KiB
C#
using System;
|
|
using System.IO;
|
|
using ChanSort.Loader.Samsung;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace Test.Loader.Samsung
|
|
{
|
|
[TestClass]
|
|
public class FileFormatDetectionTest
|
|
{
|
|
private static readonly string RootPath;
|
|
|
|
static FileFormatDetectionTest()
|
|
{
|
|
RootPath = GetSolutionBaseDir() + @"\Test.Loader.Samsung\TestFiles\";
|
|
}
|
|
|
|
#region GetSolutionBaseDir()
|
|
protected static string GetSolutionBaseDir()
|
|
{
|
|
var dir = Path.GetDirectoryName(typeof(FileFormatDetectionTest).Assembly.Location);
|
|
do
|
|
{
|
|
if (File.Exists(dir + "\\ChanSort.sln"))
|
|
return dir;
|
|
dir = Path.GetDirectoryName(dir);
|
|
} while (!string.IsNullOrEmpty(dir));
|
|
|
|
dir = Environment.CurrentDirectory;
|
|
do
|
|
{
|
|
if (File.Exists(dir + "\\ChanSort.sln"))
|
|
return dir;
|
|
dir = Path.GetDirectoryName(dir);
|
|
} while (!string.IsNullOrEmpty(dir));
|
|
|
|
throw new InvalidOperationException("Cannot determine base directory of ChanSort solution");
|
|
}
|
|
#endregion
|
|
|
|
[TestMethod]
|
|
public void LoadFileWithExcessiveHighFrequency_1()
|
|
{
|
|
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
|
|
var s = new ScmSerializer(RootPath + @"channel_list_UE55H6470_1201-Suchlauf-2015-04-26.scm");
|
|
s.Load();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void LoadFileWithExcessiveHighFrequency_2()
|
|
{
|
|
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
|
|
var s = new ScmSerializer(RootPath + @"channel_list_UE55H6470_1201.scm");
|
|
s.Load();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void LoadRenamedFile_HE40Cxxx_1201()
|
|
{
|
|
// This file uses the 1201 format (E,F,H,J), but has a "C" in its model name
|
|
var s = new ScmSerializer(RootPath + @"E_format_with_C_model_name.scm");
|
|
s.Load();
|
|
Assert.AreEqual("E", s.Series);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void LoadRenamedFile_LT24B_1201()
|
|
{
|
|
// This file uses the 1201 format (E,F,H,J), but has a "B" in its model name
|
|
var s = new ScmSerializer(RootPath + @"E_format_with_C_model_name.scm");
|
|
s.Load();
|
|
Assert.AreEqual("E", s.Series);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void LoadJSeriesWithScm1201Format()
|
|
{
|
|
// J-series model with E-J series SCM format
|
|
var s = new ScmSerializer(RootPath + @"channel_list_UE32J5170_1201_orig.scm");
|
|
s.Load();
|
|
Assert.AreEqual("E", s.Series);
|
|
}
|
|
|
|
}
|
|
}
|