Files
ChanSort/source/Test.Loader.Samsung/FileFormatDetectionTest.cs
hbeham 6cf02f4f90 - added experimental support for Loewe / Hisense 2017 servicelist.db
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
2017-06-08 20:01:42 +02:00

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);
}
}
}